Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 02 Jun 2005 14:38:25 +0200
From:      =?ISO-8859-1?Q?Jean-S=E9bastien_P=E9dron?= <jspedron@club-internet.fr>
To:        obrien@freebsd.org
Cc:        freebsd-ia64@freebsd.org, freebsd-ppc@freebsd.org, freebsd-amd64@freebsd.org, freebsd-alpha@freebsd.org
Subject:   Re: [CALL FOR TESTERS] ReiserFS on non-i386 hardware patch
Message-ID:  <429EFDC1.6040905@club-internet.fr>
In-Reply-To: <20050602082615.GA36096@dragon.NUXI.org>
References:  <429D860A.5000608@club-internet.fr>	<Pine.SOC.4.61.0506011555050.28761@tea.blinkenlights.nl>	<429DFEA1.8000004@club-internet.fr>	<200506011833.12686.jkim@niksun.com> <20050602082615.GA36096@dragon.NUXI.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigC6997053FA7B93B9E39A6752
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

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

--------------enigC6997053FA7B93B9E39A6752
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFCnv3Ja+xGJsFYOlMRAqrpAJ4ze67ysxFGJVNSX5YGdIbTos3tEwCeODRC
GAXpNeLbN2Y3+IvvmxJaLao=
=A2AX
-----END PGP SIGNATURE-----

--------------enigC6997053FA7B93B9E39A6752--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?429EFDC1.6040905>