[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