From patchwork Sun Jan 20 22:58:22 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willy Tarreau X-Patchwork-Id: 213994 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 8CB422C0089 for ; Mon, 21 Jan 2013 09:58:56 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=sourceware.org; s=default; x=1359327537; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Date: From:To:Subject:Message-ID:Mime-Version:Content-Type: Content-Disposition:User-Agent:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Subscribe:List-Archive:List-Post:List-Help: Sender:Delivered-To; bh=/A5miOmIBIfPl46IfoIqc6wBCJU=; b=oE6lMsU2 kJD8E8HexuZJ/i/yDBq2cYGQr07r+lb3tByCjCcgvb42xtRwk3QfUPbP6yfMwzK3 CvG2Ch6lv5Jj5YYw4C1GGgAE9pTOYrBSNRcv5zZjFGLvf7cPjSMznJf/mBraDbZH RVV5cZ2vvcvfym1RbsJEExvXrMdTlGuEr5w= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=sourceware.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Date:From:To:Subject:Message-ID:Mime-Version:Content-Type:Content-Disposition:User-Agent:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Subscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=QUL70ErUjW7kEFx5UODTZ8LyyG52UTAcrVm7P8gFY8vKKqb7oZAaf7zhMnpOzg i0fbA992tYRswQxsVvbl6MilEMRSRJ87gPTPH2Cy6tVBFgmMTH7xk/drIwM26Yz9 MtZyEYQAjm3oTf59XfwPfw/ng9xTxNXffHVQ07o37swmA=; Received: (qmail 17272 invoked by alias); 20 Jan 2013 22:58:42 -0000 Received: (qmail 17187 invoked by uid 22791); 20 Jan 2013 22:58:41 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from 1wt.eu (HELO 1wt.eu) (62.212.114.60) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 20 Jan 2013 22:58:29 +0000 Received: (from willy@localhost) by mail.home.local (8.14.4/8.14.4/Submit) id r0KMwM6l016567 for crossgcc@sourceware.org; Sun, 20 Jan 2013 23:58:22 +0100 Date: Sun, 20 Jan 2013 23:58:22 +0100 From: Willy Tarreau To: crossgcc@sourceware.org Subject: scripts: add support for overriding the arch name in the tuple Message-ID: <20130120225822.GS6838@1wt.eu> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4.2.3i Mailing-List: contact crossgcc-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: crossgcc-owner@sourceware.org Delivered-To: mailing list crossgcc@sourceware.org Hello, it sometimes happens that I need to build toolchains for several variants of a CPU and I want to have the variant name in the arch tuple. In fact, this is very similar to what is done with i386/i486/i586/i686, all of them being variants of the x86 arch family. On arm, we commonly see armv5/armv6/armv7 and with v7 there are two common cpus which are cortex a8 and a9. So I'm used to build my toolchains with a prefix which is 'armv5te', 'armv7a8', 'armv7a9' etc... For this I wrote the small patch below for ct-ng-1.15.3, which still works with 1.17.0. On one of my machines, the toolchain directory looks like this, which is quite convenient to use : arm-gcc43_glibc29-linux-gnueabi/ arm-gcc44_glibc29-linux-gnueabi/ arm-gcc45_glibc29-linux-gnueabi/ armv7a8-gcc43_glibc29-linux-gnueabi/ armv7a9-gcc44_glibc29-linux-gnueabi/ armv7a9-gcc47_glibc29-linux-gnueabi/ armv7a9-gcc47_glibc29-linux-gnueabihf/ i386-gcc34_glibc23-linux-gnu/ x86_64-gcc34_glibc23-linux-gnu/ Hoping someone finds the patch useful. Please keep me CC of any response as I'm not subscribed to the list. Regards, Willy --- -- For unsubscribe information see http://sourceware.org/lists.html#faq diff -urN ./config/target.in ./config/target.in --- ./config/target.in.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./config/target.in 2012-07-27 12:02:08.682588639 +0200 @@ -5,6 +5,17 @@ config ARCH string +config ARCH_OVERRIDE + string + prompt "Arch name to use in the resulting tuple instead of ${CT_ARCH}" + help + Some architectures have multiple variants and being able to specify + the variant instead of the arch is quite convenient. This is commonly + seen for instance when "armv5tel-" is used as a prefix instead of the + more generic "arm-", or with "alphaev6-" instead of "alpha-". + + If you're not sure about what this is, leave it blank. + # Pre-declare target optimisation variables config ARCH_SUPPORTS_BOTH_MMU config ARCH_SUPPORTS_BOTH_ENDIAN diff -urN ./scripts/build/arch/alpha.sh ./scripts/build/arch/alpha.sh --- ./scripts/build/arch/alpha.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/alpha.sh 2012-07-27 11:58:57.190090149 +0200 @@ -2,5 +2,5 @@ CT_DoArchTupleValues () { # The architecture part of the tuple: - CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_ALPHA_VARIANT}" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-${CT_ARCH}${CT_ARCH_ALPHA_VARIANT}}" } diff -urN ./scripts/build/arch/arm.sh ./scripts/build/arch/arm.sh --- ./scripts/build/arch/arm.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/arm.sh 2012-07-27 11:58:50.607102794 +0200 @@ -2,7 +2,7 @@ CT_DoArchTupleValues() { # The architecture part of the tuple: - CT_TARGET_ARCH="${CT_ARCH}${target_endian_eb}" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-${CT_ARCH}${target_endian_eb}}" # The system part of the tuple: case "${CT_LIBC},${CT_ARCH_ARM_EABI}" in diff -urN ./scripts/build/arch/avr32.sh ./scripts/build/arch/avr32.sh --- ./scripts/build/arch/avr32.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/avr32.sh 2012-07-27 11:58:04.299089005 +0200 @@ -2,7 +2,7 @@ CT_DoArchTupleValues() { # The architecture part of the tuple: - CT_TARGET_ARCH="${CT_ARCH}" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-${CT_ARCH}}" # gcc ./configure flags CT_ARCH_WITH_ARCH= diff -urN ./scripts/build/arch/blackfin.sh ./scripts/build/arch/blackfin.sh --- ./scripts/build/arch/blackfin.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/blackfin.sh 2012-07-27 11:58:12.670588818 +0200 @@ -2,7 +2,7 @@ CT_DoArchTupleValues() { # The architecture part of the tuple: - CT_TARGET_ARCH="bfin" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-bfin}" # gcc ./configure flags CT_ARCH_WITH_ARCH= diff -urN ./scripts/build/arch/mips.sh ./scripts/build/arch/mips.sh --- ./scripts/build/arch/mips.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/mips.sh 2012-07-27 11:58:40.919091367 +0200 @@ -3,10 +3,10 @@ CT_DoArchTupleValues() { # The architecture part of the tuple, override only for 64-bit if [ "${CT_ARCH_64}" = "y" ]; then - CT_TARGET_ARCH="mips64${target_endian_el}" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-mips64${target_endian_el}}" else # The architecture part of the tuple: - CT_TARGET_ARCH="${CT_ARCH}${target_endian_el}" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-${CT_ARCH}${target_endian_el}}" fi # Override CFLAGS for endianness: diff -urN ./scripts/build/arch/powerpc.sh ./scripts/build/arch/powerpc.sh --- ./scripts/build/arch/powerpc.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/powerpc.sh 2012-07-27 11:59:15.611087634 +0200 @@ -3,7 +3,7 @@ CT_DoArchTupleValues () { # The architecture part of the tuple, override only for 64-bit if [ "${CT_ARCH_64}" = "y" ]; then - CT_TARGET_ARCH="powerpc64" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-powerpc64}" fi # Only override values when ABI is not the default diff -urN ./scripts/build/arch/s390.sh ./scripts/build/arch/s390.sh --- ./scripts/build/arch/s390.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/s390.sh 2012-07-27 11:59:22.603588053 +0200 @@ -3,6 +3,6 @@ CT_DoArchTupleValues() { # That's the only thing to override if [ "${CT_ARCH_64}" = "y" ]; then - CT_TARGET_ARCH="s390x" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-s390x}" fi } diff -urN ./scripts/build/arch/sh.sh ./scripts/build/arch/sh.sh --- ./scripts/build/arch/sh.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/sh.sh 2012-07-27 11:59:32.815087642 +0200 @@ -2,7 +2,7 @@ CT_DoArchTupleValues () { # The architecture part of the tuple: - CT_TARGET_ARCH="${CT_ARCH_SH_VARIANT}${target_endian_eb}" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-${CT_ARCH_SH_VARIANT}${target_endian_eb}}" # gcc ./configure flags CT_ARCH_WITH_ARCH= diff -urN ./scripts/build/arch/sparc.sh ./scripts/build/arch/sparc.sh --- ./scripts/build/arch/sparc.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/sparc.sh 2012-07-27 11:59:39.655111756 +0200 @@ -2,7 +2,7 @@ CT_DoArchTupleValues() { # That's the only thing to override if [ "${CT_ARCH_64}" = "y" ]; then - CT_TARGET_ARCH="${CT_ARCH}64" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-${CT_ARCH}64}" fi } diff -urN ./scripts/build/arch/x86.sh ./scripts/build/arch/x86.sh --- ./scripts/build/arch/x86.sh.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/build/arch/x86.sh 2012-07-27 12:00:52.942587401 +0200 @@ -6,18 +6,18 @@ # Override the architecture part of the tuple: if [ "${CT_ARCH_64}" = "y" ]; then - CT_TARGET_ARCH=x86_64 + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-x86_64}" else arch="${CT_ARCH_ARCH}" [ -z "${arch}" ] && arch="${CT_ARCH_TUNE}" case "${arch}" in - "") CT_TARGET_ARCH=i386;; - i386|i486|i586|i686) CT_TARGET_ARCH="${arch}";; - winchip*) CT_TARGET_ARCH=i486;; - pentium|pentium-mmx|c3*) CT_TARGET_ARCH=i586;; - pentiumpro|pentium*|athlon*) CT_TARGET_ARCH=i686;; - prescott) CT_TARGET_ARCH=i686;; - *) CT_TARGET_ARCH=i586;; + "") CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-i386}";; + i386|i486|i586|i686) CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-${arch}}";; + winchip*) CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-i486}";; + pentium|pentium-mmx|c3*) CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-i586}";; + pentiumpro|pentium*|athlon*) CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-i686}";; + prescott) CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-i686}";; + *) CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-i586}";; esac fi } diff -urN ./scripts/functions ./scripts/functions --- ./scripts/functions.orig 2012-07-17 22:39:55.000000000 +0200 +++ ./scripts/functions 2012-07-27 11:57:19.903088370 +0200 @@ -982,7 +982,7 @@ esac # Build the default architecture tuple part - CT_TARGET_ARCH="${CT_ARCH}" + CT_TARGET_ARCH="${CT_ARCH_OVERRIDE:-${CT_ARCH}}" # Set defaults for the system part of the tuple. Can be overriden # by architecture-specific values.