Skip to contentSkip to conversation

travis: Add sandbox/clang-7 support

PATCH In review Tom Rini 2 participants 5 messages Oct 7, 2018 – Oct 20, 2018

lore
Share & tools
lore

Tom Rini

author
#0 lore raw

PATCH 1/1 travis: Add sandbox/clang-7 support

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.

---
 .travis.yml | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)
.travis.yml +20 -7
index 2b759c9d6865..1c2dfbb8e29b 100644
@@ -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"
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 travis: Add sandbox/clang-7 support

Hi Tom,

Quoted 9 lines · Tom Rini

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.

Quoted 5 lines
---
 .travis.yml | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

What prevents buildman supporting clang?

- Simon

author
#2 lore raw

PATCH 1/1 travis: Add sandbox/clang-7 support

Quoted 18 lines · Simon Glass

Hi Tom,

Quoted 9 lines · Tom Rini

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.

Quoted 5 lines
---
 .travis.yml | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)
Quoted 3 lines

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!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181009/ce7779eb/attachment.sig>
#3 lore raw

PATCH 1/1 travis: Add sandbox/clang-7 support

Hi Tom,

Quoted 19 lines · Tom Rini
Quoted 18 lines · Simon Glass

Hi Tom,

Quoted 14 lines · Tom Rini

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.

---
 .travis.yml | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)
Quoted 6 lines
Quoted 3 lines

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

author
#4 lore raw
In reply to Tom Rini
Quoted 11 lines · Tom Rini

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.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181020/4e1c1f29/attachment.sig>