GCC problem on Solaris
Steve Wong
steve_wong@macroview.com.hk
Tue Mar 13 01:37:00 GMT 2001
I am currently using gcc 2.9.5 on Solaris to build a shared object
However, I face the below problem
The Makefile is :
DHCPLIB = /export/home/steve/dhcp-3.0b2pl18/work.sunos5
INCLDIR = /export/home/steve/dhcp-3.0b2pl18/includes
BINDLIB = $(DHCPLIB)/minires/libres.a $(DHCPLIB)/dhcpctl/libdhcpctl.a
$(DHCPLIB)/common/libdhcp.a $(DHCPLIB)/omapip/libomapi.a
$(DHCPLIB)/dst/libdst.a
# BINDLIB
= -L$(DHCPLIB)/minires -L$(DHCPLIB)/dhcpctl -L$(DHCPLIB)/common -L$(DHCPLIB)
/omapip -L$(DHCPLIB)/dst
JNIINCL = -I/usr/java1.2/include -I/usr/java1.2/include/solaris
all: libssoj.so
jni_sso.o : jni_sso.c
gcc $(JNIINCL) -I$(DHCPLIB)/dhcpctl -I$(INCLDIR) -c -o jni_sso.o jni_sso.c
# -lm -lnsl -lsocket $(BINDLIB) -lresolv -lgen
libssoj.so: jni_sso.o
rm -f libssoj.so
gcc -fPIC -shared jni_sso.o -o libssoj.so
$(BINDLIB) -lm -lnsl -lsocket -lgen -ldl
# -lres -ldhcpctl -ldhcp -lomapi -ldst
# -lm -lnsl -lsocket $(BINDLIB) -lresolv -lgen
If I remove the -shared, it can build but I don't think I am building a .so
If I add back -shared, it prompts me :
Text relocation remains referenced
against symbol offset in file
omapi_listener_trace_setup 0x4e4
/export/home/steve/dhcp-3.0b2p
8/work.sunos5/omapip/libomapi.a(support.o)
<unknown> 0x208 jni_sso.o
<unknown> 0x204 jni_sso.o
If I remove -shared and add -static, it prompts me :
ld: fatal: library -ldl: not found
ld: fatal: File processing errors. No output written to libssoj.so
I can't mix shared object with archive file when building a new shared
object??
Thx. In Advance.
Steve.
More information about the Gcc-help
mailing list