set -vx srpm glibc # setup glibc # This path MUST be relative, not absolute GV=$(cd $SRC; echo glibc-2*) GLIBCARGS="--prefix=/usr --with-headers=$ROOTFS/usr/include --enable-kernel=2.6.32 --enable-bind-now --build $BUILD --host $TARGET --disable-profile --cache-file=config.cache --without-cvs --with-elf --without-gd --disable-sanity-checks --with-tls --with-__thread --enable-obsolete-rpc " mcd $BUILDDIR/glibc-stage1 # prefill glibc cache echo libc_cv_forced_unwind=yes > config.cache echo libc_cv_c_cleanup=yes >> config.cache #echo libc_cv_ctors_header=yes >> config.cache echo ac_cv_header_cpuid_h=yes >> config.cache echo libc_cv_gcc_builtin_expect=yes >> config.cache $SRC/$GV/configure $GLIBCARGS notparallel make DESTDIR=$ROOTFS $J ARCH=${KARCH} BUILD_CC=gcc cross-compiling=yes install-headers touch $ROOTFS/usr/include/gnu/stubs.h touch $ROOTFS/usr/include/bits/stdio_lim.h ( cd $ROOTFS/usr/include/bits sed '/ifndef.*NO_LONG_DOUBLE/,/#endif/d' < mathdef.h > mathdef.h.new mv mathdef.h.new mathdef.h ) # We also build just enough files to link libgcc.so. The fake # libc.so will never actually get used, but simplifies the boostrap. make $J ARCH=${KARCH} BUILD_CC=gcc cross-compiling=yes csu/subdir_lib mkdirp $ROOTFS/usr/lib${SUFFIX} for file in `cd csu; echo crt*.o`; do echo "" | $TARGET-as -o $ROOTFS/usr/lib${SUFFIX}/$file done $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null\ -o $ROOTFS/usr/lib${SUFFIX}/libc.so # 32-bit multilib libgcc needs stub 32-bit libraries if [ ! "$TARGET32" = "" ]; then old_CC=$CC old_CXX=$CC export CC="$TARGET-gcc -m32" export CXX="$TARGET-g++ -m32" # setup 32-bit glibc headers GLIBCARGS="--prefix=/usr --with-headers=$ROOTFS/usr/include --enable-kernel=2.6.32 --enable-bind-now --build $BUILD --host $TARGET32 --disable-profile --cache-file=config.cache --without-cvs --with-elf --without-gd --disable-sanity-checks --with-tls --with-__thread --enable-obsolete-rpc " mcd $BUILDDIR/glibc32-stage1 # prefill glibc cache echo libc_cv_forced_unwind=yes > config.cache echo libc_cv_c_cleanup=yes >> config.cache #echo libc_cv_ctors_header=yes >> config.cache echo ac_cv_header_cpuid_h=yes >> config.cache echo libc_cv_gcc_builtin_expect=yes >> config.cache $SRC/$GV/configure $GLIBCARGS notparallel make DESTDIR=$ROOTFS $J ARCH=${KARCH} BUILD_CC=gcc cross-compiling=yes install-headers touch $ROOTFS/usr/include/gnu/stubs.h touch $ROOTFS/usr/include/bits/stdio_lim.h ( cd $ROOTFS/usr/include/bits sed '/ifndef.*NO_LONG_DOUBLE/,/#endif/d' < mathdef.h > mathdef.h.new mv mathdef.h.new mathdef.h ) # We also build just enough files to link libgcc.so. The fake # libc.so will never actually get used, but simplifies the boostrap. make $J ARCH=${KARCH} BUILD_CC=gcc cross-compiling=yes csu/subdir_lib mkdirp $ROOTFS/usr/lib for file in `cd csu; echo crt*.o`; do echo "" | $TARGET-as --32 -o $ROOTFS/usr/lib/$file done $CC -m32 -nostdlib -nostartfiles -shared -x c /dev/null\ -o $ROOTFS/usr/lib/libc.so CC=$old_CC CXX=$old_CXX export $CC export $CXX fi