mbox series

[0/6] Green the msys2 CI make

Message ID 20200902170054.810-1-luoyonggang@gmail.com
Headers show
Series Green the msys2 CI make | expand

Message

罗勇刚(Yonggang Luo) Sept. 2, 2020, 5 p.m. UTC
Also it's fixes two issue about make check

Yonggang Luo (6):
  configure: fixes dtc not cloned when running msys2 CI
  meson: Convert undefsym.sh to undefsym.py
  ci: Install msys2 in a proper way refer to
    https://github.com/cirruslabs/cirrus-ci-docs/issues/699 Enable msys2
    ci in cirrus
  tcg: Fixes dup_const link error
  tests: handling signal on win32 properly
  configure: Fix include and linkage issue on msys2

 .cirrus.yml                         | 23 ++++++++++++
 configure                           | 44 ++++++++++++++--------
 include/tcg/tcg.h                   |  6 +--
 meson.build                         |  2 +-
 scripts/ci/windows/msys2_build.sh   | 35 ++++++++++++++++++
 scripts/ci/windows/msys2_install.sh | 41 +++++++++++++++++++++
 scripts/undefsym.py                 | 57 +++++++++++++++++++++++++++++
 scripts/undefsym.sh                 | 20 ----------
 tcg/tcg-op-gvec.c                   |  2 +-
 tests/test-replication.c            |  4 ++
 10 files changed, 194 insertions(+), 40 deletions(-)
 create mode 100644 scripts/ci/windows/msys2_build.sh
 create mode 100644 scripts/ci/windows/msys2_install.sh
 create mode 100644 scripts/undefsym.py
 delete mode 100755 scripts/undefsym.sh

-- 
2.27.0.windows.1

Comments

罗勇刚(Yonggang Luo) Sept. 2, 2020, 5:06 p.m. UTC | #1
I am OK with that, I just need to this make the CI green, once your patch
upstream, I'll drop this

On Thu, Sep 3, 2020 at 1:05 AM Paolo Bonzini <pbonzini@redhat.com> wrote:

> On 02/09/20 19:00, Yonggang Luo wrote:
> > On msys2, the -I/e/path/to/qemu -L/e/path/to/qemu are not recognized by
> the compiler
> > Cause $PWD are result posix style path such as /e/path/to/qemu that can
> not be recognized
> > by mingw gcc, and `pwd -W` are result Windows style path such as
> E:/path/to/qemu that can
> > be recognized by the mingw gcc. So we replace all $PWD with $build_path
> that can
> > building qemu under msys2/mingw environment.
> >
> > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
>
> I'm dropping this patch in favor of relative -L and -I paths.
>
> Paolo
>
> >  configure | 28 +++++++++++++++++++---------
> >  1 file changed, 19 insertions(+), 9 deletions(-)
> >
> > diff --git a/configure b/configure
> > index 30f8c4db29..5f2bcc4b57 100755
> > --- a/configure
> > +++ b/configure
> > @@ -13,8 +13,13 @@ export CCACHE_RECACHE=yes
> >
> >  # make source path absolute
> >  source_path=$(cd "$(dirname -- "$0")"; pwd)
> > +build_path=$PWD
> > +if [ "$MSYSTEM" = "MINGW64" -o  "$MSYSTEM" = "MINGW32" ]; then
> > +source_path=$(cd "$(dirname -- "$0")"; pwd -W)
> > +build_path=`pwd -W`
> > +fi
> >
> > -if test "$PWD" = "$source_path"
> > +if test "$build_path" = "$source_path"
> >  then
> >      echo "Using './build' as the directory for build output"
> >
> > @@ -346,7 +351,12 @@ ld_has() {
> >      $ld --help 2>/dev/null | grep ".$1" >/dev/null 2>&1
> >  }
> >
> > -if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]";
> > +check_valid_build_path="[[:space:]:]"
> > +if [ "$MSYSTEM" = "MINGW64" -o  "$MSYSTEM" = "MINGW32" ]; then
> > +check_valid_build_path="[[:space:]]"
> > +fi
> > +
> > +if printf %s\\n "$source_path" "$build_path" | grep -q
> "$check_valid_build_path";
> >  then
> >    error_exit "main directory cannot contain spaces nor colons"
> >  fi
> > @@ -943,7 +953,7 @@ Linux)
> >    linux="yes"
> >    linux_user="yes"
> >    kvm="yes"
> > -  QEMU_INCLUDES="-isystem ${source_path}/linux-headers
> -I$PWD/linux-headers $QEMU_INCLUDES"
> > +  QEMU_INCLUDES="-isystem ${source_path}/linux-headers
> -I${build_path}/linux-headers $QEMU_INCLUDES"
> >    libudev="yes"
> >  ;;
> >  esac
> > @@ -4259,7 +4269,7 @@ EOF
> >            fdt=git
> >            mkdir -p dtc
> >            fdt_cflags="-I${source_path}/dtc/libfdt"
> > -          fdt_ldflags="-L$PWD/dtc/libfdt"
> > +          fdt_ldflags="-L${build_path}/dtc/libfdt"
> >            fdt_libs="$fdt_libs"
> >        elif test "$fdt" = "yes" ; then
> >            # Not a git build & no libfdt found, prompt for system install
> > @@ -5244,7 +5254,7 @@ case "$capstone" in
> >      else
> >        LIBCAPSTONE=libcapstone.a
> >      fi
> > -    capstone_libs="-L$PWD/capstone -lcapstone"
> > +    capstone_libs="-L${build_path}/capstone -lcapstone"
> >      capstone_cflags="-I${source_path}/capstone/include"
> >      ;;
> >
> > @@ -6244,8 +6254,8 @@ case "$slirp" in
> >        git_submodules="${git_submodules} slirp"
> >      fi
> >      mkdir -p slirp
> > -    slirp_cflags="-I${source_path}/slirp/src -I$PWD/slirp/src"
> > -    slirp_libs="-L$PWD/slirp -lslirp"
> > +    slirp_cflags="-I${source_path}/slirp/src -I${build_path}/slirp/src"
> > +    slirp_libs="-L${build_path}/slirp -lslirp"
> >      if test "$mingw32" = "yes" ; then
> >        slirp_libs="$slirp_libs -lws2_32 -liphlpapi"
> >      fi
> > @@ -8190,7 +8200,7 @@ fi
> >  mv $cross config-meson.cross
> >
> >  rm -rf meson-private meson-info meson-logs
> > -NINJA=${ninja:-$PWD/ninjatool} $meson setup \
> > +NINJA=${ninja:-${build_path}/ninjatool} $meson setup \
> >          --prefix "${pre_prefix}$prefix" \
> >          --libdir "${pre_prefix}$libdir" \
> >          --libexecdir "${pre_prefix}$libexecdir" \
> > @@ -8212,7 +8222,7 @@ NINJA=${ninja:-$PWD/ninjatool} $meson setup \
> >       -Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg
> -Dvnc_png=$vnc_png \
> >       -Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f\
> >          $cross_arg \
> > -        "$PWD" "$source_path"
> > +        "$build_path" "$source_path"
> >
> >  if test "$?" -ne 0 ; then
> >      error_exit "meson setup failed"
> >
>
>