On 03/15/2018 13:09, Magnus Ihse Bursie wrote:

15 mars 2018 kl. 20:13 skrev Phil Race <philip.r...@oracle.com>:


As far as I know the split was made to dynamically load ALSA/DirectSound stuff

Yes, I think it is something like that for Linux
ie if at runtime a dependent-but-not-essential .so was not
installed it was not fatal. I don't know to what extent this is no longer a
possible issue, or one that matters.

I have not heard of any mainstream Linux distro in years that was lacking ALSA.

If ALSA was not present, will the libraries fall back to OSS, or will there be 
just no sound available?

No sound.
OSS support was dropped many years ago (IIRC in jdk7)

In any case, I think that whatever Linux distros we're targeting as supported, 
ALSA will be present.

Alex, did I understand you correctly that in any case, a separate Windows 
library is always unnecessary, since we can rely on DirectAudio always being 
present in our supported versions of Windows?

Yes, that's right.
Windows always has DirectSound pre-installed and its version is greater than required (IIRC javasoundds requires DirectX 5).

For now failure of libjsound loading is fatal (see com.sun.media.sound.Platform.loadLibraries()), loading of extra libs is non-fatal. I believe libjsound loading failure should be made non-fatal, then all the functionality will remain the same as we have now.

--alex


/Magnus


-phil.

On 03/15/2018 12:06 PM, Alex Menkov wrote:


On 03/15/2018 11:44, Magnus Ihse Bursie wrote:
On 2018-03-15 18:23, Phil Race wrote:
I wondered if that might be the case since it was a "BSD" port .. using X11 ..

Maybe we should be getting rid of them ?
I agree, we should delete them. I just shuffled them around in the hope that 
they would be useful for a potential future bsd port, but if/when that happens, 
we can dig them out from mercurial.

A short explanation of how the files moved. The sound library is apparently 
composed of either a single library (solaris and macosx) or two libraries 
(linux and windows). Two building blocks, MIDI + ports and DirectAudio is used 
for all platforms, but they go into either the main library (libjsound) or the 
helper library.

For Windows, MIDI+Ports go into libjsound, and DirectAudio go into libjsoundds. 
On Linux, MIDI+Ports and DirectAudio go into libjsoundalsa. On Macosx and 
Solaris, MIDI+Ports and DirectAudio go into the main libjsound.

I have no idea why this split is necessary, but this is how the libraries de 
facto is compiled, and the code needs to match that. If it would be possible to 
move libjsoundds and libjsoundalsa into libjsound directly, things would be 
greatly simplified.

As far as I know the split was made to dynamically load ALSA/DirectSound stuff. 
If it's not available (or old unsupported version is installed), libjsound 
stuff continues to work (in pre-OpenJDK libjsound supported WaveIn/WaveOut on 
Windows and OSS on Linux).
For now Windows (DirectSound) libjsoundds stuff can be merged into libjsound, 
but I'm not sure we can rely on ALSA is always available on Linux (but most 
likely if ALSA is not available, libjsound does not provide any functionality, 
so I suppose libjsoundalsa stuff can be moved to libjsound as well)

--alex


/Magnus


-phil.

On 03/15/2018 10:21 AM, Erik Joelsson wrote:
Digging a bit, those files came with the initial Macosx support. It doesn't 
look like they were ever used.

/Erik


On 2018-03-15 09:53, Phil Race wrote:
It is very hard to follow all the moved around files, but one thing
that sticks out is there is a "bsd" directory created and I can't
work out how the files in there are used.
If they are for a BSD port of OpenJDK where is rest of the support for that ?

On 03/15/2018 07:20 AM, Erik Joelsson wrote:
Looks good to me. I tried cleaning this up before but failed to find a 
reasonable split, but this seems like a good split between common and library 
specific.

/Erik


On 2018-03-14 18:12, Magnus Ihse Bursie wrote:
I forgot to add the client mailing lists as recipients. Sorry. (Not sure if "sounds" belong to 
"awt" or "2d".)

In fact, there is a sound-specific list, which I've added.

-phil.

/Magnus

On 2018-03-15 02:07, Magnus Ihse Bursie wrote:
 From the bug description:

Moving this to a separate bug from JDK-8055190. In SoundLibraries.gmk, the 
source code splitting is not complete. The directory libjsound is used to build 
not only libjsound but libjsoundalsa and libjsoundds, and thus needs a complex 
include/exclude system like before.

I have tested this using COMPARE_BUILD. Windows and solaris are completely 
clean. On macosx, there's a binary diff (but nothing else) on libjsound.dylib. 
On linux, some offset seems to have changed, which caused a slight change in 
disass and fulldump for libjsound.so. I'm not quite sure what's causing it, but 
I'm convinced it's harmless.

Bug: https://bugs.openjdk.java.net/browse/JDK-8071469
WebRev: 
http://cr.openjdk.java.net/~ihse/JDK-8071469-cleanup-sound-libs/webrev.01

/Magnus


Reply via email to