[Lunar-commits] r22368 - moonbase/trunk/libs/glibc

Auke Kok sofar at lunar-linux.org
Thu Nov 30 20:02:10 CET 2006


Author: sofar
Date: 2006-11-30 20:02:10 +0100 (Thu, 30 Nov 2006)
New Revision: 22368

Added:
   moonbase/trunk/libs/glibc/BUILD.x86_64
Log:
x86-64 build changes to glibc: minimal :)


Added: moonbase/trunk/libs/glibc/BUILD.x86_64
===================================================================
--- moonbase/trunk/libs/glibc/BUILD.x86_64	                        (rev 0)
+++ moonbase/trunk/libs/glibc/BUILD.x86_64	2006-11-30 19:02:10 UTC (rev 22368)
@@ -0,0 +1,156 @@
+(
+
+  if [ -n "$FORCE_THREADS" ]; then
+    if [ "$FORCE_THREADS" != "nptl" -a "$FORCE_THREADS" != "linuxthreads" ]; then
+      message "${PROBLEM_COLOR}Bad thread architecture: \"$FORCE_THREADS\", must be"
+      message "\"nptl\" or \"linuxthreads\"${DEFAULT_COLOR}"
+      exit 1
+    fi
+    if ! query "Force thread type to $FORCE_THREADS ?" n ; then
+      message "${PROBLEM_COLOR}If you don't know what you're doing, then I don't know either!"
+      message "Don't set FORCE_THREADS and try again!${DEFAULT_COLOR}"
+      exit 1
+    else
+      THREADS=$FORCE_THREADS
+    fi
+  else
+    case $(getconf GNU_LIBPTHREAD_VERSION) in
+      NPTL*)
+        THREADS=nptl
+        ;;
+      linux*)
+        THREADS=linuxthreads
+        ;;
+      *)
+    	message "${PROBLEM_COLOR}Cannot detect threading type of your glibc - this is very bad"
+	message "Please fix your glibc library before continuing.${DEFAULT_COLOR}"
+	exit 1
+    esac
+  fi
+
+  case $THREADS in
+    nptl)          OPTS="$OPTS --enable-add-ons=$THREADS --with-__thread --with-tls" ;;
+    linuxthreads)  OPTS="$OPTS --enable-add-ons=$THREADS --without-__thread" ;;
+  esac
+
+  if [ -n "$MAKES" ] && [ "$MAKES" -gt 1 ] ; then
+    sedit "s/# PARALLELMFLAGS = -j 4/PARALLELMFLAGS = -j $MAKES/" Makefile.in
+  fi
+
+  # Don't allow too much damage
+  unset CFLAGS CXXFLAGS CPPFLAGS LD_LIBRARY_PATH
+  export CC=gcc
+
+  # Don't fully strip libc
+  if [[ "$LDFLAGS" == *-s* ]] ; then
+    STRIP=y
+  fi
+  unset LDFLAGS 
+
+  INSTALL_ROOT=$SOURCE_DIRECTORY/glibcroot &&
+  mkdir -p $INSTALL_ROOT &&
+  cd $INSTALL_ROOT
+
+  if module_installed kernel-headers-2.6 ; then
+     OPTS="$OPTS --with-headers=/usr/include"
+  else
+     OPTS="$OPTS --with-headers=/usr/src/linux/include"
+  fi
+
+  ../configure --prefix=/usr                           \
+               --infodir=/usr/share/info               \
+               --mandir=/usr/share/man                 \
+               --with-elf                              \
+               --with-gd=no                            \
+               --without-cvs                           \
+               --enable-shared                         \
+               --host=$BUILD                           \
+               --build=$BUILD                          \
+               $OPTS                                  &&
+  # explicitly exit here since the following code unsets $?
+  make || exit 1
+
+  # Preserve the old glibc temporarily
+  LD=/lib/ld-linux-x86-64.so.2
+  GLIBC=/lib/libc.so.6
+  DL=/lib/libdl.so.2
+  M=/lib/libm.so.6
+  RT=/lib/librt.so.1
+  PTHREAD=/lib/libpthread.so.0
+  NSS=/lib/libnss_files.so.2
+  UTIL=/lib/libutil.so.1
+  NSL=/lib/libnsl.so.1
+  CRYPT=/lib/libcrypt.so.1
+  DL=/lib/libdl.so.2
+
+  cp $LD /lib/ld-lunar.so               &&
+  cp $GLIBC /lib/libc-lunar.so          &&
+  cp $DL /lib/libdl-lunar.so            &&
+  cp $M /lib/libm-lunar.so              &&
+  cp $RT /lib/librt-lunar.so            &&
+  cp $PTHREAD /lib/libpthread-lunar.so  &&
+  cp $NSS /lib/libnss_files-lunar.so    &&
+  cp $UTIL /lib/libutil-lunar.so        &&
+  cp $NSL /lib/libnsl-lunar.so          &&
+  cp $CRYPT /lib/libcrypt-lunar.so      &&
+
+  # Setup links for libraries
+  sln /lib/ld-lunar.so $LD               &&
+  sln /lib/libc-lunar.so $GLIBC          &&
+  sln /lib/libdl-lunar.so $DL            &&
+  sln /lib/libm-lunar.so $M              &&
+  sln /lib/librt-lunar.so $RT            &&
+  sln /lib/libpthread-lunar.so $PTHREAD  &&
+  sln /lib/libnss_files-lunar.so $NSS    &&
+  sln /lib/libutil-lunar.so $UTIL        &&
+  sln /lib/libnsl-lunar.so $NSL          &&
+  sln /lib/libcrypt-lunar.so $CRYPT      &&
+
+  # clean hack to make sure gnu/stubs.h gets refreshed
+  rm -f /usr/include/gnu/stubs.h  &&
+  # This removes the old glibc
+  prepare_install                 &&
+
+  # And now we install the new
+  make install                    &&
+
+  # Now optionally perform debug symbol stripping only
+  if [ "$STRIP" == "y" ] ; then
+    for FN in ld-$VERSION.so \
+        lib{anl,BrokenLocale,c,crypt,dl,m,nsl,util,pthread,resolv}-$VERSION.so \
+	libnss_{compat,files,hesiod,nis,nisplus}-$VERSION.so \
+	lib{memusage,pcprofile,SegFault,thread_db-1.0}.so ; do
+      strip -S /lib/$FN
+    done
+    for FN in "/usr/lib/gconv/*.so" ; do
+      strip -S $FN
+    done
+  fi  &&
+  
+  # Added a symlink for ash and others
+  ln -sf /usr/lib/libbsd-compat.a /usr/lib/libbsd.a  &&
+
+  # Rebuild the ld cache
+  rm -f /etc/ld.so.cache 2>/dev/null  &&
+  ldconfig                            &&
+
+  # Remove the temporary libc
+  rm /lib/{ld,lib{c,dl,m,rt,pthread,nss_files,util,nsl,crypt}}-lunar.so  &&
+
+  # Generate locale info
+  if [ -z "$GLIBC_LOCALES" ]; then
+    make localedata/install-locales || exit 1
+  else
+    devoke_installwatch &&
+    for LOCALE in $GLIBC_LOCALES; do
+      INPUTFILE=$(echo $LOCALE | cut -d/ -f1)
+      CHARMAP=$(echo  $LOCALE | cut -d/ -f2)
+      mkdir -p /usr/lib/locale/$INPUTFILE
+      echo "localedef -i $INPUTFILE -f $CHARMAP $INPUTFILE"
+      localedef -i $INPUTFILE -f $CHARMAP $INPUTFILE
+    done
+    invoke_installwatch &&
+    touch /usr/lib/locale/locale-archive
+  fi
+  
+) > $C_FIFO 2>&1 && ldconfig



More information about the Lunar-commits mailing list