I used strace to take a look at what is different in the two cases (i.e. with ld.so.nohwcap and without).
When java is started then obviously a libc is loaded as for almost any executable program. Depending on the existance of ld.so.nohwcap either /lib/tls/i686/cmov/libc.so.6 is loaded or /lib/libc.so.6.
Later on jna.jar uses dl_open to request libc and it looks like this always opens /lib/libc.so.6 no matter whether ld.so.nohwcap exists or not.
With ld.so.nohwcap /lib/libc.so.6 is always used and there is no problem.
Without ld.so.nohwcap first /lib/tls/i686/cmov/libc.so.6 is loaded, then later /lib/libc.so.6 is loaded, and this might cause the inconsistency.
I used strace to take a look at what is different in the two cases (i.e. with ld.so.nohwcap and without).
When java is started then obviously a libc is loaded as for almost any executable program. Depending on the existance of ld.so.nohwcap either /lib/tls/ i686/cmov/ libc.so. 6 is loaded or /lib/libc.so.6.
Later on jna.jar uses dl_open to request libc and it looks like this always opens /lib/libc.so.6 no matter whether ld.so.nohwcap exists or not.
With ld.so.nohwcap /lib/libc.so.6 is always used and there is no problem.
Without ld.so.nohwcap first /lib/tls/ i686/cmov/ libc.so. 6 is loaded, then later /lib/libc.so.6 is loaded, and this might cause the inconsistency.