[Jack-Devel] About cross-compilation of jack2 in MXE and libportaudio

Harry Nakos xnakos at gmail.com
Fri Jun 19 17:42:16 CEST 2015


Tim, you rock!

Thank you for the explanation and the links! In a cross-compilation
environment like MXE such behaviour breaks the installation of portaudio.
If that could be avoided, it would be great. I may investigate it a bit
more.

Cheers!
Harry

On Fri, Jun 19, 2015 at 2:54 AM, Tim Mayberry <mojofunk at gmail.com> wrote:

> Hi Harry,
>
> On Fri, Jun 19, 2015 at 12:16 AM, Harry Nakos <xnakos at gmail.com> wrote:
>
>> Hi, guys!
>>
>> I recently committed the entry for jack2 to the MXE cross-compiler,
>> specifically version 1.9.10. One notable thing was needed and that was
>> linking to flac, vorbis, vorbisenc, and ogg, dependencies that libsndfile
>> had (needed for static linking). Timothy Gu of MXE suggested that a recent
>> commit in jack2 utilised pkg-config for libsndfile and that would eliminate
>> the need of my not-so-pretty hack. Anyway, this is not the main reason for
>> this message. But any general points about cross-compilation of jack2 and
>> required/suggested libraries would be nice. The main reason is portaudio.
>>
>> After building jack2 in MXE, I saw this in my log:
>>
>> + install
>> /home/xnakos/Projects/mxe/usr/i686-w64-mingw32.shared/lib/libportaudio.dll.a
>> (from build/windows/libportaudio.dll.a)
>>
>
> I believe this is the import library for the jack_portaudio.dll which are
> not necessary as these are internal jack modules. The target names in the
> wscript files should probably be changed(prefixed or something) to avoid
> this situation but I'm not sure what other issues that would introduce atm,
> possibly none.
>
>
>> This resulted in portaudio library, which was already built in MXE as a
>> requirement for jack2, to be overwritten. I am not quite sure I understand
>> the reasons for this. So I would really enjoy an explanation! In practice,
>> when trying to cross-compile Hydrogen drum machine, this overwrite would
>> result in linking errors such as:
>>
>> CMakeFiles/hydrogen-core-0.9.7.dir/objects.a(portaudio_driver.cpp.obj):
>> In function `ZN6H2Core15PortAudioDriver10disconnectEv':
>> portaudio_driver.cpp:107: undefined reference to `Pa_StopStream'
>> portaudio_driver.cpp:114: undefined reference to `Pa_CloseStream'
>> portaudio_driver.cpp:121: undefined reference to `Pa_Terminate'
>> portaudio_driver.cpp:111: undefined reference to `Pa_GetErrorText'
>> portaudio_driver.cpp:118: undefined reference to `Pa_GetErrorText'
>> CMakeFiles/hydrogen-core-0.9.7.dir/objects.a(portaudio_driver.cpp.obj):
>> In function `ZN6H2Core15PortAudioDriver7connectEv':
>> portaudio_driver.cpp:71: undefined reference to `Pa_Initialize'
>> portaudio_driver.cpp:75: undefined reference to `Pa_GetErrorText'
>> portaudio_driver.cpp:87: undefined reference to `Pa_OpenDefaultStream'
>> portaudio_driver.cpp:91: undefined reference to `Pa_GetErrorText'
>> portaudio_driver.cpp:95: undefined reference to `Pa_StartStream'
>> portaudio_driver.cpp:99: undefined reference to `Pa_GetErrorText'
>>
>> These errors are not present when linking to the original portaudio
>> library. Any information would be great, because I am definitely missing a
>> lot.
>>
>
> I just remove that file from the package so there is no conflict, for
> example:
>
>
> https://github.com/mojofunk/MINGW-packages/blob/newpkgs/mingw-w64-jack/PKGBUILD
> or
>
> https://github.com/mojofunk/fedora-mingw-ardour/blob/master/SPECS/mingw-jack-audio-connection-kit.spec
>
> At least I hope I'm on the right track and that solves your problem.
>
> Tim
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.linuxaudio.org/archives/jackaudio/attachments/20150619/ae4827e1/attachment.html>


More information about the Jackaudio mailing list