Opened 13 years ago

Closed 13 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:
Has a Patch: no 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)

unresolvedSymbols.log (3.9 KB) - added by eNGIMa 13 years ago.
Full log of boot through qemu

Download all attachments as: .zip

Change History (3)

Changed 13 years ago by eNGIMa

Attachment: unresolvedSymbols.log added

Full log of boot through qemu

comment:1 Changed 13 years ago by korli

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.

comment:2 Changed 13 years ago by korli

Resolution: fixed
Status: newclosed

fixed in revision 18910

Note: See TracTickets for help on using tickets.