diff mbox

docker: Build in a clean directory

Message ID 1475047892-11955-1-git-send-email-famz@redhat.com
State New
Headers show

Commit Message

Fam Zheng Sept. 28, 2016, 7:31 a.m. UTC
Currently we configure and build under "$QEMU_SRC/tests/docker" which is
dubious, create a fixed directory (to be friendly to ccache) and change
to there before calling build_qemu.

Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/common.rc  | 3 +++
 tests/docker/test-clang | 2 ++
 tests/docker/test-full  | 2 ++
 tests/docker/test-mingw | 2 ++
 tests/docker/test-quick | 2 ++
 5 files changed, 11 insertions(+)

Comments

Markus Armbruster Sept. 28, 2016, 1:47 p.m. UTC | #1
Fam Zheng <famz@redhat.com> writes:

> Currently we configure and build under "$QEMU_SRC/tests/docker" which is
> dubious, create a fixed directory (to be friendly to ccache) and change

Period instead of comma, to help the reader understand where the part
describing the current state ends, and the part describing the change
starts.

> to there before calling build_qemu.
>
> Signed-off-by: Fam Zheng <famz@redhat.com>
Alex Bennée Sept. 28, 2016, 3:24 p.m. UTC | #2
Fam Zheng <famz@redhat.com> writes:

> Currently we configure and build under "$QEMU_SRC/tests/docker" which is
> dubious, create a fixed directory (to be friendly to ccache) and change
> to there before calling build_qemu.
>
> Signed-off-by: Fam Zheng <famz@redhat.com>
> ---
>  tests/docker/common.rc  | 3 +++
>  tests/docker/test-clang | 2 ++
>  tests/docker/test-full  | 2 ++
>  tests/docker/test-mingw | 2 ++
>  tests/docker/test-quick | 2 ++
>  5 files changed, 11 insertions(+)
>
> diff --git a/tests/docker/common.rc b/tests/docker/common.rc
> index 510a3ad..21657e8 100755
> --- a/tests/docker/common.rc
> +++ b/tests/docker/common.rc
> @@ -11,6 +11,9 @@
>  # or (at your option) any later version. See the COPYING file in
>  # the top-level directory.
>
> +BUILD_DIR=/var/tmp/qemu-build
> +mkdir $BUILD_DIR

Is that safe on multi-user machines?

Also should we honour $TMPDIR if set?

