Summary: | media-libs/speex-1.2.0-r1: "#error I suppose you can have a [ARM4/ARM5E/Blackfin] that has float instructions?" when cross-compiling for arm | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Paweł Hajdan, Jr. (RETIRED) <phajdan.jr> |
Component: | Current packages | Assignee: | Gentoo Sound Team <sound> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | anarchy, arm, chewi, maekke |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 641504 | ||
Attachments: |
build.log
configure.ac patch for 1.2_rc3 Patch to use CPU_FLAGS_ARM and fix logic on armv6+ Patch to fix fixed point |
Description
Paweł Hajdan, Jr. (RETIRED)
2017-05-03 10:37:25 UTC
speex-1.2_rc2 added neon optimization which is what will ultimately fix this bug. rc3 is released and should be added to the tree Created attachment 476720 [details, diff]
configure.ac patch for 1.2_rc3
(In reply to Jory A. Pratt from comment #2) > Created attachment 476720 [details, diff] [details, diff] > configure.ac patch for 1.2_rc3 But version is portage is 1.2.0, shoudn't be this never than 1.2_rc3? I am also having this problem here. (In reply to Conrad Kostecki from comment #3) > (In reply to Jory A. Pratt from comment #2) > > Created attachment 476720 [details, diff] [details, diff] [details, diff] > > configure.ac patch for 1.2_rc3 > > But version is portage is 1.2.0, shoudn't be this never than 1.2_rc3? > I am also having this problem here. No 1.2.0 is not newer, you will see if you try and compile 1.2_rc1 which is in the tree right now it will compile just fine. (In reply to Jory A. Pratt from comment #4) > (In reply to Conrad Kostecki from comment #3) > > (In reply to Jory A. Pratt from comment #2) > > > Created attachment 476720 [details, diff] [details, diff] [details, diff] [details, diff] > > > configure.ac patch for 1.2_rc3 > > > > But version is portage is 1.2.0, shoudn't be this never than 1.2_rc3? > > I am also having this problem here. > > No 1.2.0 is not newer, you will see if you try and compile 1.2_rc1 which is > in the tree right now it will compile just fine. Thanks, it worked for me :) Created attachment 490648 [details, diff] Patch to use CPU_FLAGS_ARM and fix logic on armv6+ (In reply to Jory A. Pratt from comment #4) > (In reply to Conrad Kostecki from comment #3) > > (In reply to Jory A. Pratt from comment #2) > > > Created attachment 476720 [details, diff] [details, diff] [details, diff] [details, diff] > > > configure.ac patch for 1.2_rc3 > > > > But version is portage is 1.2.0, shoudn't be this never than 1.2_rc3? > > I am also having this problem here. > > No 1.2.0 is not newer, you will see if you try and compile 1.2_rc1 which is > in the tree right now it will compile just fine. Errr... what? 1.2.0 is newer. You seem to be confused with the speexdsp package that was split out in 1.2.0. This has the new NEON handling. The problem is that armv5te is forced on the later ARM profiles but --enable-arm5e-asm means use armv5-specific (i.e. fixed point) ASM that is not suitable on newer hardware. Here is a patch that fixes the logic and uses CPU_FLAGS_ARM instead. The old armv6* flags are a bit confusing and these new flags seem to be the way to go now. I'll merge this in a few days if no one has any objections. Fixed in 88db124b3f3ed7eaaead23a888fbb01dad93eeab. Reopening: This is only a partial fix: libtool: compile: armv5tel-softfloat-linux-gnueabi-gcc -DHAVE_CONFIG_H -I. -I/mnt/distfiles/tmp/portage/media-libs/speex-1.2.0-r1/work/speex-1.2.0/libspeex -I.. -I/mnt/distfiles/tmp/portage/media-libs/speex-1.2.0-r1/work/speex-1.2.0/include -I../include/speex -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O2 -march=armv5te -pipe -fvisibility=hidden -Wall -c /mnt/distfiles/tmp/portage/media-libs/speex-1.2.0-r1/work/speex-1.2.0/libspeex/cb_search.c -fPIC -DPIC -o .libs/cb_search.o In file included from /mnt/distfiles/tmp/portage/media-libs/speex-1.2.0-r1/work/speex-1.2.0/libspeex/cb_search.h:39:0, from /mnt/distfiles/tmp/portage/media-libs/speex-1.2.0-r1/work/speex-1.2.0/libspeex/cb_search.c:36: /mnt/distfiles/tmp/portage/media-libs/speex-1.2.0-r1/work/speex-1.2.0/libspeex/arch.h:68:2: error: #error I suppose you can have a [ARM4/ARM5E/Blackfin] that has float instructions? #error I suppose you can have a [ARM4/ARM5E/Blackfin] that has float instructions? ^~~~~ For armv4/5 the --enable-fixed-point configure argument needs to be passed. Maybe the cleanest solution would be to use tc-is-softfloat() (and check for != "no"). Created attachment 524760 [details, diff]
Patch to fix fixed point
Sorry about that, I don't have any ARM hardware that old. I don't believe fixed point and softfloat are the same thing. It's a simple fix in any case. I could commit the fix against the stable ebuild but please test the patch first.
(In reply to James Le Cuirot from comment #9) > Created attachment 524760 [details, diff] [details, diff] > Patch to fix fixed point > > Sorry about that, I don't have any ARM hardware that old. I don't believe > fixed point and softfloat are the same thing. It's a simple fix in any case. > I could commit the fix against the stable ebuild but please test the patch > first. your patch works perfectly, thanks! The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=755506b85255d86236beea42d56da56b6c85277f commit 755506b85255d86236beea42d56da56b6c85277f Author: James Le Cuirot <chewi@gentoo.org> AuthorDate: 2018-03-22 20:47:53 +0000 Commit: James Le Cuirot <chewi@gentoo.org> CommitDate: 2018-03-22 20:47:53 +0000 media-libs/speex: Fix fixed point arithmetic on old ARM Closes: https://bugs.gentoo.org/617322 Package-Manager: Portage-2.3.24, Repoman-2.3.6 media-libs/speex/speex-1.2.0-r1.ebuild | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) |