Changes

Jump to: navigation, search

LEAP ILP 32

1,482 bytes added, 18:17, 19 August 2015
no edit summary
Unfortunately, to compile a compiler with MultiLib support, one would need to use another existing on the system compiler with MultiLib. Since 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 tried to use Fedora gcc as that MultiLib compiler. Unfortunately, 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 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.
With the freshly installed Fedora 21, and fully installed gcc package from Fedora repos, we tried to build gcc again. This time it broke while trying to build "libgomp". Checking the build logs showed that the problem is: "/usr/bin/ld: cannot find -lgcc_s". The file "libgcc_s" is present in /usr/lib64/, which is the default. Somehow, the linker still doesn't find it. On the following screenshot, you can see the building error (left), the build log with the exact error (middle), and the corresponding code within the configure file (located at "rpmbuild/BUILD/gcc-4.9.2-20150212/libgomp/").
[[Image:Screenshot-from-2015-08-19-161047.png|thumb|px| ]]
The line that is failing the build is "3691: test $ac_status = 0; }; then :". The ac_status comes from "3688: (eval "$ac_link_default") 2>&5" and "3689: ac_status=$?". As you can see, $ac_link_default is giving 1 instead of 0. It gets its value from "3666: ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`". $ac_link is defined as "3323: ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'". It is believed that the value of $LDFLAGS is the problem. Possibly, it is overwriting the search path for the linker, resulting in the library not being found.
Next steps:
We are installing Fedora 21 on one need to put some echo statements in the mentioned above configure file to see if the guesses were correct. and LDFLAGS was the problem. If it was, we need to create a patch that would change the value of LDFLAGS to what we need, or, possibly, simply create a link in the builders correct place to have a clean install with Fedora gccthe existing file. 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:

Navigation menu