linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] virtio tools: build failure
@ 2013-07-10 10:56 Ramkumar Ramachandra
  2013-07-10 10:56 ` [PATCH 1/2] virtio tools: strip bad include-path from Makefile Ramkumar Ramachandra
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-10 10:56 UTC (permalink / raw)
  To: LKML; +Cc: Rusty Russell, Michael S. Tsirkin

Hi,

This is actually a bug report.  As you can see, I tried fixing the
build but failed.  The problem is that the vringh_test target was
added by:

  1515c5c (tools/virtio: add vring_test, 2013-03-20)

but then

  f558a84 (Add missing module license tag to vring helpers, 2013-05-03)

broke the build by adding a MODULE_LICENSE that is undefined for the
purposes of virtio tools.  I tried moving the definition of
MODULE_LICENSE from virtio.h to module.h, but then the build failed
with multiple __MODULE_LICENSE_name declarations.  After trying
several things, I decided to revert f558a84: that builds vringh
successfully.  Unfortunately, vhost_test doesn't build with tons of
errors:

make -C `pwd`/../.. M=`pwd`/vhost_test
make[1]: Entering directory `/home/artagnon/src/linux'
  CC [M]  /home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.o
In file included from /home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.c:1:0:
drivers/vhost/test.c: In function ‘handle_vq’:
drivers/vhost/test.c:41:31: warning: initialization from incompatible pointer type [enabled by default]
  struct vhost_virtqueue *vq = &n->dev.vqs[VHOST_TEST_VQ];
                               ^
drivers/vhost/test.c: In function ‘vhost_test_open’:
drivers/vhost/test.c:112:2: warning: passing argument 2 of ‘vhost_dev_init’ from incompatible pointer type [enabled by default]
  r = vhost_dev_init(dev, n->vqs, VHOST_TEST_VQ_MAX);
  ^
In file included from drivers/vhost/test.c:21:0,
                 from /home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.c:1:
drivers/vhost/vhost.c:283:6: note: expected ‘struct vhost_virtqueue **’ but argument is of type ‘struct vhost_virtqueue *’
 long vhost_dev_init(struct vhost_dev *dev,
      ^
In file included from /home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.c:1:0:
drivers/vhost/test.c: In function ‘vhost_test_flush_vq’:
drivers/vhost/test.c:143:37: error: request for member ‘poll’ in something not a structure or union
  vhost_poll_flush(&n->dev.vqs[index].poll);
                                     ^
drivers/vhost/test.c: In function ‘vhost_test_ioctl’:
drivers/vhost/test.c:271:14: error: ‘VHOST_NET_FEATURES’ undeclared (first use in this function)
   features = VHOST_NET_FEATURES;
              ^
drivers/vhost/test.c:271:14: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [/home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.o] Error 1
make[1]: *** [_module_/home/artagnon/src/linux/tools/virtio/vhost_test] Error 2
make[1]: Leaving directory `/home/artagnon/src/linux'
make: *** [mod] Error 2

I just gave up trying to fix the build, and thought I should atleast
submit a bug report.  Maybe I'm missing something?

Thanks.

Ramkumar Ramachandra (2):
  virtio tools: strip bad include-path from Makefile
  virtio tools: add .gitignore

 tools/virtio/.gitignore | 3 +++
 tools/virtio/Makefile   | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)
 create mode 100644 tools/virtio/.gitignore

-- 
1.8.3.2.736.g869de25


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/2] virtio tools: strip bad include-path from Makefile
  2013-07-10 10:56 [PATCH 0/2] virtio tools: build failure Ramkumar Ramachandra
@ 2013-07-10 10:56 ` Ramkumar Ramachandra
  2013-07-10 12:15   ` Michael S. Tsirkin
  2013-07-10 10:57 ` [PATCH] virtio tools: add .gitignore Ramkumar Ramachandra
  2013-07-10 12:18 ` [PATCH 0/2] virtio tools: build failure Michael S. Tsirkin
  2 siblings, 1 reply; 11+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-10 10:56 UTC (permalink / raw)
  To: LKML; +Cc: Rusty Russell, Michael S. Tsirkin

CFLAGS contains a mysterious "-I ../../usr/include", but no such path
exists in the linux tree.  The line was originally introduced in
4e53f78e (tools/virtio: virtio_test tool, 2010-11-29), but no such path
existed in the tree even then.

Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
 tools/virtio/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/virtio/Makefile b/tools/virtio/Makefile
index 3187c62..53623c6 100644
--- a/tools/virtio/Makefile
+++ b/tools/virtio/Makefile
@@ -3,7 +3,7 @@ test: virtio_test vringh_test
 virtio_test: virtio_ring.o virtio_test.o
 vringh_test: vringh_test.o vringh.o virtio_ring.o
 
-CFLAGS += -g -O2 -Wall -I. -I ../../usr/include/ -Wno-pointer-sign -fno-strict-overflow -fno-strict-aliasing -fno-common -MMD -U_FORTIFY_SOURCE
+CFLAGS += -g -O2 -Wall -I. -Wno-pointer-sign -fno-strict-overflow -fno-strict-aliasing -fno-common -MMD -U_FORTIFY_SOURCE
 vpath %.c ../../drivers/virtio ../../drivers/vhost
 mod:
 	${MAKE} -C `pwd`/../.. M=`pwd`/vhost_test
-- 
1.8.3.2.736.g869de25


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH] virtio tools: add .gitignore
  2013-07-10 10:56 [PATCH 0/2] virtio tools: build failure Ramkumar Ramachandra
  2013-07-10 10:56 ` [PATCH 1/2] virtio tools: strip bad include-path from Makefile Ramkumar Ramachandra
@ 2013-07-10 10:57 ` Ramkumar Ramachandra
  2013-07-10 12:16   ` Michael S. Tsirkin
  2013-07-10 12:18 ` [PATCH 0/2] virtio tools: build failure Michael S. Tsirkin
  2 siblings, 1 reply; 11+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-10 10:57 UTC (permalink / raw)
  To: LKML; +Cc: Rusty Russell, Michael S. Tsirkin

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
 tools/virtio/.gitignore | 3 +++
 1 file changed, 3 insertions(+)
 create mode 100644 tools/virtio/.gitignore

diff --git a/tools/virtio/.gitignore b/tools/virtio/.gitignore
new file mode 100644
index 0000000..1cfbb01
--- /dev/null
+++ b/tools/virtio/.gitignore
@@ -0,0 +1,3 @@
+*.d
+virtio_test
+vringh_test
-- 
1.8.3.2.736.g869de25


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] virtio tools: strip bad include-path from Makefile
  2013-07-10 10:56 ` [PATCH 1/2] virtio tools: strip bad include-path from Makefile Ramkumar Ramachandra
@ 2013-07-10 12:15   ` Michael S. Tsirkin
  2013-07-10 12:20     ` Ramkumar Ramachandra
  0 siblings, 1 reply; 11+ messages in thread
From: Michael S. Tsirkin @ 2013-07-10 12:15 UTC (permalink / raw)
  To: Ramkumar Ramachandra; +Cc: LKML, Rusty Russell

On Wed, Jul 10, 2013 at 04:26:59PM +0530, Ramkumar Ramachandra wrote:
> CFLAGS contains a mysterious "-I ../../usr/include", but no such path
> exists in the linux tree.  The line was originally introduced in
> 4e53f78e (tools/virtio: virtio_test tool, 2010-11-29), but no such path
> existed in the tree even then.
> 
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>

NACK

It exists if you do make headers_install.
So it's handy for old distos where userspace headers don't
exist or are out of date.

> ---
>  tools/virtio/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/virtio/Makefile b/tools/virtio/Makefile
> index 3187c62..53623c6 100644
> --- a/tools/virtio/Makefile
> +++ b/tools/virtio/Makefile
> @@ -3,7 +3,7 @@ test: virtio_test vringh_test
>  virtio_test: virtio_ring.o virtio_test.o
>  vringh_test: vringh_test.o vringh.o virtio_ring.o
>  
> -CFLAGS += -g -O2 -Wall -I. -I ../../usr/include/ -Wno-pointer-sign -fno-strict-overflow -fno-strict-aliasing -fno-common -MMD -U_FORTIFY_SOURCE
> +CFLAGS += -g -O2 -Wall -I. -Wno-pointer-sign -fno-strict-overflow -fno-strict-aliasing -fno-common -MMD -U_FORTIFY_SOURCE
>  vpath %.c ../../drivers/virtio ../../drivers/vhost
>  mod:
>  	${MAKE} -C `pwd`/../.. M=`pwd`/vhost_test
> -- 
> 1.8.3.2.736.g869de25

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] virtio tools: add .gitignore
  2013-07-10 10:57 ` [PATCH] virtio tools: add .gitignore Ramkumar Ramachandra
@ 2013-07-10 12:16   ` Michael S. Tsirkin
  2013-07-11  2:54     ` Rusty Russell
  0 siblings, 1 reply; 11+ messages in thread
From: Michael S. Tsirkin @ 2013-07-10 12:16 UTC (permalink / raw)
  To: Ramkumar Ramachandra; +Cc: LKML, Rusty Russell

On Wed, Jul 10, 2013 at 04:27:00PM +0530, Ramkumar Ramachandra wrote:
> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
> ---

Why not.

Acked-by: Michael S. Tsirkin <mst@redhat.com>

>  tools/virtio/.gitignore | 3 +++
>  1 file changed, 3 insertions(+)
>  create mode 100644 tools/virtio/.gitignore
> 
> diff --git a/tools/virtio/.gitignore b/tools/virtio/.gitignore
> new file mode 100644
> index 0000000..1cfbb01
> --- /dev/null
> +++ b/tools/virtio/.gitignore
> @@ -0,0 +1,3 @@
> +*.d
> +virtio_test
> +vringh_test
> -- 
> 1.8.3.2.736.g869de25

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/2] virtio tools: build failure
  2013-07-10 10:56 [PATCH 0/2] virtio tools: build failure Ramkumar Ramachandra
  2013-07-10 10:56 ` [PATCH 1/2] virtio tools: strip bad include-path from Makefile Ramkumar Ramachandra
  2013-07-10 10:57 ` [PATCH] virtio tools: add .gitignore Ramkumar Ramachandra
@ 2013-07-10 12:18 ` Michael S. Tsirkin
  2 siblings, 0 replies; 11+ messages in thread
From: Michael S. Tsirkin @ 2013-07-10 12:18 UTC (permalink / raw)
  To: Ramkumar Ramachandra; +Cc: LKML, Rusty Russell

On Wed, Jul 10, 2013 at 04:26:58PM +0530, Ramkumar Ramachandra wrote:
> Hi,
> 
> This is actually a bug report.  As you can see, I tried fixing the
> build but failed.  The problem is that the vringh_test target was
> added by:
> 
>   1515c5c (tools/virtio: add vring_test, 2013-03-20)
> 
> but then
> 
>   f558a84 (Add missing module license tag to vring helpers, 2013-05-03)
> 
> broke the build by adding a MODULE_LICENSE that is undefined for the
> purposes of virtio tools.  I tried moving the definition of
> MODULE_LICENSE from virtio.h to module.h, but then the build failed
> with multiple __MODULE_LICENSE_name declarations.  After trying
> several things, I decided to revert f558a84: that builds vringh
> successfully.  Unfortunately, vhost_test doesn't build with tons of
> errors:
> 
> make -C `pwd`/../.. M=`pwd`/vhost_test
> make[1]: Entering directory `/home/artagnon/src/linux'
>   CC [M]  /home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.o
> In file included from /home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.c:1:0:
> drivers/vhost/test.c: In function ‘handle_vq’:
> drivers/vhost/test.c:41:31: warning: initialization from incompatible pointer type [enabled by default]
>   struct vhost_virtqueue *vq = &n->dev.vqs[VHOST_TEST_VQ];
>                                ^
> drivers/vhost/test.c: In function ‘vhost_test_open’:
> drivers/vhost/test.c:112:2: warning: passing argument 2 of ‘vhost_dev_init’ from incompatible pointer type [enabled by default]
>   r = vhost_dev_init(dev, n->vqs, VHOST_TEST_VQ_MAX);
>   ^
> In file included from drivers/vhost/test.c:21:0,
>                  from /home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.c:1:
> drivers/vhost/vhost.c:283:6: note: expected ‘struct vhost_virtqueue **’ but argument is of type ‘struct vhost_virtqueue *’
>  long vhost_dev_init(struct vhost_dev *dev,
>       ^
> In file included from /home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.c:1:0:
> drivers/vhost/test.c: In function ‘vhost_test_flush_vq’:
> drivers/vhost/test.c:143:37: error: request for member ‘poll’ in something not a structure or union
>   vhost_poll_flush(&n->dev.vqs[index].poll);
>                                      ^
> drivers/vhost/test.c: In function ‘vhost_test_ioctl’:
> drivers/vhost/test.c:271:14: error: ‘VHOST_NET_FEATURES’ undeclared (first use in this function)
>    features = VHOST_NET_FEATURES;
>               ^
> drivers/vhost/test.c:271:14: note: each undeclared identifier is reported only once for each function it appears in
> make[2]: *** [/home/artagnon/src/linux/tools/virtio/vhost_test/vhost_test.o] Error 1
> make[1]: *** [_module_/home/artagnon/src/linux/tools/virtio/vhost_test] Error 2
> make[1]: Leaving directory `/home/artagnon/src/linux'
> make: *** [mod] Error 2
> 
> I just gave up trying to fix the build, and thought I should atleast
> submit a bug report.  Maybe I'm missing something?
> 
> Thanks.
> 
> Ramkumar Ramachandra (2):
>   virtio tools: strip bad include-path from Makefile
>   virtio tools: add .gitignore
> 
>  tools/virtio/.gitignore | 3 +++
>  tools/virtio/Makefile   | 2 +-
>  2 files changed, 4 insertions(+), 1 deletion(-)
>  create mode 100644 tools/virtio/.gitignore

