2002-04-15 08:08:00

by Corporal Pisang

[permalink] [raw]
Subject: error compiling 2.5.8

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-


2002-04-15 15:56:56

by Kai Germaschewski

[permalink] [raw]
Subject: Re: error compiling 2.5.8

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;



2002-04-15 16:19:40

by Dave Jones

[permalink] [raw]
Subject: Re: error compiling 2.5.8

> 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