[PATCH] reiserfs gcc alias bug only on ppc32

Anton Blanchard (anton@samba.org)
Thu, 15 Nov 2001 20:13:40 +1100


Hi,

The workaround in reiserfs for a gcc bug in some ppc32 compilers does
not affect the ppc64 compiler. A quick test to see stack usage for both
options shows:

gcc -O1
reiserfs_delete_solid_item: 976
reiserfs_rename: 960
reiserfs_cut_from_item: 880

gcc -O2
reiserfs_rename: 1008
reiserfs_delete_solid_item: 976
reiserfs_cut_from_item: 896

So there is no reason to compile reiserfs using -O1 on ppc64.

Anton

--- 2.4.15-pre4/fs/reiserfs/Makefile Thu Nov 15 20:06:13 2001
+++ 2.4.15-pre4_work/fs/reiserfs/Makefile Thu Nov 15 20:05:26 2001
@@ -13,13 +13,13 @@

obj-m := $(O_TARGET)

-# gcc -O2 (the kernel default) is overaggressive on ppc when many inline
+# gcc -O2 (the kernel default) is overaggressive on ppc32 when many inline
# functions are used. This causes the compiler to advance the stack
# pointer out of the available stack space, corrupting kernel space,
-# and causing a panic. Since this behavior only affects ppc, this ifeq
+# and causing a panic. Since this behavior only affects ppc32, this ifeq
# will work around it. If any other architecture displays this behavior,
# add it here.
-ifeq ($(shell uname -m),ppc)
+ifeq ($(CONFIG_PPC32),y)
EXTRA_CFLAGS := -O1
endif

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/