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

How to build a gcc stage1 for x32?



Hi,

Please CC me in replies as I am not subscribed to debian-toolchain@l.d.o.

I tried to build gcc stage1 cross compilers. This mostly succeeds except
for x32. My efforts are based on sid gcc-4.8 and I compile with:

DEB_BUILD_OPTIONS="nocheck parallel=1" DH_VERBOSE=1 DEB_TARGET_ARCH=x32 DEB_CROSS_NO_BIARCH=yes DEB_STAGE=stage1 dpkg-buildpackage -d -T control
DEB_BUILD_OPTIONS="nocheck parallel=1" DH_VERBOSE=1 DEB_TARGET_ARCH=x32 DEB_CROSS_NO_BIARCH=yes DEB_STAGE=stage1 dpkg-buildpackage -d -B -uc -us

Compilation succeeds, but the resulting compiler creates objects
x86_64-linux-gnu objects rather than x86_64-linux-gnux32 objects:

$ x86_64-linux-gnux32-as /dev/null -o test.o 
$ file test.o
test.o: ELF 32-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$ x86_64-linux-gnux32-gcc-4.8 -x c -c /dev/null -o test.o
$ file test.o
test.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$ x86_64-linux-gnux32-gcc-4.8 -mx32 -x c -c /dev/null -o test.o
$ file test.o
test.o: ELF 32-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$

So arguably the resulting cross compiler is capable of doing its job,
just I'm not telling it to do so. In particular eglibc stage1 does not
pass the -mx32 flag nor do any followup builds. So I think that rather
the cross compiler should default to -mx32. Just how do I tell gcc?

A build log is attached.

Helmut

Attachment: bootstrap-x32.log.xz
Description: Binary data


Reply to: