This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Crosstool-4.3 patch to build gcc-4.3.2 glibc-2.7 for arm iwmmxt eabi


Hi All

This patch for crosstool-4.3 can build gcc-4.3.2 and glibc-2.7
for arm iwmmxt eabi.

you must apply Khem Raj's patch first to use this one.

the previous patch can be found at
http://sources.redhat.com/ml/crossgcc/2006-12/msg00076.html

Tested on centos 5.0

Regards.
diff -uNr crosstool-0.43-orig/arm-iwmmxt-eabi.dat crosstool-0.43/arm-iwmmxt-eabi.dat
--- crosstool-0.43-orig/arm-iwmmxt-eabi.dat	1970-01-01 08:00:00.000000000 +0800
+++ crosstool-0.43/arm-iwmmxt-eabi.dat	2008-11-20 14:27:29.000000000 +0800
@@ -0,0 +1,9 @@
+TARBALLS_DIR=/shvol/media/toolchains
+KERNELCONFIG=`pwd`/arm.config
+TARGET=arm-iwmmxt-linux-gnueabi
+TARGET_CFLAGS="-O "
+GCC_LANGUAGE="c,c++"
+GCC_EXTRA_CONFIG='--with-cpu=iwmmxt --with-float=soft --enable-cxx-flags=-msoft-float'
+GLIBC_EXTRA_CONFIG="--enable-kernel=2.6.14 --with-tls --with-__thread"
+GLIBC_EXTRA_CC_ARGS="-finline-limit=10000 -mabi=aapcs-linux"
+
diff -uNr crosstool-0.43-orig/crosstool.sh crosstool-0.43/crosstool.sh
--- crosstool-0.43-orig/crosstool.sh	2008-11-20 09:27:46.000000000 +0800
+++ crosstool-0.43/crosstool.sh	2008-11-20 09:31:25.000000000 +0800
@@ -410,8 +410,9 @@
 mkdir -p build-gcc-core-static; cd build-gcc-core-static
 
 echo Copy headers to install area of bootstrap gcc, so it can build libgcc2
