several changes to toolchain packages
[hdw-linux/hdw-linux.git] / packages / toolchain / binutils / binutils
index 82ea44d..94381d2 100644 (file)
@@ -2,46 +2,54 @@
 #
 # author: hackbard@hackdaworld.dyndns.org
 #
-# [V] 2.15.91.0.1
+# [V] 2.17
 # [S] 0-1 0-4 0-5
-# [D] binutils-2.15.91.0.1.tar.bz2 http://ftp.kernel.org/pub/linux/devel/binutils/
+# [D] binutils-2.17.tar.bz2 http://ftp.gnu.org/gnu/binutils/
 
 if [ "$priority" = "1" ] ; then
        confopt="$confopt --disable-nls"
-       # use host system tools
-       hdw_arch_prefix=""
-       . ./scripts/optimization
-       unset CFLAGS
        libpath="$prefix/lib"
+       echo "libpath = $libpath"
 fi
 
 if [ "$priority" = "4" ] ; then
        custmain=1
        custmain()      {
-               # install binutils linking against new libc
-               cd $root/tmp/src.binutils/binutils-build
-               make -C ld install
-               cd -
-               rm -rf $root/tmp/src.binutils
+               # install the ld linking against toolchain libc
+               mv -v $prefix/bin/{ld,ld-old}
+               mv -v $prefix/`gcc -dumpmachine`/bin/{ld,ld-old}
+               mv -v $prefix/bin/{ld-new,ld}
+               ln -sfv $prefix/bin/ld $prefix/`gcc -dumpmachine`/bin/ld
 
                # show new linker to gcc
-               SPECFILE="`gcc --print-file specs`" &&
+               SPECFILE="`gcc -print-libgcc-file-name`"
+               SPECFILE="`dirname $SPECFILE`/specs"
+               gcc -dumpspecs | 
                sed -e "s@/lib/ld.so.1@$prefix/lib/ld.so.1@g" \
-                   -e "s@/lib/ld-linux.so.2@$prefix/lib/ld-linux.so.2@g" \
-                       $SPECFILE > tempspecfile
-               mv tempspecfile $SPECFILE
+                   -e "s@/lib/ld-linux.so.2@$prefix/lib/ld-linux.so.2@g" > \
+                       $SPECFILE
+               echo "debug: (specfile ->$SPECFILE)"
+               cp -v $SPECFILE $hdw_home_dir
+               cat $SPECFILE
+               echo "debug: (gcc -dumpspecs)"
+               gcc -dumpspecs
+
+               INCDIR="`dirname $SPECFILE`/include"
                unset SPECFILE
-               rm -f $prefix/lib/gcc-lib/*/*/include/pthread.h
-               rm -f $prefix/lib/gcc-lib/*/*/include/bits/sigthread.h
+
+               # remove fixed includes from gcc's private include dir
+               find $INCDIR/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \;
+               rm -vf `grep -l "DO NOT EDIT THIS FILE" $INCDIR/*`
+               unset INCDIR
                        }
 fi
 
 if [ "$priority" = "5" ] ; then
-       confopt="$confopt --enable-shared --with-lib-path=$prefix/lib"  
+       confopt="$confopt --disable-nls --with-lib-path=$prefix/lib"    
        if [ "$hdw_crossbuild" = "0" ] ; then
                libpath="/usr/lib:/lib"
        else
-               libpath="$prefix/usr/lib:$prefix/lib"
+               libpath="$root/usr/lib:$root/lib"
        fi
 fi
 
@@ -54,11 +62,9 @@ build_main()    {
                }
 
 post_install()  {
-       # linkers default library path (where our glibc will go)
+       # build ld-new with changed linkers default library search path
+       # (glibc will go there)
        make -C ld clean
        make -C ld LIB_PATH=$libpath
-       # __very__ ___ugly___
-       # store binutils tree to reinstall after glibc build
-       cd $root && mkdir -p tmp
-       rm -rf tmp/src.binutils && mv src.binutils tmp/
+       cp -v ld/ld-new $prefix/bin
                }