openjdk-7.55.13_3,1: UnsatisfiedLinkError jpeg_resync_to_restart

Jonathan Chen jonc at chen.org.nz
Wed Apr 30 01:19:49 UTC 2014


On 30 April 2014 12:05, Jung-uk Kim <jkim at freebsd.org> wrote:
> On 2014-04-29 19:37:40 -0400, ?? wrote:
>> On 2014-04-29 19:09:36 -0400, ?? wrote:
>>> On 28 April 2014 13:51, Jonathan Chen <jonc at chen.org.nz> wrote:
>>>> Hi,
>>>>
>>>> I'm trying out the latest openjdk-7.55.13_3,1 with
>>>> squirrel-sql and have noticed that the logs are reporting:
>>>>
>>>> java.lang.UnsatisfiedLinkError:
>>>> /usr/local/openjdk7/jre/lib/amd64/libsplashscreen.so:
>>>> /usr/local/openjdk7/jre/lib /amd64/libsplashscreen.so:
>>>> Undefined symbol "jpeg_resync_to_restart" at
>>>> java.lang.ClassLoader$NativeLibrary.load(Native Method)
>>
>>> So I had a look at this with openjdk-7.55.13_4,1, and it appears
>>> that the internal openjdk jpeg library is being compiled with
>>> "NEED_SHORT_EXTERNAL_NAMES" defined, resulting in libjpeg.so
>>> with the shortened name of "jResyncRestart"
>>
>>> 11:00am> nm /usr/local/openjdk7/jre/lib/amd64/libjpeg.so | grep
>>> jResync 000000000000f6e0 T jResyncRestart
>>
>>> However, when libsplashscreen.so is built,
>>> "NEED_SHORT_EXTERNAL_NAMES" has not been defined and the
>>> expanded "jpeg_resync_to_restart" symbol is used instead,
>>> resulting in the undefined reference.
>>
>>> Unfortunately, I can't determine just how libjpeg.so is being
>>> built, and where the unecessary "NEED_SHORT_EXTERNAL_NAMES" is
>>> being defined in the build. Any pointers from the list would be
>>> appreciated.
>>
>> I guess ${LOCALBASE}/include/jconfig.h was found before
>> ${WRKSRC}/jdk/src/share/native/sun/awt/image/jpeg/jconfig.h.
>
> Please try the attached patch.

You've hit the nail on the head. The patch is good, and the build
works on my machine running 10-STABLE/amd64.

Thanks!
-- 
Jonathan Chen <jonc at chen.org.nz>


More information about the freebsd-java mailing list