[CALL FOR TESTERS] ReiserFS on non-i386 hardware patch

Jean-Sébastien Pédron jspedron at club-internet.fr
Thu Jun 2 05:38:32 PDT 2005


David O'Brien wrote:
> On Wed, Jun 01, 2005 at 06:33:12PM -0400, Jung-uk Kim wrote:
>
>>The kernel module doesn't load because of an amd64-specific GCC 3.4
>>optimization bug.  To work around:
>>
>>Index: Makefile
>>===================================================================
>>RCS file: /home/ncvs/src/sys/modules/reiserfs/Makefile,v
>>retrieving revision 1.1
>>diff -u -r1.1 Makefile
>>--- Makefile    24 May 2005 12:30:13 -0000      1.1
>>+++ Makefile    1 Jun 2005 22:22:52 -0000
>>@@ -8,4 +8,8 @@
>>        reiserfs_namei.c reiserfs_prints.c reiserfs_stree.c \
>>        reiserfs_vfsops.c reiserfs_vnops.c
>>
>>+.if ${MACHINE_ARCH} == "amd64"
>>+CFLAGS+=       -minline-all-stringops
>>+.endif
>>+
>
> Unfortunately we really don't like to put this type of CFLAGS in non-*.mk
> files.  Since we know the GCC 3.4.2 compiler bugs will be fixed, I
> suggest we just document this issue and be happy that otherwise the code
> is ready to go on FreeBSD/amd64.

Thank you Jung-Ku and David for your feedback.

Olivier Houchard could test it on amd64 too and found another workaround
for this same issue. The problem come from this macro:
#define	INITIALIZE_PATH(var)					\
     struct path var = { ILLEGAL_PATH_ELEMENT_OFFSET, }
where gcc generates a call to memset(). By replacing it with:
#define	INITIALIZE_PATH(var)					\
     struct path var;						\
     bzero(&var);						\
     var.path_length = ILLEGAL_PATH_ELEMENT_OFFSET
it works.

I can add this (in favor of the CFLAGS workaround) and document it. When
a fixed gcc will be in the tree, it'll be removed.

--
Jean-Sébastien Pédron
http://www.dumbbell.fr/

PGP Key: http://www.dumbbell.fr/pgp/pubkey.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-amd64/attachments/20050602/01c437e7/signature.bin


More information about the freebsd-amd64 mailing list