Re: [reiserfs-list] ReiserFS Oops (2.4.1, deterministic, symlink related)

David Ford
2001-02-03T08:58:36Z

[-- Attachment #1: Type: text/plain, Size: 1374 bytes --]

How about a simple patch to the top level makefile that checks the gcc
version then prints a distinct message ..'this compiler hasn't been approved
for compiling the kernel', sleeping for one second, then continuing on. This
solution doesn't stop compiling and makes a visible indicator without forcing
anything.

Sample attached.

-d

Alan Cox wrote:

> > As it stands, there is no way to determine programatically whether
> > gcc-2.96 is broken or now. The only way to do it is to check the RPM
> > version -- which, needless to say, is a bit difficult to do from the
> > C code about to be compiled. So I can't really blame Hans if he decides
> > to outlaw gcc-2.96[.0] for reiserfs compiles.
>
> Oh I can see why Hans wants to cut down his bug reporting load. I can also
> say from experience it wont work. If you put #error in then everyone will
> mail him and complain it doesnt build, if you put #warning in nobody will
> read it and if you dont put anything in you get the odd bug report anyway.
>
> Basically you can't win and unfortunately a shrink wrap forcing the user
> to read the README file for the kernel violates the GPL ..
>
> Jaded, me ?
>
> Alan

--
There is a natural aristocracy among men. The grounds of this are virtue and talents. Thomas Jefferson
The good thing about standards is that there are so many to choose from. Andrew S. Tanenbaum

[-- Attachment #2: lkml-gccversion.patch --]
[-- Type: text/plain, Size: 961 bytes --]

--- Makefile.orig Sat Feb 3 00:48:26 2001
+++ Makefile Sat Feb 3 00:45:00 2001
@@ -253,11 +253,23 @@
-o vmlinux
$(NM) vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map

-symlinks:
+symlinks: gccversioncheck
rm -f include/asm
( cd include ; ln -sf asm-$(ARCH) asm)
@if [ ! -d include/linux/modules ]; then \
mkdir include/linux/modules; \
+ fi
+
+gccversioncheck:
+ @gccversion=`${HOSTCC} --version`;\
+ echo Using gcc version: $$gccversion;\
+ if [ "x$${gccversion}" != "x2.95.2" ]; then \
+ echo "********************************************************************"; \
+ echo "*** This compiler version is not approved for compiling the kernel"; \
+ echo "*** version: " $$HOSTCC $$gccversion ; \
+ echo "*** Please consider this when reporting bugs" ;\
+ echo "********************************************************************"; \
+ sleep 1; \
fi

oldconfig: symlinks