buildman: support newer gcc versions from kernel.org

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@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
lime2-spi
Daniel Schwierzeck 6 years ago committed by Tom Rini
parent f58e94602e
commit 4c58d273e0
  1. 38
      .travis.yml
  2. 6
      tools/buildman/toolchain.py

@ -21,7 +21,6 @@ addons:
- python-virtualenv - python-virtualenv
- swig - swig
- libpython-dev - libpython-dev
- gcc-powerpc-linux-gnu
- iasl - iasl
- grub-efi-ia32-bin - grub-efi-ia32-bin
- rpm2cpio - rpm2cpio
@ -29,6 +28,11 @@ addons:
- device-tree-compiler - device-tree-compiler
- lzop - 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: install:
# Clone uboot-test-hooks # Clone uboot-test-hooks
- git clone --depth=1 git://github.com/swarren/uboot-test-hooks.git /tmp/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` - ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
# prepare buildman environment # prepare buildman environment
- echo -e "[toolchain]\nroot = /usr" > ~/.buildman - 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 "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\nx86 = x86_64\nsandbox = x86_64\n" >> ~/.buildman
- cat ~/.buildman - cat ~/.buildman
- virtualenv /tmp/venv - virtualenv /tmp/venv
- . /tmp/venv/bin/activate - . /tmp/venv/bin/activate
@ -64,10 +66,10 @@ before_script:
- if [[ "${TOOLCHAIN}" == *microblaze* ]]; then ./tools/buildman/buildman --fetch-arch microblaze ; fi - if [[ "${TOOLCHAIN}" == *microblaze* ]]; then ./tools/buildman/buildman --fetch-arch microblaze ; fi
- if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; 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}" == *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 - if [[ "${TOOLCHAIN}" == *x86_64* ]]; then
./tools/buildman/buildman --fetch-arch x86_64; ./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;
fi fi
- if [[ "${TOOLCHAIN}" == arc ]]; then - 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 && 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 fi
# If TOOLCHAIN is unset, we're on some flavour of ARM. # If TOOLCHAIN is unset, we're on some flavour of ARM.
- if [[ "${TOOLCHAIN}" == "" ]]; then - 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 && ./tools/buildman/buildman --fetch-arch arm &&
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 && ./tools/buildman/buildman --fetch-arch aarch64;
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;
fi fi
- if [[ "${TOOLCHAIN}" == "powerpc" ]]; then ./tools/buildman/buildman --fetch-arch powerpc; fi
- if [[ "${TOOLCHAIN}" == "riscv" ]]; then - if [[ "${TOOLCHAIN}" == "riscv" ]]; then
wget https://github.com/PkmX/riscv-prebuilt-toolchains/releases/download/20180111/riscv32-unknown-elf-toolchain.tar.gz && 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 && tar -C /tmp -xf riscv32-unknown-elf-toolchain.tar.gz &&
@ -227,26 +228,37 @@ matrix:
TOOLCHAIN="mips" TOOLCHAIN="mips"
- env: - env:
- BUILDMAN="mpc83xx" - BUILDMAN="mpc83xx"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="mpc85xx -x freescale" - BUILDMAN="mpc85xx -x freescale"
TOOLCHAIN="powerpc"
- env: - 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*" - 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: - env:
- BUILDMAN="t208xrdb" - BUILDMAN="t208xrdb"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="t4qds" - BUILDMAN="t4qds"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="t102*" - BUILDMAN="t102*"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="p1_p2_rdb_pc" - BUILDMAN="p1_p2_rdb_pc"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="p1010rdb" - BUILDMAN="p1010rdb"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*" - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="mpc86xx" - BUILDMAN="mpc86xx"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="mpc8xx" - BUILDMAN="mpc8xx"
TOOLCHAIN="powerpc"
- env: - env:
- BUILDMAN="siemens" - BUILDMAN="siemens"
- env: - env:
@ -269,8 +281,9 @@ matrix:
- env: - env:
- BUILDMAN="rockchip" - BUILDMAN="rockchip"
- env: - env:
- BUILDMAN="sh4" - JOB="sh"
TOOLCHAIN="sh4" BUILDMAN="sh -x arm"
TOOLCHAIN="sh"
- env: - env:
- JOB="Xilinx (ARM)" - JOB="Xilinx (ARM)"
BUILDMAN="xilinx -x microblaze" BUILDMAN="xilinx -x microblaze"
@ -376,6 +389,7 @@ matrix:
TEST_PY_TEST_SPEC="not sleep" TEST_PY_TEST_SPEC="not sleep"
QEMU_TARGET="ppc-softmmu" QEMU_TARGET="ppc-softmmu"
BUILDMAN="^qemu-ppce500$" BUILDMAN="^qemu-ppce500$"
TOOLCHAIN="powerpc"
- env: - env:
- TEST_PY_BD="qemu-x86" - TEST_PY_BD="qemu-x86"
TEST_PY_TEST_SPEC="not sleep" TEST_PY_TEST_SPEC="not sleep"

@ -32,7 +32,7 @@ class MyHTMLParser(HTMLParser):
HTMLParser.__init__(self) HTMLParser.__init__(self)
self.arch_link = None self.arch_link = None
self.links = [] self.links = []
self._match = '_%s-' % arch self.re_arch = re.compile('[-_]%s-' % arch)
def handle_starttag(self, tag, attrs): def handle_starttag(self, tag, attrs):
if tag == 'a': if tag == 'a':
@ -40,7 +40,7 @@ class MyHTMLParser(HTMLParser):
if tag == 'href': if tag == 'href':
if value and value.endswith('.xz'): if value and value.endswith('.xz'):
self.links.append(value) self.links.append(value)
if self._match in value: if self.re_arch.search(value):
self.arch_link = value self.arch_link = value
@ -430,7 +430,7 @@ class Toolchains:
""" """
arch = command.OutputOneLine('uname', '-m') arch = command.OutputOneLine('uname', '-m')
base = 'https://www.kernel.org/pub/tools/crosstool/files/bin' 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 = [] links = []
for version in versions: for version in versions:
url = '%s/%s/%s/' % (base, arch, version) url = '%s/%s/%s/' % (base, arch, version)

Loading…
Cancel
Save