Message ID | 20191117164452.5361-2-fontaine.fabrice@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | None | expand |
>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes: > celt051 can't be built statically with opus as opus embeds its own celt > version. So add a dynamic library dependency to celt051 (and not to > opus, as celt051 is only used optionally by spice whereas opus is > selected by 9 packages) > This will fix static build of spice with opus and celt: > /home/fabrice/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/i686-buildroot-linux-uclibc/7.4.0/../../../../i686-buildroot-linux-uclibc/bin/ld: /home/fabrice/buildroot/output/host/i686-buildroot-linux-uclibc/sysroot/usr/lib/libopus.a(vq.o): in function `renormalise_vector': > vq.c:(.text+0x5ee): multiple definition of `renormalise_vector'; /home/fabrice/buildroot/output/host/i686-buildroot-linux-uclibc/sysroot/usr/lib/libcelt051.a(vq.o):vq.c:(.text+0x6e6): first defined here > Fixes: > - http://autobuild.buildroot.org/results/96c786f85d35f33508e9c71778043d16b87f72cd So this is only really an issue for spice, if spice is built statically and both celt051 and opus are enabled? If so, then I would prefer to handle it in spice.mk instead, E.G. blacklist the celt51 + opus + static combination with a sensible comment, something like: ifeq ($(BR2_PACKAGE_CELT051),y) # opus embeds a copy of celt, causing multiple definitions of a number # of symbols when linked statically together with celt051, so disable # celt051 support for that combination ifeq ($(BR2_PACKAGE_OPUS)$(BR2_STATIC_LIBS),yy) SPICE_CONF_OPTS += --disable-celt051 else SPICE_CONF_OPTS += --enable-celt051 SPICE_DEPENDENCIES += celt051 endif else SPICE_CONF_OPTS += --disable-celt051 endif Care to send a patch doing something like that? Thanks.
Dear Peter, Le sam. 23 nov. 2019 à 14:38, Peter Korsgaard <peter@korsgaard.com> a écrit : > > >>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes: > > > celt051 can't be built statically with opus as opus embeds its own celt > > version. So add a dynamic library dependency to celt051 (and not to > > opus, as celt051 is only used optionally by spice whereas opus is > > selected by 9 packages) > > > This will fix static build of spice with opus and celt: > > > /home/fabrice/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/i686-buildroot-linux-uclibc/7.4.0/../../../../i686-buildroot-linux-uclibc/bin/ld: /home/fabrice/buildroot/output/host/i686-buildroot-linux-uclibc/sysroot/usr/lib/libopus.a(vq.o): in function `renormalise_vector': > > vq.c:(.text+0x5ee): multiple definition of `renormalise_vector'; /home/fabrice/buildroot/output/host/i686-buildroot-linux-uclibc/sysroot/usr/lib/libcelt051.a(vq.o):vq.c:(.text+0x6e6): first defined here > > > Fixes: > > - http://autobuild.buildroot.org/results/96c786f85d35f33508e9c71778043d16b87f72cd > > So this is only really an issue for spice, if spice is built statically > and both celt051 and opus are enabled? > > If so, then I would prefer to handle it in spice.mk instead, > E.G. blacklist the celt51 + opus + static combination with a sensible > comment, something like: > > ifeq ($(BR2_PACKAGE_CELT051),y) > > # opus embeds a copy of celt, causing multiple definitions of a number > # of symbols when linked statically together with celt051, so disable > # celt051 support for that combination > ifeq ($(BR2_PACKAGE_OPUS)$(BR2_STATIC_LIBS),yy) > SPICE_CONF_OPTS += --disable-celt051 > else > SPICE_CONF_OPTS += --enable-celt051 > SPICE_DEPENDENCIES += celt051 > endif > > else > SPICE_CONF_OPTS += --disable-celt051 > endif > > Care to send a patch doing something like that? Thanks. An other option would be to remove celt051 package indeed the root cause of this static build failure is that celt has been merged into the IETF Opus codec and is now obsolete (see http://celt-codec.org/). > > -- > Bye, Peter Korsgaard Best Regards, Fabrice
On 23/11/2019 17:05, Fabrice Fontaine wrote: > Dear Peter, > > Le sam. 23 nov. 2019 à 14:38, Peter Korsgaard <peter@korsgaard.com> a écrit : >> >>>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes: >> >> > celt051 can't be built statically with opus as opus embeds its own celt >> > version. So add a dynamic library dependency to celt051 (and not to >> > opus, as celt051 is only used optionally by spice whereas opus is >> > selected by 9 packages) [snip] >> Care to send a patch doing something like that? Thanks. > An other option would be to remove celt051 package indeed the root > cause of this static build failure is that celt has been merged into > the IETF Opus codec and is now obsolete (see http://celt-codec.org/). Indeed, that makes more sense. Care to remove it? Legacy handling should select BR2_PACKAGE_OPUS then (with appropriate explanation). Yann is developer for celt051, so please give a peep if it can't be removed. Regards, Arnout
Arnout, All, On 2020-01-23 23:23 +0100, Arnout Vandecappelle spake thusly: > On 23/11/2019 17:05, Fabrice Fontaine wrote: > > Dear Peter, > > > > Le sam. 23 nov. 2019 à 14:38, Peter Korsgaard <peter@korsgaard.com> a écrit : > >> > >>>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes: > >> > >> > celt051 can't be built statically with opus as opus embeds its own celt > >> > version. So add a dynamic library dependency to celt051 (and not to > >> > opus, as celt051 is only used optionally by spice whereas opus is > >> > selected by 9 packages) > [snip] > >> Care to send a patch doing something like that? Thanks. > > An other option would be to remove celt051 package indeed the root > > cause of this static build failure is that celt has been merged into > > the IETF Opus codec and is now obsolete (see http://celt-codec.org/). > > Indeed, that makes more sense. Care to remove it? Legacy handling should select > BR2_PACKAGE_OPUS then (with appropriate explanation). > > Yann is developer for celt051, so please give a peep if it can't be removed. Well, celt-0.51 was introduced because at the time. spice on;y supported that, and not the later versions, which is still documented in the package itself. But sicne then (7 years ago now), spice was updated, so maybe it can support newer versions, and maybe it works with Opus instead. Regards, Yann E. MORIN.
On 24/01/2020 19:14, Yann E. MORIN wrote: > Arnout, All, > > On 2020-01-23 23:23 +0100, Arnout Vandecappelle spake thusly: >> On 23/11/2019 17:05, Fabrice Fontaine wrote: >>> Dear Peter, >>> >>> Le sam. 23 nov. 2019 à 14:38, Peter Korsgaard <peter@korsgaard.com> a écrit : >>>> >>>>>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes: >>>> >>>> > celt051 can't be built statically with opus as opus embeds its own celt >>>> > version. So add a dynamic library dependency to celt051 (and not to >>>> > opus, as celt051 is only used optionally by spice whereas opus is >>>> > selected by 9 packages) >> [snip] >>>> Care to send a patch doing something like that? Thanks. >>> An other option would be to remove celt051 package indeed the root >>> cause of this static build failure is that celt has been merged into >>> the IETF Opus codec and is now obsolete (see http://celt-codec.org/). >> >> Indeed, that makes more sense. Care to remove it? Legacy handling should select >> BR2_PACKAGE_OPUS then (with appropriate explanation). >> >> Yann is developer for celt051, so please give a peep if it can't be removed. > > Well, celt-0.51 was introduced because at the time. spice on;y supported > that, and not the later versions, which is still documented in the > package itself. > > But sicne then (7 years ago now), spice was updated, so maybe it can > support newer versions, and maybe it works with Opus instead. Opus support in spice has already been added with the bump to 0.14.1 in f33f7a4f6407f. So if someone could remove celt051 please :-) Regards, Arnout
Hi Arnout, Le lun. 27 janv. 2020 à 17:22, Arnout Vandecappelle <arnout@mind.be> a écrit : > > > > On 24/01/2020 19:14, Yann E. MORIN wrote: > > Arnout, All, > > > > On 2020-01-23 23:23 +0100, Arnout Vandecappelle spake thusly: > >> On 23/11/2019 17:05, Fabrice Fontaine wrote: > >>> Dear Peter, > >>> > >>> Le sam. 23 nov. 2019 à 14:38, Peter Korsgaard <peter@korsgaard.com> a écrit : > >>>> > >>>>>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes: > >>>> > >>>> > celt051 can't be built statically with opus as opus embeds its own celt > >>>> > version. So add a dynamic library dependency to celt051 (and not to > >>>> > opus, as celt051 is only used optionally by spice whereas opus is > >>>> > selected by 9 packages) > >> [snip] > >>>> Care to send a patch doing something like that? Thanks. > >>> An other option would be to remove celt051 package indeed the root > >>> cause of this static build failure is that celt has been merged into > >>> the IETF Opus codec and is now obsolete (see http://celt-codec.org/). > >> > >> Indeed, that makes more sense. Care to remove it? Legacy handling should select > >> BR2_PACKAGE_OPUS then (with appropriate explanation). > >> > >> Yann is developer for celt051, so please give a peep if it can't be removed. > > > > Well, celt-0.51 was introduced because at the time. spice on;y supported > > that, and not the later versions, which is still documented in the > > package itself. > > > > But sicne then (7 years ago now), spice was updated, so maybe it can > > support newer versions, and maybe it works with Opus instead. > > Opus support in spice has already been added with the bump to 0.14.1 in > f33f7a4f6407f. > > So if someone could remove celt051 please :-) It's done since 29 hours and commit b32efbdb0354557db48852478b99080705ba315b ;-) > > Regards, > Arnout > Regards, Fabrice
diff --git a/package/celt051/Config.in b/package/celt051/Config.in index e1513190db..e8d6661ed8 100644 --- a/package/celt051/Config.in +++ b/package/celt051/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_CELT051 bool "celt051" + depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBOGG help The CELT ultra-low delay audio codec @@ -13,3 +14,6 @@ config BR2_PACKAGE_CELT051 Note: this is version 0.5.1.3 of celt. http://www.celt-codec.org/ + +comment "celt051 needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS
celt051 can't be built statically with opus as opus embeds its own celt version. So add a dynamic library dependency to celt051 (and not to opus, as celt051 is only used optionally by spice whereas opus is selected by 9 packages) This will fix static build of spice with opus and celt: /home/fabrice/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/i686-buildroot-linux-uclibc/7.4.0/../../../../i686-buildroot-linux-uclibc/bin/ld: /home/fabrice/buildroot/output/host/i686-buildroot-linux-uclibc/sysroot/usr/lib/libopus.a(vq.o): in function `renormalise_vector': vq.c:(.text+0x5ee): multiple definition of `renormalise_vector'; /home/fabrice/buildroot/output/host/i686-buildroot-linux-uclibc/sysroot/usr/lib/libcelt051.a(vq.o):vq.c:(.text+0x6e6): first defined here Fixes: - http://autobuild.buildroot.org/results/96c786f85d35f33508e9c71778043d16b87f72cd Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- package/celt051/Config.in | 4 ++++ 1 file changed, 4 insertions(+)