On 19/12/2021 15.17, Paolo Bonzini wrote:
> DIRS is used to create the directory in which the LINKS symbolic links
> reside, or to create directories for object files. The former can
> be done directly in the symlinking loop, while the latter is done
> by Meson already, so DIRS is not necessary.
>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> Tested-by: Alex Bennée <alex.bennee@linaro.org>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> configure | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/configure b/configure
> index ba85bbb54b..8ccfe51673 100755
> --- a/configure
> +++ b/configure
> @@ -3762,7 +3762,6 @@ if test "$safe_stack" = "yes"; then
> fi
>
> # If we're using a separate build tree, set it up now.
> -# DIRS are directories which we simply mkdir in the build tree;
> # LINKS are things to symlink back into the source tree
> # (these can be both files and directories).
> # Caution: do not add files or directories here using wildcards. This
> @@ -3774,12 +3773,6 @@ fi
> # UNLINK is used to remove symlinks from older development versions
> # that might get into the way when doing "git update" without doing
> # a "make distclean" in between.
> -DIRS="tests tests/tcg tests/qapi-schema tests/qtest/libqos"
> -DIRS="$DIRS tests/qtest tests/qemu-iotests tests/vm tests/fp tests/qgraph"
> -DIRS="$DIRS docs docs/interop fsdev scsi"
> -DIRS="$DIRS pc-bios/optionrom pc-bios/s390-ccw"
> -DIRS="$DIRS roms/seabios"
> -DIRS="$DIRS contrib/plugins/"
> LINKS="Makefile"
> LINKS="$LINKS tests/tcg/Makefile.target"
> LINKS="$LINKS pc-bios/optionrom/Makefile"
> @@ -3807,9 +3800,9 @@ for bios_file in \
> do
> LINKS="$LINKS pc-bios/$(basename $bios_file)"
> done
> -mkdir -p $DIRS
> for f in $LINKS ; do
> if [ -e "$source_path/$f" ]; then
> + mkdir -p `dirname ./$f`
> symlink "$source_path/$f" "$f"
> fi
> done
Hi Paolo,
I think this patch created some warnings with fresh build directories on git
checkouts where roms/seabios is not initialized:
.../qemu/configure: line 3778: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3779: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3780: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3781: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3782: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3783: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3784: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3785: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3786: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3787: roms/seabios/config.mak: No such file or
directory
.../qemu/configure: line 3788: roms/seabios/config.mak: No such file or
directory
It's this block in the configure script which now does not find the
roms/seabios directory anymore:
# temporary config to build submodules
for rom in seabios; do
config_mak=roms/$rom/config.mak
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
echo "AS=$as" >> $config_mak
echo "CCAS=$ccas" >> $config_mak
echo "CC=$cc" >> $config_mak
echo "BCC=bcc" >> $config_mak
echo "CPP=$cpp" >> $config_mak
echo "OBJCOPY=objcopy" >> $config_mak
echo "IASL=$iasl" >> $config_mak
echo "LD=$ld" >> $config_mak
echo "RANLIB=$ranlib" >> $config_mak
done
If I get that right, we only need config.mak if the seabios submodule has
been checked out? So the right fix might be to skip the creation of
config.mak here if roms/seabios is not available?
Thomas