View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000431 | GCC - GNU C Compiler | Bug | public | 2010-07-13 00:26 | 2022-05-14 07:04 |
Reporter | herbthompson | Assigned To | psmedley | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | Warp 4 | ||||
Summary | 0000431: Inconsitencies between gcc and g++ (gcc-4.4.4-os2-20100704.zip) | ||||
Description | (1) For a given C++ program, the executable produced by g++ is much larger than the executable produced by gcc -- e.g. 270 kB versue 12 kB. (2) When EMXOMFLD_TYPE=WLINK and EMXOMFLD_LINKER=WL, "gcc --std=c++0x name.cpp -s -Zomf" appears to staticly link gcc444 even if "-static-libgcc" is NOT set -- i.e. the EXE will run on a machine without gcc444.dll (and the size of the execuatbles produced by gcc are the same with and without "-staic-libgcc"). If EMXOMFLD_TYPE=LINK386 and EMXOMFLD_LINKER=LINK386, the excuatble produced by gcc will depend on gcc444.dll unless "-staic-libgcc" is specified. (3) LINK386 will crash when (indirectly) invoked by "g++ --std=c++0x name.cpp -s -static-libgcc -Zomf" but not when invoked by gcc with the same parameters. (4) In some cases emxomf reports warnings when a program is built with g++ but not when built by gcc using the same options -- e.g. "g++ --std=c++0x name.cpp -s -Zomf" results in emxomf warnings but "gcc --std=c++0x name.cpp -s -Zomf" does not. (5) When EMXOMFLD_TYPE=LINK386 and EMXOMFLD_LINKER=LINK386, the exe produced by "g++ --std=c++0x name.cpp -s -Zomf" won't run but if the program is built with gcc using the same options the exe will run. | ||||
Steps To Reproduce | These observations can be reproduced as follows: --- forlist.cpp --- #include <forward_list> #include <iostream> #include <string> using namespace std; int main() { forward_list<string> list; list.push_front("alpha"); list.push_front("charlie"); list.push_front("bravo"); for (auto itr=list.begin(); itr!=list.end(); itr++) cout << *itr << endl; } --- ~~~ --- --- build.cmd --- (See the attached build.cmd file) del *.err del forlist*.exe gcc --std=c++0x -o forlist-gcc-shared-out.exe forlist.cpp -s 2> gcc-shared-out.err gcc --std=c++0x -o forlist-gcc-static-out.exe forlist.cpp -s -static-libgcc 2> gcc-static-out.err g++ --std=c++0x -o forlist-g++-shared-out.exe forlist.cpp -s 2> g++-shared-out.err g++ --std=c++0x -o forlist-g++-static-out.exe forlist.cpp -s -static-libgcc 2> g++-static-out.err set EMXOMFLD_TYPE=WLINK set EMXOMFLD_LINKER=WL gcc --std=c++0x -o forlist-gcc-shared-omf-wl.exe forlist.cpp -s -Zomf 2> gcc-shared-omf-wl.err gcc --std=c++0x -o forlist-gcc-static-omf-wl.exe forlist.cpp -s -static-libgcc -Zomf 2> gcc-static-omf-wl.err g++ --std=c++0x -o forlist-g++-shared-omf-wl.exe forlist.cpp -s -Zomf 2> g++-shared-omf-wl.err g++ --std=c++0x -o forlist-g++-static-omf-wl.exe forlist.cpp -s -static-libgcc -Zomf 2> g++-static-omf-wl.err set EMXOMFLD_TYPE=LINK386 set EMXOMFLD_LINKER=LINK386 gcc --std=c++0x -o forlist-gcc-shared-omf-386.exe forlist.cpp -s -Zomf 2> gcc-shared-omf-386.err gcc --std=c++0x -o forlist-gcc-static-omf-386.exe forlist.cpp -s -static-libgcc -Zomf 2> gcc-static-omf-386.err g++ --std=c++0x -o forlist-g++-shared-omf-386.exe forlist.cpp -s -Zomf 2> g++-shared-omf-386.err g++ --std=c++0x -o forlist-g++-static-omf-386.exe forlist.cpp -s -static-libgcc -Zomf 2> g++-static-omf-386.err --- ~~~ --- --- 2010/07/12 07:29 PM 249,856 forlist-g++-shared-omf-386.exe 2010/07/12 07:26 PM 267,148 forlist-g++-shared-omf-wl.exe 2010/07/12 07:24 PM 270,340 forlist-g++-shared-out.exe 2010/07/12 07:27 PM 277,924 forlist-g++-static-omf-wl.exe 2010/07/12 07:24 PM 294,916 forlist-g++-static-out.exe 2010/07/12 07:28 PM 5,632 forlist-gcc-shared-omf-386.exe 2010/07/12 07:25 PM 4,916 forlist-gcc-shared-omf-wl.exe 2010/07/12 07:24 PM 12,292 forlist-gcc-shared-out.exe 2010/07/12 07:28 PM 11,264 forlist-gcc-static-omf-386.exe 2010/07/12 07:26 PM 4,916 forlist-gcc-static-omf-wl.exe 2010/07/12 07:24 PM 16,388 forlist-gcc-static-out.exe --- | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
Date Modified | Username | Field | Change |
---|---|---|---|
2010-07-13 00:26 | herbthompson | New Issue | |
2010-07-13 00:26 | herbthompson | File Added: build.cmd | |
2022-05-14 07:03 | psmedley | Assigned To | => psmedley |
2022-05-14 07:03 | psmedley | Status | new => resolved |
2022-05-14 07:03 | psmedley | Resolution | open => fixed |
2022-05-14 07:03 | psmedley | Note Added: 0004274 | |
2022-05-14 07:04 | psmedley | Status | resolved => closed |