Re: Problem with compiling using -m32

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



11.2.2011 6:49, Alireza Haghdoost kirjoitti:
Hello

I am trying to make an application on a 64-bit machine with -m32
option. I have add "-m32" in CFLAGS and
"-L/usr/lib/gcc/x86_64-linux-gnu/4.4/32 -m32 -L/usr/lib32" in LDFLAGS.
However I have got the following error :

/usr/bin/ld: i386:x86-64 architecture of input file
`/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtbegin.o' is incompatible with
i386 output
/usr/bin/ld: i386:x86-64 architecture of input file
`/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtend.o' is incompatible with
i386 output

These 'crt*' files are the default 64-bit x86_64 objects, the
'/usr/lib/gcc/x86_64-linux-gnu/4.1.3/32' should have the 32-bit
x86 equivalents.

I have 32-bit version of crtbegin.o and crtend.o in
/usr/lib/gcc/x86_64-linux-gnu/4.4/32/ However gcc try to use 64-bit
version from /usr/lib/gcc/x86_64-linux-gnu/4.1.3/.

The '-verbose' option for the linker would be nice in a case
like this... One gives it with the '-Wl,<linker-option>', here
'-Wl,-verbose' on the 'cc' command line. In any case it can be
that the '-L' options will only add directories AFTER the normal
ones, not BEFORE them! The GCC manual doesn't tell the order :

-Ldir
  Add directory dir to the list of directories to be searched for â-lâ.

Does any one know how I can force gcc to use object files in
/usr/lib/gcc/x86_64-linux-gnu/4.4/32/ ?

Why the '/usr/lib/gcc/x86_64-linux-gnu/4.1.3/32' doesn't have
the 32-bit 'crtbegin.o' and 'crtend.o' ?  Mixing the 4.4 ones
isn't sane at all!

Maybe you haven't added support for 32-bit linking into your
gcc-4.1.3 toolchain at all via installing the 'glibc-32bit-dev*'
or something packages?


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux