Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread M. Mohan Kumar
Michael Tokarev m...@tls.msk.ru writes:

 11.06.2013 00:47, Michael Tokarev wrote:
 Or else
 
  ./configure --disable-system --enable-virtfs
 
 (which makes no sense by its own but does not error out)
 will fail to build, because it will define CONFIG_VIRTFS,
 and the makefile will try to build virtfs-proxy-helper
 manpage (but not the executable).

 The build fails in this case in a separate build tree, because
 the fsdev directory is not created and scripts/texi2pod.pl
 will be called with output = fsdev/virtfs-proxy-helper.pod,
 which can't be created because fsdev/ does not exist.


Hi,

I tried ./configure --disable-system --enable-virtfs and make. But didnt
face any build failure. Could you please share your build failure
information? virtfs-proxy-helper.1 is created inside the fsdev folder.

 
 Cc: qemu-triv...@nongnu.org
 Cc: M. Mohan Kumar mo...@in.ibm.com
 Signed-off-by: Michael Tokarev m...@tls.msk.ru
 ---
  configure |2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/configure b/configure
 index a3f0b7a..0ff0380 100755
 --- a/configure
 +++ b/configure
 @@ -3423,6 +3423,8 @@ if test $softmmu = yes ; then
tools=qemu-ga\$(EXESUF) $tools
  fi
fi
 +else
 +  virtfs=no
  fi
  
  # Mac OS X ships with a broken assembler
 




Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread Peter Maydell
On 11 June 2013 10:22, M. Mohan Kumar mo...@in.ibm.com wrote:
 I tried ./configure --disable-system --enable-virtfs and make. But didnt
 face any build failure. Could you please share your build failure
 information? virtfs-proxy-helper.1 is created inside the fsdev folder.

Michael wrote The build fails in this case in a separate build
tree but your configure line suggests you were building inside
the source tree.

thanks
-- PMM



Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread Michael Tokarev
11.06.2013 13:22, M. Mohan Kumar wrote:
 Michael Tokarev m...@tls.msk.ru writes:
 
 11.06.2013 00:47, Michael Tokarev wrote:
 Or else

  ./configure --disable-system --enable-virtfs

 (which makes no sense by its own but does not error out)
 will fail to build, because it will define CONFIG_VIRTFS,
 and the makefile will try to build virtfs-proxy-helper
 manpage (but not the executable).

 The build fails in this case in a separate build tree, because
^
 the fsdev directory is not created and scripts/texi2pod.pl
 will be called with output = fsdev/virtfs-proxy-helper.pod,
 which can't be created because fsdev/ does not exist.

 
 Hi,
 
 I tried ./configure --disable-system --enable-virtfs and make. But didnt
 face any build failure. Could you please share your build failure
 information? virtfs-proxy-helper.1 is created inside the fsdev folder.

Well, it shouldn't be created to start with ;)

But the key component to this is to build in a separate
subdir:

 mkdir build
 cd build
 ../configure --disable-system --enable-virtfs
 make

this will fail.

It succeeds when run in the source tree because there,
fsdev/ dir does exist.  But in a separate build dir,
when system targets aren't enabled, it isn't created.

Thanks,

/mjt



Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread Michael Tokarev
11.06.2013 01:45, Peter Maydell wrote:
 On 10 June 2013 21:47, Michael Tokarev m...@tls.msk.ru wrote:
 Or else

  ./configure --disable-system --enable-virtfs

 (which makes no sense by its own but does not error out)
 will fail to build, because it will define CONFIG_VIRTFS,
 and the makefile will try to build virtfs-proxy-helper
 manpage (but not the executable).

 Cc: qemu-triv...@nongnu.org
 Cc: M. Mohan Kumar mo...@in.ibm.com
 Signed-off-by: Michael Tokarev m...@tls.msk.ru
 ---
  configure |2 ++
  1 file changed, 2 insertions(+)

 diff --git a/configure b/configure
 index a3f0b7a..0ff0380 100755
 --- a/configure
 +++ b/configure
 @@ -3423,6 +3423,8 @@ if test $softmmu = yes ; then
tools=qemu-ga\$(EXESUF) $tools
  fi
fi
 +else
 +  virtfs=no
  fi
 
 This doesn't feel to me like it's quite the right way
 to fix this bug. The current code in configure seems
 to tangle up (a) was virtfs requested and can we do it?
 with (b) what do we need to do if it was? (build some
 extra tools) and (c) when does it make sense? not for
 linux-user targets. So you end up with an 'else virtfs=no'
 clause added in an odd place. If the mess was untangled
 then this probably wouldn't be necessary.

Um. I don't think that tangling is a bad thing really.
Having different variables or options for it will be
too bloated, in my opinion.  I don't think there should
be anything done with it.

How about something like this:

--- a/configure
+++ b/configure
@@ -3810,7 +3810,7 @@ fi
 if test $libattr = yes ; then
   echo CONFIG_LIBATTR=y  $config_host_mak
 fi
-if test $virtfs = yes ; then
+if test $virtfs = yes  test $target_softmmu = yes ; then
   echo CONFIG_VIRTFS=y  $config_host_mak
 fi
 if test $vhost_scsi = yes ; then

(BTW, why configure uses this test instead of more readable [ ] ? )

 Also, disabling building tools and docs in general seems
 broken: --disable-tools disables building qemu-img, for
 instance, but not its documentation. So maybe we should
 fix this by generally making sure we don't build the docs
 unless we build the tool as well.

This has been addressed by a separate patch sent by afaerber.

Thanks,

/mjt



Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread Peter Maydell
On 11 June 2013 13:29, Michael Tokarev m...@tls.msk.ru wrote:
 11.06.2013 01:45, Peter Maydell wrote:
 This doesn't feel to me like it's quite the right way
 to fix this bug. The current code in configure seems
 to tangle up (a) was virtfs requested and can we do it?
 with (b) what do we need to do if it was? (build some
 extra tools) and (c) when does it make sense? not for
 linux-user targets. So you end up with an 'else virtfs=no'
 clause added in an odd place. If the mess was untangled
 then this probably wouldn't be necessary.

 Um. I don't think that tangling is a bad thing really.
 Having different variables or options for it will be
 too bloated, in my opinion.  I don't think there should
 be anything done with it.

I don't want more variables. I just don't think we
should have if not softmmu then do some other thing;
just check for whether the user asked for virtfs and
we can do it, and if so set virtfs=yes.

 How about something like this:

 --- a/configure
 +++ b/configure
 @@ -3810,7 +3810,7 @@ fi
  if test $libattr = yes ; then
echo CONFIG_LIBATTR=y  $config_host_mak
  fi
 -if test $virtfs = yes ; then
 +if test $virtfs = yes  test $target_softmmu = yes ; then
echo CONFIG_VIRTFS=y  $config_host_mak
  fi

This seems like a step backwards to me. virtfs=yes should
just translate straight to CONFIG_VIRTFS and the makefile
should just not care if it's set if we happen not to be
building anything virtfs related.

 Also, disabling building tools and docs in general seems
 broken: --disable-tools disables building qemu-img, for
 instance, but not its documentation. So maybe we should
 fix this by generally making sure we don't build the docs
 unless we build the tool as well.

 This has been addressed by a separate patch sent by afaerber.

That patch didn't touch anything virtfs proxy related.

thanks
-- PMM



Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread M. Mohan Kumar
Peter Maydell peter.mayd...@linaro.org writes:

How about this approach?

[PATCH] configure: Disable virtfs if softmmu not enabled

Signed-off-by: M. Mohan Kumar mo...@in.ibm.com
---
 configure | 11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 1654413..88c2b0f 100755
--- a/configure
+++ b/configure
@@ -3404,8 +3404,9 @@ if test $want_tools = yes ; then
 tools=qemu-nbd\$(EXESUF) $tools
   fi
 fi
-if test $softmmu = yes ; then
-  if test $virtfs != no ; then
+
+if test $virtfs != no ; then
+  if test $softmmu = yes ; then
 if test $cap = yes  test $linux = yes  test $attr = yes ; then
   virtfs=yes
   tools=$tools fsdev/virtfs-proxy-helper\$(EXESUF)
@@ -3415,6 +3416,12 @@ if test $softmmu = yes ; then
   fi
   virtfs=no
 fi
