All,

today I came accross a somehow strange (at least for me) problem....


Usually I build my DLLs (written in C and C++) in the MVS-World of z/OS. But now I want to build the same DLL under USS (because I can do this all remote using SSH).

When I try to compile and link my DLL (it's just one C-Source file) in one command, the DLL get's build, but somehow doesn't work (can't be loaded and/or the enty-points are not found). Furthermore the DLL is much larger as if it is build under MVS.

like this:

c89 -Wc,"MY,OPTIONS" -Wl,"MY_OTHER_OPTIONS" -o libfoo.so foo.c



If I compile the module with the "-c" switch (--> don't link) and then link the module to a DLL in a second step, the Linker tells me that CEESTART can't be resolved....

c89 -c -Wc,"MY,OPTIONS" foo.c
c89 -Wl,"MY_OTHER_OPTIONS" -o libfoo.so foo.o

It seems so me that (for some reason) the linker dosn't know where to look for the LE-Runtimes - but the file

   /usr/lpp/cbclib/xlc/etc/usr/lpp/cbclib/xlc/

looks ok so far....



Would be great if anyone has an idea....


Thank you,
Michael





P.S.: Just to be complete, here are my compiler and linker options:


Compiler:


DLL(CBA)
ILP32
TUNE(0)
ARCH(0)
FLOAT(IEEE)
LANGLVL(EXTENDED)
TARGET(LE)
NOOPT
LONGNAME
SOURCE
ROSTRING
OBJECT
PLIST(HOST)
NOOE
NOSTRICT_INDUC
NOWSIZEOF
NOSEQUENCE
NOMARGINS
NOINLINE
NOLIST
NOOFFSET
NOCOMPACT
NOCOMPRESS
NOIGNERRNO
NOINITAUTO
EXECOPS
DEFINE(_OS390)
DEFINE(_OE_SOCKETS)
DEFINE(_OPEN_THREADS)
DEFINE(_LARGE_FILES)
DEFINE(_POSIX_SOURCE)
DEFINE(_ISOC99_SOURCE)
DEFINE(_UNIX03_SOURCE)
DEFINE(_XOPEN_SOURCE_EXTENDED=1)
DEFINE(_XOPEN_SOURCE=500)
DEFINE(NEEDSIEEE754)
DEFINE(NEEDSLONGLONG)


Linker:

AMODE=31
RMODE=ANY
CASE=MIXED
DYNAM=DLL
REUS=RENT
UPCASE=NO
LIST
MAP
XREF

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to