This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] allow gcc4 as build gcc with linux 2.6.9


  the following patch adds the patches/ directory and files:

	linux-2.6.9/
	linux-2.6.9/kaz-types.patch
	linux-2.6.9/linux-2.6.9-noshared-kconfig.patch

for patching the 2.6.9 kernel source enough to allow it to be compiled
by gcc4.  (gcc4 cannot compile 2.6.8, so if you want to test compile
with gcc4, it *seems* that you'll need to move up to the 2.6.9
kernel.  hence the need for the new 2.6.9/ patch directory.)

  i didn't move over all of the patches from the 2.6.8/ directory,
only enough for my SH3 build to work.  the changes to the two patch
files are fairly trivial to get them to patch cleanly against 2.6.9,
and i'll leave it to others better than i am to bring over the
remaining patch files as they're needed.





diff -Nur crosstool-0.28-rc37.orig/patches/linux-2.6.9/kaz-types.patch crosstool-0.28-rc37/patches/linux-2.6.9/kaz-types.patch
--- crosstool-0.28-rc37.orig/patches/linux-2.6.9/kaz-types.patch	1969-12-31 19:00:00.000000000 -0500
+++ crosstool-0.28-rc37/patches/linux-2.6.9/kaz-types.patch	2004-12-05 07:18:57.000000000 -0500
@@ -0,0 +1,60 @@
+The following fixes an error that occurs when building glibc-2.3.2 (but not glibc-2.2.5) for sh4:
+
+In file included from sys/ustat.h:30,
+                 from ../sysdeps/unix/sysv/linux/ustat.c:21:
+../sysdeps/generic/bits/ustat.h:26: error: redefinition of `struct ustat'
+make[2]: *** [/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/misc/ustat.o] Error 1
+make[2]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2/misc'
+make[1]: *** [misc/subdir_lib] Error 2
+make[1]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2'
+make: *** [all] Error 2
+
+----------- snip ---------------
+
+Date: Fri, 06 Jun 2003 08:00:00 +0900
+From: kaz Kojima <kkojima@rr.iij4u.or.jp>
+Subject: [linux-sh:02770] Re: Compiling glibc-2.3.2 for sh4 fails with "include/asm/user.h:32:
+ error: redefinition of `struct user_fpu_struct'"
+To: linux-sh@m17n.org
+Message-Id: <200306052250.h55Moeb08707@r-rr.iij4u.or.jp>
+
+Hi,
+
+Dan Kegel <dank@kegel.com> wrote:
+> When I try to build glibc-2.3.2 for sh4, it fails with the error
+[snip]
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:32: error: redefinition of `struct user_fpu_struct'
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:39: error: redefinition of `struct user'
+[snip]
+> The error reminds me of the kind of thing fixed by
+> http://www.kegel.com/crossgcc/crosstool-0.4/glibc-2.3.2-patches/sh-user.patch
+
+It seems that the definitions in asm/user.h and the above patch collide.
+I'm not sure why you need this patch, but is it needed for the problem
+about struct ustat that you pointed out in this list, isn't it?
+I found why I don't hit ustat problem - my local kernel tree includes
+the following patch, though I can't recall about it.
+
+Regards,
+	kaz
+--
+diff -u linux-2.5.69-sf-orig/include/linux/types.h /usr/local/sh4-unknown-linux-gnu/include/linux/types.h
+--- linux-2.5.69-sf-orig/include/linux/types.h	Wed Mar  5 12:29:34 2003
++++ sh4-unknown-linux-gnu/include/linux/types.h	Sat Apr 19 10:05:52 2003
+@@ -155,6 +155,7 @@
+
+ #endif /* __KERNEL_STRICT_NAMES */
+
++#ifdef	__KERNEL__
+ /*
+  * Below are truly Linux-specific types that should never collide with
+  * any application/library that wants linux/types.h.
+@@ -166,5 +166,6 @@
+ 	char			f_fname[6];
+ 	char			f_fpack[6];
+ };
++#endif
+
+ #endif /* _LINUX_TYPES_H */
+
+
diff -Nur crosstool-0.28-rc37.orig/patches/linux-2.6.9/linux-2.6.9-noshared-kconfig.patch crosstool-0.28-rc37/patches/linux-2.6.9/linux-2.6.9-noshared-kconfig.patch
--- crosstool-0.28-rc37.orig/patches/linux-2.6.9/linux-2.6.9-noshared-kconfig.patch	1969-12-31 19:00:00.000000000 -0500
+++ crosstool-0.28-rc37/patches/linux-2.6.9/linux-2.6.9-noshared-kconfig.patch	2004-12-05 07:18:57.000000000 -0500
@@ -0,0 +1,28 @@
+Lets you run 'make oldconfig' and 'make menuconfig' on systems
+where shared libraries aren't easy.  (There's no harm in using the
+static version of libkconfig.)
+Idea mentioned by Bertrand Marquis, but this patch is a bit simpler than his.
+
+
+--- linux-2.6.8.1/scripts/kconfig/Makefile.old	2004-09-09 20:30:25.000000000 -0700
++++ linux-2.6.8.1/scripts/kconfig/Makefile	2004-09-09 20:47:51.000000000 -0700
+@@ -68,8 +68,8 @@
+ libkconfig-objs := zconf.tab.o
+
+ hostprogs-y	:= conf mconf qconf gconf
+-conf-objs	:= conf.o  libkconfig.so
+-mconf-objs	:= mconf.o libkconfig.so
++conf-objs	:= conf.o  $(libkconfig-objs)
++mconf-objs	:= mconf.o $(libkconfig-objs)
+
+ ifeq ($(MAKECMDGOALS),xconfig)
+ 	qconf-target := 1
+@@ -88,7 +88,7 @@
+ gconf-objs	:= gconf.o kconfig_load.o
+ endif
+
+-clean-files	:= libkconfig.so lkc_defs.h qconf.moc .tmp_qtcheck \
++clean-files	:= $(libkconfig-objs) lkc_defs.h qconf.moc .tmp_qtcheck \
+ 		   .tmp_gtkcheck zconf.tab.c zconf.tab.h lex.zconf.c
+
+ # generated files seem to need this to find local include files

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]