+  else
+if test $virtfs = yes; then
+  error_exit VirtFS is supported only on Linux and requires softmmu
+else
+ virtfs=no
+fi
   fi
   if [ $linux = yes -o $bsd = yes -o $solaris = yes ] ; then
 if [ $guest_agent = yes ]; then
-- 
1.7.11.7

Tested with following configure options

$ ./configure '--target-list=x86_64-linux-user' --disable-system
[snip]
VirtFS supportno

$ ./configure '--target-list=x86_64-linux-user' --disable-system --enable-virtfs

ERROR: VirtFS is supported only on Linux and requires softmmu

$ ./configure '--target-list=x86_64-softmmu' --enable-virtfs
[snip]
VirtFS supportyes

$ ./configure '--target-list=x86_64-softmmu'
VirtFS supportyes



 On 11 June 2013 13:29, Michael Tokarev m...@tls.msk.ru wrote:
 11.06.2013 01:45, Peter Maydell wrote:
 This doesn't feel to me like it's quite the right way
 to fix this bug. The current code in configure seems
 to tangle up (a) was virtfs requested and can we do it?
 with (b) what do we need to do if it was? (build some
 extra tools) and (c) when does it make sense? not for
 linux-user targets. So you end up with an 'else virtfs=no'
 clause added in an odd place. If the mess was untangled
 then this probably wouldn't be necessary.

 Um. I don't think that tangling is a bad thing really.
 Having different variables or options for it will be
 too bloated, in my opinion.  I don't think there should
 be anything done with it.

 I don't want more variables. I just don't think we
 should have if not softmmu then do some other thing;
 just check for whether the user asked for virtfs and
 we can do it, and if so set virtfs=yes.

 How about something like this:

 --- a/configure
 +++ b/configure
 @@ -3810,7 +3810,7 @@ fi
  if test $libattr = yes ; then
echo CONFIG_LIBATTR=y  $config_host_mak
  fi
 -if test $virtfs = yes ; then
 +if test $virtfs = yes  test $target_softmmu = yes ; then
echo CONFIG_VIRTFS=y  $config_host_mak
  fi

 This seems like a step backwards to me. virtfs=yes should
 just translate straight to CONFIG_VIRTFS and the makefile
 should just not care if it's set if we happen not to be
 building anything virtfs related.

 Also, disabling building tools and docs in general seems
 broken: --disable-tools disables building qemu-img, for
 instance, but not its documentation. So maybe we should
 fix this by generally making sure we don't build the docs
 unless we build the tool as well.

 This has been addressed by a separate patch sent by afaerber.

 That patch didn't touch anything virtfs proxy related.

 thanks
 -- PMM




Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread Michael Tokarev
11.06.2013 21:23, M. Mohan Kumar wrote:
 Peter Maydell peter.mayd...@linaro.org writes:
 
 How about this approach?

Well, this is definitely wrong :)

 -if test $softmmu = yes ; then
 -  if test $virtfs != no ; then
 +
 +if test $virtfs != no ; then
 +  if test $softmmu = yes ; then
  if test $cap = yes  test $linux = yes  test $attr = yes ; then
virtfs=yes
tools=$tools fsdev/virtfs-proxy-helper\$(EXESUF)
 @@ -3415,6 +3416,12 @@ if test $softmmu = yes ; then
fi
virtfs=no
  fi
 +  else
 +if test $virtfs = yes; then
 +  error_exit VirtFS is supported only on Linux and requires softmmu
 +else
 + virtfs=no
 +fi
fi
if [ $linux = yes -o $bsd = yes -o $solaris = yes ] ; then
  if [ $guest_agent = yes ]; then

