Uploaded image for project: 'Funtoo Linux'
  1. Funtoo Linux
  2. FL-507

gcc links to wrong libmpc, breaks metro on libmpc updates

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Normal Normal
    • None
    • None
    • None

      Currently metro is limited for a special case when seed stage1 require rebuilding gcc after runtime libraries update.
      Actual results, happens with stage2 build:

       * Package:    sys-libs/zlib-1.2.7
       * Repository: gentoo
       * USE:        abi_x86_64 amd64 bootstrap elibc_glibc kernel_linux multilib userland_GNU
       * FEATURES:   preserve-libs
      >>> Unpacking source...
      >>> Unpacking zlib-1.2.7.tar.gz to /var/tmp/portage/sys-libs/zlib-1.2.7/work
      >>> Source unpacked in /var/tmp/portage/sys-libs/zlib-1.2.7/work
      >>> Compiling source in /var/tmp/portage/sys-libs/zlib-1.2.7/work/zlib-1.2.7 ...
      ./configure --shared --prefix=/usr --libdir=/usr/lib64 --uname=linux
      Using x86_64-pc-linux-gnu-ar
      Using x86_64-pc-linux-gnu-ranlib
      Using x86_64-pc-linux-gnu-nm
      Checking for x86_64-pc-linux-gnu-gcc...
      Checking for shared library support...
      No shared library support; try without defining CC and CFLAGS
      Building static library libz.a version 1.2.7 with cc.
      Checking for off64_t... No.
      Checking for fseeko... No.
      Checking for strerror... No.
      Checking for unistd.h... No.
      Checking for stdarg.h... No.
      Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf().
      Checking for snprintf() in stdio.h... No.
        WARNING: snprintf() not found, falling back to sprintf(). zlib
        can build but will be open to possible buffer-overflow security
        vulnerabilities.
      Checking for return value of sprintf()... No.
        WARNING: apparently sprintf() does not return a value. zlib
        can build but will be open to possible string-format security
        vulnerabilities.
      Looking for a four-byte integer type... Not found.
      make -j12 
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void -I. -c -o example.o test/example.c
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o adler32.o adler32.c
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o crc32.o crc32.c
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o deflate.o deflate.c
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o infback.o infback.c
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o inffast.o inffast.c
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o inflate.o inflate.c
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o inftrees.o inftrees.c
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o trees.o trees.c
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o zutil.o zutil.c
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o compress.o compress.c
      cc -march=core2 -O2 -pipe -DNO_FSEEKO -DNO_STRERROR -DNO_snprintf -DHAS_sprintf_void   -c -o uncompr.o uncompr.c
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
      make: *** [adler32.o] Error 1
      make: *** Waiting for unfinished jobs....
      make: *** [crc32.o] Error 1
      make: *** [example.o] Error 1
      make: *** [deflate.o] Error 1
      make: *** [infback.o] Error 1
      make: *** [inflate.o] Error 1
      make: *** [inffast.o] Error 1
      make: *** [trees.o] Error 1
      make: *** [inftrees.o] Error 1
      make: *** [zutil.o] Error 1
      make: *** [compress.o] Error 1
      make: *** [uncompr.o] Error 1
      emake failed
       * ERROR: sys-libs/zlib-1.2.7 failed (compile phase):
       *   (no error message)
       * 
       * Call stack:
       *     ebuild.sh, line  93:  Called src_compile
       *   environment, line 1473:  Called die
       * The specific snippet of code:
       *               emake || die
       * 
       * If you need support, post the output of `emerge --info '=sys-libs/zlib-1.2.7'`,
       * the complete build log and the output of `emerge -pqv '=sys-libs/zlib-1.2.7'`.
       * The complete build log is located at '/var/tmp/portage/sys-libs/zlib-1.2.7/temp/build.log'.
       * The ebuild environment file is located at '/var/tmp/portage/sys-libs/zlib-1.2.7/temp/environment'.
       * Working directory: '/var/tmp/portage/sys-libs/zlib-1.2.7/work/zlib-1.2.7'
       * S: '/var/tmp/portage/sys-libs/zlib-1.2.7/work/zlib-1.2.7'
      

      zmedico comments:
      the stage1 -> stage2 thing is actually a gcc build system flaw, because it links against libmpc from the wrong $ROOT. you want the stage1 gcc to link against the stage1 libmpc, but instead it links
      against libmpc from the seed stage. In catalyst there is update_seed code in stage1-chroot.sh that checks for update.
      Solution is to implement this in metro or update gcc very early in stage2.spec.

        1. build.log
          835 kB
        2. build.log
          835 kB
        3. build.log
          5 kB
        4. environment
          40 kB

            drobbins drobbins
            oleg oleg
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: