2002-10-16 11:15:52

by Geert Uytterhoeven

[permalink] [raw]
Subject: XFS build error on m68k in 2.5.43


When compiling a kernel for m68k (with CONFIG_XFS_FS=m), I get this error:

| make -f fs/xfs/Makefile
| rm -f fs/xfs/built-in.o; m68k-linux-ar rcs fs/xfs/built-in.o
| m68k-linux-gcc -Wp,-MD,fs/xfs/linux/.xfs_stats.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -fno-strength-reduce -ffixed-a2 -nostdinc -iwithprefix include -DMODULE -Ifs/xfs -funsigned-char -DKBUILD_BASENAME=xfs_stats -c -o fs/xfs/linux/xfs_stats.o fs/xfs/linux/xfs_stats.c
| In file included from fs/xfs/xfs.h:70,
| from fs/xfs/linux/xfs_stats.c:33:
| fs/xfs/xfs_bmap_btree.h:662: badly punctuated parameter list in `#define'
| fs/xfs/xfs_log.h:62: warning: `_lsn_cmp' defined but not used
| make[2]: *** [fs/xfs/linux/xfs_stats.o] Error 1
| make[1]: *** [fs/xfs] Error 2
| make: *** [fs] Error 2

Since it's not obvious to me what's wrong with that define, I'm asking here.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


2002-10-16 11:25:10

by Nikita Danilov

[permalink] [raw]
Subject: Re: XFS build error on m68k in 2.5.43

Geert Uytterhoeven writes:
>
> When compiling a kernel for m68k (with CONFIG_XFS_FS=m), I get this error:
>
> | make -f fs/xfs/Makefile
> | rm -f fs/xfs/built-in.o; m68k-linux-ar rcs fs/xfs/built-in.o
> | m68k-linux-gcc -Wp,-MD,fs/xfs/linux/.xfs_stats.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -fno-strength-reduce -ffixed-a2 -nostdinc -iwithprefix include -DMODULE -Ifs/xfs -funsigned-char -DKBUILD_BASENAME=xfs_stats -c -o fs/xfs/linux/xfs_stats.o fs/xfs/linux/xfs_stats.c
> | In file included from fs/xfs/xfs.h:70,
> | from fs/xfs/linux/xfs_stats.c:33:
> | fs/xfs/xfs_bmap_btree.h:662: badly punctuated parameter list in `#define'
> | fs/xfs/xfs_log.h:62: warning: `_lsn_cmp' defined but not used
> | make[2]: *** [fs/xfs/linux/xfs_stats.o] Error 1
> | make[1]: *** [fs/xfs] Error 2
> | make: *** [fs] Error 2
>
> Since it's not obvious to me what's wrong with that define, I'm asking here.

Second parameter of xfs_bmbt_disk_set_allf is 0 (zero). Try to replace
it with O.

>
> Gr{oetje,eeting}s,
>
> Geert

Nikita.

>

2002-10-16 11:24:44

by Keith Owens

[permalink] [raw]
Subject: Re: XFS build error on m68k in 2.5.43

On Wed, 16 Oct 2002 13:21:39 +0200 (MEST),
Geert Uytterhoeven <[email protected]> wrote:
>
>When compiling a kernel for m68k (with CONFIG_XFS_FS=m), I get this error:
>
>| make -f fs/xfs/Makefile
>| rm -f fs/xfs/built-in.o; m68k-linux-ar rcs fs/xfs/built-in.o
>| m68k-linux-gcc -Wp,-MD,fs/xfs/linux/.xfs_stats.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -fno-strength-reduce -ffixed-a2 -nostdinc -iwithprefix include -DMODULE -Ifs/xfs -funsigned-char -DKBUILD_BASENAME=xfs_stats -c -o fs/xfs/linux/xfs_stats.o fs/xfs/linux/xfs_stats.c
>| In file included from fs/xfs/xfs.h:70,
>| from fs/xfs/linux/xfs_stats.c:33:
>| fs/xfs/xfs_bmap_btree.h:662: badly punctuated parameter list in `#define'
>| fs/xfs/xfs_log.h:62: warning: `_lsn_cmp' defined but not used
>| make[2]: *** [fs/xfs/linux/xfs_stats.o] Error 1
>| make[1]: *** [fs/xfs] Error 2
>| make: *** [fs] Error 2
>
>Since it's not obvious to me what's wrong with that define, I'm asking here.

Spot the typo :(

--- fs/xfs/xfs_bmap_btree.h.orig Wed Oct 16 21:28:36 2002
+++ fs/xfs/xfs_bmap_btree.h Wed Oct 16 21:28:49 2002
@@ -658,8 +658,8 @@
#else
#define xfs_bmbt_disk_set_all(r, s) \
xfs_bmbt_set_all(r, s)
-#define xfs_bmbt_disk_set_allf(r, 0, b, c, v) \
- xfs_bmbt_set_allf(r, 0, b, c, v)
+#define xfs_bmbt_disk_set_allf(r, o, b, c, v) \
+ xfs_bmbt_set_allf(r, o, b, c, v)
#endif

void

2002-10-16 12:02:02

by David Miller

[permalink] [raw]
Subject: Re: XFS build error on m68k in 2.5.43

From: Nikita Danilov <[email protected]>
Date: Wed, 16 Oct 2002 15:31:03 +0400

Second parameter of xfs_bmbt_disk_set_allf is 0 (zero). Try to replace
it with O.

You'll need lots more fixes ever after that, big-endian
is pretty broke with the most recent updates.

Here are the fixes I sent to the XFS maintainers.

--- ./fs/xfs/linux/xfs_globals.c.~1~ Tue Oct 15 22:56:37 2002
+++ ./fs/xfs/linux/xfs_globals.c Tue Oct 15 22:57:18 2002
@@ -64,5 +64,6 @@ EXPORT_SYMBOL(xfs_Gqm);
EXPORT_SYMBOL(xfs_next_bit);
EXPORT_SYMBOL(xfs_contig_bits);
EXPORT_SYMBOL(xfs_bmbt_get_all);
+#if ARCH_CONVERT != ARCH_NOCONVERT
EXPORT_SYMBOL(xfs_bmbt_disk_get_all);
-
+#endif
--- ./fs/xfs/xfs_bmap_btree.h.~1~ Tue Oct 15 22:37:02 2002
+++ ./fs/xfs/xfs_bmap_btree.h Tue Oct 15 22:37:59 2002
@@ -658,8 +658,8 @@ xfs_bmbt_disk_set_allf(
#else
#define xfs_bmbt_disk_set_all(r, s) \
xfs_bmbt_set_all(r, s)
-#define xfs_bmbt_disk_set_allf(r, 0, b, c, v) \
- xfs_bmbt_set_allf(r, 0, b, c, v)
+#define xfs_bmbt_disk_set_allf(r, o, b, c, v) \
+ xfs_bmbt_set_allf(r, o, b, c, v)
#endif

void
--- ./fs/xfs/xfs_inode_item.c.~1~ Tue Oct 15 22:50:14 2002
+++ ./fs/xfs/xfs_inode_item.c Tue Oct 15 22:54:57 2002
@@ -214,7 +214,7 @@ xfs_inode_item_format(
xfs_log_iovec_t *vecp;
xfs_inode_t *ip;
size_t data_bytes;
- xfs_bmbt_rec_t *ext_buffer;
+ xfs_bmbt_rec_32_t *ext_buffer;
int nrecs;
xfs_mount_t *mp;

@@ -340,7 +340,8 @@ xfs_inode_item_format(
KM_SLEEP);
iip->ili_extents_buf = ext_buffer;
vecp->i_addr = (xfs_caddr_t)ext_buffer;
- vecp->i_len = xfs_iextents_copy(ip, ext_buffer,
+ vecp->i_len = xfs_iextents_copy(ip,
+ (xfs_bmbt_rec_64_t *) ext_buffer,
XFS_DATA_FORK);
}
ASSERT(vecp->i_len <= ip->i_df.if_bytes);
--- ./fs/xfs/xfs_inode.c.~1~ Tue Oct 15 22:50:33 2002
+++ ./fs/xfs/xfs_inode.c Tue Oct 15 22:51:15 2002
@@ -602,9 +602,12 @@ xfs_iformat_extents(
int whichfork)
{
xfs_ifork_t *ifp;
- int nex, i;
+ int nex;
int real_size;
int size;
+#if ARCH_CONVERT != ARCH_NOCONVERT
+ int i;
+#endif
xfs_bmbt_rec_t *ep, *dp;

ifp = XFS_IFORK_PTR(ip, whichfork);

2002-10-16 12:10:28

by Steve Lord

[permalink] [raw]
Subject: Re: XFS build error on m68k in 2.5.43

On Wed, 2002-10-16 at 07:00, David S. Miller wrote:
> From: Nikita Danilov <[email protected]>
> Date: Wed, 16 Oct 2002 15:31:03 +0400
>
> Second parameter of xfs_bmbt_disk_set_allf is 0 (zero). Try to replace
> it with O.
>
> You'll need lots more fixes ever after that, big-endian
> is pretty broke with the most recent updates.
>
> Here are the fixes I sent to the XFS maintainers.
>

Thanks Dave, this all looks good, have to see if we a big endian
box around here somewhere in future.

Steve


2002-10-16 16:22:18

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: XFS build error on m68k in 2.5.43

On Wed, 16 Oct 2002, David S. Miller wrote:
> From: Nikita Danilov <[email protected]>
> Date: Wed, 16 Oct 2002 15:31:03 +0400
>
> Second parameter of xfs_bmbt_disk_set_allf is 0 (zero). Try to replace
> it with O.
>
> You'll need lots more fixes ever after that, big-endian
> is pretty broke with the most recent updates.
>
> Here are the fixes I sent to the XFS maintainers.

Thanks!

With these it compiles again on m68k, too.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds