Skip to contentSkip to conversation

Build problem introduced in 2.4.22-pre3 -> 2.4.22-pre3-ac1 (+config+analysis)

DISCUSSION Bas Mevissen 2 participants 2 messages Jul 9, 2003

lore
Share & tools
lore
#0 lore raw

Hi Alan, all,

The attached .config fails to build on 2.4.22-pre3-ac1, but builds (and runs) fine on 2.4.22-pre3. The build error (during linkage) is:

(make bzImage)

ld -m elf_i386 -T /usr/src/linux-2.4.22-pre3-ac1/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 \
drivers/acpi/acpi.o drivers/cpufreq/cpufreq.o drivers/char/char.o
drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/char/drm/drm.o
drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/pci/driver.o drivers/net/pcmcia/pcmcia_net.o drivers/net/wireless/wireless_net.o

drivers/pnp/pnp.o drivers/video/video.o drivers/media/media.o \
        net/network.o \
        /usr/src/linux-2.4.22-pre3-ac1/arch/i386/lib/lib.a 
/usr/src/linux-2.4.22-pre3-ac1/lib/lib.a 
/usr/src/linux-2.4.22-pre3-ac1/arch/i386/lib/lib.a \
        --end-group \
        -o vmlinux

arch/i386/kernel/kernel.o(.text.init+0x7dae): In function `setup_ioapic_ids_from_mpc':
: undefined reference to xapic_support' arch/i386/kernel/kernel.o(.text.init+0x7fe5): In function setup_ioapic_ids_from_mpc':
: undefined reference to `xapic_support'
make: *** [vmlinux] Error 1

The symbol xapic_support is defined in arch/i386/kernel/io_apic.c as "extern unsigned int xapic_support;"
But it is declared nowhere. Note that the symbol is new in -ac1.

Quoted 1 line

From comparing the pre3 and pre3-ac1 versions of io_apic.c, I conclude that

this is some unfinished work and not a typo. What probably is missing is some change to another file that should decare (and set) xapic_support.

Sorry for not being able to submit a patch, but I hope my analyses helps.

Regards,

Bas.
(Dell Inspiron 8500 with 2.4.22-pre3)

(Note: I'm not on the list, so please always CC me)

#1 lore raw
Quoted 41 lines · Bas Mevissen

Hi Alan, all,

The attached .config fails to build on 2.4.22-pre3-ac1, but builds (and runs) fine on 2.4.22-pre3. The build error (during linkage) is:

(make bzImage)

ld -m elf_i386 -T /usr/src/linux-2.4.22-pre3-ac1/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 \
drivers/acpi/acpi.o drivers/cpufreq/cpufreq.o drivers/char/char.o
drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/char/drm/drm.o
drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/pci/driver.o drivers/net/pcmcia/pcmcia_net.o drivers/net/wireless/wireless_net.o

drivers/pnp/pnp.o drivers/video/video.o drivers/media/media.o \
        net/network.o \
        /usr/src/linux-2.4.22-pre3-ac1/arch/i386/lib/lib.a 
/usr/src/linux-2.4.22-pre3-ac1/lib/lib.a 
/usr/src/linux-2.4.22-pre3-ac1/arch/i386/lib/lib.a \
        --end-group \
        -o vmlinux

arch/i386/kernel/kernel.o(.text.init+0x7dae): In function `setup_ioapic_ids_from_mpc':
: undefined reference to xapic_support' arch/i386/kernel/kernel.o(.text.init+0x7fe5): In function setup_ioapic_ids_from_mpc':
: undefined reference to `xapic_support'
make: *** [vmlinux] Error 1

The symbol xapic_support is defined in arch/i386/kernel/io_apic.c as "extern unsigned int xapic_support;"
But it is declared nowhere. Note that the symbol is new in -ac1.

Quoted 1 line

From comparing the pre3 and pre3-ac1 versions of io_apic.c, I conclude that

this is some unfinished work and not a typo. What probably is missing is some change to another file that should decare (and set) xapic_support.

Quoted 9 lines

Sorry for not being able to submit a patch, but I hope my analyses helps.

Regards,

Bas.
(Dell Inspiron 8500 with 2.4.22-pre3)

(Note: I'm not on the list, so please always CC me)

Hello Bas,
there is two ways to fix this, you can use the the patch by Steven Cole (I'll attach it).
Or then you untar the 2.4.21 to another dir and download 2.4.21-ac4 patch and patch the new kernel that you just untarred, and then you copy $2.4.21-ac4kerneldir/arch/i386/kernel/mpparse.c to $2.4.22-pre3-ac1kerneldir/arch/i386/kernel/mpparse.c, then it compiles right. Good luck!

Regards

Signature · 1 line
Markus Hästbacka <[email protected]>
arch/i386/kernel/io_apic.c Mon Jul 7 11:25:07 2003 renamed from arch/i386/kernel/io_apic.c.orig Mon Jul 7 11:06:36 2003 +1 -3
@@ -44,7 +44,6 @@
 
 unsigned int int_dest_addr_mode = APIC_DEST_LOGICAL;
 unsigned char int_delivery_mode = dest_LowestPrio;
-extern unsigned int xapic_support;
 
 /*
  * # of IRQ routing registers
@@ -1208,8 +1207,7 @@
                
                old_id = mp_ioapics[apic].mpc_apicid;
 
-               if (!xapic_support && 
-                   (mp_ioapics[apic].mpc_apicid >= apic_broadcast_id)) {
+               if ((mp_ioapics[apic].mpc_apicid >= apic_broadcast_id)) {
                        printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC 

table!...\n",
apic, mp_ioapics[apic].mpc_apicid);
printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
@@ -1223,8 +1221,7 @@
* 'stuck on smp_invalidate_needed IPI wait' messages.
* I/O APIC IDs no longer have any meaning for xAPICs and SAPICs. */
- if (!xapic_support &&
- (clustered_apic_mode != CLUSTERED_APIC_XAPIC) &&
+ if ((clustered_apic_mode != CLUSTERED_APIC_XAPIC) &&

                    (phys_id_present_map & (1 << mp_ioapics[apic].mpc_apicid))) {
                        printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n",
                                apic, mp_ioapics[apic].mpc_apicid);