Hide Forgot
gnatmake -m32 on x86_64 worked in F-8 and was fixed in early gcc-4.4.x but fails in RHEL-6.1 gcc-4.4.5.x Version-Release number of selected component (if applicable): gcc-gnat-4.4.5-6.el6.x86_64 How reproducible: Always Steps to Reproduce: (From bug 443293) /bin/echo -e ' procedure Foo is\n begin\n null;\n end Foo;' >foo.adb;rm -f foo.{,all,o};gnatmake -m32 foo.adb;./foo Actual results: gcc -c -m32 foo.adb gnatbind -x foo.ali gnatlink foo.ali -m32 /usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-redhat-linux/4.4.5/adalib/libgnat.a(s-exctab.o)' is incompatible with i386 output .....many more similar to above line.... collect2: ld returned 1 exit status gnatlink: error when calling /usr/bin/gcc gnatmake: *** link failed. Expected results: Expected an executable to be created using i686(or 386) lib's. Additional info: Ref. bug # 443293 -- This seems to have been fixed @ one point then un-fixed. As in ref'd bug, it can be worked around by adding `-largs -lgnat-4.4` to the gnatmake command (gnatmake -m32 foo.adb -largs -lgnat-4.4). Looked briefly @ the src rpm and it appears it was setup to be building the 32 bit "multilib" lib's but none are included in the rpms produced when rpmbuild -ba SPEC_FILE is run.
Do you have all of libgnat{,-devel}-4.4*.{i686,x86_64}.rpm installed?
Since RHEL 6.2 External Beta has begun, and this bug remains unresolved, it has been rejected as it is not proposed as exception or blocker. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux.
The Gnat packages that are currently installed:(rpm -qa |grep -i gnat) gcc-gnat-4.4.5-6.el6.x86_64 libgnat-devel-4.4.5-6.el6.i686 libgnat-4.4.5-6.el6.i686 libgnat-devel-4.4.5-6.el6.x86_64 libgnat-4.4.5-6.el6.x86_64
If we use the "-m32 --RTS=32" flags (added --RT=32 flag) it works. Suggest the use of this option be mentioned where the -m32 option is in the gcc & gnat pages (http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gnat_ugn_unw/Switches-for-gnatmake.html#S) or equiv. OR earlier.
works for me: $ /bin/echo -e ' procedure Foo is\n begin\n null;\n end Foo;' >foo.adb;rm -f foo.{,all,o};gnatmake -m32 foo.adb; gcc -c -m32 --RTS=32 foo.adb gnatbind --RTS=32 -x foo.ali gnatlink foo.ali -m32 $ rpm -qa | grep -e "gcc\|gnat" libgnat-4.4.7-3.el6.i686 libgnat-4.4.7-3.el6.x86_64 libgnat-devel-4.4.7-3.el6.i686 libgcc-4.4.7-3.el6.x86_64 libgnat-devel-4.4.7-3.el6.x86_64 gcc-gnat-4.4.7-3.el6.x86_64 libgcc-4.4.7-3.el6.i686 gcc-4.4.7-3.el6.x86_64 gcc-c++-4.4.7-3.el6.x86_64
Yes -- Appears gnatmake has been fixed in gcc-4.4.7-3 to add the --RTS=32 flag to the compilation/bind.
Should be fixed then.
This was fixed in RHEL 6.4