This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [i386, x32] Trouble bootstrapping x86_64-pc-linux-gnux32


On 08/13/2017 07:05 PM, H.J. Lu wrote:
> On Sun, Aug 13, 2017 at 3:52 PM, Daniel Santos <daniel.santos@pobox.com> wrote:
>> I've setup an x32 test environment using Gentoo in hopes of being able
>> to both compile and run x32 tests, but I'm having problems getting a
>> successful bootstrap.  I'm guessing this is due to something currently
>> broken with x32, but I want to make sure it's not something I'm doing
>> wrong, and if it is broken that we are aware of it.
>>
>> I'm able to get a 7.1 bootstrap using:
>>
>> /home/daniel/proj/sys/gcc/7.x/configure
>> --prefix=/home/daniel/local/gcc-7.1.0 --build=x86_64-pc-linux-gnux32
>> --with-abi=mx32 --enable-checking=yes,rtl --enable-languages=all
>> --enable-bootstrap --enable-option-checking --enable-lto
>> --enable-gold=yes --with-system-zlib --enable-link-mutex
>> --enable-libgomp --enable-targets=all --disable-gcj
> No need to build x32 GCC.  Just enable x32 run-time in x86-64 GCC
> with
>
> -with-multilib-list=m32,m64,mx32
>
> is sufficient.

Well the problem I had when trying that was ld failing because on Gentoo
x32, ld is an x32 binary and it fails when it tries to load the lto plugin:

/usr/lib/gcc/x86_64-pc-linux-gnux32/5.4.0/../../../../x86_64-pc-linux-gnux32/bin/ld:
/home/daniel/proj/sys/gcc/builds/unpatched/./gcc/liblto_plugin.so: error
loading plugin:
/home/daniel/proj/sys/gcc/builds/unpatched/./gcc/liblto_plugin.so: wrong
ELF class: ELFCLASS64
collect2: error: ld returned 1 exit status
make[5]: *** [Makefile:982: libgcc_s.so] Error 1
make[5]: Leaving directory
'/home/daniel/proj/sys/gcc/builds/unpatched/x86_64-pc-linux-gnu/32/libgcc'

I'm trying this again without --enable-gold=yes and maybe I can avoid
this problem.  Maybe I also need to either use a different OS that can
build the x32 libs without making all of /bin and /usr/bin x32.  It
seems that the only way Gentoo supports x32 so far is a profile that
lets you have 32, 64, and x32 libs all side-by-side, but all executables
in /bin, /usr/bin, etc. are x32.

>> (I guess --disable-gcj was probably useless now)
>>
>> But when I configure the same way from the head (from two days ago), it
>> fails on stage2:
>>
>> /home/daniel/proj/sys/gcc/unpatched/configure
>> --prefix=/home/daniel/local/gcc-unpatched --build=x86_64-pc-linux-gnux32
>> --with-abi=mx32 --enable-checking=yes,rtl --enable-languages=all
>> --enable-bootstrap --enable-option-checking --enable-lto
>> --enable-gold=yes --with-system-zlib --enable-link-mutex
>> --enable-libgomp --enable-targets=all --disable-gcj
> x32 GCC built fine on trunk on Aug. 10 with
>
> configure --with-demangler-in-ld
> --enable-languages=c,c++,fortran,lto,objc,obj-c++,go
> --prefix=/usr/gcc-8.0.0-mx32 --with-local-prefix=/usr/local
> --enable-gnu-indirect-function --enable-clocale=gnu --with-system-zlib
> --enable-libmpx --with-multilib-list=m32,m64,mx32
> --enable-linker-build-id --enable-gnu-unique-object --with-abi=mx32
> --with-fpmath=sse
> checking build system type... x86_64-pc-linux-gnu
> checking host system type... x86_64-pc-linux-gnu
> checking target system type... x86_64-pc-linux-gnu
>
> I didn't use  --build=x86_64-pc-linux-gnux32
>

But you also didn't have --enable-checking=yes,rtl and that's probably
what is pushing it over the 4GiB limit.  I guess I don't really need
that anymore, so I should probably disable that and be done with it. 
But if I can't get --with-multilib-list=m32,m64,mx32 to work, I'll try
this exact set of configure options next.

Thanks!
Daniel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]