1
edit
Changes
no edit summary
To do:
Currently, we are missing some 32-bit C/C++ libraries. While compiling a file in ilp32 mode is generally successful, some generic C/C++ libraries are present only in 64-bit. To successfully produce them32-bit versions, we need to compile GCC in MultiLib mode, which supposedly will generate those libraries. We found this information after checking the build logs for Fedora gcc, to see at what point and what command 32-bit libraries were generated.https://kojipkgs.fedoraproject.org//packages/gcc/5.2.1/1.fc22/data/logs/x86_64/build.log build log shows that 32-bit folder was created in libgcc/Makefile.in. There we found that the directory uses default gcc macro to name MULTIOSDIR, which on our builders is different from what it needs to be. We created a patch to hardcode that value to what it needs to be ("32"). Next step was to enable multilib support in gcc-ilp32.spec. For that we added aarch64 architecture to the list of architectures with multilib support.Unfortunately, to compile a compiler with MultiLib support, one would need to use another existing on the system compiler with MultiLib. CurrentlySince out gcc was build without such support, it doesn't come with the required libraries. We have two options here. Wither use Fedora gcc, or see if we can use APM drop gcc. First, we are trying tried to use Fedora gcc as that MultiLib compiler. Unfortunately, compilation, building gcc using that Fedora compiler crashes with a message "C compiler cannot create executables". This problem is believed to occur if there are missing or corrupted libgcc, gcc-c++ and/or libstdc++ packages on the system. reinstalling Reinstalling those packages on LEAP system didn't help.We tried to use APM drop gcc, but it would crash pretty quickly as well, with the message "error: gmp.h header not found". Unfortunately, reinstalling gmp and gmp-devel packages did not solve this problem.
Next steps:
We are installing Fedora 22 21 on one of the builders to have a clean install with Fedora gcc. Then we will try to build our MultiLib capable gcc on that system. When succeeded, we will install our gcc on a LEAP builder, change the spec file for gcc to point towards that MultiLib capable gcc, and produce the final version of our gcc.
Testing ILP32: