Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#15559 closed bug (duplicate)

x86_64 build fails on Haiku

Reported by: X512 Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: - General Version: R1/Development
Keywords: Cc:
Blocked By: #10815 Blocking:
Platform: All

Description

This is Haiku hrev53618 x86_64.

Build target is hrev53634 x86_64. Build is configured by

 ../configure --distro-compatibility official

Build command is

jam -q @nightly-raw

Build log:

MergeObjectFromObjects1 objects/haiku/x86_64/release/system/boot/bios_ia32/boot_libroot_bios_ia32.o 
C++ objects/haiku_host/x86_64/release/tools/settype.o 
Link objects/haiku_host/x86_64/release/tools/settype 
Chmod1 objects/haiku_host/x86_64/release/tools/settype 
C++ objects/haiku_host/x86_64/release/tools/setversion.o 
Link objects/haiku_host/x86_64/release/tools/setversion 
Chmod1 objects/haiku_host/x86_64/release/tools/setversion 
BootLd objects/haiku/x86_64/release/system/boot/bios_ia32/boot_loader_bios_ia32 
ld: objects/haiku/x86_64/release/system/boot/platform/bios_ia32/bios_ia32/boot_platform_bios_ia32.o: in function `BIOSDrive::WriteAt(void*, long long, void const*, unsigned long)':
(.text+0x1030): undefined reference to `__divmoddi4'
ld: objects/haiku/x86_64/release/system/boot/platform/bios_ia32/bios_ia32/boot_platform_bios_ia32.o: in function `BIOSDrive::ReadAt(void*, long long, void*, unsigned long)':
(.text+0x11f0): undefined reference to `__divmoddi4'
ld: (.text+0x1325): undefined reference to `__divmoddi4'
ld: objects/haiku/x86_64/release/system/boot/platform/bios_ia32/bios_ia32/boot_platform_bios_ia32.o: in function `add_block_devices(DoublyLinkedList<Node, DoublyLinkedListStandardGetLink<Node> >*, bool) [clone .part.8]':
devices.cpp:(.text+0x1c76): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/platform/bios_ia32/bios_ia32/boot_platform_bios_ia32.o: in function `cpu_init':
(.text+0x33a7): undefined reference to `__udivdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/bios_ia32/boot_partitions.a(efi_gpt.o): in function `efi_gpt_identify_partition(int, partition_data*, void**)':
efi_gpt.cpp:(.text+0x2fe): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/bios_ia32/boot_partitions.a(PartitionMap.o): in function `Partition::CheckLocation(long long) const':
PartitionMap.cpp:(.text+0x525): undefined reference to `__moddi3'
ld: PartitionMap.cpp:(.text+0x541): undefined reference to `__moddi3'
ld: PartitionMap.cpp:(.text+0x55d): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/bios_ia32/boot_partitions.a(PartitionMap.o): in function `PrimaryPartition::GetPartitionDescriptor(partition_descriptor*) const':
PartitionMap.cpp:(.text+0x841): undefined reference to `__divdi3'
ld: PartitionMap.cpp:(.text+0x85b): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/bios_ia32/boot_partitions.a(PartitionMap.o): in function `LogicalPartition::GetPartitionDescriptor(partition_descriptor*, bool) const':
PartitionMap.cpp:(.text+0xc85): undefined reference to `__divdi3'
ld: PartitionMap.cpp:(.text+0xca5): undefined reference to `__divdi3'
ld: PartitionMap.cpp:(.text+0xcdf): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/bfs/bios_ia32/boot_bfs.a(bfs.o):bfs.cpp:(.text+0xeb): more undefined references to `__divdi3' follow
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/bfs/bios_ia32/boot_bfs.a(Stream.o): in function `BFS::Stream::FindBlockRun(long long, BFS::block_run&, long long&)':
Stream.cpp:(.text+0x3f0): undefined reference to `__divmoddi4'
ld: Stream.cpp:(.text+0x4cb): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/bfs/bios_ia32/boot_bfs.a(Stream.o): in function `BFS::Stream::ReadAt(long long, unsigned char*, unsigned long*)':
Stream.cpp:(.text+0x92f): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/bfs/bios_ia32/boot_bfs.a(BPlusTree.o): in function `BFS::CachedNode::InternalSetTo(BFS::Transaction*, long long)':
BPlusTree.cpp:(.text+0xba): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/bfs/bios_ia32/boot_bfs.a(BPlusTree.o): in function `BFS::CachedNode::SetTo(long long, BFS::bplustree_node const**, bool)':
BPlusTree.cpp:(.text+0x283): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/bfs/bios_ia32/boot_bfs.a(BPlusTree.o): in function `BFS::bplustree_header::IsValid() const':
BPlusTree.cpp:(.text+0x8e9): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Volume.o): in function `FATFS::Volume::_ClusterAllocated(unsigned long) [clone .part.9]':
Volume.cpp:(.text+0x2e): undefined reference to `__divdi3'
ld: Volume.cpp:(.text+0x5a): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Volume.o): in function `FATFS::Volume::NextCluster(unsigned long, unsigned long)':
Volume.cpp:(.text+0x632): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Volume.o): in function `FATFS::Volume::_UpdateCluster(unsigned long, unsigned long)':
Volume.cpp:(.text+0x7d8): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Directory.o): in function `FATFS::Directory::UpdateDirEntry(FATFS::Volume&, long long, unsigned long, unsigned long)':
Directory.cpp:(.text+0x67d): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Directory.o): in function `FATFS::Directory::_AddEntry(FATFS::dir_entry&, long long&)':
Directory.cpp:(.text+0xb20): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Stream.o): in function `FATFS::Stream::Stream(FATFS::Volume&, unsigned long, long long, char const*)':
Stream.cpp:(.text+0x8f): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Stream.o): in function `FATFS::Stream::_FindCluster(long long, unsigned long&)':
Stream.cpp:(.text+0x2c0): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Stream.o): in function `FATFS::Stream::_FindOrCreateCluster(long long, unsigned long&, bool&)':
Stream.cpp:(.text+0x41d): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Stream.o): in function `FATFS::Stream::FindBlock(long long, long long&, long long&)':
Stream.cpp:(.text+0x56d): undefined reference to `__moddi3'
ld: Stream.cpp:(.text+0x5be): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Stream.o): in function `FATFS::Stream::ReadAt(long long, void*, unsigned long*, long long*)':
Stream.cpp:(.text+0x68e): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a(Stream.o): in function `FATFS::Stream::WriteAt(long long, void const*, unsigned long*, long long*)':
Stream.cpp:(.text+0xa5c): undefined reference to `__moddi3'
ld: Stream.cpp:(.text+0xac3): undefined reference to `__moddi3'
ld: objects/haiku/x86_64/release/system/boot/loader/bios_ia32/boot_loader.a(DataIO.o): in function `BMallocIO::SetSize(long long)':
DataIO.cpp:(.text+0x625): undefined reference to `__divdi3'
ld: objects/haiku/x86_64/release/system/boot/bios_ia32/boot_libroot_bios_ia32.o: in function `number(Buffer&, unsigned long long, unsigned long, int, int, int)':
kernel_vsprintf.cpp:(.text+0xd01): undefined reference to `__udivmoddi4'
ld: objects/haiku/x86_64/release/system/boot/bios_ia32/boot_libroot_bios_ia32.o: in function `vsnprintf':
(.text+0x1585): undefined reference to `__umoddi3'
ld: (.text+0x160e): undefined reference to `__udivdi3'
ld: (.text+0x162e): undefined reference to `__umoddi3'
ld: (.text+0x18b6): undefined reference to `__umoddi3'
ld: (.text+0x18c6): undefined reference to `__udivdi3'

ld -m elf_i386_haiku -Bstatic -m elf_i386_haiku --script=../src/system/ldscripts/x86_64/boot_loader_bios_ia32.ld -o "objects/haiku/x86_64/release/system/boot/bios_ia32/boot_loader_bios_ia32" "objects/haiku/x86_64/release/system/boot/platform/bios_ia32/bios_ia32/boot_platform_bios_ia32.o" "objects/haiku/x86_64/release/system/boot/arch/x86/bios_ia32/boot_arch_x86.o" "objects/haiku/x86_64/release/system/boot/loader/bios_ia32/boot_loader.a" "objects/haiku/x86_64/release/system/boot/loader/net/bios_ia32/boot_net.a" "objects/haiku/x86_64/release/system/boot/loader/bios_ia32/boot_partitions.a" "objects/haiku/x86_64/release/system/boot/loader/file_systems/bfs/bios_ia32/boot_bfs.a" "objects/haiku/x86_64/release/system/boot/loader/file_systems/amiga_ffs/bios_ia32/boot_amiga_ffs.a" "objects/haiku/x86_64/release/system/boot/loader/file_systems/tarfs/bios_ia32/boot_tarfs.a" "objects/haiku/x86_64/release/system/boot/loader/file_systems/fat/bios_ia32/boot_fatfs.a" "objects/haiku/x86_64/release/system/boot/loader/file_systems/packagefs/bios_ia32/boot_packagefs.a" "objects/haiku/x86_64/release/system/boot/loader/bios_ia32/boot_loader.a" "objects/haiku/x86_64/release/system/boot/loader/file_systems/tarfs/bios_ia32/boot_zlib.a" "objects/haiku/x86_64/release/system/boot/bios_ia32/boot_libroot_bios_ia32.o" /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/libsupc++.a /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/libgcc.a \


...failed BootLd objects/haiku/x86_64/release/system/boot/bios_ia32/boot_loader_bios_ia32 ...

BUILD FAILURE:
...failed updating 1 target(s)...
...skipped 6 target(s)...
...updated 914 target(s)...

Change History (5)

comment:1 by X512, 4 years ago

Build was successful with using "--build-cross-tools":

mkdir generated.x86_64; cd generated.x86_64
../configure --build-cross-tools x86_64 ../../buildtools

comment:2 by ambroff, 4 years ago

When building on x86_64 cross-tools are required, since the built-in toolchain doesn't really have multiarch support. Some 32-bit userspace libraries are required to link the boot loader.

I bet the configure script could just detect this and fail right away with a more helpful error.

comment:3 by waddlesplash, 4 years ago

Resolution: duplicate
Status: newclosed

comment:4 by X512, 4 years ago

Duplicate of what ticket?

comment:5 by waddlesplash, 4 years ago

Blocked By: 10815 added
Note: See TracTickets for help on using tickets.