Sure I can take a look. This can happen when the upstream changes conflict with
bsd specific changes. Greg does is best
to retain our changes when resolving conflicts but sometimes issues slip
through like this.
It is always best that I write the diffs for fixes to the jdk since I have
signed my life away to Sun/Oracle so they can
be committed.
-Kurt
On Fri, 2019-02-08 at 13:56 +0000, Stuart Henderson wrote:
> On 2019/02/08 13:09, Giovanni Bechis wrote:
> >
> > After latest snapshot update it fails with:
> > java:/usr/local/jdk-1.8.0/jre/lib/amd64/libsplashscreen.so: undefined
> > symbol 'libiconv_open'
> > ld.so: java: lazy binding failed!
> >
> > Anybody else seeing this ?
> > Working:
> > OpenBSD 6.4-current (GENERIC.MP) #688: Thu Feb 7 22:00:25 MST 2019
> > Not working:
> > OpenBSD 6.4-current (GENERIC.MP) #621: Wed Jan 16 22:29:11 MST 2019
> Temporary workaround, LD_PRELOAD libiconv.
>
> Seems that libsplashscreen.so lost its NEEDED entry on libiconv in the
> jdk u192 update,
>
> $ objdump -p 172/libsplashscreen.so |grep -w NEEDED
> NEEDED libX11.so.16.1
> NEEDED libXext.so.13.0
> NEEDED libm.so.10.1
> NEEDED libiconv.so.6.0
> NEEDED libz.so.5.0
> NEEDED libgif.so.7.0
> NEEDED libpthread.so.26.0
>
> $ objdump -p 192/libsplashscreen.so |grep -w NEEDED
> NEEDED libX11.so.16.1
> NEEDED libXext.so.13.0
> NEEDED libm.so.10.1
> NEEDED libpthread.so.26.0
> NEEDED libz.so.5.0
> NEEDED libgif.so.7.0
>
> The relevant change is in the build system. Kurt do you want to look at
> this or should I have a go at just readding the relevant bit? (this change
> would most likely have caused a build time failure with ld.bfd but LLD
> won't notice these so it won't show up until runtime).
>
> diff -u -r
> jdk-1.8.0.172/openjdk-8u172b11-bsd-port-20180529/jdk/make/lib/Awt2dLibraries.gmk
> jdk-1.8.0.192/openjdk-
> 8u192b26-bsd-port-20190122/jdk/make/lib/Awt2dLibraries.gmk
> ---
> jdk-1.8.0.172/openjdk-8u172b11-bsd-port-20180529/jdk/make/lib/Awt2dLibraries.gmk
> 2018-05-29
> 18:55:46.000000000 +0100
> +++
> jdk-1.8.0.192/openjdk-8u192b26-bsd-port-20190122/jdk/make/lib/Awt2dLibraries.gmk
> 2019-01-21
> 22:32:14.000000000 +0000
> <snip>
> @@ -1246,13 +1238,6 @@
>
> else ifeq ($(OPENJDK_TARGET_OS), windows)
> LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
> - else ifeq ($(OPENJDK_TARGET_OS), solaris)
> - LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include
> -I$(OPENWIN_HOME)/include/X11/extensions
> - else ifeq ($(OPENJDK_TARGET_OS), bsd)
> - LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
> -I$(PACKAGE_PATH)/include
> - ifneq ($(OPENJDK_TARGET_OS_VENDOR), openbsd)
> - LIBSPLASHSCREEN_CFLAGS += -DLIBICONV_PLUG
> - endif
> else
> LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
> endif
> @@ -1272,11 +1257,6 @@
> -framework JavaNativeFoundation
> else ifeq ($(OPENJDK_TARGET_OS), windows)
> LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib
> delayimp.lib -DELAYLOAD:user32.dll
> - else ifeq ($(OPENJDK_TARGET_OS), solaris)
> - # Solaris still uses OPENWIN_LIB ..
> - LIBSPLASHSCREEN_LDFLAGS_SUFFIX +=
> -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread
> - else ifeq ($(OPENJDK_TARGET_OS), bsd)
> - LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM)
> -L$(PACKAGE_PATH)/lib -liconv -pthread
> else # .. all other Unixes can use X_LIBS
> LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM)
> -lpthread
> endif
>
>