Right.  I sent a pull request to Linus which fixes some of these errors,
and Rusty queued fixes for the rest.
So you'll be able to build it again once 3.11-rc1 is out.


> -- 
> 1.8.3.2.736.g869de25

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] virtio tools: strip bad include-path from Makefile
  2013-07-10 12:15   ` Michael S. Tsirkin
@ 2013-07-10 12:20     ` Ramkumar Ramachandra
  2013-07-10 12:42       ` Michael S. Tsirkin
  0 siblings, 1 reply; 11+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-10 12:20 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: LKML, Rusty Russell

Michael S. Tsirkin wrote:
>> CFLAGS contains a mysterious "-I ../../usr/include", but no such path
>> exists in the linux tree.  The line was originally introduced in
>> 4e53f78e (tools/virtio: virtio_test tool, 2010-11-29), but no such path
>> existed in the tree even then.
>
> It exists if you do make headers_install.

I see.  Why do we need these (or userspace headers) when /include
exists in the linux tree though?

> So it's handy for old distos where userspace headers don't
> exist or are out of date.

I thought userspace headers (linux-kernel-headers package in my
distribution) are used for building kernel modules that exist as
independent projects outside the linux tree (?).

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] virtio tools: strip bad include-path from Makefile
  2013-07-10 12:20     ` Ramkumar Ramachandra
@ 2013-07-10 12:42       ` Michael S. Tsirkin
  2013-07-10 13:22         ` Ramkumar Ramachandra
  0 siblings, 1 reply; 11+ messages in thread
From: Michael S. Tsirkin @ 2013-07-10 12:42 UTC (permalink / raw)
  To: Ramkumar Ramachandra; +Cc: LKML, Rusty Russell

On Wed, Jul 10, 2013 at 05:50:04PM +0530, Ramkumar Ramachandra wrote:
> Michael S. Tsirkin wrote:
> >> CFLAGS contains a mysterious "-I ../../usr/include", but no such path
> >> exists in the linux tree.  The line was originally introduced in
> >> 4e53f78e (tools/virtio: virtio_test tool, 2010-11-29), but no such path
> >> existed in the tree even then.
> >
> > It exists if you do make headers_install.
> 
> I see.  Why do we need these (or userspace headers) when /include
> exists in the linux tree though?

This is usespace code so it needs the cleaned-up version from
usr/include, not the internal kernel one.

> > So it's handy for old distos where userspace headers don't
> > exist or are out of date.
> 
> I thought userspace headers (linux-kernel-headers package in my
> distribution) are used for building kernel modules that exist as
> independent projects outside the linux tree (?).

userspace headers are for userspace, not for external modules.
I don't know what does your distro puts in a linux-kernel-headers
package.

-- 
MST

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] virtio tools: strip bad include-path from Makefile
  2013-07-10 12:42       ` Michael S. Tsirkin
@ 2013-07-10 13:22         ` Ramkumar Ramachandra
  2013-07-10 13:26           ` Michael S. Tsirkin
  0 siblings, 1 reply; 11+ messages in thread
From: Ramkumar Ramachandra @ 2013-07-10 13:22 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: LKML, Rusty Russell

Michael S. Tsirkin wrote:
> This is usespace code so it needs the cleaned-up version from
> usr/include, not the internal kernel one.

Right, thanks for clearing that up.  However, it does seem to depend
on some code in /include in the linux tree.  From
tools/virtio/linux/virtio_ring.h:

  #include "../../../include/linux/virtio_ring.h"

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] virtio tools: strip bad include-path from Makefile
  2013-07-10 13:22         ` Ramkumar Ramachandra
@ 2013-07-10 13:26           ` Michael S. Tsirkin
  0 siblings, 0 replies; 11+ messages in thread
From: Michael S. Tsirkin @ 2013-07-10 13:26 UTC (permalink / raw)
  To: Ramkumar Ramachandra; +Cc: LKML, Rusty Russell

On Wed, Jul 10, 2013 at 06:52:09PM +0530, Ramkumar Ramachandra wrote:
> Michael S. Tsirkin wrote:
> > This is usespace code so it needs the cleaned-up version from
> > usr/include, not the internal kernel one.
> 
> Right, thanks for clearing that up.  However, it does seem to depend
> on some code in /include in the linux tree.  From
> tools/virtio/linux/virtio_ring.h:
> 
>   #include "../../../include/linux/virtio_ring.h"

Yes, this is because we take some kernel bits
and compile as userspace. But it's fragile and it only works
for specific headers.

-- 
MST

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] virtio tools: add .gitignore
  2013-07-10 12:16   ` Michael S. Tsirkin
@ 2013-07-11  2:54     ` Rusty Russell
  0 siblings, 0 replies; 11+ messages in thread
From: Rusty Russell @ 2013-07-11  2:54 UTC (permalink / raw)
  To: Michael S. Tsirkin, Ramkumar Ramachandra; +Cc: LKML

"Michael S. Tsirkin" <mst@redhat.com> writes:
> On Wed, Jul 10, 2013 at 04:27:00PM +0530, Ramkumar Ramachandra wrote:
>> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
>> ---
>
> Why not.
>
> Acked-by: Michael S. Tsirkin <mst@redhat.com>

Applied.

Thanks,
Rusty.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-07-11  3:24 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-10 10:56 [PATCH 0/2] virtio tools: build failure Ramkumar Ramachandra
2013-07-10 10:56 ` [PATCH 1/2] virtio tools: strip bad include-path from Makefile Ramkumar Ramachandra
2013-07-10 12:15   ` Michael S. Tsirkin
2013-07-10 12:20     ` Ramkumar Ramachandra
2013-07-10 12:42       ` Michael S. Tsirkin
2013-07-10 13:22         ` Ramkumar Ramachandra
2013-07-10 13:26           ` Michael S. Tsirkin
2013-07-10 10:57 ` [PATCH] virtio tools: add .gitignore Ramkumar Ramachandra
2013-07-10 12:16   ` Michael S. Tsirkin
2013-07-11  2:54     ` Rusty Russell
2013-07-10 12:18 ` [PATCH 0/2] virtio tools: build failure Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).