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