From 07b3473bf186232a7248ad8cee93ddb8c2adb069 Mon Sep 17 00:00:00 2001 From: Stefan Fiedler Date: Fri, 2 Nov 2007 13:24:42 +0000 Subject: [PATCH] Stefan Fiedler: architecture/x86: use more specific -march value for 32bit libraries on 64bit targets, avoiding build errors in glibc architecture/x86/gcc-options: cleanup; remove deprecated optimization options from gcc command line architecture/x86/archtest.sh: add arch_target32 and arch_target64 variables architecture/arm/gcc-options: add -march and -mcpu options to gcc4 command line 64-bit powerpc, mips and sparc: add support for multilib builds by setting arch_target32 powerpc: add some CPUs to optimise for; use 'common' instead of 'generic' as an -mtune argument UNTESTED diff -Ndur architecture/arm/gcc-options architecture/arm/gcc-options [2007100300364617340] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@8753 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- architecture/arm/gcc-options | 5 +++ architecture/mips/archtest.sh | 4 +- architecture/powerpc/archtest.sh | 3 ++ architecture/powerpc/config.in | 23 +++++++++-- architecture/sparc/archtest.sh | 1 + architecture/x86/archtest.sh | 4 ++ architecture/x86/gcc-options | 68 ++++++++++++++++---------------- architecture/x86/parse-config | 2 +- 8 files changed, 70 insertions(+), 40 deletions(-) create mode 100644 architecture/powerpc/archtest.sh diff --git a/architecture/arm/gcc-options b/architecture/arm/gcc-options index 6a72394fe..e1308a2ec 100644 --- a/architecture/arm/gcc-options +++ b/architecture/arm/gcc-options @@ -1,10 +1,15 @@ +#!/bin/bash if [ $ROCKCFG_ARM_OPT != generic ] ; then var_append GCC3_WRAPPER_INSERT " " \ "-mcpu=$ROCKCFG_ARM_OPT" + var_append GCC4_WRAPPER_INSERT " " \ + "-mcpu=$ROCKCFG_ARM_OPT" fi if [ $ROCKCFG_ARM_OPT_ARCH != generic ] ; then var_append GCC3_WRAPPER_INSERT " " \ "-march=$ROCKCFG_ARM_OPT_ARCH" + var_append GCC4_WRAPPER_INSERT " " \ + "-march=$ROCKCFG_ARM_OPT_ARCH" fi diff --git a/architecture/mips/archtest.sh b/architecture/mips/archtest.sh index cfdec8a24..3b894a5d7 100644 --- a/architecture/mips/archtest.sh +++ b/architecture/mips/archtest.sh @@ -14,5 +14,7 @@ case "$ROCKCFG_MIPS_ABI" in arch_target="${arch_machine}${arch_endianess}-unknown-linux-gnu" ;; *64) arch_machine=mips64 - arch_target="${arch_machine}${arch_endianess}-unknown-linux-gnu" ;; + arch_target="${arch_machine}${arch_endianess}-unknown-linux-gnu" + arch_target32="mips${arch_endianess}-unknown-linux-gnu" + ;; esac diff --git a/architecture/powerpc/archtest.sh b/architecture/powerpc/archtest.sh new file mode 100644 index 000000000..4968c5dd6 --- /dev/null +++ b/architecture/powerpc/archtest.sh @@ -0,0 +1,3 @@ +if [ "$ROCKCFG_POWERPC_ISA" = powerpc64 ] ; then + arch_target32=powerpc-unknown-linux-gnu +fi diff --git a/architecture/powerpc/config.in b/architecture/powerpc/config.in index 08067745d..3a27c4747 100644 --- a/architecture/powerpc/config.in +++ b/architecture/powerpc/config.in @@ -29,10 +29,19 @@ choice ROCKCFG_POWERPC_ISA powerpc \ powerpc64 "Utilise the PowerPC64 ISA" choice ROCKCFG_POWERPC_OPT generic \ - generic "No special optimisation" \ + common "No special optimisation" \ + rios "Optimised for rios" \ rios1 "Optimised for rios1" \ rios2 "Optimised for rios2" \ rsc "Optimised for rsc" \ + rsc64 "Optimised for rsc64" \ + 401 "Optimised for 401" \ + 403 "Optimised for 403" \ + 405 "Optimised for 405" \ + 405fp "Optimised for 405fp" \ + 440 "Optimised for 440" \ + 440fp "Optimised for 440fp" \ + 505 "Optimised for 505" \ 601 "Optimised for 601" \ 602 "Optimised for 602" \ 603 "Optimised for 603" \ @@ -44,12 +53,18 @@ choice ROCKCFG_POWERPC_OPT generic \ 750 "Optimised for 750 (G3)" \ 7400 "Optimised for 7400 (G4)" \ 7450 "Optimised for 7450 (G4+)" \ - 403 "Optimised for 403" \ - 505 "Optimised for 505" \ 801 "Optimised for 801" \ 821 "Optimised for 821" \ 823 "Optimised for 823" \ - 860 "Optimised for 860" + 8540 "Optimised for 8540" \ + ec603e "Optimised for ec603e" \ + G3 "Optimised for G3" \ + G4 "Optimised for G4" \ + G5 "Optimised for G5" \ + power3 "Optimised for power3" \ + power4 "Optimised for power4" \ + power5+ "Optimised for power5+" \ + power6 "Optimised for power6" if [ $ROCKCFG_POWERPC_ISA != common ] ; then ROCKCFG_ID="$ROCKCFG_ID-$ROCKCFG_POWERPC_ISA" diff --git a/architecture/sparc/archtest.sh b/architecture/sparc/archtest.sh index ca88c46f3..9532d0733 100644 --- a/architecture/sparc/archtest.sh +++ b/architecture/sparc/archtest.sh @@ -7,6 +7,7 @@ case "$ROCKCFG_SPARC_BITS" in 64) arch_machine=sparc64 arch_target="sparc64-unknown-linux-gnu" + arch_target32="sparc-unknown-linux-gnu" arch_sizeof_char_p=8 ;; esac diff --git a/architecture/x86/archtest.sh b/architecture/x86/archtest.sh index 11e03c415..c1fd56e72 100644 --- a/architecture/x86/archtest.sh +++ b/architecture/x86/archtest.sh @@ -14,7 +14,11 @@ else arch_sizeof_long=8 arch_sizeof_char_p=8 arch_machine="x86_64" + arch_target32="i686-pc-linux-gnu" fi arch_target="${arch_machine}-unknown-linux-gnu" +if [ "$ROCKCFG_X86_BITS" = 64 ] ; then + arch_target64="$arch_target" +fi diff --git a/architecture/x86/gcc-options b/architecture/x86/gcc-options index 447830a38..1f042e8be 100644 --- a/architecture/x86/gcc-options +++ b/architecture/x86/gcc-options @@ -1,62 +1,62 @@ +#!/bin/bash if [ "$ROCKCFG_X86_BITS" = 32 ] then case "$ROCKCFG_X86_OPT" in generic) - var_append GCC4_WRAPPER_INSERT " " "-march=i486" ;; - via-c3) - var_append GCC4_WRAPPER_INSERT " " "-march=k62" ;; - via-c3-improved) - var_append GCC4_WRAPPER_INSERT " " "-march=i686" ;; - via-c3-2) - var_append GCC4_WRAPPER_INSERT " " "-march=pentium-mmx" ;; - k6*) - var_append GCC4_WRAPPER_INSERT " " "-march=$ROCKCFG_X86_OPT" - # workaround and should be removed when gcc 3.x got fixed ... - var_append GCC4_WRAPPER_INSERT " " "-fno-branch-count-reg" + var_append GCC_WRAPPER_INSERT " " "-march=i486" ;; - *) - var_append GCC4_WRAPPER_INSERT " " "-march=$ROCKCFG_X86_OPT" ;; - esac - - case "$ROCKCFG_X86_OPT" in - generic) - var_append GCC3_WRAPPER_INSERT " " "-march=i486" ;; via-c3) - var_append GCC3_WRAPPER_INSERT " " "-march=k62" ;; + var_append GCC2_WRAPPER_INSERT " " "-march=k6" + var_append GCC3_WRAPPER_INSERT " " "-march=k62" + var_append GCC4_WRAPPER_INSERT " " "-march=k62" + ;; via-c3-improved) - var_append GCC3_WRAPPER_INSERT " " "-march=i686" ;; + var_append GCC_WRAPPER_INSERT " " "-march=i686" + ;; via-c3-2) - var_append GCC3_WRAPPER_INSERT " " "-march=pentium-mmx" ;; + var_append GCC2_WRAPPER_INSERT " " "-march=pentiumpro" + var_append GCC3_WRAPPER_INSERT " " "-march=pentium-mmx" + var_append GCC4_WRAPPER_INSERT " " "-march=pentium-mmx" + ;; k6*) + var_append GCC2_WRAPPER_INSERT " " "-march=k6" + var_append GCC3_WRAPPER_INSERT " " "-march=$ROCKCFG_X86_OPT" # workaround and should be removed when gcc 3.x got fixed ... var_append GCC3_WRAPPER_INSERT " " "-fno-branch-count-reg" + + var_append GCC4_WRAPPER_INSERT " " "-march=$ROCKCFG_X86_OPT" +# # workaround and should be removed when gcc 3.x got fixed ... +# var_append GCC4_WRAPPER_INSERT " " "-fno-branch-count-reg" ;; *) - var_append GCC3_WRAPPER_INSERT " " "-march=$ROCKCFG_X86_OPT" ;; + var_append GCC3_WRAPPER_INSERT " " "-march=$ROCKCFG_X86_OPT" + var_append GCC4_WRAPPER_INSERT " " "-march=$ROCKCFG_X86_OPT" + ;; esac case "$ROCKCFG_X86_OPT" in - generic) - var_append GCC2_WRAPPER_INSERT " " "-march=i486" ;; i386|i486) var_append GCC2_WRAPPER_INSERT " " "-march=$ROCKCFG_X86_OPT" ;; pentium|pentium-mmx) var_append GCC2_WRAPPER_INSERT " " "-march=pentium" ;; - pentium*|via-c3-2) + pentium*) var_append GCC2_WRAPPER_INSERT " " "-march=pentiumpro" ;; - k6*|athlon*|via-c3) + athlon*) var_append GCC2_WRAPPER_INSERT " " "-march=k6" ;; - via-c3-improved) - var_append GCC2_WRAPPER_INSERT " " "-march=i686" ;; esac else - case "$ROCKCFG_X86_OPT" in - generic) ;; + generic) + # Other values like i686 or pentiumpro cause a build error in e.g. + # glibc 2.6.1 when building with gcc 4.2.1. + if [[ "$xpkg" = *-32bit ]] ; then + var_append GCC_WRAPPER_INSERT " " "-march=pentium4" + fi + ;; intel) var_append GCC2_WRAPPER_INSERT " " "-march=x86_64" var_append GCC3_WRAPPER_INSERT " " "-march=nocona" @@ -68,9 +68,9 @@ else var_append GCC4_WRAPPER_INSERT " " "-march=k8" ;; esac - fi -# remove other -march and -mcpu options from the argument list -var_insert GCC_WRAPPER_REMOVE " " "-march=* -mcpu=*" - +# remove other -march and -mtune options from the argument list +var_insert GCC_WRAPPER_REMOVE " " "-march=* -mtune=*" +# Remove deprecated options: +var_insert GCC_WRAPPER_REMOVE " " "-mcpu=* -m386 -m486 -mpentium -mpentiumpro" diff --git a/architecture/x86/parse-config b/architecture/x86/parse-config index 575d14f3c..14fb0c5ad 100644 --- a/architecture/x86/parse-config +++ b/architecture/x86/parse-config @@ -1,3 +1,4 @@ +#!/bin/bash # --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. @@ -23,4 +24,3 @@ if [ "$ROCKCFG_X86_BITS" = 64 -a "$forcefpic" = "" ]; then forcefpic="1" fi -