[ovs-dev] [PATCH ] travis: support ppc64le builds

dwilder dwilder at us.ibm.com
Tue Oct 29 17:55:05 UTC 2019


On 2019-10-29 09:52, Ilya Maximets wrote:
> On 28.10.2019 22:22, David Wilder wrote:
>> Add support for travis-ci ppc64le builds.
>> 
>> - Updated matrix in .travis.yml to include a ppc64le build.
>> - Added support to install packages needed by specific architectures.
>> 
>> To keep the total build time at an acceptable level only a single 
>> build
>> job is included in the matrix for ppc64le.
>> 
>> A build report example can be found here [1]
>> [0] 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org_&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIyJZFo&s=UMYL8rzJNph87seC0oJLBiWoe-sUSL80AJy0RMTgBzQ&e= 
>> [1] 
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_djlwilder_ovs_builds_604098141&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIyJZFo&s=pyd2yQpQ0snpwGE5El4RYZsatwl74sthM1KLqtIKCnY&e= 
>> Signed-off-by: David Wilder <dwilder at us.ibm.com>
> 
> Hi David,
> Thanks for working on this. I have a couple of question regarding
> ppc64le support by TravisCI.  It seems that they are not supporting
> this architecture officially and refusing[1] to solve any issues that
> appears while using it. There also no official documentation.
> It's kind of a hidden feature that some projects are using for their
> own risk [2]. Do you know why this happens or maybe you have some
> insights about what is going on/how it works?

Work is going on to increase ppc64le support on Travis by the end of the 
year.  I dont have any details yet. My plan is to keep this to 
build-only ci until then.  Important, ppc64le VM are only available on 
travis-ci.org, they are not available on travis-ci.com.

> The API is also a bit strange because Travis started to officially
> support arm builds, but this is done via 'arch' knob, not the 'os'.
> Will it be changed over time for ppc64le?
> 

Sorry, I dont know.

> [1]
> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.community_t_ppc64le-2Darch-2Dsupport-2Don-2Dtravis-2Dci-2Dcom-2Dvs-2Dtravis-2Dci-2Dorg_2898_2&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIyJZFo&s=TrXdSxjvnbbVQz7EzR5r0aE93lZMSdCiIUQT2wt8E3I&e=
> [2]
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openssl_openssl_commit_13da3ad00c80e1da816ca27f6c15b0ecee1bb0b8&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIyJZFo&s=RWVuli-BT8E2IsW3rAA9MtqCVPZahNk8k7yqxEbgTT4&e=
> 
> Few code comments inline.
> 
>> ---
>>   .travis.yml              |  5 +++--
>>   .travis/linux-prepare.sh | 18 ++++++++++++++----
>>   2 files changed, 17 insertions(+), 6 deletions(-)
>> 
>> diff --git a/.travis.yml b/.travis.yml
>> index 5676d9748..c99f26815 100644
>> --- a/.travis.yml
>> +++ b/.travis.yml
>> @@ -14,7 +14,6 @@ addons:
>>     apt:
>>       packages:
>>         - bc
>> -      - gcc-multilib
>>         - libssl-dev
>>         - llvm-dev
>>         - libjemalloc1
>> @@ -24,7 +23,6 @@ addons:
>>         - libelf-dev
>>         - selinux-policy-dev
>>         - libunbound-dev
>> -      - libunbound-dev:i386
>>         - libunwind-dev
>>     before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
>> @@ -50,6 +48,9 @@ matrix:
>>       - os: osx
>>         compiler: clang
>>         env: OPTS="--disable-ssl"
>> +    - os: linux-ppc64le
>> +      compiler: gcc
>> +      env: OPTS="--disable-ssl"
>>     script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
>>   diff --git a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh
>> index e546d32cb..f3a9a6d44 100755
>> --- a/.travis/linux-prepare.sh
>> +++ b/.travis/linux-prepare.sh
>> @@ -15,8 +15,18 @@ cd ..
>>   pip install --disable-pip-version-check --user six flake8 hacking
>>   pip install --user --upgrade docutils
>>   -if [ "$M32" ]; then
>> -    # 32-bit and 64-bit libunwind can not be installed at the same 
>> time.
>> -    # This will remove the 64-bit libunwind and install 32-bit 
>> version.
>> -    sudo apt-get install -y libunwind-dev:i386
>> +# Include packages needed by specific architectures.
>> +if [ $TRAVIS_ARCH == amd64 ]; then
>> +   sudo apt-get install -y \
>> +        libunbound-dev:i386 \
>> +        gcc-multilib
> 
> These packages are only needed for 32bit build, so you may just move 
> them
> to the command that installs 32bit version of libunwind.
> And since you're not building 32bit with ppc64le, the code could look 
> like:
> 
> if [ "$M32" ]; then
>    # install 32 bit libs
> fi
> 
> if [ $TRAVIS_ARCH == ppc64le ]; then
>    # install ppc64le specific things.
> fi

Agreed.

> 
>> +
>> +    if [ "$M32" ]; then
>> +       # 32-bit and 64-bit libunwind can not be installed at the same 
>> time.
>> +       # This will remove the 64-bit libunwind and install 32-bit 
>> version.
>> +       sudo apt-get install -y libunwind-dev:i386
>> +    fi
>> +
>> +elif [ $TRAVIS_ARCH == ppc64le ]; then
>> +   sudo apt-get install -y flex
> 
> Why 'flex' is needed?

I found that Flex was needed for kernel builds, but since I am not doing 
that yet I can remove it.

Thanks for the review,  I will post a V2 patch shortly.

> 
> Best regards, Ilya Maximets.


More information about the dev mailing list