Review request (XS): 7110396: Sound code fails to build on multiarch Linux systems

Robert Ottenhag robert.ottenhag at oracle.com
Thu Nov 10 12:49:47 UTC 2011


On 11/10/2011 06:24 AM, mark.reinhold at oracle.com wrote:
> Some Linux distros have started to adopt a "multiarch" filesystem layout for
> shared libraries in order to support the installation of packages for multiple
> hardware architectures on a single system.  For more information see, e.g.,
> http://wiki.debian.org/Multiarch.
>
> In Ubuntu 11.10 the ALSA shared library, libasound2, was converted to the
> multiarch format and so its files moved from their old location, /usr/lib,
> to /usr/lib/${ARCH_TRIPLET}.  This caused the JDK build to fail when linking
> the Java sound library.  The root cause appears to be that gcc only tries to
> resolve undefined symbols against a multiarch library if the library is named
> on the command line after the object files containing those symbols.
>
> The fix is simply to move -lasound to the end of the gcc invocation.
>
> I'll push this into JDK 8.  It would trivially backport to 7.
>
> Patch:
>
> --- a/make/javax/sound/jsoundalsa/Makefile
> +++ b/make/javax/sound/jsoundalsa/Makefile
> @@ -65,7 +65,7 @@
>          $(MIDIFILES_export) \
>          $(PORTFILES_export)
>
> -LDFLAGS += -lasound
> +EXTRA_LIBS += -lasound
>
>   CPPFLAGS += \
>          -DUSE_DAUDIO=TRUE \
>
> Thanks,
> - Mark

Mark,

The patch is correct, but in order to follow the convention in most 
other makefiles, I advice to use OTHER_LDLIBS instead of EXTRA_LIBS. I 
have tested this patch locally on Ubuntu 11.10-x64 for most branches for 
OpenJDK 6, 7 and 8 and meant to commit it earlier but... please go ahead.

Thank

/Robert

-- 
Oracle
Robert Ottenhag | Senior Member of Technical Staff
Phone: +46850630961 | Fax: +46850630911 | Mobile: +46707106161
Oracle Java HotSpot Virtual Machine
ORACLE Sweden | Folkungagatan 122 | SE-116 30 Stockholm

Oracle Svenska AB, Kronborgsgränd 17, S-164 28 KISTA, reg.no. 556254-6746

Green Oracle

Oracle is committed to developing practices and products that help protect the environment
--




More information about the build-dev mailing list