Hi:

I am developing a c simulation tool.  I am invoking one of dynamic library 
(my home grown library named as: randlib.so)

It has a function as

double unifrand(double, double, long*);

In my simulation application, I invoke the above function with 

seed = 1236537;
ran_no = unifrnd(0.0,1.0,&seed);

I have flag below to build

cc -m64   -o dist/Debug/Sun12-Solaris-x86/simperturbation 
build/Debug/Sun12-Solaris-x86/estimator.o  
build/Debug/Sun12-Solaris-x86/spoptimze.o 
-R/SunStudioProjects/randlib/dist/Debug/Sun12-Solaris-x86  -R/usr/sfw/lib/64  
-lm  /SunStudioProjects/randlib/dist/Debug/Sun12-Solaris-x86/randlib.so 


However, during runtime, I have error blow:

ld.so.1: simperturbation: fatal: relocation error: R_AMD64_PC32: file 
/SunStudioProjects/randlib/dist/Debug/Sun12-Solaris-x86/randlib.so: symbol 
unifrnd: value 0x2800112fedf does not fit


If I run list dynamic dependencies with the target simulation application 
binary, 

ldd simperturbation
        libm.so.2 =>     /lib/64/libm.so.2
        randlib.so =>    
/SunStudioProjects/randlib/dist/Debug/Sun12-Solaris-x86/randlib.so
        libc.so.1 =>     /lib/64/libc.so.1


I am on AMD x86.  My OS:

 5.11 snv_64a i86pc i386 i86pc

May I know what is the root cause of the problem.

Thanks
 
 
This message posted from opensolaris.org
_______________________________________________
tools-discuss mailing list
tools-discuss@opensolaris.org

Reply via email to