Opened 9 years ago

Closed 9 years ago

#5158 closed bug (fixed)

[PATCH] bfs_shell: Relocation errors for bfs.o on OpenSolaris

Reported by: andreasf Owned by: bonefish
Priority: normal Milestone: R1
Component: Build System Version: R1/Development
Keywords: Cc:
Blocked By: #5157 Blocking:
Has a Patch: no Platform: All

Description

At hrev34720 I get the following errors on OpenSolaris 2009.06 host. I thought it might be related to GCC 3.4.3 (cf. hrev34717), but it happens with host GCC 4.3.2 as well.

The following is part of the output from a ppc cross-compilation's jam -q haiku-image following a jam -q haiku-boot-cd-ppc, but same happens for gcc4 x86 target as well (gcc2 untested).

I've already tried removing the objects folder and re-configuring, building new cross-compilers. Same results.

...found 87109 target(s)...
...updating 9138 target(s)...
InitScript1 /export/home/andreas/Haiku/haiku/generated-ppc/haiku.image-init-vars 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/addattr/main.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/addattr/addAttr.o 
Link /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/addattr/addattr 
Chmod1 /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/addattr/addattr 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/fssh.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/atomic.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/byte_order.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/command_cp.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/errno.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/partition_support.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/rootfs.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/sem.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/stat.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/stat_util.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/string.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/thread.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/time.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/uio.o 
C++ /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/unistd.o 
/export/home/andreas/Haiku/haiku/src/tools/fs_shell/unistd.cpp: In function `int fssh_ioctl(int, long unsigned int, ...)':
/export/home/andreas/Haiku/haiku/src/tools/fs_shell/unistd.cpp:147: warning: unused variable 'geometry'
MergeObjectFromObjects1 /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/fs_shell_kernel.o 
Archive /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/fs_shell.a 
ar: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/fs_shell.a wird erzeugt
Link /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs_shell 
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x1474: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x14fc: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x1aa0: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x1ad4: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x2104: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x23b4: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x23e8: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x289c: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x309c: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x34c0: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x3b78: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x3c88: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x3cbc: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x498c: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x4c5c: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x51fc: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x5230: Die Verschiebung erfordert ein Referenzsymbol
ld: Schwerer Fehler: Verschiebungsfehler: R_386_32: Datei .rel.eh_frame: Bereich: /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o: Offset: 0x5b64: Die Verschiebung erfordert ein Referenzsymbol
collect2: ld returned 1 exit status

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/lib ; /export/home/andreas/Haiku/haiku/build/scripts/rm_attrs /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/rm_attrs -f "/export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs_shell"
cc  -o "/export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs_shell"    \
"/export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs.o" "/export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/fs_shell/fs_shell.a" "/export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/lib/libroot_build.so" -lsupc++ -lstdc++ -lxnet  \


...failed Link /export/home/andreas/Haiku/haiku/generated-ppc/objects/sunos/x86/release/tools/bfs_shell/bfs_shell ...
...skipped <HaikuImage>haiku.image-init-vars for lack of <build>bfs_shell...
...skipped haiku.image for lack of <HaikuImage>haiku.image-init-vars...
...failed updating 1 target(s)...

Attachments (1)

sun-ld.diff (369 bytes) - added by andreasf 9 years ago.
proposed patch for BuildSetup to override default ld on sunos

Download all attachments as: .zip

Change History (4)

comment:1 Changed 9 years ago by bonefish

Can you please add non-localized error output. Not only for sake of the non-German speaking developers, but also because I don't understand what this is supposed to mean.

Is ld the GNU linker or Sun's?

Changed 9 years ago by andreasf

Attachment: sun-ld.diff added

proposed patch for BuildSetup to override default ld on sunos

comment:2 Changed 9 years ago by andreasf

Summary: bfs_shell: Relocation errors for bfs.o[PATCH] bfs_shell: Relocation errors for bfs.o on OpenSolaris

Replying to bonefish:

Is ld the GNU linker or Sun's?

Thanks for the hint! Haiku has apparently begun mixing uses of ld and gcc for linking. Starting with OpenSolaris, ld is GNU ld, whereas GCC continues to use Sun's ld.

The attached patch overrides the default HOST_LD for sunos, curing this problem.

comment:3 in reply to:  2 Changed 9 years ago by bonefish

Resolution: fixed
Status: newclosed

Replying to andreasf:

Replying to bonefish:

Is ld the GNU linker or Sun's?

Thanks for the hint! Haiku has apparently begun mixing uses of ld and gcc for linking.

We've been using both for quite some time. Most stuff is linked with gcc, but the *MergeObject (and the KernelLd) rules need to use ld.

Starting with OpenSolaris, ld is GNU ld, whereas GCC continues to use Sun's ld.

The attached patch overrides the default HOST_LD for sunos, curing this problem.

This should rather happen in configure, but since we don't determine HOST_LD there yet (and I'm too lazy to change that right now), I've applied the patch in hrev34726.

Note: See TracTickets for help on using tickets.