Hi,
this error also occured in 2.5.8pre2, 2.5.8pre3, and now 2.5.8final.
make[2]: Leaving directory `/usr/src/linux/arch/i386/lib'
make[1]: Leaving directory `/usr/src/linux/arch/i386/lib'
ld -m elf_i386 -T /usr/src/linux/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \
--start-group \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
/usr/src/linux/arch/i386/lib/lib.a /usr/src/linux/lib/lib.a /usr/src/linux/arch/i386/lib/lib.a \
drivers/parport/driver.o drivers/base/base.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/char/agp/agp.o drivers/char/drm/drm.o drivers/net/appletalk/appletalk.o drivers/ide/idedriver.o drivers/scsi/scsidrv.o drivers/cdrom/driver.o drivers/pci/driver.o drivers/pnp/pnp.o drivers/video/video.o drivers/usb/usbdrv.o drivers/input/inputdrv.o drivers/input/gameport/gamedrv.o drivers/input/serio/seriodrv.o \
net/network.o \
--end-group \
-o vmlinux
init/main.o: In function `start_kernel':
init/main.o(.text.init+0x675): undefined reference to `setup_per_cpu_areas'
make: *** [vmlinux] Error 1
Regards,
-Ubaida-
On Mon, 15 Apr 2002, Corporal Pisang wrote:
> this error also occured in 2.5.8pre2, 2.5.8pre3, and now 2.5.8final.
> init/main.o(.text.init+0x675): undefined reference to `setup_per_cpu_areas'
Some patches I needed to get 2.5.8 to compile are appended. They'll fix
the issue above.
--Kai
Pull from http://linux-isdn.bkbits.net/linux-2.5.misc
(Merging changesets omitted for clarity)
-----------------------------------------------------------------------------
[email protected], 2002-04-14 20:29:44-05:00, [email protected]
Fix setup_per_pcu_areas() for UP compile
For !CONFIG_SMP we want the empty inline setup_per_cpu_areas().
If CONFIG_SMP is set, we never want the empty inline. If we use the
generic implementation, we have it here, if not the arch has it somwhere
else (hopefully).
----------------------------------------------------------------------------
main.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
-----------------------------------------------------------------------------
[email protected], 2002-04-14 20:31:09-05:00, [email protected]
Avoid a compile-time warning in bluesmoke.c
(intel_thermal_interrupt() defined but not used)
----------------------------------------------------------------------------
bluesmoke.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
-----------------------------------------------------------------------------
[email protected], 2002-04-14 20:31:37-05:00, [email protected]
Fix neofb.c to use strsep.
----------------------------------------------------------------------------
neofb.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
=============================================================================
unified diffs follow for reference
=============================================================================
-----------------------------------------------------------------------------
[email protected], 2002-04-14 20:29:44-05:00, [email protected]
Fix setup_per_pcu_areas() for UP compile
For !CONFIG_SMP we want the empty inline setup_per_cpu_areas().
If CONFIG_SMP is set, we never want the empty inline. If we use the
generic implementation, we have it here, if not the arch has it somwhere
else (hopefully).
---------------------------------------------------------------------------
diff -Nru a/init/main.c b/init/main.c
--- a/init/main.c Mon Apr 15 10:55:50 2002
+++ b/init/main.c Mon Apr 15 10:55:50 2002
@@ -271,6 +271,10 @@
#define smp_init() do { } while (0)
#endif
+static inline void setup_per_cpu_areas(void)
+{
+}
+
#else
#ifdef __GENERIC_PER_CPU
@@ -294,10 +298,6 @@
__per_cpu_offset[i] = ptr - __per_cpu_start;
memcpy(ptr, __per_cpu_start, size);
}
-}
-#else
-static inline void setup_per_cpu_areas(void)
-{
}
#endif /* !__GENERIC_PER_CPU */
-----------------------------------------------------------------------------
[email protected], 2002-04-14 20:31:09-05:00, [email protected]
Avoid a compile-time warning in bluesmoke.c
(intel_thermal_interrupt() defined but not used)
---------------------------------------------------------------------------
diff -Nru a/arch/i386/kernel/bluesmoke.c b/arch/i386/kernel/bluesmoke.c
--- a/arch/i386/kernel/bluesmoke.c Mon Apr 15 10:55:51 2002
+++ b/arch/i386/kernel/bluesmoke.c Mon Apr 15 10:55:51 2002
@@ -33,9 +33,9 @@
* P4/Xeon Thermal transition interrupt handler
*/
+#ifdef CONFIG_X86_LOCAL_APIC
static void intel_thermal_interrupt(struct pt_regs *regs)
{
-#ifdef CONFIG_X86_LOCAL_APIC
u32 l, h;
unsigned int cpu = smp_processor_id();
@@ -48,8 +48,8 @@
} else {
printk(KERN_INFO "CPU#%d: Temperature/speed normal\n", cpu);
}
-#endif
}
+#endif
static void unexpected_thermal_interrupt(struct pt_regs *regs)
{
-----------------------------------------------------------------------------
[email protected], 2002-04-14 20:31:37-05:00, [email protected]
Fix neofb.c to use strsep.
---------------------------------------------------------------------------
diff -Nru a/drivers/video/neofb.c b/drivers/video/neofb.c
--- a/drivers/video/neofb.c Mon Apr 15 10:55:52 2002
+++ b/drivers/video/neofb.c Mon Apr 15 10:55:52 2002
@@ -2365,7 +2365,7 @@
if (!options || !*options)
return 0;
- for (this_opt=strtok(options,","); this_opt; this_opt=strtok(NULL,","))
+ while ((this_opt = strsep(&options,",")) != NULL)
{
if (!*this_opt) continue;
> Avoid a compile-time warning in bluesmoke.c
> (intel_thermal_interrupt() defined but not used)
I already sent Linus an update for this (and a few other bits),
fixing it in a different way. (CONFIG_MPENTIUM4), although it
should probably be a CONFIG_P4_THERMAL or the likes.
--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs