[U-Boot] [PATCHv2 2/3] buildman: support newer gcc versions from kernel.org

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Wed May 9 10:27:38 UTC 2018



On 08.05.2018 02:50, Tom Rini wrote:
> From: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
> 
> Add support for gcc versions 7.3.0, 6.4.0 and 4.9.4.
> 
> Also use a regex for matching the tarball names. Some gcc versions
> use '-ARCH-' instead of '_ARCH-'.
> 
> As part of this, we switch TravisCI to also using these toolchains for
> all platforms.
> 
> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
> Changes in v2:
> - Change to only 7.3.0 / 6.4.0 / 4.9.4 for gcc versions.  Update
>   .travis.yml for x86_64 toolchain and fetch all toolchains.
> - Fold in the old patch I had to expand and update SH builds as we
>   cannot build without those changes.
> ---
>  .travis.yml                 | 38 ++++++++++++++++++++++++++------------
>  tools/buildman/toolchain.py |  6 +++---
>  2 files changed, 29 insertions(+), 15 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index 57f38e11698b..b07ce9b8ceb4 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -21,7 +21,6 @@ addons:
>      - python-virtualenv
>      - swig
>      - libpython-dev
> -    - gcc-powerpc-linux-gnu
>      - iasl
>      - grub-efi-ia32-bin
>      - rpm2cpio
> @@ -29,6 +28,11 @@ addons:
>      - device-tree-compiler
>      - lzop
>  
> +before_install:
> + - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
> + - sudo apt-get update -q
> + - sudo apt-get install libisl15 -y
> +
>  install:
>   # Clone uboot-test-hooks
>   - git clone --depth=1 git://github.com/swarren/uboot-test-hooks.git /tmp/uboot-test-hooks
> @@ -36,10 +40,8 @@ install:
>   - ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
>   # prepare buildman environment
>   - echo -e "[toolchain]\nroot = /usr" > ~/.buildman
> - - echo -e "aarch64 = /tmp/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu" >> ~/.buildman
> - - echo -e "arm = /tmp/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf" >> ~/.buildman
>   - echo -e "arc = /tmp/arc_gnu_2017.09_prebuilt_uclibc_le_archs_linux_install" >> ~/.buildman
> - - echo -e "\n[toolchain-alias]\nsh = sh4\nopenrisc = or32" >> ~/.buildman
> + - echo -e "\n[toolchain-alias]\nsh = sh2" >> ~/.buildman
>   - cat ~/.buildman
>   - virtualenv /tmp/venv
>   - . /tmp/venv/bin/activate
> @@ -64,10 +66,10 @@ before_script:
>    - if [[ "${TOOLCHAIN}" == *microblaze* ]]; then ./tools/buildman/buildman --fetch-arch microblaze ; fi
>    - if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi
>    - if [[ "${TOOLCHAIN}" == *or32* ]]; then ./tools/buildman/buildman --fetch-arch or32 ; fi
> -  - if [[ "${TOOLCHAIN}" == *sh4* ]]; then ./tools/buildman/buildman --fetch-arch sh4 ; fi
> +  - if [[ "${TOOLCHAIN}" == *sh* ]]; then ./tools/buildman/buildman --fetch-arch sh2 ; fi
>    - if [[ "${TOOLCHAIN}" == *x86_64* ]]; then
>        ./tools/buildman/buildman --fetch-arch x86_64;
> -      echo -e "\n[toolchain-prefix]\nx86 = ${HOME}/.buildman-toolchains/gcc-4.9.0-nolibc/x86_64-linux/bin/x86_64-linux-" >> ~/.buildman;
> +      echo -e "\n[toolchain-prefix]\nx86 = ${HOME}/.buildman-toolchains/gcc-7.3.0-nolibc/x86_64-linux/bin/x86_64-linux-" >> ~/.buildman;

you could add "x86 = x86_64" to section [toolchain-alias] to avoid
hard-coding this

