32bit java on 64bit os for vpn: Failed to load ncui library
Juniper vpn program is a 32 bit java binary. In order to run this, I installed various 32bit packages java.i686, libXext.i686, libXtst, libXrender, and so on. The program is able to execute but the depended library ncui fails to load with following error
OpenJDK 64-Bit Server VM warning: You have loaded library /home/sandeep/Downloads/tmp/libncui.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Failed to load the ncui library.
Quitting.
I have seen this problem posted on other forums but there is no solution of it. I am on a AMD machine which libncui.so is a intel binary. Not sure if that is the problem.
libncui.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=e020bbf004c887b69f895e1297890975ea03b99d, stripped
Had some success in running this program. It seems one doesn't have to go the java route. One can create an executable directly from the libncui as follows:
gcc -m32 -Wl,-rpath,`pwd` -o ncui libncui.so
the resulting ncui executable is able to work. (credit: https://gist.github.com/tuxdna/5926030 ).