Opened 18 years ago
Closed 18 years ago
#863 closed bug (fixed)
[gcc4] unresolved symbols in boot add-ons
Reported by: | eNGIMa | Owned by: | axeld |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | System/Kernel | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
I am building Haiku under Gentoo Linux using the latest buildtools and system sources with the tree configured to use gcc4. After building the disk image via
'jam -q haiku-image'
from the project root, it doesn't appear possible to launch Haiku via qemu using
'qemu -hda generated/haiku.image -serial stdio';
The system entering KDL (Specifically for 'PANIC: Did not get any boot partitions!') with many errors similar to:
'"ide": could not resolve symbol 'deregister_frame_info'
I will attach a full log immediately.
This appears to be related to libgcc as the function is not present (Or called) within the Haiku tree as best as I can determine. It appears to be defined platform specific in various files around buildtools/gcc/gcc/
Attachments (1)
Change History (3)
by , 18 years ago
Attachment: | unresolvedSymbols.log added |
---|
comment:1 by , 18 years ago
The kernel is linked with such a line (jam -dx kernel) :
ld -Bdynamic -export-dynamic -dynamic-linker /foo/bar --script=./src/system/ldscripts/x86/kernel.ld -o "generated/objects/haiku/x86/release/system/kernel/kernel_x86" "generated/objects/haiku/x86/release/system/kernel/kernel_core.o" "generated/objects/haiku/x86/release/system/kernel/fs/kernel_fs.o" "generated/objects/haiku/x86/release/system/kernel/vm/kernel_vm.o" "generated/objects/haiku/x86/release/system/kernel/cache/kernel_cache.o" "generated/objects/haiku/x86/release/system/kernel/device_manager/kernel_device_manager.o" "generated/objects/haiku/x86/release/system/kernel/disk_device_manager/kernel_disk_device_manager.o" "generated/objects/haiku/x86/release/system/kernel/util/kernel_util.o" "generated/objects/haiku/x86/release/system/kernel/messaging/kernel_messaging.o" "generated/objects/haiku/x86/release/system/kernel/debug/kernel_debug.o" "generated/objects/haiku/x86/release/system/kernel/arch/x86/libx86.a" "generated/objects/haiku/x86/release/system/kernel/platform/bios_ia32/kernel_platform_bios_ia32.o" "generated/objects/haiku/x86/release/system/kernel/linkhack.so" "generated/objects/haiku/x86/release/system/kernel/lib/kernel_os_main.o" "generated/objects/haiku/x86/release/system/kernel/lib/kernel_os_arch_x86.o" "generated/objects/haiku/x86/release/system/kernel/lib/kernel_posix.o" /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/2.95.3-beos-060710/libgcc.a ;
libgcc.a is supposed to contain those missing symbols and include them in kernel_x86. Make sure you're using the right libgcc.a
Then check for symbols in libgcc.a : nm /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/2.95.3-beos-060710/libgcc.a | grep register 00000d40 T deregister_frame 00000c84 T deregister_frame_info 00000b8c T register_frame 00000af4 T register_frame_info 00000bc0 T register_frame_info_table 00000c50 T register_frame_table
Please let me know the result of your investigation.
Full log of boot through qemu