>      fi
>    - if [[ "${TOOLCHAIN}" == arc ]]; then
>         wget https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-2017.09-release/arc_gnu_2017.09_prebuilt_uclibc_le_archs_linux_install.tar.gz &&
> @@ -80,11 +82,10 @@ before_script:
>      fi
>    # If TOOLCHAIN is unset, we're on some flavour of ARM.
>    - if [[ "${TOOLCHAIN}" == "" ]]; then
> -       wget http://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar.xz &&
> -       wget http://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz &&
> -       tar -C /tmp -xf gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar.xz &&
> -       tar -C /tmp -xf gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz;
> +       ./tools/buildman/buildman --fetch-arch arm &&
> +       ./tools/buildman/buildman --fetch-arch aarch64;
>      fi
> +  - if [[ "${TOOLCHAIN}" == "powerpc" ]]; then ./tools/buildman/buildman --fetch-arch powerpc; fi
>    - if [[ "${TOOLCHAIN}" == "riscv" ]]; then
>          wget https://github.com/PkmX/riscv-prebuilt-toolchains/releases/download/20180111/riscv32-unknown-elf-toolchain.tar.gz &&
>          tar -C /tmp -xf riscv32-unknown-elf-toolchain.tar.gz &&
> @@ -227,26 +228,37 @@ matrix:
>            TOOLCHAIN="mips"
>      - env:
>          - BUILDMAN="mpc83xx"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="mpc85xx -x freescale"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="mpc85xx -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x sbc8548 -x bsc91*"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="t208xrdb"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="t4qds"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="t102*"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="p1_p2_rdb_pc"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="p1010rdb"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="mpc86xx"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="mpc8xx"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - BUILDMAN="siemens"
>      - env:
> @@ -269,8 +281,9 @@ matrix:
>      - env:
>          - BUILDMAN="rockchip"
>      - env:
> -        - BUILDMAN="sh4"
> -          TOOLCHAIN="sh4"
> +        - JOB="sh"
> +          BUILDMAN="sh -x arm"
> +          TOOLCHAIN="sh"
>      - env:
>          - JOB="Xilinx (ARM)"
>            BUILDMAN="xilinx -x microblaze"
> @@ -376,6 +389,7 @@ matrix:
>            TEST_PY_TEST_SPEC="not sleep"
>            QEMU_TARGET="ppc-softmmu"
>            BUILDMAN="^qemu-ppce500$"
> +          TOOLCHAIN="powerpc"
>      - env:
>          - TEST_PY_BD="qemu-x86"
>            TEST_PY_TEST_SPEC="not sleep"
> diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
> index fb3157b2ea8d..4b35f400e97d 100644
> --- a/tools/buildman/toolchain.py
> +++ b/tools/buildman/toolchain.py
> @@ -32,7 +32,7 @@ class MyHTMLParser(HTMLParser):
>          HTMLParser.__init__(self)
>          self.arch_link = None
>          self.links = []
> -        self._match = '_%s-' % arch
> +        self.re_arch = re.compile('[-_]%s-' % arch)
>  
>      def handle_starttag(self, tag, attrs):
>          if tag == 'a':
> @@ -40,7 +40,7 @@ class MyHTMLParser(HTMLParser):
>                  if tag == 'href':
>                      if value and value.endswith('.xz'):
>                          self.links.append(value)
> -                        if self._match in value:
> +                        if self.re_arch.search(value):
>                              self.arch_link = value
>  
>  
> @@ -430,7 +430,7 @@ class Toolchains:
>          """
>          arch = command.OutputOneLine('uname', '-m')
>          base = 'https://www.kernel.org/pub/tools/crosstool/files/bin'
> -        versions = ['4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']
> +        versions = ['7.3.0', '6.4.0', '4.9.4']
>          links = []
>          for version in versions:
>              url = '%s/%s/%s/' % (base, arch, version)
> 

-- 
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180509/9e7105c9/attachment.sig>


More information about the U-Boot mailing list