https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85007

--- Comment #5 from Eric Reischer <emr-gnu at hev dot psu.edu> ---
The multilib switch (-m32 -- which is undocumented as being valid for gnatmake
incidentally) already is being passed to "gnatmake" -- it properly passes this
flag to gcc when compiling the spec and body files, along with the "--RTS" flag
properly set.  The gnatbind command generated (and output) is:

gnatbind-7.3 -E -ws -v --RTS=32 -x driver.ali
gnatbind-7.3 -E -ws -v --RTS=32 -F=GNAT-TEMP-000004.TMP -x driver.ali

GNATBIND 7.3.0
Copyright (C) 1995-2017, Free Software Foundation, Inc.

Binding: driver.ali

No errors

-----

It should be noted that at the top of the b~driver.ali file generated are the
following lines:

V "GNAT Lib v7"
A -gnatA
A -gnatWb
A -gnatiw
A -g
A -gnatws
A -mtune=nehalem
A -march=x86-64
P ZX

As noted in the OP, my --with-tune=nehalem explains that line, but the -march
line shouldn't be appearing if --RTS=32 is being passed, correct?

The gnatlink command generated (and output) is:

gnatlink-7.3 driver.ali -g -v <object files of the program> --GCC=gcc-7.3 -m32
-o driver

GNATLINK 7.3.0
Copyright (C) 1994-2017, Free Software Foundation, Inc.
gcc-7 -c -gnatA -gnatWb -gnatiw -g -gnatws b~driver.adb
gcc-7.3 b~driver.o <other args and objects> -m32 -o driver <some other
irrelevant Ada link paths>
ld: i386:x86-64 architecture of input file `b~driver.o' is incompatible with
i386 output
ld: b~driver.o: file class ELFCLASS64 incompatible with ELFCLASS32
ld: final link failed: File in wrong format

So, the "-m32" multiarch flag is not being passed to the first tool command
executed by gnatlink (gcc-7) to compile b~driver.adb, even though "-m32" is
passed as an argument to gnatmake.

Reply via email to