[PATCH] crosstool-0.42+NPTL-khem vs nyet-ppc860
Nye Liu
nyet@mrv.com
Tue Aug 22 02:08:00 GMT 2006
as khem pointed out, fno-unit-at-a-time is more properly solved by fixing
glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile
as follows:
--- glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile.org 2006-08-21 19:03:01.000000000 -0700
+++ glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile 2006-08-21 19:03:19.000000000 -0700
@@ -21,7 +21,7 @@
ifneq ($(elf),no)
# The initfini generation code doesn't work in the presence of -fPIC, so
# we use -fpic instead which is much better.
-CFLAGS-initfini.s = -g0 -fpic -O1
+CFLAGS-initfini.s = -g0 -fpic -O1 $(fno-unit-at-a-time)
# There is no benefit to using sdata for these objects, and the user
# of the library should be able to control what goes into sdata.
On Fri, Aug 18, 2006 at 05:42:25PM -0700, Nye Liu wrote:
> Enclosed is a diff vs khem's patch (http://sourceware.org/ml/crossgcc/2006-03/msg00090.html)
>
> On Fri, Aug 18, 2006 at 05:25:58PM -0700, Nye Liu wrote:
> > I have successfully compiled a toolchain and libraries for ppc860 using
> > nptl, gcc-4.1.0, and glibc-2.3.6
> >
> > the problem below was solved by adding
> > GLIBC_EXTRA_CC_ARGS="-fno-unit-at-a-time"
> > to my powerpc-860.dat
> >
> > im using a combination of khem's patch
> > http://sourceware.org/ml/crossgcc/2006-03/msg00090.html
> >
> > plus a bit of steve's patch
> > http://sourceware.org/ml/crossgcc/2006-06/msg00096.html
> >
> > also, i had to use
> > GCC_EXTRA_CONFIG="--disable-multilib"
> > to get rid of the GCC_NO_EXECUTABLES problem.
> >
> > im still sort of confused how GLIBC_EXTRA_CONFIG can co-exist in both
> > gcc*.dat and the architecture .dats... do they get merged somewhere that
> > i dont see?
> >
> > patch forthcoming once i clean it up some, there are a few more
> > important changes
> >
> --
> Nye Liu
> nliu@mrv.com
> (818) 772-6235x248
> (818) 772-0576 fax
>
> "Who would be stupid enough to quote a fictitious character?"
> -- Don Quixote
>
> Index: crosstool.sh
> ===================================================================
> --- crosstool.sh (.../vendor/crosstool/0.42-khem-nptl) (revision 5825)
> +++ crosstool.sh (.../trunk/tools/crosstool) (revision 5825)
> @@ -556,9 +556,11 @@
>
> echo "libc_cv_forced_unwind=yes" > config.cache
> echo "libc_cv_c_cleanup=yes" >> config.cache
> - # this here is moot, currently you cannot build nptl for sparc64
> case ${TARGET} in
> + # this here is moot, currently you cannot build nptl for sparc64
> sparc64* ) echo "libc_cv_sparc64_tls=yes" >> config.cache ;;
> + # remove inline asm powerpc memset, which is broken for 860
> + powerpc-860* ) rm -f ${GLIBC_DIR}/sysdeps/powerpc/powerpc32/memset.S ;;
> esac
>
> if test '!' -f Makefile; then
> @@ -650,7 +652,7 @@
> make -C gcc libgcc.mk
>
> 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
> + sed 's@ -lc @ @g' < gcc/libgcc.mk-ORIG > gcc/libgcc.mk
>
> test "$CANADIAN_BUILD" = "" || make $PARALLELMFLAGS all-build-libiberty || true
> make $PARALLELMFLAGS all-gcc
> @@ -674,9 +676,11 @@
> # Following configure tests fail while cross-compiling
> echo "libc_cv_forced_unwind=yes" > config.cache
> echo "libc_cv_c_cleanup=yes" >> config.cache
> - # The following is moot, currently you cannot build nptl for sparc64
> case ${TARGET} in
> + # The following is moot, currently you cannot build nptl for sparc64
> sparc64* ) echo "libc_cv_sparc64_tls=yes" >> config.cache ;;
> + # remove inline asm powerpc memset, which is broken for 860
> + powerpc-860* ) rm -f ${GLIBC_DIR}/sysdeps/powerpc/powerpc32/memset.S ;;
> esac
> fi # GLIBC_ADDON_NPTL
>
> @@ -695,10 +699,11 @@
> ${GLIBC_DIR}/configure --prefix=/usr \
> --build=$BUILD --host=$TARGET \
> ${GLIBC_EXTRA_CONFIG} ${DEFAULT_GLIBC_EXTRA_CONFIG} \
> + --enable-kernel=${GLIBC_MIN_KERNEL} \
> --without-cvs --disable-profile --disable-debug --without-gd \
> $SHARED_MODE \
> --enable-add-ons${GLIBC_ADDON_OPTIONS} --with-headers=$HEADERDIR \
> - --cache-file=config.cache
> + --cache-file=config.cache
> fi
>
> if grep -l '^install-lib-all:' ${GLIBC_DIR}/Makerules > /dev/null; then
> @@ -862,3 +867,4 @@
> #---------------------------------------------------------
> echo Cross-toolchain build complete. Result in ${PREFIX}.
> exit 0
> +
> Index: getandpatch.sh
> ===================================================================
> --- getandpatch.sh (.../vendor/crosstool/0.42-khem-nptl) (revision 5825)
> +++ getandpatch.sh (.../trunk/tools/crosstool) (revision 5825)
> @@ -33,8 +33,9 @@
> 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.
> -if test '!' -z "${GLIBC_ADDON_LINUXTHREADS}"; then
> + if test '!' -z "${GLIBC_ADDON_LINUXTHREADS}"; then
> GLIBCTHREADS_FILENAME=`echo $GLIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'`
> + fi
> fi
>
> test -z "${TARBALLS_DIR}" && abort "Please set TARBALLS_DIR to the directory to download tarballs to."
> Index: powerpc-860.dat
> ===================================================================
> --- powerpc-860.dat (.../vendor/crosstool/0.42-khem-nptl) (revision 5825)
> +++ powerpc-860.dat (.../trunk/tools/crosstool) (revision 5825)
> @@ -1,4 +1,5 @@
> TARGET=powerpc-860-linux-gnu
> TARGET_CFLAGS="-O"
> -GCC_EXTRA_CONFIG="--with-cpu=860 --enable-cxx-flags=-mcpu=860"
> +GCC_EXTRA_CONFIG="--with-cpu=860 --enable-cxx-flags=-mcpu=860 --disable-multilib"
> +GLIBC_EXTRA_CC_ARGS="-fno-unit-at-a-time"
> GLIBC_EXTRA_CONFIG="--without-fp"
--
Nye Liu
nliu@mrv.com
(818) 772-6235x248
(818) 772-0576 fax
"Who would be stupid enough to quote a fictitious character?"
-- Don Quixote
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list