I would like to hear some comments or explanation from QSSL experts about
code size diffrence generated by qcc compiler for QNX 6.0 and QNX 6.2. I
have build the same project under different QNX versions using the same make
files and resuls are listed below where numbers are none debug executable
size in bytes. Does the size affect executable speed? Are there any
compilation parameters which must be set up for version 6.2?
I’m not a C++ guy, but I’ll take a crack at this. IIRC in 6.0 C++ exceptions
weren’t supported or turned on when compiling. Since they are now supported
and enabled (I think as of 6.1) it could explain the size difference (since they
do add a fair bit of code from what I understand).
The ecpp lib should be the embedded dinkum C++ lib and I think it doesn’t have exception
support.
I would like to hear some comments or explanation from QSSL experts about
code size diffrence generated by qcc compiler for QNX 6.0 and QNX 6.2. I
have build the same project under different QNX versions using the same make
files and resuls are listed below where numbers are none debug executable
size in bytes. Does the size affect executable speed? Are there any
compilation parameters which must be set up for version 6.2?
I’m not a C++ guy, but I’ll take a crack at this. IIRC in 6.0 C++
exceptions
weren’t supported or turned on when compiling. Since they are now
supported
and enabled (I think as of 6.1) it could explain the size difference
(since they
do add a fair bit of code from what I understand).
The ecpp lib should be the embedded dinkum C++ lib and I think it doesn’t
have exception
support.
I would like to hear some comments or explanation from QSSL experts
about
code size diffrence generated by qcc compiler for QNX 6.0 and QNX 6.2. I
have build the same project under different QNX versions using the same
make
files and resuls are listed below where numbers are none debug
executable
size in bytes. Does the size affect executable speed? Are there any
compilation parameters which must be set up for version 6.2?
Without looking at the numbers, I would suggest that you use the size
utility to generate the numbers. As one developer I know once told me
“ls is useless for code generation statistics”.
I would like to hear some comments or explanation from QSSL experts about
code size diffrence generated by qcc compiler for QNX 6.0 and QNX 6.2. I
have build the same project under different QNX versions using the same make
files and resuls are listed below where numbers are none debug executable
size in bytes. Does the size affect executable speed? Are there any
compilation parameters which must be set up for version 6.2?
Without looking at the numbers, I would suggest that you use the size
utility to generate the numbers. As one developer I know once told me
“ls is useless for code generation statistics”.
Unless you’re worried about installation footprint (say to an embedded
flash device), in which case it is the only metric But in that
situation you’d “strip” things prior to installation (and they should
reduce down to close to the “size” sums).
I’m not a C++ guy, but I’ll take a crack at this. IIRC in 6.0 C++ exceptions
weren’t supported or turned on when compiling. Since they are now supported
and enabled (I think as of 6.1) it could explain the size difference (since they
do add a fair bit of code from what I understand).
The ecpp lib should be the embedded dinkum C++ lib and I think it doesn’t have exception
support.
I wish it were that easy. Exceptions were turned on (and worked as much
as we could tell).
I also tried compiling in 6.2 with -fno-default-inline and a couple
other combinations of those flags with no noticable difference.
Without looking at the numbers, I would suggest that you use the size
utility to generate the numbers. As one developer I know once told me
“ls is useless for code generation statistics”.
Unless you’re worried about installation footprint (say to an embedded
flash device), in which case it is the only metric > > But in that
situation you’d “strip” things prior to installation (and they should
reduce down to close to the “size” sums).
Ya, unfortunately flash footprint is an important part of the
consideration, and these are stripped sizes.
The difference is the change from the GNU libstdc++ C++ library to the Dinkum
library. They are different implementations, the Dinkum C++ lib being a
lot closer to the ISO standard.
If you are having serious size issues and ISO vs GNU isn’t such a big
deal to you, then use -Vgcc_ntox86_gpp which will select the GNU library.
I would like to hear some comments or explanation from QSSL experts about
code size diffrence generated by qcc compiler for QNX 6.0 and QNX 6.2. I
have build the same project under different QNX versions using the same make
files and resuls are listed below where numbers are none debug executable
size in bytes. Does the size affect executable speed? Are there any
compilation parameters which must be set up for version 6.2?