diff mbox series

[v2] configure: Let SLOF be initialized by ./scripts/git-submodule.sh

Message ID 20200615065721.7873-1-f4bug@amsat.org
State New
Headers show
Series [v2] configure: Let SLOF be initialized by ./scripts/git-submodule.sh | expand

Commit Message

Philippe Mathieu-Daudé June 15, 2020, 6:57 a.m. UTC
The git-submodule.sh script is called by make and initialize the
submodules listed in the GIT_SUBMODULES variable generated by
./configure.

Add SLOF when we build the ppc64-softmmu target for the pSeries
machines (which use SLOF). This fixes:

  $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )
  Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF'
  Cloning into '/home/travis/build/user/qemu/roms/SLOF'...
  fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org
  fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed
  Failed to clone 'roms/SLOF'. Retry scheduled
  Cloning into '/home/travis/build/user/qemu/roms/SLOF'...
  fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org
  fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed
  Failed to clone 'roms/SLOF' a second time, aborting
  The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1.

Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
CI: https://travis-ci.org/github/philmd/qemu/jobs/698406512#L1596
---
 configure   | 12 ++++++++++++
 .travis.yml |  1 -
 2 files changed, 12 insertions(+), 1 deletion(-)

Comments

Thomas Huth June 15, 2020, 7:31 a.m. UTC | #1
On 15/06/2020 08.57, Philippe Mathieu-Daudé wrote:
> The git-submodule.sh script is called by make and initialize the
> submodules listed in the GIT_SUBMODULES variable generated by
> ./configure.
> 
> Add SLOF when we build the ppc64-softmmu target for the pSeries
> machines (which use SLOF). This fixes:
> 
>   $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )
>   Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF'
>   Cloning into '/home/travis/build/user/qemu/roms/SLOF'...
>   fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org
>   fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed
>   Failed to clone 'roms/SLOF'. Retry scheduled
>   Cloning into '/home/travis/build/user/qemu/roms/SLOF'...
>   fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org
>   fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed
>   Failed to clone 'roms/SLOF' a second time, aborting
>   The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1.
> 
> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> CI: https://travis-ci.org/github/philmd/qemu/jobs/698406512#L1596
> ---
>  configure   | 12 ++++++++++++
>  .travis.yml |  1 -
>  2 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 7c2adf36e5..f297a4b68f 100755
> --- a/configure
> +++ b/configure
> @@ -2248,6 +2248,18 @@ if test "$edk2_blobs" = "yes" && ! has bzip2; then
>    error_exit "The bzip2 program is required for building QEMU"
>  fi
>  
> +###################################
> +# SLOF is mandatory for the pSeries
> +for target in $target_list; do
> +  case $target in
> +    ppc64-softmmu)

I know it's confusing, but actually, SLOF is not required for building
ppc64-softmmu. It's required for building the s390-ccw firmware on
s390x, since it is using the libnet code from SLOF for network booting.
And that can only be built right now when we're on a s390x host and GCC
is installed.

There is already a check in configure (look for "Only build s390-ccw
bios" ...), so I'd suggest that you add the git_submodules line there
instead.

 Thanks,
  Thomas


> +      if test -e "${source_path}/.git" ; then
> +          git_submodules="${git_submodules} roms/SLOF"
> +      fi
> +    ;;
> +  esac
> +done
> +
>  feature_not_found() {
>    feature=$1
>    remedy=$2
> diff --git a/.travis.yml b/.travis.yml
> index ec6367af1f..220855c1f0 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -496,7 +496,6 @@ jobs:
>          - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user"
>          - UNRELIABLE=true
>        script:
> -        - ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )
>          - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
>          - |
>            if [ "$BUILD_RC" -eq 0 ] ; then
>
Philippe Mathieu-Daudé June 15, 2020, 7:43 a.m. UTC | #2
On 6/15/20 9:31 AM, Thomas Huth wrote:
> On 15/06/2020 08.57, Philippe Mathieu-Daudé wrote:
>> The git-submodule.sh script is called by make and initialize the
>> submodules listed in the GIT_SUBMODULES variable generated by
>> ./configure.
>>
>> Add SLOF when we build the ppc64-softmmu target for the pSeries
>> machines (which use SLOF). This fixes:
>>
>>   $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )
>>   Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF'
>>   Cloning into '/home/travis/build/user/qemu/roms/SLOF'...
>>   fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org
>>   fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed
>>   Failed to clone 'roms/SLOF'. Retry scheduled
>>   Cloning into '/home/travis/build/user/qemu/roms/SLOF'...
>>   fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org
>>   fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed
>>   Failed to clone 'roms/SLOF' a second time, aborting
>>   The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1.
>>
>> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> CI: https://travis-ci.org/github/philmd/qemu/jobs/698406512#L1596
>> ---
>>  configure   | 12 ++++++++++++
>>  .travis.yml |  1 -
>>  2 files changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/configure b/configure
>> index 7c2adf36e5..f297a4b68f 100755
>> --- a/configure
>> +++ b/configure
>> @@ -2248,6 +2248,18 @@ if test "$edk2_blobs" = "yes" && ! has bzip2; then
>>    error_exit "The bzip2 program is required for building QEMU"
>>  fi
>>  
>> +###################################
>> +# SLOF is mandatory for the pSeries
>> +for target in $target_list; do
>> +  case $target in
>> +    ppc64-softmmu)
> 
> I know it's confusing, but actually, SLOF is not required for building
> ppc64-softmmu. It's required for building the s390-ccw firmware on
> s390x, since it is using the libnet code from SLOF for network booting.
> And that can only be built right now when we're on a s390x host and GCC
> is installed.
> 
> There is already a check in configure (look for "Only build s390-ccw
> bios" ...), so I'd suggest that you add the git_submodules line there
> instead.

I'v been looking at that and got confuse indeed, in particular because
only the s390x container has this failure, but SLOF documentation only
comments pSeries.

Will respin.

> 
>  Thanks,
>   Thomas
> 
> 
>> +      if test -e "${source_path}/.git" ; then
>> +          git_submodules="${git_submodules} roms/SLOF"
>> +      fi
>> +    ;;
>> +  esac
>> +done
>> +
>>  feature_not_found() {
>>    feature=$1
>>    remedy=$2
>> diff --git a/.travis.yml b/.travis.yml
>> index ec6367af1f..220855c1f0 100644
>> --- a/.travis.yml
>> +++ b/.travis.yml
>> @@ -496,7 +496,6 @@ jobs:
>>          - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user"
>>          - UNRELIABLE=true
>>        script:
>> -        - ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )
>>          - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
>>          - |
>>            if [ "$BUILD_RC" -eq 0 ] ; then
>>
>
diff mbox series

Patch

diff --git a/configure b/configure
index 7c2adf36e5..f297a4b68f 100755
--- a/configure
+++ b/configure
@@ -2248,6 +2248,18 @@  if test "$edk2_blobs" = "yes" && ! has bzip2; then
   error_exit "The bzip2 program is required for building QEMU"
 fi
 
+###################################
+# SLOF is mandatory for the pSeries
+for target in $target_list; do
+  case $target in
+    ppc64-softmmu)
+      if test -e "${source_path}/.git" ; then
+          git_submodules="${git_submodules} roms/SLOF"
+      fi
+    ;;
+  esac
+done
+
 feature_not_found() {
   feature=$1
   remedy=$2
diff --git a/.travis.yml b/.travis.yml
index ec6367af1f..220855c1f0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -496,7 +496,6 @@  jobs:
         - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user"
         - UNRELIABLE=true
       script:
-        - ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )
         - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
         - |
           if [ "$BUILD_RC" -eq 0 ] ; then