Linux From ScratchThis Forum is for the discussion of LFS.
LFS is a project that provides you with the steps necessary to build your own custom Linux system.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
mv -f /sources/glibc-build/shlib.ldsT /sources/glibc-build/shlib.lds
gcc -shared -static-libgcc -Wl,-O1 -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld-linux.so.2 -B/sources/glibc-build/csu/ -Wl,--version-script=/sources/glibc-build/libc.map -Wl,-soname=libc.so.6 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -nostdlib -nostartfiles -e __libc_main -L/sources/glibc-build -L/sources/glibc-build/math -L/sources/glibc-build/elf -L/sources/glibc-build/dlfcn -L/sources/glibc-build/nss -L/sources/glibc-build/nis -L/sources/glibc-build/rt -L/sources/glibc-build/resolv -L/sources/glibc-build/crypt -L/sources/glibc-build/nptl -Wl,-rpath-link=/sources/glibc-build:/sources/glibc-build/math:/sources/glibc-build/elf:/sources/glibc-build/dlfcn:/sources/glibc-build/nss:/sources/glibc-build/nis:/sources/glibc-build/rt:/sources/glibc-build/resolv:/sources/glibc-build/crypt:/sources/glibc-build/nptl -o /sources/glibc-build/libc.so -T /sources/glibc-build/shlib.lds /sources/glibc-build/csu/abi-note.o /sources/glibc-build/elf/soinit.os /sources/glibc-build/libc_pic.os /sources/glibc-build/elf/sofini.os /sources/glibc-build/elf/interp.os /sources/glibc-build/elf/ld.so -lgcc
/sources/glibc-build/libc_pic.os: In function `__libc_fork':
/sources/glibc-2.11.1/posix/../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:79: undefined reference to `__sync_bool_compare_and_swap_4'
/sources/glibc-build/libc_pic.os: In function `__nscd_drop_map_ref':
/sources/glibc-2.11.1/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/sources/glibc-build/libc_pic.os: In function `nscd_getpw_r':
/sources/glibc-2.11.1/nscd/nscd_getpw_r.c:233: undefined reference to `__sync_fetch_and_add_4'
/sources/glibc-build/libc_pic.os: In function `__nscd_drop_map_ref':
/sources/glibc-2.11.1/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/sources/glibc-build/libc_pic.os: In function `nscd_getgr_r':
/sources/glibc-2.11.1/nscd/nscd_getgr_r.c:322: undefined reference to `__sync_fetch_and_add_4'
/sources/glibc-build/libc_pic.os: In function `__nscd_drop_map_ref':
/sources/glibc-2.11.1/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/sources/glibc-build/libc_pic.os:/sources/glibc-2.11.1/nscd/nscd_gethst_r.c:415: more undefined references to `__sync_fetch_and_add_4' follow
/sources/glibc-build/libc_pic.os: In function `__nscd_get_map_ref':
/sources/glibc-2.11.1/nscd/nscd_helper.c:433: undefined reference to `__sync_val_compare_and_swap_4'
/sources/glibc-2.11.1/nscd/nscd_helper.c:433: undefined reference to `__sync_val_compare_and_swap_4'
/sources/glibc-2.11.1/nscd/nscd_helper.c:433: undefined reference to `__sync_val_compare_and_swap_4'
/sources/glibc-2.11.1/nscd/nscd_helper.c:433: undefined reference to `__sync_val_compare_and_swap_4'
/sources/glibc-2.11.1/nscd/nscd_helper.c:433: undefined reference to `__sync_val_compare_and_swap_4'
/sources/glibc-build/libc_pic.os:/sources/glibc-2.11.1/nscd/nscd_helper.c:433: more undefined references to `__sync_val_compare_and_swap_4' follow
/sources/glibc-build/libc_pic.os: In function `*__GI___libc_freeres':
/sources/glibc-2.11.1/malloc/set-freeres.c:39: undefined reference to `__sync_bool_compare_and_swap_4'
collect2: ld returned 1 exit status
make[1]: *** [/sources/glibc-build/libc.so] Error 1
make[1]: Leaving directory `/sources/glibc-2.11.1'
make: *** [all] Error 2
since your sources directory resides in the root '/' directory I assume you are in chapter 6. Please post the commands that you issued in your shell before you got this error.
bash version-check.sh
bash, version 4.0.33(1)-release
/bin/sh -> /bin/bash
Binutils: (GNU Binutils; openSUSE 11.2) 2.19.51.20090527-10.26.4
bison (GNU Bison) 2.3
/usr/bin/yacc -> /usr/bin/yacc
bzip2, Version 1.0.5, 10-Dec-2007.
Coreutils: 7.1
diff (GNU diffutils) 2.8.7-cvs
find (GNU findutils) 4.4.0
GNU Awk 3.1.6
/usr/bin/awk -> /bin/gawk
gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revision 150839]
GNU C Library stable release version 2.10.1 (20090918)
GNU grep 2.5.4
gzip 1.3.12
Linux version 2.6.31.5-0.1-default (geeko@buildhost) (gcc version 4.4.1 [gcc-4_4-branch revision 150839] (SUSE Linux) ) #1 SMP 2009-10-26 15:49:03 +0100
m4 (GNU M4) 1.4.13
GNU Make 3.81
patch 2.5.9-122-gba37782
Perl version='5.10.0';
GNU sed version 4.1.5
tar (GNU tar) 1.21
Texinfo: makeinfo (GNU texinfo) 4.13
Compilation OK
and
gawk --version
GNU Awk 3.1.6
Copyright (C) 1989, 1991-2007 Free Software Foundation
PHP Code:
../glibc-2.11.1/configure --prefix=/tools --host=$LFS_TGT --build=$(../glibc-2.11.1/scripts/config.guess) --disable-profile --enable-add-ons --enable-kernel=2.6.18 --with-headers=/tools/include libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes checking build system type... i686-pc-linux-gnu checking host system type... i686-lfs-linux-gnu checking for i686-lfs-linux-gnu-gcc... no checking for gcc... gcc configure: WARNING: using cross tools not prefixed with host triplet checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for gcc... gcc checking how to run the C preprocessor... gcc -E checking for i686-lfs-linux-gnu-g++... no checking for i686-lfs-linux-gnu-c++... no checking for i686-lfs-linux-gnu-gpp... no checking for i686-lfs-linux-gnu-aCC... no checking for i686-lfs-linux-gnu-CC... no checking for i686-lfs-linux-gnu-cxx... no checking for i686-lfs-linux-gnu-cc++... no checking for i686-lfs-linux-gnu-cl.exe... no checking for i686-lfs-linux-gnu-FCC... no checking for i686-lfs-linux-gnu-KCC... no checking for i686-lfs-linux-gnu-RCC... no checking for i686-lfs-linux-gnu-xlC_r... no checking for i686-lfs-linux-gnu-xlC... no checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes configure: running configure fragment for add-on libidn configure: running configure fragment for add-on nptl checking sysdep dirs... sysdeps/i386/elf nptl/sysdeps/unix/sysv/linux/i386/i686 sysdeps/unix/sysv/linux/i386/i686 nptl/sysdeps/unix/sysv/linux/i386 sysdeps/unix/sysv/linux/i386 nptl/sysdeps/unix/sysv/linux nptl/sysdeps/pthread sysdeps/pthread sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet sysdeps/unix/sysv/i386 nptl/sysdeps/unix/sysv sysdeps/unix/sysv sysdeps/unix/i386 nptl/sysdeps/unix sysdeps/unix sysdeps/posix sysdeps/i386/i686/fpu nptl/sysdeps/i386/i686 sysdeps/i386/i686 sysdeps/i386/i486 nptl/sysdeps/i386/i486 sysdeps/i386/fpu nptl/sysdeps/i386 sysdeps/i386 sysdeps/wordsize-32 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether /usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/as is GNU as... yes checking whether /usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/ld is GNU ld... yes checking for /usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/as... /usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/as checking version of /usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/as... 2.19.51.20090527, ok checking for /usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/ld... /usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/ld checking version of /usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/ld... 2.19.51.20090527, ok checking for pwd... /bin/pwd checking for i686-lfs-linux-gnu-gcc... gcc checking version of gcc... 4.4.1, ok checking for gnumake... no checking for gmake... gmake checking version of gmake... 3.81, ok checking for gnumsgfmt... no checking for gmsgfmt... no checking for msgfmt... msgfmt checking version of msgfmt... 0.17, ok checking for makeinfo... makeinfo checking version of makeinfo... 4.13, ok checking for sed... sed checking version of sed... 4.1.5, ok checking for autoconf... autoconf checking whether autoconf works... yes checking whether ranlib is necessary... no checking LD_LIBRARY_PATH variable... ok checking whether GCC supports -static-libgcc... -static-libgcc checking for bash... /bin/bash checking for gawk... gawk checking for perl... /usr/bin/perl checking for install-info... /usr/bin/install-info checking for bison... /usr/bin/bison checking for signed size_t type... no checking for libc-friendly stddef.h... yes checking whether we need to use -P to assemble .S files... no checking whether .text pseudo-op must be used... yes checking for assembler global-symbol directive... .globl checking for .set assembler directive... yes checking for assembler .type directive prefix... @ checking for assembler gnu_unique_object symbol type... no checking for .symver assembler directive... yes checking for ld --version-script... yes checking for .previous assembler directive... yes checking for .protected and .hidden assembler directive... yes checking whether __attribute__((visibility())) is supported... yes checking for broken __attribute__((visibility()))... no checking for broken __attribute__((alias()))... no checking whether to put _rtld_local into .sdata section... no checking for .preinit_array/.init_array/.fini_array support... yes checking for libunwind-support in compiler... no checking for -z nodelete option... yes checking for -z nodlopen option... yes checking for -z initfirst option... yes checking for -z relro option... yes checking for -Bgroup option... yes checking for libgcc_s suffix... checking for --as-needed option... yes checking whether --noexecstack is desirable for .S files... yes checking for -z combreloc... yes checking for -z execstack... yes checking for -fpie... yes checking for --hash-style option... yes checking for -fno-toplevel-reorder -fno-section-anchors... yes checking for -fstack-protector... yes checking for -fgnu89-inline... yes checking whether cc puts quotes around section names... no checking for assembler .weak directive... yes checking whether CFI directives are supported... yes checking for ld --no-whole-archive... yes checking for gcc -fexceptions... yes checking for __builtin_expect... yes checking for __builtin_memset... yes checking for redirection of built-in functions... yes checking for __thread... yes checking for tls_model attribute... yes checking for libgd... no checking for is_selinux_enabled in -lselinux... yes checking for NSCD Flask permissions in selinux/av_permissions.h... yes checking for audit_log_user_avc_message in -laudit... yes checking for cap_init in -lcap... no checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking size of long double... 12 running configure fragment for sysdeps/i386/elf checking for i386 TLS support... yes running configure fragment for nptl/sysdeps/pthread checking for forced unwind support... (cached) yes checking for C cleanup handling... (cached) yes running configure fragment for sysdeps/pthread running configure fragment for sysdeps/unix/sysv/linux checking for grep that handles long lines and -e... (cached) /bin/grep checking for egrep... (cached) /bin/grep -E checking installed Linux kernel header files... 2.0.10 or later checking for kernel header at least 2.6.18... ok running configure fragment for sysdeps/i386 checking for grep that handles long lines and -e... (cached) /bin/grep checking for egrep... (cached) /bin/grep -E checking for ANSI C header files... (cached) yes checking for sys/types.h... (cached) yes checking for sys/stat.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for memory.h... (cached) yes checking for strings.h... (cached) yes checking for inttypes.h... (cached) yes checking for stdint.h... (cached) yes checking for unistd.h... (cached) yes checking cpuid.h usability... yes checking cpuid.h presence... yes checking for cpuid.h... yes checking if -g produces usable source locations for assembler-with-cpp... yes checking for SSE4 support... yes checking for old glibc 2.0.x headers... no checking whether -fPIC is default... no configure: creating ./config.status config.status: creating config.make config.status: creating Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing default commands
I think this might be your problem. From your configure script:
Code:
checking for i686-lfs-linux-gnu-gcc... no
checking for gcc... gcc
configure: WARNING: using cross tools not prefixed with host triplet
You should have a cross-compiler by the name i686-lfs-linux-gnu-gcc. So something went wrong when you compiled gcc in chapter 5.5.
If possible you should use the LFS liveCD as host to build your LFS. Distributions may come with altered code.
Also verify that you have all headers installed. From the book, section Preface VII:
Quote:
Your host system should have the following software with the minimum versions indicated. This should not be an issue for most modern Linux distributions. Also note that many distributions will place software headers into separate packages, often in the form of “<package-name>-devel” or “<package-name>-dev”. Be sure to install those if your distribution provides them.
I had the same problem building Glibc-2.11.1 in chapter 5.7.
The reason was i misspelled the configparms file name.
So, if you get the same error, maybe the CFLAGS is not set properly...
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.