delorie.com/archives/browse.cgi | search |
Hello, I've hit upon an obscure g++/linker bug on Cygwin1.1.0 which causes the resulting executable to have "call 0x0" instructions in a few places instead of proper calls. The attached testcase (together with the Makefile) demonstrates the problem: just do make and run one of the resulting "bug*" executables to get a runtime error. Few points of interest: - the test case is fairly obscure, but it is distilled from a much larger system. - if the return type of the argument type of "void* __stdcall I_RpcAllocate(unsigned int);" declaration in dlltest.cc are modified in any way the problem goes away. (This declaration is not random: I actually pulled it out of one of the cygwin header files -- rpcdcep.h -- after several hours of chasing this down). - if the order of object files is changed during linking the problem goes away My environment is: uname -a: CYGWIN_NT-4.0 DOGWOOD 1.1.0(0.17/3/2) 2000-03-01 00:15:19 i686 unknown gcc -v: Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/specs gcc version 2.95.2 19991024 (release) ld -v: GNU ld version 19990818 (with BFD 19990818) as -v: GNU assembler version 19990818 (i686-pc-cygwin) using BFD version 19990818 Any help, hints, or workarounds will be greatly appreciated. Thanks, Marat. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=bug.tar.gz Content-Transfer-Encoding: base64 H4sICCWuFzkAA2J1Zy50YXIA7RjZbuM2MK8RkH+YOruF7fUh+QoQx0FTZB8COGnR7KIvBQRZ om2iEqUVqU3TRf59h6QOy0fTLWKnRTUvJjkn5+BoPEsW3aM9AwzMs+EQjgDgbDSQv5Y5MNU+ BRMxljk8652ZfQvRPVwcwXDfhklIuHBigKPAiR0x20135QWUUS6QKoz5ISw7CMww/p7vC8JF x3X3o8MyzdFgsDP+vf7wLIv/oG8NED3AoyMw92NOGf7n8T+NYmcROECDyCcBYcIRNGQnxonR 7Z56ZE4ZgR8/3kyv7evpVB1S5vqJR6CWpc2yVib/9eau37On76/u7Ku7a/sWFyXGiwfKvPCB d5aXKWMukgs/FVdQO74fuimtIGimI/AUKBPgJUHwCIhxfYdzWLi2IrZzsi8nhsywKJn51D3X Gzjm8pIufA6pB01QLEhc5/RPYgtgDfgCMRFJzCBQyDprjOFpO3ckYnseE2L/fTElCR7JGbXE FmgBkn2dOFf2HNfTWHnrMSIYky1+ucAX9zI/H5ddq51pf0C/YronrgD7SrPHDhX8wv7Qylml 85WTUzPdkHEBszD0wb63KW4c5hKfoMAJoDAylsSZYVxlnZa0JjbXiaQlHjvzdBivs+SIjEu7 gTJfpqUyKoyIKuDJpK5Nzdi/b6Xx3YQ1wkZ64zS26aWedmn67sU0zR2f56okuQx9Ex3Checi B9zYv0TuVZYYCeN0wYgnK6UxLtfU0uFLmxORllUaZvIJF1nNlC5Rb6SXcJdOjCXTgtXtrJFu kfU4NRYluUFUR0rETiZgjrXYjeTMTLlYkdhSp6snly1tXRHvS7gXMWWLeyKUvHwHQeILKvNK 5iTh+CMxXFG99nP7rwPZ/2+d3/Hl9sm+dDzT/63BqJf1/5FaWwOzX/X/gwDW0jlgErDQfVzI hfxh4epCoQzj9BS3gEts34bxtqOOO+E5vMUPR+O4m/C4O6Osu3j3DtoutBcA7Rt1Kh8kv4vu Wzx0syeoHbCwrYVhCrRDgDc/wJsLw8gUnkP2fZEqArnBs3z/M75QxNN1nx2u27GiBXWgim1M z2pqTzfu4dOZYRTu2ZO1/0ToTmsxgEX0no9dKSSlK5Zt2WLJ1sttur/s/G1SUxe/lPZvE4Ha XZ847BybWgBNPGh2yB97eyVfB+T7X776yw+Bz81/w+Eon/96ponoYd8yq/f/ELB7/lv7Wgyc SH0tro5rJI7DWA1s3S5sTnGrpKUc0yNeNeRVQ1415P3VkCdjs+JxPW1hCMWjLiR0d602zigP P8Nh1aeGRFITF8l8vjbZ4bNRnuy+ecxztYpe+nvrROPCLxs4aOpxTxk0gbuP06kytVACzYTR Twmprx4hUyPzGp1DfVWIltKAkmBGHrZorw8tq5F6qXBiEc7Xfu03Qfb//EPodf7/hd7IKvr/ 0FT///ZGVf8/BBQtGHOAhmkLln03cCiry4UTL9yWrs+m3HzOK0XXDrrEJT9Fghf1ViA9ghm2 iYywYMS8XlvSR+c3VstqZj73E77E6vPCRKwVkqnL6LUdVkEFFVRQQQUVVFBBBRVU8B+Fr/q4 qp8AKAAA --=-=-= Content-Type: text/plain; charset=us-ascii -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com --=-=-=--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |