Hi,
I am compiling GNUstep on OpenBSD using a more modern GCC version than
the system one. If other systems do not change library versions though
this problem is more general.
I have compiled with CC=egcc , nothing more.
At when I run a program, I get:
$ plparse
plparse:/System/Library/Libraries/libgnustep-base.so.1.24:
/usr/lib/libobjc.so.6.0 : WARNING: symbol(__objc_class_name_Protocol)
size mismatch, relink your program
plparse:/System/Library/Libraries/libgnustep-base.so.1.24:
/usr/lib/libobjc.so.6.0 : WARNING: symbol(__objc_class_name_Object) size
mismatch, relink your program
plparse:/System/Library/Libraries/libgnustep-base.so.1.24: undefined
symbol '__objc_msg_forward2'
Segmentation fault (core dumped)
I think the main problem is that gcc 4.9 should have bumped the revision
of the libobjc library, since it is no longer compatible.
$ ldd /System/Tools/plparse
/System/Tools/plparse:
Start End Type Open Ref GrpRef Name
000019de13a00000 000019de13e04000 exe 1 0 0
/System/Tools/plparse
000019e0929c4000 000019e0933bd000 rlib 0 1 0
/System/Library/Libraries/libgnustep-base.so.1.24
000019e0a3673000 000019e0a3a95000 rlib 0 2 0
/usr/lib/libobjc.so.6.0
<...>
At runtime ldd resolves to /usr/lib which is the system compiler which
is older (4.2, IIRC) while the correct libobjc.so.6.0 is in /usr/local/lib
Can this be solved/worked around? The path to libobjc should be
embedded, perhaps -R as a linker flag or some other trick?
Riccardo
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep