New: Packaging libsoxr
https://bugs.busybox.net/show_bug.cgi?id=6956
Summary: Packaging libsoxr
Product: buildroot
Version: 2014.02
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P5
Component: Other
AssignedTo: unassigned at buildroot.uclibc.org
ReportedBy: prezi77 at wp.pl
CC: buildroot at uclibc.org
Estimated Hours: 0.0
Since 18.6 mpd has support for libsoxr. This is better and more efficient re-sampling library for embedded systems. This is faster and smaller. I would do it by myself but is uses cmake I don't understand. The best option would be replacing libsamplerate with libsoxr or making them both available.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 6956] Packaging libsoxr
https://bugs.busybox.net/show_bug.cgi?id=6956
--- Comment #1 from Thomas De Schampheleire <[email protected]> 2014-03-12 11:53:38 UTC --- There shouldn't be a real need to understand cmake in order to make a package
available in buildroot. Have you had a look at this part of the manual?
http://buildroot.uclibc.org/downloads/manual/manual.html#adding-packages
Buildroot has a 'cmake-package' infrastructure, which makes it easy to add packages that have cmake makefiles.
If you can, implementing this yourself will create much bigger chances of the changes becoming available in buildroot, because other buildroot developers already have a lot of other work, so may not start on libsoxr.
Thanks in advance...
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 6956] Packaging libsoxr
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=6956
--- Comment #2 from prezi77 at wp.pl 2014-03-16 21:18:36 UTC --- (In reply to comment #1)
Quoted 4 lines
There shouldn't be a real need to understand cmake in order to make a package available in buildroot. Have you had a look at this part of the manual?
http://buildroot.uclibc.org/downloads/manual/manual.html#adding-packages
Quoted 8 lines
Buildroot has a 'cmake-package' infrastructure, which makes it easy to add packages that have cmake makefiles.
If you can, implementing this yourself will create much bigger chances of the changes becoming available in buildroot, because other buildroot developers already have a lot of other work, so may not start on libsoxr.
Thanks in advance...
Well, as I said that not trivial like packaging mpdcron,libmpdclient or ncmpcpp.
This what I see:
Quoted 2 lines
Quoted 2 lines
libsoxr 0.1.1 Patching
Quoted 1 line
libsoxr 0.1.1 Configuring
(cd /home/prezi/buildroot-2014.02/output/build/libsoxr-0.1.1/ && rm -f
CMakeCache.txt && /home/prezi/buildroot-2014.02/output/host/usr/bin/cmake /home/prezi/buildroot-2014.02/output/build/libsoxr-0.1.1/ -DCMAKE_TOOLCHAIN_FILE="/home/prezi/buildroot-2014.02/output/host/usr/share/buildroot/toolchainfile.cmake" -DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_COLOR_MAKEFILE=OFF -DBUILD_SHARED_LIBS=ON
-Wno-dev )
Re-run cmake no build system arguments
-- The C compiler identification is GNU 4.7.3
-- Check for working C compiler:/home/prezi/buildroot-2014.02/output/host/usr/bin/i586-buildroot-linux-uclibc-gcc
-- Check for working C compiler:/home/prezi/buildroot-2014.02/output/host/usr/bin/i586-buildroot-linux-uclibc-gcc
-- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Looking for pow in m
-- Looking for pow in m - found
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp
-- Try SIMD C flag = [ ]
-- Performing Test SIMD_FLAG_DETECTED
-- Performing Test SIMD_FLAG_DETECTED - Failed
-- Try SIMD C flag = [/arch:SSE /fp:fast -D__SSE__]
-- Performing Test SIMD_FLAG_DETECTED
-- Performing Test SIMD_FLAG_DETECTED - Failed
-- Try SIMD C flag = [-msse -mfpmath=sse]
-- Performing Test SIMD_FLAG_DETECTED
-- Performing Test SIMD_FLAG_DETECTED - Success
-- Found SIMD: -msse -mfpmath=sse
-- Looking for lrint
-- Looking for lrint - found
-- Looking for include file fenv.h
-- Looking for include file fenv.h - not found
-- Performing Test HAVE_WORDS_BIGENDIAN
CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the
following cache variables appropriately:
HAVE_WORDS_BIGENDIAN_EXITCODE (advanced)
For details see /home/prezi/buildroot-2014.02/output/build/libsoxr-0.1.1/TryRunResults.cmake
-- Performing Test HAVE_WORDS_BIGENDIAN - Failed
-- Configuring incomplete, errors occurred!
See also "/home/prezi/buildroot-2014.02/output/build/libsoxr-0.1.1/CMakeFiles/CMakeOutput.log". See also "/home/prezi/buildroot-2014.02/output/build/libsoxr-0.1.1/CMakeFiles/CMakeError.log".
make: ***
[/home/prezi/buildroot-2014.02/output/build/libsoxr-0.1.1/.stamp_configured]
Error 1
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 6956] Packaging libsoxr
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=6956
--- Comment #3 from Thomas De Schampheleire <[email protected]> 2014-03-17 15:45:44 UTC --- The libsoxr package tries to determine the endianness by running a program,
which is not possible because we're cross compiling. However, this fact is
detected, and the suggestion is to 'tell' libsoxr the right result:
CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately:
HAVE_WORDS_BIGENDIAN_EXITCODE (advanced)
So this means you have to pass this variable to the compilation of libsoxr. The variable HAVE_WORDS_BIGENDIAN_EXITCODE is created based on the test_big_endian macro, present in ./cmake/Modules/TestBigEndian.cmake. This file has a note: "1 if system is big endian"
So essentially, you should add something like this in the libsoxr.mk file:
ifeq ($(BR2_ENDIAN),"BIG")LIBSOXR_CONF_OPT += -DHAVE_WORDS_BIGENDIAN_EXITCODE=1 elseLIBSOXR_CONF_OPT += -DHAVE_WORDS_BIGENDIAN_EXITCODE=0 endif
I'm unsure about the exact way to pass this flag to the build, either with FOO_CONF_OPT or FOO_CONF_ENV, so you may want to try both.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 6956] Packaging libsoxr
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=6956
--- Comment #4 from Samuel Martin <[email protected]> 2014-03-17 20:13:46 UTC --- (In reply to comment #3)
Quoted 16 lines
The libsoxr package tries to determine the endianness by running a program, which is not possible because we're cross compiling. However, this fact is detected, and the suggestion is to 'tell' libsoxr the right result:
CMake Error:
TRY_RUN()invoked in cross-compiling mode, please set the following cache variables appropriately:
HAVE_WORDS_BIGENDIAN_EXITCODE(advanced)So this means you have to pass this variable to the compilation of libsoxr. The variable
HAVE_WORDS_BIGENDIAN_EXITCODEis created based on thetest_big_endianmacro, present in ./cmake/Modules/TestBigEndian.cmake. This file has a note: "1 if system is big endian"So essentially, you should add something like this in the libsoxr.mk file:
Quoted 8 lines
ifeq ($(BR2_ENDIAN),"BIG")
LIBSOXR_CONF_OPT+= -DHAVE_WORDS_BIGENDIAN_EXITCODE=1 elseLIBSOXR_CONF_OPT+= -DHAVE_WORDS_BIGENDIAN_EXITCODE=0 endifI'm unsure about the exact way to pass this flag to the build, either with
FOO_CONF_OPTorFOO_CONF_ENV, so you may want to try both.
I confirm, when using the cmake infrastructure, the flags are passed to FOO_CONF_OPT.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 6956] Packaging libsoxr
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=6956
--- Comment #5 from Thomas De Schampheleire <[email protected]> 2014-04-24 20:06:26 UTC --- Hadrien Bouteville has proposed a libsoxr patch on the list, so this bug can
soon be closed...
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 6956] Packaging libsoxr
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=6956
Gustavo Zacarias <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED--- Comment #6 from Gustavo Zacarias <[email protected]> 2014-05-03 21:05:39 UTC --- libsoxr added in commit 705662b41d59558ad6ca11362c9611cf13f1d6fd for the upcoming 2014.05 release.
But please note you're probably talking of mpd 0.18.6 (and not 18.6), and anyway the whole 0.18.x branch lacks libsoxr support, that'll probably be in 0.19.x or whatever the next major release is called (it's in mpd git master for now).
Thanks.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.