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

Alex Menkov alexey.menkov at oracle.com
Thu Mar 15 19:06:30 UTC 2018

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)


> /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 sound-dev mailing list