LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (https://www.linuxquestions.org/questions/linux-general-1/)
-   -   ELF file OS ABI invalid (https://www.linuxquestions.org/questions/linux-general-1/elf-file-os-abi-invalid-210960/)

man26 07-29-2004 05:54 AM

ELF file OS ABI invalid
 
hi,

I am running Simple Jni example (for testing jni I am getting same error in my project) on FreeBSD but I am getting following error
while executing my java Program


%java Sample1
Exception in thread "main" java.lang.UnsatisfiedLinkError:
/usr/home/smgusr/mangesh/libSample1.so.1.0.1: /usr/home/smgusr/mangesh/libSample1.so.1.0.1:
ELF file OS ABI invalid
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1456)
at java.lang.Runtime.load0(Runtime.java:737)
at java.lang.System.load(System.java:811)
at Sample1.main(Sample1.java:10)


if I use ldd command it refer like this

%ldd /usr/home/smgusr/mangesh/libSample1.so.1.0.1
/usr/home/smgusr/mangesh/libSample1.so.1.0.1:
libc.so.4 => /usr/lib/libc.so.4 (0x2806a000)

I have made libSample1.so.1.0.1 following way:

gcc -o2 -fPIC -g -I/usr/local/linux-sun-jdk1.4.2/include
-I/usr/local/linux-sun-jdk1.4.2/include/linux -c Sample1.c -o Sample1.o

for linking

gcc -o2 -shared -fPIC -pthread -Wl -I/usr/local/linux-sun-jdk1.4.2/include
-I/usr/local/linux-sun-jdk1.4.2/include/linux -soname,libSample1.so.1
-o libSample1.so.1.0.1 Sample1.o -L/usr/compat/linux/lib -L/usr/lib
-L/usr/home/smgusr/mangesh -lc



Even though I try to load standard shared library from /usr/lib the error persist

what is going wrong is it Linux emulator problem??????????? or my shared lirary problem????


We have installed linux_base to set linux environment
set linux_base="yes" (/etc/rc.conf)
set kern.fallback_brand=3 (/etc/sysctl.conf)

Running kldstat is giving following result

%kldstat
Id Refs Address Size Name
1 4 0xc0100000 44fbf8 kernel
2 1 0xc33e3000 7000 linprocfs.ko
3 1 0xc3455000 15000 linux.ko
4 1 0xc3646000 3000 snp.ko

Running following command to check linux binary compatibility layer is loaded:

%kldstat -v | grep linuxelf
219 linuxelf

I am getting above output (that means layer is loaded )

Running following command to check layer is compiled into the kernel or
loaded as a module:

% kldstat | grep linux.ko

3 1 0xc3455000 15000 linux.ko

I am getting the above output
( Does it means it needs some more settings???????like setting options compat_unix in kernel config)



is There any issue related to configuring ld.so files on FreeBSD???


configuration is :

FreeBSD 4.10-BETA (GENERIC)
I am using following packages
linux-sun-jdk-1.4.2.04 Sun Java Development Kit 1.4 for Linux
linux_base-8-8.0_4 Base set of packages needed in Linux mode (only for i386)
linux_devtools-8.0_1 Packages needed for doing development in Linux mode
libtool-1.3.5_1 Generic shared library support script
gmake-3.80_1 GNU version of 'make' utility
automake-1.4.5_9 GNU Standards-compliant Makefile generator (legacy version
GCC 2.95.4
gdb 4.18
ld 2.12.1 supported emulation elf_i386


Regards
man26


All times are GMT -5. The time now is 07:03 AM.