Now this if [ $linux... test is only checked
if $virtfs != no.  Before, it was checked when
$softmmu != no...

FWIW, I still don't understand what Peter Maydell dislikes
in a simplest case I posted initially, where we merely ignore
(disable) virtfs in case !softmmu.  We should probably do the
same for alot of other features which makes sense only if
softmmu==yes, and omit many configure tests which are still
done even if softmmu is disabled, but that's a different
patch for sure.  Maube we should separate out this last linux|bsd|solaris
test and add another if softmmu there, for readability, so that
disabling of virtfs will be closer to other virtfs tests.

I applied my initial patch to our debian tree to fix build
failure for now, because else it fails during build.

Thanks,

/mjt




Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread Peter Maydell
On 11 June 2013 19:19, Michael Tokarev m...@tls.msk.ru wrote:
 FWIW, I still don't understand what Peter Maydell dislikes
 in a simplest case I posted initially, where we merely ignore
 (disable) virtfs in case !softmmu.

It just seems to me that rather than fixing a bug in the
makefile (it still tries to build docs for the tools even
when the tools aren't being built) you're trying to tweak
the configure script to avoid generating the combinations
of config values that trigger the makefile bug.

-- PMM



Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread Michael Tokarev
11.06.2013 23:21, Peter Maydell пишет:
 On 11 June 2013 19:19, Michael Tokarev m...@tls.msk.ru wrote:
 FWIW, I still don't understand what Peter Maydell dislikes
 in a simplest case I posted initially, where we merely ignore
 (disable) virtfs in case !softmmu.
 
 It just seems to me that rather than fixing a bug in the
 makefile (it still tries to build docs for the tools even
 when the tools aren't being built) you're trying to tweak
 the configure script to avoid generating the combinations
 of config values that trigger the makefile bug.

Heh. It is just easier to not generate the config variable
than to use more complex conditions.  How about this:

--- a/Makefile
+++ b/Makefile
@@ -66,7 +66,7 @@ HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF)

 ifdef BUILD_DOCS
 DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 
QMP/qmp-commands.txt
-ifdef CONFIG_VIRTFS
+ifeq ($(CONFIG_VIRTFS)$(CONFIG_SOFTMMU),yy)
 DOCS+=fsdev/virtfs-proxy-helper.1
 endif
 else
@@ -313,7 +313,7 @@ ifneq ($(TOOLS),)
$(INSTALL_DATA) qemu-nbd.8 $(DESTDIR)$(mandir)/man8
 endif
 endif
-ifdef CONFIG_VIRTFS
+ifeq ($(CONFIG_VIRTFS)$(CONFIG_SOFTMMU),yy)
$(INSTALL_DIR) $(DESTDIR)$(mandir)/man1
$(INSTALL_DATA) fsdev/virtfs-proxy-helper.1 $(DESTDIR)$(mandir)/man1
 endif




Or this:

--- a/Makefile
+++ b/Makefile
@@ -64,6 +64,10 @@ LIBS+=-lz $(LIBS_TOOLS)

 HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF)

+ifneq ($(CONFIG_SOFTMMU),y)
+CONFIG_VIRTFS :=
+endif
+
 ifdef BUILD_DOCS
 DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 
QMP/qmp-commands.txt
 ifdef CONFIG_VIRTFS



Or this:

--- a/Makefile
+++ b/Makefile
@@ -64,9 +64,13 @@ LIBS+=-lz $(LIBS_TOOLS)

 HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF)

+ifeq ($(CONFIG_VIRTFS)$(CONFIG_SOFTMMU),yy)
+VIRTFS_DOCS = y
+endif
+
 ifdef BUILD_DOCS
 DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 
QMP/qmp-commands.txt
-ifdef CONFIG_VIRTFS
+ifdef VIRTFS_DOCS
 DOCS+=fsdev/virtfs-proxy-helper.1
 endif
 else
@@ -313,7 +317,7 @@ ifneq ($(TOOLS),)
$(INSTALL_DATA) qemu-nbd.8 $(DESTDIR)$(mandir)/man8
 endif
 endif
-ifdef CONFIG_VIRTFS
+ifdef VIRTFS_DOCS
$(INSTALL_DIR) $(DESTDIR)$(mandir)/man1
$(INSTALL_DATA) fsdev/virtfs-proxy-helper.1 $(DESTDIR)$(mandir)/man1
 endif


I don't care any way ;)

But all that is more verbose than just turning the feature
off in ./configure.

Thanks,

/mjt



Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-11 Thread M. Mohan Kumar
Michael Tokarev m...@tls.msk.ru writes:

 11.06.2013 21:23, M. Mohan Kumar wrote:
 Peter Maydell peter.mayd...@linaro.org writes:
 
 How about this approach?

 Well, this is definitely wrong :)

 -if test $softmmu = yes ; then
 -  if test $virtfs != no ; then
 +
 +if test $virtfs != no ; then
 +  if test $softmmu = yes ; then
  if test $cap = yes  test $linux = yes  test $attr = yes ; then
