Review request (XS): 7110396: Sound code fails to build on multiarch Linux systems
mark.reinhold at oracle.com
mark.reinhold at oracle.com
Fri Nov 11 05:27:27 UTC 2011
2011/11/10 17:45 -0800, david.holmes at oracle.com:
> On 11/11/2011 1:47 AM, mark.reinhold at oracle.com wrote:
>> 2011/11/10 4:49 -0800, robert.ottenhag at oracle.com:
>>> 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.
>
> The common/Defs-*.gmk files say explicitly to use EXTRA_LIBS in place of LDLIBS
> or LDLIBS_COMMON (and seem ignorant of OTHER_LDLIBS).
>
> But if the intent was to ensure this link directive was at the end then I don't
> think OTHER_LDLIBS will work as it is the first set of entries in LDLIBS, while
> the last set is LDLIBS_COMMON to which EXTRA_LIBS is appended.
The intent is only to ensure that this link directive follows all object
files; it's fine for it to precede the other libraries being linked.
>From a build log, OTHER_LDLIBS is doing exactly what's needed:
/usr/bin/gcc -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused \
-Wno-parentheses -fno-omit-frame-pointer -D_LITTLE_ENDIAN -DNDEBUG \
-DARCH='"i586"' -Di586 -DLINUX -DRELEASE='"1.8.0-mr_2011.11.10.1106"' \
-D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT \
-I. -I/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/CClassHeaders \
-I../../../../src/solaris/javavm/export \
-I../../../../src/share/javavm/export \
-I../../../../src/share/native/common \
-I../../../../src/solaris/native/common \
-I../../../../src/share/native/javax/sound \
-I../../../../src/solaris/native/javax/sound -DX_PLATFORM=X_LINUX \
-DX_ARCH=X_I586 -DUSE_DAUDIO=TRUE -DUSE_PORTS=TRUE \
-DUSE_PLATFORM_MIDI_OUT=TRUE -DUSE_PLATFORM_MIDI_IN=TRUE \
-I../../../../src/share/native/com/sun/media/sound -Xlinker -O1 -Xlinker \
-version-script=mapfile-vers -Wl,--hash-style=both -Xlinker -z -Xlinker \
origin -Xlinker -rpath -Xlinker \$ORIGIN -Xlinker -z -Xlinker defs \
-L/w/jdk8/build/lib/i386 -Wl,-soname=libjsoundalsa.so -shared \
-mimpure-text -o /w/jdk8/build/lib/i386/libjsoundalsa.so \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/Utilities.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/DirectAudioDeviceProvider.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/DirectAudioDevice.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/MidiInDevice.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/MidiInDeviceProvider.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/MidiOutDevice.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/MidiOutDeviceProvider.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PlatformMidi.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PortMixerProvider.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PortMixer.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PLATFORM_API_LinuxOS_ALSA_CommonUtils.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PLATFORM_API_LinuxOS_ALSA_PCM.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PLATFORM_API_LinuxOS_ALSA_PCMUtils.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PLATFORM_API_LinuxOS_ALSA_MidiIn.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PLATFORM_API_LinuxOS_ALSA_MidiOut.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PLATFORM_API_LinuxOS_ALSA_MidiUtils.o \
/w/jdk8/build/tmp/sun/javax.sound/jsoundalsa/obj/PLATFORM_API_LinuxOS_ALSA_Ports.o \
-lasound -ljava -L/w/jdk8/build/lib/i386/server -ljvm -lc
^^^^^^^^
(Without this fix, "-lasound" was appearing right before "-shared".)
- Mark
More information about the build-dev
mailing list