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] |
Having spent a little while trying to write a script to build a kernel for every supported CPU, I'm kind of fed up with the fragmentation of the linux-2.4 kernel series. To build an arm kernel at all, you have to apply a megapatch, e.g. ftp://ftp.arm.linux.org.uk/pub/armlinux/source/kernel-patches/v2.4/patch-2.4.26-vrs1.bz2 Some of the changes in those patches are innocent, and should really be in the vanilla kernel, like this one, which fixes the error drivers/char/char.o(.text+0x178a4): In function `$a': undefined reference to `get_user'
diff -urN linux-2.4.26/drivers/char/wdt977.c linux-2.4.26-vrs1/drivers/char/wdt977.c --- linux-2.4.26/drivers/char/wdt977.c 2002-11-28 23:53:12.000000000 +0000 +++ linux-2.4.26-vrs1/drivers/char/wdt977.c 2004-01-14 21:32:25.000000000 +0000 @@ -27,6 +27,7 @@ #include <asm/io.h> #include <asm/system.h> #include <asm/mach-types.h> +#include <asm/uaccess.h>
(C'mon, send that to Marcello already.) And then there are the stinkers that make it clear that the arm kernel is a bit of a fork:
diff -urN linux-2.4.26/kernel/Makefile linux-2.4.26-vrs1/kernel/Makefile --- linux-2.4.26/kernel/Makefile 2001-09-17 05:22:40.000000000 +0100 +++ linux-2.4.26-vrs1/kernel/Makefile 2004-01-14 21:32:30.000000000 +0000 @@ -9,16 +9,19 @@
-export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o printk.o +export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o \ + printk.o fork.o cpufreq.o
-obj-y = sched.o dma.o fork.o exec_domain.o panic.o printk.o \ +obj-y = sched.o fork.o exec_domain.o panic.o printk.o \ module.o exit.o itimer.o info.o time.o softirq.o resource.o \ sysctl.o acct.o capability.o ptrace.o timer.o user.o \ signal.o sys.o kmod.o context.o
+obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o obj-$(CONFIG_UID16) += uid16.o obj-$(CONFIG_MODULES) += ksyms.o obj-$(CONFIG_PM) += pm.o +obj-$(CONFIG_CPU_FREQ) += cpufreq.o
ifneq ($(CONFIG_IA64),y) # According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
Note how that gets rid of dma.c. This is because arm has its own private version of dma.c elsewhere, and you can't link a kernel with both. And once you apply this patch, you can't build a kernel for anything but arm.
That's it. I'm giving up on 2.4; it's too fragmented. I suspect 2.6 is a bit more unified. If not, well, it's not in deep freeze mode like 2.4 is, and the forkettes can be fixed. - Dan
-- My technical stuff: http://kegel.com My politics: see http://www.misleader.org for examples of why I'm for regime change
------ 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] |