> +
>  requires()
>  {
>      for c in $@; do
> diff --git a/tests/docker/test-clang b/tests/docker/test-clang
> index 60e4e97..16485e6 100755
> --- a/tests/docker/test-clang
> +++ b/tests/docker/test-clang
> @@ -15,6 +15,8 @@
>
>  requires clang
>
> +cd "$BUILD_DIR"
> +
>  OPTS="--enable-debug --cxx=clang++ --cc=clang --host-cc=clang"
>  # -fsanitize=undefined is broken on Fedora 23, skip it for now
>  # See also: https://bugzilla.redhat.com/show_bug.cgi?id=1263834
> diff --git a/tests/docker/test-full b/tests/docker/test-full
> index fd9b798..05f0d49 100755
> --- a/tests/docker/test-full
> +++ b/tests/docker/test-full
> @@ -13,5 +13,7 @@
>
>  . common.rc
>
> +cd "$BUILD_DIR"
> +
>  build_qemu
>  make check $MAKEFLAGS
> diff --git a/tests/docker/test-mingw b/tests/docker/test-mingw
> index c03757a..3396876 100755
> --- a/tests/docker/test-mingw
> +++ b/tests/docker/test-mingw
> @@ -15,6 +15,8 @@
>
>  requires mingw dtc
>
> +cd "$BUILD_DIR"
> +
>  for prefix in x86_64-w64-mingw32- i686-w64-mingw32-; do
>      TARGET_LIST=x86_64-softmmu,aarch64-softmmu \
>          build_qemu --cross-prefix=$prefix \
> diff --git a/tests/docker/test-quick b/tests/docker/test-quick
> index 7885dfa..c465dc0 100755
> --- a/tests/docker/test-quick
> +++ b/tests/docker/test-quick
> @@ -13,6 +13,8 @@
>
>  . common.rc
>
> +cd "$BUILD_DIR"
> +
>  DEF_TARGET_LIST="x86_64-softmmu,aarch64-softmmu"
>  TARGET_LIST=${TARGET_LIST:-$DEF_TARGET_LIST} \
>  build_qemu


--
Alex Bennée
Fam Zheng Sept. 29, 2016, 3:46 a.m. UTC | #3
On Wed, 09/28 15:47, Markus Armbruster wrote:
> Fam Zheng <famz@redhat.com> writes:
> 
> > Currently we configure and build under "$QEMU_SRC/tests/docker" which is
> > dubious, create a fixed directory (to be friendly to ccache) and change
> 
> Period instead of comma, to help the reader understand where the part
> describing the current state ends, and the part describing the change
> starts.

Yes! Sorry for the confusion!

Fam

> 
> > to there before calling build_qemu.
> >
> > Signed-off-by: Fam Zheng <famz@redhat.com>
Fam Zheng Sept. 29, 2016, 3:48 a.m. UTC | #4
On Wed, 09/28 16:24, Alex Bennée wrote:
> 
> Fam Zheng <famz@redhat.com> writes:
> 
> > Currently we configure and build under "$QEMU_SRC/tests/docker" which is
> > dubious, create a fixed directory (to be friendly to ccache) and change
> > to there before calling build_qemu.
> >
> > Signed-off-by: Fam Zheng <famz@redhat.com>
> > ---
> >  tests/docker/common.rc  | 3 +++
> >  tests/docker/test-clang | 2 ++
> >  tests/docker/test-full  | 2 ++
> >  tests/docker/test-mingw | 2 ++
> >  tests/docker/test-quick | 2 ++
> >  5 files changed, 11 insertions(+)
> >
> > diff --git a/tests/docker/common.rc b/tests/docker/common.rc
> > index 510a3ad..21657e8 100755
> > --- a/tests/docker/common.rc
> > +++ b/tests/docker/common.rc
> > @@ -11,6 +11,9 @@
> >  # or (at your option) any later version. See the COPYING file in
> >  # the top-level directory.
> >
> > +BUILD_DIR=/var/tmp/qemu-build
> > +mkdir $BUILD_DIR
> 
> Is that safe on multi-user machines?
> 
> Also should we honour $TMPDIR if set?

It's not, but containers are not multi-user, at least not here in QEMU docker
testing. We already use a fixed directory before this change, which is
$QEMU_SRC/tests/docker, so this patch is not making it worse.

And we know $TMPDIR is not set, too.

Fam

> 
> > +
> >  requires()
> >  {
> >      for c in $@; do
> > diff --git a/tests/docker/test-clang b/tests/docker/test-clang
> > index 60e4e97..16485e6 100755
> > --- a/tests/docker/test-clang
> > +++ b/tests/docker/test-clang
> > @@ -15,6 +15,8 @@
> >
> >  requires clang
> >
> > +cd "$BUILD_DIR"
> > +
> >  OPTS="--enable-debug --cxx=clang++ --cc=clang --host-cc=clang"
> >  # -fsanitize=undefined is broken on Fedora 23, skip it for now
> >  # See also: https://bugzilla.redhat.com/show_bug.cgi?id=1263834
> > diff --git a/tests/docker/test-full b/tests/docker/test-full
> > index fd9b798..05f0d49 100755
> > --- a/tests/docker/test-full
> > +++ b/tests/docker/test-full
> > @@ -13,5 +13,7 @@
> >
> >  . common.rc
> >
> > +cd "$BUILD_DIR"
> > +
> >  build_qemu
> >  make check $MAKEFLAGS
> > diff --git a/tests/docker/test-mingw b/tests/docker/test-mingw
> > index c03757a..3396876 100755
> > --- a/tests/docker/test-mingw
> > +++ b/tests/docker/test-mingw
> > @@ -15,6 +15,8 @@
> >
> >  requires mingw dtc
> >
> > +cd "$BUILD_DIR"
> > +
> >  for prefix in x86_64-w64-mingw32- i686-w64-mingw32-; do
> >      TARGET_LIST=x86_64-softmmu,aarch64-softmmu \
> >          build_qemu --cross-prefix=$prefix \
> > diff --git a/tests/docker/test-quick b/tests/docker/test-quick
> > index 7885dfa..c465dc0 100755
> > --- a/tests/docker/test-quick
> > +++ b/tests/docker/test-quick
> > @@ -13,6 +13,8 @@
> >
> >  . common.rc
> >
> > +cd "$BUILD_DIR"
> > +
> >  DEF_TARGET_LIST="x86_64-softmmu,aarch64-softmmu"
> >  TARGET_LIST=${TARGET_LIST:-$DEF_TARGET_LIST} \
> >  build_qemu
> 
> 
> --
> Alex Bennée
diff mbox

Patch

diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 510a3ad..21657e8 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -11,6 +11,9 @@ 
 # or (at your option) any later version. See the COPYING file in
 # the top-level directory.
 
+BUILD_DIR=/var/tmp/qemu-build
+mkdir $BUILD_DIR
+
 requires()
 {
     for c in $@; do
diff --git a/tests/docker/test-clang b/tests/docker/test-clang
index 60e4e97..16485e6 100755
--- a/tests/docker/test-clang
+++ b/tests/docker/test-clang
@@ -15,6 +15,8 @@ 
 
 requires clang
 
+cd "$BUILD_DIR"
+
 OPTS="--enable-debug --cxx=clang++ --cc=clang --host-cc=clang"
 # -fsanitize=undefined is broken on Fedora 23, skip it for now
 # See also: https://bugzilla.redhat.com/show_bug.cgi?id=1263834
diff --git a/tests/docker/test-full b/tests/docker/test-full
index fd9b798..05f0d49 100755
--- a/tests/docker/test-full
+++ b/tests/docker/test-full
@@ -13,5 +13,7 @@ 
 
 . common.rc
 
+cd "$BUILD_DIR"
+
 build_qemu
 make check $MAKEFLAGS
diff --git a/tests/docker/test-mingw b/tests/docker/test-mingw
index c03757a..3396876 100755
--- a/tests/docker/test-mingw
+++ b/tests/docker/test-mingw
@@ -15,6 +15,8 @@ 
 
 requires mingw dtc
 
+cd "$BUILD_DIR"
+
 for prefix in x86_64-w64-mingw32- i686-w64-mingw32-; do
     TARGET_LIST=x86_64-softmmu,aarch64-softmmu \
         build_qemu --cross-prefix=$prefix \
diff --git a/tests/docker/test-quick b/tests/docker/test-quick
index 7885dfa..c465dc0 100755
--- a/tests/docker/test-quick
+++ b/tests/docker/test-quick
@@ -13,6 +13,8 @@ 
 
 . common.rc
 
+cd "$BUILD_DIR"
+
 DEF_TARGET_LIST="x86_64-softmmu,aarch64-softmmu"
 TARGET_LIST=${TARGET_LIST:-$DEF_TARGET_LIST} \
 build_qemu