Re: Problem with compiling using -m32

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

 



Alireza Haghdoost <haghdoost@xxxxxxxxx> writes:

> 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 :
>
>
> cc -m32 -g -I../../diskmodel/include -I../../libparam/include
> -I../../libddbg/include  -c -o driver.o driver.c
> cc -m32 -g -I../../diskmodel/include -I../../libparam/include
> -I../../libddbg/include -o layout_simple layout_simple.c driver.o
> -L../../diskmodel/lib -ldiskmodel -L../../libparam/lib -lparam
> -L../../libddbg/lib -lddbg -L/usr/lib/gcc/x86_64-linux-gnu/4.4/32 -m32
> -L/usr/lib32
> /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
> collect2: ld returned 1 exit status
> make: *** [layout_simple] Error 1
>
>
> 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/.
>
> Does any one know how I can force gcc to use object files in
> /usr/lib/gcc/x86_64-linux-gnu/4.4/32/ ?

I note that the version numbers in those pathnames are different.
Presumably the "cc" command is gcc version 4.1.3.  If you want to use
the crtbegin.o and crtend.o in the 4.4 directory, you should be running
gcc 4.4.  There are things you could do the work around this, but mixing
different versions will most likely just get you into trouble.

Ian



[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