Opened 4 years ago

Last modified 6 weeks ago

#820 new defect

Changing ninja config from CONFIG_SMP to !CONFIG_SMP and vice versa breaks the build

Reported by: Jakub Jermář Owned by:
Priority: major Milestone: 0.14.2
Component: helenos-build Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

On HelenOS master, running ninja config in a configured build directory and toggling CONFIG_SMP (Support for SMP), results in build errors:

When switching from !CONFIG_SMP to CONFIG_SMP:

5/1645] Linking target kernel/kernel.1.elf
FAILED: kernel/kernel.1.elf 
/usr/local/cross/bin/amd64-helenos-gcc  -o kernel/kernel.1.elf kernel/kernel.1.elf.p/meson-generated_.._empty_map.S.o -Wl,--as-needed -Wl,--no-undefined -Wl,--whole-archive -Wl,--start-group kernel/libinstrumentables.a kernel/libnoninstrumentables.a -Wl,--end-group -Wl,--no-whole-archive -Wl,--gc-sections -Wl,--warn-common -Wl,--fatal-warnings -O3 -fexec-charset=UTF-8 -finput-charset=UTF-8 -Wa,--fatal-warnings -Wall -Wextra -Werror-implicit-function-declaration -Wwrite-strings -Wunknown-pragmas -Wno-unused-parameter -pipe -ffunction-sections -fno-common -fdebug-prefix-map=/home/jermar/software/HelenOS/helenos=. -Wsystem-headers -fvar-tracking-assignments -Werror -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-clobbered -Wno-nonnull-compare -fno-builtin-strftime -D__LE__ -fno-omit-frame-pointer -mno-sse -mno-sse2 -mcmodel=kernel -mno-red-zone -fno-unwind-tables -march=opteron -imacros /home/jermar/software/HelenOS/build-up-amd64/config.h -D_HELENOS_SOURCE -DKERNEL -DHELENOS_RELEASE=0.9.1 '-DHELENOS_COPYRIGHT=Copyright (c) 2001-2019 HelenOS project' -DHELENOS_CODENAME=Armonia -D__64_BITS__ -ffreestanding -Wno-cast-function-type -Wl,-z,max-page-size=0x1000 -nostdlib -Wl,--no-gc-sections -Wl,--nmagic -T /home/jermar/software/HelenOS/build-up-amd64/kernel/_link.ld -Wl,-Map,/home/jermar/software/HelenOS/build-up-amd64/kernel/kernel.1.elf.map
/usr/local/cross/lib/gcc/amd64-helenos/8.2.0/../../../../amd64-helenos/bin/ld: kernel/libnoninstrumentables.a(arch_amd64_src_smp_ap.S.o): in function `unmapped_ap_boot':
(K_TEXT_START+0x9): undefined reference to `ap_gdtr'
/usr/local/cross/lib/gcc/amd64-helenos/8.2.0/../../../../amd64-helenos/bin/ld: kernel/libnoninstrumentables.a(arch_amd64_src_smp_apic.c.o): in function `l_apic_send_init_ipi':
apic.c:(.text.l_apic_send_init_ipi+0xf5): undefined reference to `ap_boot'
/usr/local/cross/lib/gcc/amd64-helenos/8.2.0/../../../../amd64-helenos/bin/ld: kernel/libnoninstrumentables.a(arch_amd64_src_smp_smp.c.o): in function `kmp':
smp.c:(.text.kmp+0x7b): undefined reference to `ap_boot'
/usr/local/cross/lib/gcc/amd64-helenos/8.2.0/../../../../amd64-helenos/bin/ld: smp.c:(.text.kmp+0x1ad): undefined reference to `protected_ap_gdtr'
/usr/local/cross/lib/gcc/amd64-helenos/8.2.0/../../../../amd64-helenos/bin/ld: smp.c:(.text.kmp+0x1bc): undefined reference to `protected_ap_gdtr'
collect2: error: ld returned 1 exit status
[14/1645] Compiling C object uspace/lib/libc.so.0.0.p/c_generic_strtol.c.o
ninja: build stopped: subcommand failed.

And when switching from CONFIG_SMP to !CONFIG_SMP:

[2/1735] Linking target kernel/kernel.1.elf
FAILED: kernel/kernel.1.elf 
/usr/local/cross/bin/amd64-helenos-gcc  -o kernel/kernel.1.elf kernel/kernel.1.elf.p/meson-generated_.._empty_map.S.o -Wl,--as-needed -Wl,--no-undefined -Wl,--whole-archive -Wl,--start-group kernel/libinstrumentables.a kernel/libnoninstrumentables.a -Wl,--end-group -Wl,--no-whole-archive -Wl,--gc-sections -Wl,--warn-common -Wl,--fatal-warnings -O3 -fexec-charset=UTF-8 -finput-charset=UTF-8 -Wa,--fatal-warnings -Wall -Wextra -Werror-implicit-function-declaration -Wwrite-strings -Wunknown-pragmas -Wno-unused-parameter -pipe -ffunction-sections -fno-common -fdebug-prefix-map=/home/jermar/software/HelenOS/helenos=. -Wsystem-headers -fvar-tracking-assignments -Werror -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-clobbered -Wno-nonnull-compare -fno-builtin-strftime -D__LE__ -fno-omit-frame-pointer -mno-sse -mno-sse2 -mcmodel=kernel -mno-red-zone -fno-unwind-tables -march=opteron -imacros /home/jermar/software/HelenOS/build-amd64/config.h -D_HELENOS_SOURCE -DKERNEL -DHELENOS_RELEASE=0.9.1 '-DHELENOS_COPYRIGHT=Copyright (c) 2001-2019 HelenOS project' -DHELENOS_CODENAME=Armonia -D__64_BITS__ -ffreestanding -Wno-cast-function-type -Wl,-z,max-page-size=0x1000 -nostdlib -Wl,--no-gc-sections -Wl,--nmagic -T /home/jermar/software/HelenOS/build-amd64/kernel/_link.ld -Wl,-Map,/home/jermar/software/HelenOS/build-amd64/kernel/kernel.1.elf.map
/usr/local/cross/lib/gcc/amd64-helenos/8.2.0/../../../../amd64-helenos/bin/ld:/home/jermar/software/HelenOS/build-amd64/kernel/_link.ld:27: undefined symbol `unmapped_ap_boot' referenced in expression
collect2: error: ld returned 1 exit status
[11/1735] Compiling C object uspace/lib/libc.so.0.0.p/c_generic_elf_elf_mod.c.o
ninja: build stopped: subcommand failed.

Change History (5)

comment:1 by Jakub Jermář, 3 years ago

Milestone: 0.10.10.11.2

Milestone renamed

comment:2 by Jiri Svoboda, 2 years ago

Milestone: 0.11.20.12.1

comment:3 by Jakub Jermář, 17 months ago

Milestone: 0.12.10.13.1

comment:4 by Jiri Svoboda, 6 weeks ago

Milestone: 0.13.10.14.1

Milestone renamed

comment:5 by Jiri Svoboda, 6 weeks ago

Milestone: 0.14.10.14.2
Note: See TracTickets for help on using tickets.