2004-11-03 19:05:13

by Tom Rini

[permalink] [raw]
Subject: [PATCH 2.6.10-rc1] Fix building of samba userland

Hello. After 2.6.8.1, samba userland would no longer build with current
kernel headers, as it needs some of the samba kernel headers to work,
yet they included <linux/fs.h> outside of __KERNEL__, and after 2.6.9
this was no longer safe, and caused compilation to fail like this:
Compiling client/smbmount.c
In file included from /fdb041101/montavista/foundation/devkit/ppc/74xx/bin/../ta
rget/usr/include/linux/fs.h:19,
from /fdb041101/montavista/foundation/devkit/ppc/74xx/bin/../ta
rget/usr/include/linux/smb_fs.h:15,
from ../source/client/smbmount.c:27:
/fdb041101/montavista/foundation/devkit/ppc/74xx/bin/../target/usr/include/linux
/prio_tree.h:22: error: parse error before "pgoff_t"
/fdb041101/montavista/foundation/devkit/ppc/74xx/bin/../target/usr/include/linux
/prio_tree.h:27: error: parse error before "pgoff_t"
The simple fix is to move <linux/fs.h> down below the __KERNEL__ test.

Signed-off-by: Tom Rini <[email protected]>

--- 1.14/include/linux/smb_fs.h 2003-06-25 16:30:54 -07:00
+++ edited/include/linux/smb_fs.h 2004-11-03 12:00:07 -07:00
@@ -12,7 +12,6 @@
#include <linux/smb.h>
#include <linux/smb_fs_i.h>
#include <linux/smb_fs_sb.h>
-#include <linux/fs.h>

/*
* ioctl commands
@@ -26,6 +25,7 @@

#ifdef __KERNEL__

+#include <linux/fs.h>
#include <linux/pagemap.h>
#include <linux/vmalloc.h>
#include <linux/smb_mount.h>

--
Tom Rini
http://gate.crashing.org/~trini/


2004-11-03 21:03:08

by Chris Wedgwood

[permalink] [raw]
Subject: Re: [PATCH 2.6.10-rc1] Fix building of samba userland

On Wed, Nov 03, 2004 at 12:03:45PM -0700, Tom Rini wrote:

> Hello. After 2.6.8.1, samba userland would no longer build with
> current kernel headers, as it needs some of the samba kernel headers
> to work,

what? the samba userland which i assume is portable and not at all
linux specific needs linux kernel headers?

> +++ edited/include/linux/smb_fs.h 2004-11-03 12:00:07 -07:00
> @@ -12,7 +12,6 @@
> #include <linux/smb.h>
> #include <linux/smb_fs_i.h>
> #include <linux/smb_fs_sb.h>
> -#include <linux/fs.h>
>
> /*
> * ioctl commands
> @@ -26,6 +25,7 @@
>
> #ifdef __KERNEL__
>
> +#include <linux/fs.h>
> #include <linux/pagemap.h>
> #include <linux/vmalloc.h>
> #include <linux/smb_mount.h>

that patch seems harmless enough, but im not sure why it should be
necessary really, i dont see why samba should be including such
headers at all --- it's a bad idea in almost all cases

2004-11-03 21:35:19

by Tom Rini

[permalink] [raw]
Subject: Re: [PATCH 2.6.10-rc1] Fix building of samba userland

On Wed, Nov 03, 2004 at 12:55:48PM -0800, Chris Wedgwood wrote:
> On Wed, Nov 03, 2004 at 12:03:45PM -0700, Tom Rini wrote:
>
> > Hello. After 2.6.8.1, samba userland would no longer build with
> > current kernel headers, as it needs some of the samba kernel headers
> > to work,
>
> what? the samba userland which i assume is portable and not at all
> linux specific needs linux kernel headers?

Portability questions aside (I'm not a Samba person, nor do I play one
on TV), the code in question isn't, as it needs <asm/types.h> and
<linux/smb_fs.h> (if not needs, at least uses as of 3.0.7).

> > +++ edited/include/linux/smb_fs.h 2004-11-03 12:00:07 -07:00
> > @@ -12,7 +12,6 @@
> > #include <linux/smb.h>
> > #include <linux/smb_fs_i.h>
> > #include <linux/smb_fs_sb.h>
> > -#include <linux/fs.h>
> >
> > /*
> > * ioctl commands
> > @@ -26,6 +25,7 @@
> >
> > #ifdef __KERNEL__
> >
> > +#include <linux/fs.h>
> > #include <linux/pagemap.h>
> > #include <linux/vmalloc.h>
> > #include <linux/smb_mount.h>
>
> that patch seems harmless enough, but im not sure why it should be
> necessary really, i dont see why samba should be including such
> headers at all --- it's a bad idea in almost all cases

Digging around a bit, it needs SMB_CASE_DEFAULT (enum) and
SMB_IOC_NEWCONN.

--
Tom Rini
http://gate.crashing.org/~trini/

2004-11-03 21:36:16

by Chris Wedgwood

[permalink] [raw]
Subject: Re: [PATCH 2.6.10-rc1] Fix building of samba userland

On Wed, Nov 03, 2004 at 02:32:10PM -0700, Tom Rini wrote:

> Digging around a bit, it needs SMB_CASE_DEFAULT (enum) and
> SMB_IOC_NEWCONN.

where does this come from for non-Linux platforms?

2004-11-03 21:49:11

by Tom Rini

[permalink] [raw]
Subject: Re: [PATCH 2.6.10-rc1] Fix building of samba userland

On Wed, Nov 03, 2004 at 01:33:03PM -0800, Chris Wedgwood wrote:
> On Wed, Nov 03, 2004 at 02:32:10PM -0700, Tom Rini wrote:
>
> > Digging around a bit, it needs SMB_CASE_DEFAULT (enum) and
> > SMB_IOC_NEWCONN.
>
> where does this come from for non-Linux platforms?

I would guess they don't get 'smbmount'.

--
Tom Rini
http://gate.crashing.org/~trini/

2004-11-03 21:52:32

by Chris Wedgwood

[permalink] [raw]
Subject: Re: [PATCH 2.6.10-rc1] Fix building of samba userland

On Wed, Nov 03, 2004 at 02:42:18PM -0700, Tom Rini wrote:

> I would guess they don't get 'smbmount'.

oh, i didn't realize it was for that... well, yes, that is a tough
one. i wonder why that code doesnt' get merged into Linux's mount(8)
though?