From 5ad3ff26bdffb6bfbaeaab4674765ec3fffbb1b3 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Thu, 8 Jul 2004 13:01:16 +0000 Subject: [PATCH] Clifford Wolf: Support for building cross binutils and cross linux headers (obsolates package/base/binutils-cross) [2004070713302219796] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@3543 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- package/base/binutils/binutils.conf | 16 ++++++ package/base/linux/linux.conf | 78 ++++++++++++++++++----------- 2 files changed, 66 insertions(+), 28 deletions(-) diff --git a/package/base/binutils/binutils.conf b/package/base/binutils/binutils.conf index 2a760f31c..ad3aa7ffb 100644 --- a/package/base/binutils/binutils.conf +++ b/package/base/binutils/binutils.conf @@ -20,6 +20,22 @@ # # --- ROCK-COPYRIGHT-NOTE-END --- +pkg_binutils_cross="" + +case "$xpkg" in + $pkg-cross-*) + pkg_binutils_cross="${xpkg#**-cross-}" + var_append confopt " " "--target=$pkg_binutils_cross-unknown-linux-gnu" + echo_status "Preparing to build a cross-binutils package for $pkg_binutils_cross." + ;; + $pkg) + ;; + *) + echo_error "Not supported $pkg package name: $xpkg" + exit 1 + ;; +esac + binutils_stage0() { bindir="$root/$prefix/crosscc"; mkdir -p $root/$prefix/crosscc eval ./configure --program-prefix=${arch_target}- $confopt diff --git a/package/base/linux/linux.conf b/package/base/linux/linux.conf index d390a631b..f6b1c5fb4 100644 --- a/package/base/linux/linux.conf +++ b/package/base/linux/linux.conf @@ -30,11 +30,11 @@ esac echo_status "Preparing to build a linux kernel $pkg_linux_mode package." -case "$xpkg-" in - -cross-) +case "$xpkg" in + *-cross-*) + pkg_linux_cross="${xpkg#**-cross-}" if [ $pkg_linux_mode = header ]; then - echo_status "Preparing to build a linux kernel cross-headers package." - . $base/package/base/gcc3-cross/cross.conf + echo_status "Preparing to build a linux kernel $pkg_linux_cross cross-headers package." else echo_error "Building linux kernel cross packages isn't supported yet." exit 1 @@ -49,13 +49,28 @@ treever=${treever/-*/} [ "$vanilla_ver" ] || vanilla_ver="$ver" srctar="linux-${vanilla_ver}.tar.bz2" -lx_cpu=`echo "$arch_machine" | sed -e s/x86$/i386/ \ - -e s/i.86/i386/ -e s/powerpc/ppc/ -e s/hppa/parisc/` lx_extraversion="" lx_kernelrelease="" -[ $arch = sparc -a "$ROCKCFG_SPARC_64BIT_KERNEL" = 1 ] && \ - lx_cpu=sparc64 +if [ -z "$pkg_linux_cross" ] +then + lx_cpu=$( echo "$arch_machine" | \ + sed -e s/x86$/i386/ -e s/powerpc/ppc/ \ + -e s/hppa/parisc/ -e s/i.86/i386/ \ + -e s/sun4u/sparc64/ -e s/arm.*/arm/ \ + -e s/sa110/arm/ -e s/s390x/s390/ \ + -e s/parisc64/parisc/ ) + + [ $arch = sparc -a "$ROCKCFG_SPARC_64BIT_KERNEL" = 1 ] && \ + lx_cpu=sparc64 +else + lx_cpu=$( echo "$pkg_linux_cross" | \ + sed -e s/x86$/i386/ -e s/powerpc/ppc/ \ + -e s/hppa/parisc/ -e s/i.86/i386/ \ + -e s/sun4u/sparc64/ -e s/arm.*/arm/ \ + -e s/sa110/arm/ -e s/s390x/s390/ \ + -e s/parisc64/parisc/ ) +fi MAKE="$MAKE ARCH=$lx_cpu CROSS_COMPILE=$archprefix KCC=$KCC" @@ -315,28 +330,35 @@ main_lx_header() { # patch and configure lx_config + if [ -z "$pkg_linux_cross" ]; then + incdir="$root/$prefix/include/" + else + incdir="$root/$prefix/$pkg_linux_cross-unknown-linux-gnu/include" + fi + # install the header files - and do some post-processing for sparc - rm -rf $root/$prefix/include/{asm,asm-generic,linux,asm-sparc,asm-sparc64} - mkdir -p $root/$prefix/include - if [ $arch != sparc ] ; then - mkdir -p $root/$prefix/include/asm - cp -rv include/asm/* $root/$prefix/include/asm/ - cp -rv include/{asm-generic,linux} $root/$prefix/include/ + rm -rf $incdir/{asm,asm-generic,linux,asm-sparc,asm-sparc64} + mkdir -p $incdir + if [ "$lx_cpu" != sparc -a "$lx_cpu" != sparc64 ] + then + mkdir -p $incdir/asm + cp -rv include/asm/* $incdir/asm/ + cp -rv include/{asm-generic,linux} $incdir/ else - # we can only generate this files when we have a cross compiler - # which is stage 1 and above ... - if [ $stagelevel -gt 0 -a $treever != 26 ] ; then - # build two generated headers first ... - make ARCH=sparc CROSS_COMPILE=$archprefix KCC=$KCC \ - arch/sparc/kernel/Makefile check_asm - [ $lx_cpu = sparc64 ] && \ - make ARCH=sparc64 CROSS_COMPILE=$archprefix KCC=$KCC \ - arch/sparc64/kernel/Makefile check_asm - fi - - cp -rv include/{asm-{sparc{,64},generic},linux} $root/$prefix/include/ - cp -v $confdir/generate-asm . ; chmod +x ./generate-asm - ./generate-asm $root/$prefix/include + # we can only generate this files when we have a cross compiler + # which is stage 1 and above ... + if [ $stagelevel -gt 0 -a $treever != 26 ] ; then + # build two generated headers first ... + make ARCH=sparc CROSS_COMPILE=$archprefix KCC=$KCC \ + arch/sparc/kernel/Makefile check_asm + [ $lx_cpu = sparc64 ] && \ + make ARCH=sparc64 CROSS_COMPILE=$archprefix KCC=$KCC \ + arch/sparc64/kernel/Makefile check_asm + fi + + cp -rv include/{asm-{sparc{,64},generic},linux} $incdir/ + cp -v $confdir/generate-asm . ; chmod +x ./generate-asm + ./generate-asm $incdir fi }