virtfs=yes
tools=$tools fsdev/virtfs-proxy-helper\$(EXESUF)
 @@ -3415,6 +3416,12 @@ if test $softmmu = yes ; then
fi
virtfs=no
  fi
 +  else
 +if test $virtfs = yes; then
 +  error_exit VirtFS is supported only on Linux and requires softmmu
 +else
 + virtfs=no
 +fi
fi
if [ $linux = yes -o $bsd = yes -o $solaris = yes ] ; then
  if [ $guest_agent = yes ]; then

 Now this if [ $linux... test is only checked
 if $virtfs != no.  Before, it was checked when
 $softmmu != no...
My bad :(, I missed check for guest_agent inside softmmu case.


 FWIW, I still don't understand what Peter Maydell dislikes
 in a simplest case I posted initially, where we merely ignore
 (disable) virtfs in case !softmmu.  We should probably do the
 same for alot of other features which makes sense only if
 softmmu==yes, and omit many configure tests which are still
 done even if softmmu is disabled, but that's a different
 patch for sure.  Maube we should separate out this last linux|bsd|solaris
 test and add another if softmmu there, for readability, so that
 disabling of virtfs will be closer to other virtfs tests.

 I applied my initial patch to our debian tree to fix build
 failure for now, because else it fails during build.

 Thanks,

 /mjt




Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-10 Thread Michael Tokarev
11.06.2013 00:47, Michael Tokarev wrote:
 Or else
 
  ./configure --disable-system --enable-virtfs
 
 (which makes no sense by its own but does not error out)
 will fail to build, because it will define CONFIG_VIRTFS,
 and the makefile will try to build virtfs-proxy-helper
 manpage (but not the executable).

The build fails in this case in a separate build tree, because
the fsdev directory is not created and scripts/texi2pod.pl
will be called with output = fsdev/virtfs-proxy-helper.pod,
which can't be created because fsdev/ does not exist.

 
 Cc: qemu-triv...@nongnu.org
 Cc: M. Mohan Kumar mo...@in.ibm.com
 Signed-off-by: Michael Tokarev m...@tls.msk.ru
 ---
  configure |2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/configure b/configure
 index a3f0b7a..0ff0380 100755
 --- a/configure
 +++ b/configure
 @@ -3423,6 +3423,8 @@ if test $softmmu = yes ; then
tools=qemu-ga\$(EXESUF) $tools
  fi
fi
 +else
 +  virtfs=no
  fi
  
  # Mac OS X ships with a broken assembler
 




Re: [Qemu-devel] [PATCH trivial] configure: explicitly disable virtfs if softmmu=no

2013-06-10 Thread Peter Maydell
On 10 June 2013 21:47, Michael Tokarev m...@tls.msk.ru wrote:
 Or else

  ./configure --disable-system --enable-virtfs

 (which makes no sense by its own but does not error out)
 will fail to build, because it will define CONFIG_VIRTFS,
 and the makefile will try to build virtfs-proxy-helper
 manpage (but not the executable).

 Cc: qemu-triv...@nongnu.org
 Cc: M. Mohan Kumar mo...@in.ibm.com
 Signed-off-by: Michael Tokarev m...@tls.msk.ru
 ---
  configure |2 ++
  1 file changed, 2 insertions(+)

 diff --git a/configure b/configure
 index a3f0b7a..0ff0380 100755
 --- a/configure
 +++ b/configure
 @@ -3423,6 +3423,8 @@ if test $softmmu = yes ; then
tools=qemu-ga\$(EXESUF) $tools
  fi
fi
 +else
 +  virtfs=no
  fi

This doesn't feel to me like it's quite the right way
to fix this bug. The current code in configure seems
to tangle up (a) was virtfs requested and can we do it?
with (b) what do we need to do if it was? (build some
extra tools) and (c) when does it make sense? not for
linux-user targets. So you end up with an 'else virtfs=no'
clause added in an odd place. If the mess was untangled
then this probably wouldn't be necessary.

Also, disabling building tools and docs in general seems
broken: --disable-tools disables building qemu-img, for
instance, but not its documentation. So maybe we should
fix this by generally making sure we don't build the docs
unless we build the tool as well.

thanks
-- PMM