On 08/22/2015 11:41 PM, ALZ (phyglos.org) wrote:
On 08/22/2015 09:52 PM, Bruce Dubbs wrote:
Pi LFS wrote:
On 08/22/2015 01:15 AM, xinglp wrote:
The error is "cannot find -lmvec". I tried to use "--disable-mathvec",
but not work.

more log:
========================
then echo 'stubs.h unchanged'; \
else /tools/bin/install -c -m 644 /sources/glibc-build/stubs.h
/usr/include/gnu/stubs-32.h; fi
stubs.h unchanged
rm -f /sources/glibc-build/stubs.h
/sources/glibc-build/elf/sln /sources/glibc-build/elf/symlink.list
rm -f /sources/glibc-build/elf/symlink.list
test ! -x /sources/glibc-build/elf/ldconfig || LC_ALL=C \
    /sources/glibc-build/elf/ldconfig  \
                          /lib /usr/lib
LD_SO=ld-linux.so.2 CC="gcc" /usr/bin/perl
scripts/test-installation.pl /sources/glibc-build/

/tools/lib/gcc/i686-pc-linux-gnu/5.2.0/../../../../i686-pc-linux-gnu/bin/ld:


cannot find -lmvec
collect2: error: ld returned 1 exit status
Execution of gcc failed!
The script has found some problems with your installation!
Please read the FAQ and the README file and check the following:
- Did you change the gcc specs file (necessary after upgrading from
    Linux libc5)?
- Are there any symbolic links of the form libXXX.so to old libraries?
    Links like libm.so -> libm.so.5 (where libm.so.5 is an old library)
are wrong,
    libm.so should point to the newly installed glibc file - and there
should be
    only one such link (check e.g. /lib and /usr/lib)
You should restart this script from your build directory after you've
fixed all problems!
Btw. the script doesn't work if you're installing GNU libc not as your
primary library!
Makefile:108: recipe for target 'install' failed
make[2]: *** [install] Error 1
make[2]: Leaving directory '/sources/glibc-2.22'
Makefile:12: recipe for target 'install' failed
make[1]: *** [install] Error 2
make[1]: Leaving directory '/sources/glibc-build'


Greetings,
I'm the PiLFS guy from http://www.intestinate.com/pilfs
I ran into this issue building glibc 2.22 on ARM.

From what I understand, the mvec code is strictly for x86_64 at this
point,
yet the library name ends up in "glibc-build/soversions.mk" on all
platforms, which is referenced by "scripts/test-installation.pl" to
determine what libraries to test-link to.

Because I didn't have the time to figure out how/where mvec ends up in
soversions.mk, I came up with this small patch:

--- glibc-2.22-orig/scripts/test-installation.pl    2015-08-14
19:06:51.543327102 -0400
+++ glibc-2.22/scripts/test-installation.pl    2015-08-14
19:07:51.623396840 -0400
@@ -111,9 +111,11 @@
      # - libthread_db since it contains unresolved references
      # - it's just a test NSS module
      # - We don't provide the libgcc so we don't test it
+    # - libmvec is not implemented on ARM
      if ($name ne "nss_ldap" && $name ne "db1"
      && !($name =~/^nss1_/) && $name ne "thread_db"
-    && $name ne "nss_test1" && $name ne "libgcc_s") {
+    && $name ne "nss_test1" && $name ne "libgcc_s"
+    && $name ne "mvec") {
        $link_libs .= " -l$name";
        $versions{$name} = $version;
      }

OK, I need to have someone building on a 32-bit system to try adding
this to the beginning of glibc in both Chapter 5 and 6:

case $(uname -m) in
   i?86 ) sed -e 's/libgcc_s"/& \&\& $name ne "mvec"/' \
              -i scripts/test-installation.pl ;;
esac

Please let me know if that works.

   -- Bruce

Hi,

I happen to be there. I had a new clean x86 VM host and launched
toolchain and then LFS build.

Glibc failed with:

/tools/lib/gcc/i686-pc-linux-gnu/5.2.0/../../../../i686-pc-linux-gnu/bin/ld:
cannot find -lmvec

Reverted VM snapshots just after toolchain and applied to my script:

case $(uname -m) in
    i?86 ) sed -e 's/libgcc_s"/& \&\& $name ne "mvec"/' \
               -i scripts/test-installation.pl ;;
esac

Now glibc-2.22 completed without errors and my VM build keeps going on.

Thanks! I had planned to rebuild tomorrow using glibc-2.22 on an old
Thinkpad R51 and that saved my day... it's 4 hours to build the tools
and +4 hours to complete LFS...

ALZ.

PS: Please note this is a quick check and that I only applied the change
in Ch6 but not in tools build at Ch5, that shows no errors as Alex Wan
noticed.



Hi,

This morning I reviewed all the build logs and found some unexpected errors after the successful glibc build (e.g. in e2fsprogs !!).

This was a diff from glibc logs before and after the sed patch:

< /tools/lib/gcc/i686-pc-linux-gnu/5.2.0/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lmvec
< collect2: error: ld returned 1 exit status
< Execution of gcc failed!
< The script has found some problems with your installation!
< Please read the FAQ and the README file and check the following:
< - Did you change the gcc specs file (necessary after upgrading from
<   Linux libc5)?
< - Are there any symbolic links of the form libXXX.so to old libraries?
< Links like libm.so -> libm.so.5 (where libm.so.5 is an old library) are wrong, < libm.so should point to the newly installed glibc file - and there should be
<   only one such link (check e.g. /lib and /usr/lib)
< You should restart this script from your build directory after you've
< fixed all problems!
< Btw. the script doesn't work if you're installing GNU libc not as your
< primary library!
< Makefile:108: recipe for target 'install' failed
---
> Your new glibc installation seems to be ok.

So I've just launched the Ch6 build again, removing any CCFLAGS and even with this sed applied and uname -m = i686, the "lmvec not found" error appears again.

ALZ.






--
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to