diff mbox

travis: enable building of the tools

Message ID 1461595578-7014-1-git-send-email-cardoe@cardoe.com (mailing list archive)
State New, archived
Headers show

Commit Message

Douglas Goldstein April 25, 2016, 2:46 p.m. UTC
For native (non-cross compiles) we now only require bcc, ld86, as86 for
building rombios, we can build the toolstack sans rombios and using the
system SeaBIOS due to known build issues. At the same time capture the
output of the configure scripts to help with tracking down future build
issues. This does not enable building of the toolstack with clang for
now due to multiple failures.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
---
 .travis.yml          |  8 ++++----
 scripts/travis-build | 31 +++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 4 deletions(-)
 create mode 100755 scripts/travis-build

Comments

Wei Liu April 25, 2016, 2:53 p.m. UTC | #1
On Mon, Apr 25, 2016 at 09:46:18AM -0500, Doug Goldstein wrote:
> For native (non-cross compiles) we now only require bcc, ld86, as86 for
> building rombios, we can build the toolstack sans rombios and using the
> system SeaBIOS due to known build issues. At the same time capture the
> output of the configure scripts to help with tracking down future build
> issues. This does not enable building of the toolstack with clang for
> now due to multiple failures.
> 
> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>

It would be useful if you can provide a link to a success travis run so
that people who are interested (e.g. me :-P) can have a look.

> ---
>  .travis.yml          |  8 ++++----
>  scripts/travis-build | 31 +++++++++++++++++++++++++++++++

I guess the reason for this is because travis's yaml is not expressive
enough for our purpose?

The rest looks sensible to me.

Wei.
Douglas Goldstein April 25, 2016, 3:02 p.m. UTC | #2
On 4/25/16 9:53 AM, Wei Liu wrote:
> On Mon, Apr 25, 2016 at 09:46:18AM -0500, Doug Goldstein wrote:
>> For native (non-cross compiles) we now only require bcc, ld86, as86 for
>> building rombios, we can build the toolstack sans rombios and using the
>> system SeaBIOS due to known build issues. At the same time capture the
>> output of the configure scripts to help with tracking down future build
>> issues. This does not enable building of the toolstack with clang for
>> now due to multiple failures.
>>
>> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
> 
> It would be useful if you can provide a link to a success travis run so
> that people who are interested (e.g. me :-P) can have a look.

Apologies. I meant to just didn't.

https://travis-ci.org/cardoe/xen/builds/125166028
Andrew Cooper April 25, 2016, 3:17 p.m. UTC | #3
On 25/04/16 15:46, Doug Goldstein wrote:
> For native (non-cross compiles) we now only require bcc, ld86, as86 for
> building rombios, we can build the toolstack sans rombios and using the
> system SeaBIOS due to known build issues. At the same time capture the
> output of the configure scripts to help with tracking down future build
> issues. This does not enable building of the toolstack with clang for
> now due to multiple failures.
>
> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>

Looking at the results of
https://travis-ci.org/cardoe/xen/builds/125166028 , this is definitely a
good improvement.

Acked-by: Andrew Cooper<andrew.cooper3@citrix.com>

> ---
>  .travis.yml          |  8 ++++----
>  scripts/travis-build | 31 +++++++++++++++++++++++++++++++
>  2 files changed, 35 insertions(+), 4 deletions(-)
>  create mode 100755 scripts/travis-build
>
> diff --git a/.travis.yml b/.travis.yml
> index 741a8ab..0eea94e 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -75,18 +75,18 @@ addons:
>              - gcc-5
>              - g++-5
>              - clang-3.8
> +            - seabios
>  # we must set CXX manually instead of using 'language: cpp' due to
>  # travis-ci/travis-ci#3871
>  before_script:
>      - export CXX=${CC/cc/++}
>      - export CXX=${CXX/clang/clang++}
>  script:
> -    - ( [ "x${RANDCONFIG}" = "xy" ] && ( make -C xen randconfig )
> -      || exit 0 )
> -    - ( ./configure --disable-tools --disable-stubdom --enable-docs &&
> -      make dist )
> +    - ./scripts/travis-build
>  after_script:
>      - cat xen/.config
> +    - cat tools/config.log
> +    - cat docs/config.log
>  notifications:
>      irc:
>          channels:
> diff --git a/scripts/travis-build b/scripts/travis-build
> new file mode 100755
> index 0000000..b553f20
> --- /dev/null
> +++ b/scripts/travis-build
> @@ -0,0 +1,31 @@
> +#!/bin/bash -ex
> +
> +# random config or default config
> +if [[ "${RANDCONFIG}" == "y" ]]; then
> +    make -C xen randconfig
> +else
> +    make -C xen defconfig
> +fi
> +
> +# build up our configure options
> +cfgargs=()
> +cfgargs+=("--disable-stubdom") # more work needed into building this
> +cfgargs+=("--disable-rombios")
> +cfgargs+=("--enable-docs")
> +cfgargs+=("--with-system-seabios=/usr/share/seabios/bios.bin")
> +
> +if [[ "${XEN_TARGET_ARCH}" == "x86_64" ]]; then
> +    cfgargs+=("--enable-tools")
> +else
> +    cfgargs+=("--disable-tools") # we don't have the cross depends installed
> +fi
> +
> +# Due to multiple build failures and the desire to get more
> +# build testing (GCC only) enabled this is disabled
> +if [[ "${clang}" == "y" ]]; then
> +    cfgargs+=("--disable-tools")
> +fi
> +
> +./configure "${cfgargs[@]}"
> +
> +make dist

