Message ID | 1538936430-32218-1-git-send-email-trini@konsulko.com |
---|---|
State | Accepted |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] travis: Add sandbox/clang-7 support | expand |
Hi Tom, On 7 October 2018 at 12:20, Tom Rini <trini@konsulko.com> wrote: > > To make testing with clang support easier, add sandbox/clang-7 > combination to our testing matrix. To facilitate this, switch to using > the "sources" method that the travis.yml file supports to list > additional repositories and add the official one for llvm-7. Due to > buildman not supporting using clang at this time add logic to manually > build a single sandbox configuration in the expected output directory so > that we can still invoke all of our tests. > > Cc: Simon Glass <sjg@chromium.org> > Signed-off-by: Tom Rini <trini@konsulko.com> > --- > .travis.yml | 27 ++++++++++++++++++++------- > 1 file changed, 20 insertions(+), 7 deletions(-) Reviewed-by: Simon Glass <sjg@chromium.org> What prevents buildman supporting clang? - Simon
On Mon, Oct 08, 2018 at 09:40:51PM -0600, Simon Glass wrote: > Hi Tom, > > On 7 October 2018 at 12:20, Tom Rini <trini@konsulko.com> wrote: > > > > To make testing with clang support easier, add sandbox/clang-7 > > combination to our testing matrix. To facilitate this, switch to using > > the "sources" method that the travis.yml file supports to list > > additional repositories and add the official one for llvm-7. Due to > > buildman not supporting using clang at this time add logic to manually > > build a single sandbox configuration in the expected output directory so > > that we can still invoke all of our tests. > > > > Cc: Simon Glass <sjg@chromium.org> > > Signed-off-by: Tom Rini <trini@konsulko.com> > > --- > > .travis.yml | 27 ++++++++++++++++++++------- > > 1 file changed, 20 insertions(+), 7 deletions(-) > > Reviewed-by: Simon Glass <sjg@chromium.org> > > What prevents buildman supporting clang? Well, I couldn't convince buildman to accept "/usr/bin/clang-7" as the full and entire path to the toolchain to use. Ideas? Thanks!
Hi Tom, On 9 October 2018 at 05:35, Tom Rini <trini@konsulko.com> wrote: > On Mon, Oct 08, 2018 at 09:40:51PM -0600, Simon Glass wrote: >> Hi Tom, >> >> On 7 October 2018 at 12:20, Tom Rini <trini@konsulko.com> wrote: >> > >> > To make testing with clang support easier, add sandbox/clang-7 >> > combination to our testing matrix. To facilitate this, switch to using >> > the "sources" method that the travis.yml file supports to list >> > additional repositories and add the official one for llvm-7. Due to >> > buildman not supporting using clang at this time add logic to manually >> > build a single sandbox configuration in the expected output directory so >> > that we can still invoke all of our tests. >> > >> > Cc: Simon Glass <sjg@chromium.org> >> > Signed-off-by: Tom Rini <trini@konsulko.com> >> > --- >> > .travis.yml | 27 ++++++++++++++++++++------- >> > 1 file changed, 20 insertions(+), 7 deletions(-) >> >> Reviewed-by: Simon Glass <sjg@chromium.org> >> >> What prevents buildman supporting clang? > > Well, I couldn't convince buildman to accept "/usr/bin/clang-7" as the > full and entire path to the toolchain to use. Ideas? Thanks! No, sadly it looks like we need to add special support for clang - as per README.clang. We need to set CC and CROSS_COMPILE, at least. Regards, Simon
On Sun, Oct 07, 2018 at 02:20:30PM -0400, Tom Rini wrote: > To make testing with clang support easier, add sandbox/clang-7 > combination to our testing matrix. To facilitate this, switch to using > the "sources" method that the travis.yml file supports to list > additional repositories and add the official one for llvm-7. Due to > buildman not supporting using clang at this time add logic to manually > build a single sandbox configuration in the expected output directory so > that we can still invoke all of our tests. > > Cc: Simon Glass <sjg@chromium.org> > Signed-off-by: Tom Rini <trini@konsulko.com> > Reviewed-by: Simon Glass <sjg@chromium.org> Applied to u-boot/master, thanks!
diff --git a/.travis.yml b/.travis.yml index 2b759c9d6865..1c2dfbb8e29b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,9 @@ language: c addons: apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-trusty-7 packages: - cppcheck - sloccount @@ -28,11 +31,8 @@ addons: - device-tree-compiler - lzop - liblz4-tool - -before_install: - - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y - - sudo apt-get update -q - - sudo apt-get install libisl15 -y + - libisl15 + - clang-7 install: # Clone uboot-test-hooks @@ -105,8 +105,16 @@ script: # Comments must be outside the command strings below, or the Travis parser # will get confused. # - # Exit code 129 means warnings only. - - if [[ "${BUILDMAN}" != "" ]]; then + # From buildman, exit code 129 means warnings only. If we've been asked to + # use clang only do one configuration. + - if [[ "${TOOLCHAIN}" == "clang" ]]; then + ret=0; + make O=../.bm-work/${TEST_PY_BD} HOSTCC=clang-7 CC=clang-7 -j$(nproc) + KCFLAGS=-Werror sandbox_config all || ret=$?; + if [[ $ret -ne 0 ]]; then + exit $ret; + fi; + elif [[ "${BUILDMAN}" != "" ]]; then ret=0; tools/buildman/buildman -P -E ${BUILDMAN} || ret=$?; if [[ $ret -ne 0 && $ret -ne 129 ]]; then @@ -322,6 +330,11 @@ matrix: - TEST_PY_BD="sandbox" BUILDMAN="^sandbox$" TOOLCHAIN="x86_64" + - name: "test/py sandbox with clang" + env: + - TEST_PY_BD="sandbox" + BUILDMAN="^sandbox$" + TOOLCHAIN="clang" - name: "test/py sandbox_spl" env: - TEST_PY_BD="sandbox_spl"
To make testing with clang support easier, add sandbox/clang-7 combination to our testing matrix. To facilitate this, switch to using the "sources" method that the travis.yml file supports to list additional repositories and add the official one for llvm-7. Due to buildman not supporting using clang at this time add logic to manually build a single sandbox configuration in the expected output directory so that we can still invoke all of our tests. Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> --- .travis.yml | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-)