-mkdir -p $CORE_PREFIX/$TARGET/include
-cp -r $HEADERDIR/* $CORE_PREFIX/$TARGET/include
+#mkdir -p $CORE_PREFIX/$TARGET/include
+#cp -a $HEADERDIR/* $CORE_PREFIX/$TARGET/include
+ln -sf $HEADERDIR $CORE_PREFIX/$TARGET/include
 
 # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
 # Use funky prefix so it doesn't contaminate real prefix, in case GCC_DIR != GCC_CORE_DIR
@@ -424,7 +425,7 @@
         ${GCC_EXTRA_CONFIG} \
         ${GCC_SYSROOT_ARG_CORE} \
         --disable-nls \
-        --enable-threads=no \
+        --enable-threads=posix \
         --enable-symvers=gnu \
         --enable-__cxa_atexit \
         --enable-languages=c \
@@ -550,6 +551,8 @@
 
     cd ..
 fi
+
+
 if test '!' -z ${GLIBC_ADDON_LINUXTHREADS}; then
 #---------------------------------------------------------
 echo "Build gcc-core w/o shared libgcc (just enough to build glibc starfiles)"
@@ -626,7 +629,7 @@
             --enable-kernel=${GLIBC_MIN_KERNEL} \
             --without-cvs --disable-profile --disable-debug --without-gd \
             $SHARED_MODE \
-            --enable-add-ons${GLIBC_ADDON_OPTIONS} --with-headers=$HEADERDIR \
+            --enable-add-ons${GLIBC_ADDON_OPTIONS} \
             --cache-file=config.cache
     fi
 
@@ -681,23 +684,31 @@
 	make -C libiberty libiberty.a
 	make configure-gcc
 	make configure-libcpp
+	make configure-libdecnumber
 	make all-libcpp
+	make all-libdecnumber
     else
 	make configure-gcc
 	make configure-libcpp
 	make configure-build-libiberty
+	make configure-libdecnumber
 	make all-libcpp
 	make all-build-libiberty
+	make all-libdecnumber
     fi
-    make -C gcc libgcc.mk
+    make -C gcc libgcc.mvars
 
-    if test '!' -f gcc/libgcc.mk-ORIG ; then cp -p gcc/libgcc.mk gcc/libgcc.mk-ORIG; fi
-    sed 's@-lc@@g' < gcc/libgcc.mk-ORIG > gcc/libgcc.mk
+    if test '!' -f gcc/libgcc.mvars-ORIG ; then cp -p gcc/libgcc.mvars gcc/libgcc.mvars-ORIG; fi
+    sed 's/-lc//g' < gcc/libgcc.mvars-ORIG > gcc/libgcc.mvars
 
     test "$CANADIAN_BUILD" = "" || make $PARALLELMFLAGS all-build-libiberty || true
     make $PARALLELMFLAGS all-gcc 
     make install-gcc
 
+#cxzhao=>make libgcc, glibc need it
+    make all-target-libgcc
+    make install-target-libgcc
+
     cd ..
 
     test -x ${PREFIX}/bin/${TARGET}-gcc || abort Build failed during gcc-core 
@@ -749,7 +760,7 @@
         --enable-kernel=${GLIBC_MIN_KERNEL} \
         --without-cvs --disable-profile --disable-debug --without-gd \
         $SHARED_MODE \
-        --enable-add-ons${GLIBC_ADDON_OPTIONS} --with-headers=$HEADERDIR \
+        --enable-add-ons${GLIBC_ADDON_OPTIONS} \
         --cache-file=config.cache
 fi
 
@@ -857,6 +868,18 @@
     ;;
 esac
 
+#cxzhao=>install gcc first
+
+make all-gcc
+make install-gcc
+
+# cxzhao=>FIXME: libtool link libstdc++ when linking libstdc++
+make configure-target-libstdc++-v3
+cp ${TARGET}/libstdc++-v3/libtool ${TARGET}/libstdc++-v3/libtool-orig
+sed -i "s/-lstdc++//g" ${TARGET}/libstdc++-v3/libtool
+make all-target-libstdc++-v3
+cp -f ${TARGET}/libstdc++-v3/libtool-orig ${TARGET}/libstdc++-v3/libtool
+
 make $PARALLELMFLAGS all 
 make install 
 
diff -uNr crosstool-0.43-orig/gcc-4.3.2-glibc-2.7.dat crosstool-0.43/gcc-4.3.2-glibc-2.7.dat
--- crosstool-0.43-orig/gcc-4.3.2-glibc-2.7.dat	1970-01-01 08:00:00.000000000 +0800
+++ crosstool-0.43/gcc-4.3.2-glibc-2.7.dat	2008-11-20 10:38:14.000000000 +0800
@@ -0,0 +1,8 @@
+BINUTILS_DIR=binutils-2.19.50.0.1
+GCC_DIR=gcc-4.3.2
+GLIBC_DIR=glibc-2.7
+LINUX_DIR=linux-2.6.21
+GLIBCPORTS_FILENAME=glibc-ports-2.7
+GLIBC_ADDON_OPTIONS="=ports,nptl"
+GLIBC_ADDON_NPTL=1
+GLIBCLIBIDN_FILENAME=glibc-libidn-2.7
\ No newline at end of file
diff -uNr crosstool-0.43-orig/getandpatch.sh crosstool-0.43/getandpatch.sh
--- crosstool-0.43-orig/getandpatch.sh	2008-11-20 09:27:46.000000000 +0800
+++ crosstool-0.43/getandpatch.sh	2008-11-20 10:12:18.000000000 +0800
@@ -32,9 +32,6 @@
   test -z "${GLIBC_DIR}"        && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory"
   test -z "${LINUX_SANITIZED_HEADER_DIR}" && echo "Not downloading linux-libc-headers. Set LINUX_SANITIZED_HEADER_DIR to do so"
   test -z "${LINUX_DIR}"        && echo "Not downloading kernel sources. Set LINUX_DIR if you want to do so"
-  # And one is derived if not set explicitly.
-  test -z "${GLIBCTHREADS_FILENAME}" &&
-  GLIBCTHREADS_FILENAME=`echo $GLIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'`
 fi
 
 test -z "${TARBALLS_DIR}"     && abort "Please set TARBALLS_DIR to the directory to download tarballs to."
@@ -161,9 +158,11 @@
 
     if [ -n "`echo $ARCHIVE_NAME | grep glibc-ports-`" ]; then
        mv glibc-ports-2* ports
+	cd ports
     fi
     if [ -n "`echo $ARCHIVE_NAME | grep glibc-libidn-`" ]; then
        mv glibc-libidn-2* libidn
+	cd libidn
     fi
   
     # Apply any patches for this component
diff -uNr crosstool-0.43-orig/patches/gcc-4.3.2/gcc-4.3.2-Makefile.in.patch crosstool-0.43/patches/gcc-4.3.2/gcc-4.3.2-Makefile.in.patch
--- crosstool-0.43-orig/patches/gcc-4.3.2/gcc-4.3.2-Makefile.in.patch	1970-01-01 08:00:00.000000000 +0800
+++ crosstool-0.43/patches/gcc-4.3.2/gcc-4.3.2-Makefile.in.patch	2008-11-18 13:16:20.000000000 +0800
@@ -0,0 +1,10 @@
+--- gcc-4.3.2/Makefile.in	2008-08-16 15:28:01.000000000 +0800
++++ /src/toolchains/toolchain/build/arm-iwmmxt-linux-gnueabi/gcc-4.3.2-glibc-2.7/gcc-4.3.2/Makefile.in	2008-11-18 13:13:47.000000000 +0800
+@@ -620,7 +620,6 @@
+ # The BUILD_* variables are a special case, which are used for the gcc
+ # cross-building scheme.
+ EXTRA_GCC_FLAGS = \
+-	"GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
+ 	"`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
+ 	"`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
+ 	"`echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
--
For unsubscribe information see http://sourceware.org/lists.html#faq

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]