<AWT Dev> [OpenJDK 2D-Dev] RFR: JDK-8071469 Cleanup include and exclude of sound native libraries after source code restructure

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Thu Mar 15 20:09:06 UTC 2018


> 15 mars 2018 kl. 20:13 skrev Phil Race <philip.race at 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?

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?

/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
> 



More information about the awt-dev mailing list