However, I do have one suggestion for an improvement which we might want
to consider (likely as a followup patch).

It would be very useful if we could get travis to build 32bit tools as
well as 64bit.  It is moderately frequently that the build breaks
because of a stray use of unsigned long vs uint32_t or uint64_t.

This can be done using XEN_TARGET_ARCH=x86_32, although you would still
need x86_64 to the hypervisor, or omit the hypervisor build entirely.

~Andrew
Wei Liu April 25, 2016, 3:20 p.m. UTC | #4
On Mon, Apr 25, 2016 at 10:02:55AM -0500, Doug Goldstein wrote:
> On 4/25/16 9:53 AM, Wei Liu wrote:
> > On Mon, Apr 25, 2016 at 09:46:18AM -0500, Doug Goldstein wrote:
> >> For native (non-cross compiles) we now only require bcc, ld86, as86 for
> >> building rombios, we can build the toolstack sans rombios and using the
> >> system SeaBIOS due to known build issues. At the same time capture the
> >> output of the configure scripts to help with tracking down future build
> >> issues. This does not enable building of the toolstack with clang for
> >> now due to multiple failures.
> >>
> >> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
> > 
> > It would be useful if you can provide a link to a success travis run so
> > that people who are interested (e.g. me :-P) can have a look.
> 
> Apologies. I meant to just didn't.
> 
> https://travis-ci.org/cardoe/xen/builds/125166028
> 

Thanks. Looks good to me.

Reviewed-by: Wei Liu <wei.liu2@citrix.com>

Though this patch is not strictly coupled with 4.7 I would like to see
it in as soon as possible.

I will let this patch floating on xen-devel for a bit in case other
people have comments.

Wei.

> -- 
> Doug Goldstein
>
Douglas Goldstein April 26, 2016, 1:06 p.m. UTC | #5
On 4/25/16 9:46 AM, Doug Goldstein wrote:
> For native (non-cross compiles) we now only require bcc, ld86, as86 for
> building rombios, we can build the toolstack sans rombios and using the
> system SeaBIOS due to known build issues. At the same time capture the
> output of the configure scripts to help with tracking down future build
> issues. This does not enable building of the toolstack with clang for
> now due to multiple failures.
> 
> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
> ---

So good to push? Just want to see this land for 4.7 because I think it
will help catch issues for backports and I can continue to build on this
to get more distros building.
Wei Liu April 26, 2016, 1:11 p.m. UTC | #6
On Tue, Apr 26, 2016 at 08:06:54AM -0500, Doug Goldstein wrote:
> On 4/25/16 9:46 AM, Doug Goldstein wrote:
> > For native (non-cross compiles) we now only require bcc, ld86, as86 for
> > building rombios, we can build the toolstack sans rombios and using the
> > system SeaBIOS due to known build issues. At the same time capture the
> > output of the configure scripts to help with tracking down future build
> > issues. This does not enable building of the toolstack with clang for
> > now due to multiple failures.
> > 
> > Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
> > ---
> 
> So good to push? Just want to see this land for 4.7 because I think it
> will help catch issues for backports and I can continue to build on this
> to get more distros building.
> 

I will push this in my next sweep.

Wei.

> -- 
> Doug Goldstein
>
diff mbox

Patch

diff --git a/.travis.yml b/.travis.yml
index 741a8ab..0eea94e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -75,18 +75,18 @@  addons:
             - gcc-5
             - g++-5
             - clang-3.8
+            - seabios
 # we must set CXX manually instead of using 'language: cpp' due to
 # travis-ci/travis-ci#3871
 before_script:
     - export CXX=${CC/cc/++}
     - export CXX=${CXX/clang/clang++}
 script:
-    - ( [ "x${RANDCONFIG}" = "xy" ] && ( make -C xen randconfig )
-      || exit 0 )
-    - ( ./configure --disable-tools --disable-stubdom --enable-docs &&
-      make dist )
+    - ./scripts/travis-build
 after_script:
     - cat xen/.config
+    - cat tools/config.log
+    - cat docs/config.log
 notifications:
     irc:
         channels:
diff --git a/scripts/travis-build b/scripts/travis-build
new file mode 100755
index 0000000..b553f20
--- /dev/null
+++ b/scripts/travis-build
@@ -0,0 +1,31 @@ 
+#!/bin/bash -ex
+
+# random config or default config
+if [[ "${RANDCONFIG}" == "y" ]]; then
+    make -C xen randconfig
+else
+    make -C xen defconfig
+fi
+
+# build up our configure options
+cfgargs=()
+cfgargs+=("--disable-stubdom") # more work needed into building this
+cfgargs+=("--disable-rombios")
+cfgargs+=("--enable-docs")
+cfgargs+=("--with-system-seabios=/usr/share/seabios/bios.bin")
+
+if [[ "${XEN_TARGET_ARCH}" == "x86_64" ]]; then
+    cfgargs+=("--enable-tools")
+else
+    cfgargs+=("--disable-tools") # we don't have the cross depends installed
+fi
+
+# Due to multiple build failures and the desire to get more
+# build testing (GCC only) enabled this is disabled
+if [[ "${clang}" == "y" ]]; then
+    cfgargs+=("--disable-tools")
+fi
+
+./configure "${cfgargs[@]}"
+
+make dist