Opened 9 years ago
Closed 8 years ago
#1090 closed task (invalid)
Glibc 2.22 Upstream i386 patch
Reported by: | William Harrington | Owned by: | |
---|---|---|---|
Priority: | critical | Milestone: | CLFS Standard 3.1.0 |
Component: | BOOK | Version: | CLFS Standard GIT |
Keywords: | Cc: | berzerkula@…, jonathan@…, chris@…, cross-lfs@… |
Description
Chris has witnessed multiple times with the lmvec issue which was mentioned in the Glibc 2.22 Ticket. I'm putting what was in that ticket in this new ticket as it is a problem which needs to be fixed.
There is Glibc 2.22 now. It includes a new library called "libmvec" but apparently that lib cannot be directly linked to. The test-installation.pl script errors out:
tools/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: cannot find -lmvec
Chris and I have discussed the situation and think it is best to include the patch LFS uses. Do we need this only for final-system or for glibc installed into /tools? Built Glibc with --disable-libmvec, which does prevent the lib from being installed, but test-installation.pl still tries linking to it anyway. A temporary solution would be just to prevent test-installation.pl from trying to link to it:
sed -i 's/libgcc_s"/& \&\& $name ne "mvec"/' scripts/test-installation.pl
Change History (4)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
The actual problem doesn't have anything to do with 32/64 bits, at least not directly. The issue is that the test-installation.pl script tries to compile a test program that links to libmvec, but does so unconditionally, even if the library was not actually built and installed. This issue might appear to be related to 32-bit systems, as libmvec is apparently not installed by default if you're using 32 bits, but the real problem is that libmvec is tested whether or not it's installed, and it causes an error if that library was not installed. Note that you can get the same result on a 64-bit build by adding "--disable-mathvec" to Glibc's configure.
Therefore, the patch simply modifies the test-installation script so that it tests for the existence of libmvec, and only tries linking to it if it exists.
I use 32bit hosts and haven't encountered this issue. Is GLIBC using output from uname? Where is the problem?