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

Re: ABI incompatibility when building util-linux



Alex Gonzalez wrote:
> Hi,
> 
> When compiling the util-linux-2.12q sources, I get the following linker
> ABI incompatibility error:
[snip]
> mips64-linux-gnu-gcc -c -O2 -pipe -march=rm9000 -mabi=32 -static -mips4 -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED -Wl,-t -Wl,-EB -O2 -fomit-frame-pointer -I../lib -Wall -Wmissing-prototypes -Wstrict-prototypes    -D_FILE_OFFSET_BITS=64 -DSBINDIR=\"/sbin\" -DUSRSBINDIR=\"/usr/sbin\" -DLOGDIR=\"/var/log\" -DVARPATH=\"/var\" -DLOCALEDIR=\"/usr/share/locale\"  getopt.c -o getopt.o
> mips64-linux-gnu-gcc: -t: linker input file unused because linking not done
> mips64-linux-gnu-gcc: -EB: linker input file unused because linking not done

The compiler is broken and fails to recognize -Wl,-t -Wl,-EB as linker
options.

> mips64-linux-gnu-ld -V -static -t -EB getopt.o -o getopt
> GNU ld version 2.13-mips64linux-031001 20020920

This toolchain is very old, and unlikely to work correctly for mips64.

[snip]
> Can anybody help with the following:
> 
> 1) What's the difference between -mabi=32 and -mabi=n32?

n32 means 64bit wide registers and 32bit address space. It runs only on
a 64bit kernel.

> 2) What should I do to compile util-linux with -mabi=32?

Use either a mips-linux targeted toolchain (instead of mips64-linux),
or upgrade to gcc 3.3/binutils 2.15, which fixed some known bugs in
that area.


Thiemo



Reply to: