From: bugzilla at busybox.net <bugzilla@busybox.net>
To: buildroot@busybox.net
Subject: [Buildroot] [Bug 11996] New: opencv3 SIGILL on Cortex-A5 with VFPv4-D16
Date: Mon, 01 Jul 2019 17:17:56 +0000 [thread overview]
Message-ID: <bug-11996-163@https.bugs.busybox.net/> (raw)
https://bugs.busybox.net/show_bug.cgi?id=11996
Bug ID: 11996
Summary: opencv3 SIGILL on Cortex-A5 with VFPv4-D16
Product: buildroot
Version: 2019.02.3
Hardware: All
OS: Linux
Status: NEW
Severity: normal
Priority: P5
Component: Other
Assignee: unassigned at buildroot.uclibc.org
Reporter: jcowgill+busybox at jcowgill.uk
CC: buildroot at uclibc.org
Target Milestone: ---
I recently upgraded from 2018.02 to 2019.02 and discovered that opencv3 has
broken on my board (it worked with 2018.02). The board has a Cortex-A5 with
VFPv4-D16 enabled but without NEON and VFPv4 (so it only has 16 double floating
point registers).
These are the target options I have set:
BR2_arm=y
BR2_BINFMT_ELF=y
BR2_cortex_a5=y
BR2_ARM_ENABLE_NEON=n
BR2_ARM_ENABLE_VFP=y
BR2_ARM_EABIHF=y
BR2_ARM_FPU_VFPV4D16=y
BR2_ARM_INSTRUCTIONS_THUMB2=y
I can see that my application gets a SIGILL because it tries to load a value
into the d20 register which doesn't exist in VFPv4-D16.
0xb661d3d2 in cv::interpolateLanczos4 (coeffs=0xbef4602c, x=0.03125)
at
/home/jcowgill/workspace/bsp/buildroot/output/build/opencv3-3.4.3/modules/imgproc/src/imgwarp.cpp:176
176
/home/jcowgill/workspace/bsp/buildroot/output/build/opencv3-3.4.3/modules/imgproc/src/imgwarp.cpp:
No such file or directory.
(gdb) disassemble
...
0xb661d3cc <+796>: ldr r3, [pc, #240] ; (0xb661d4c0
<cv::initInterTab2D(int, bool)+1040>)
0xb661d3ce <+798>: vmov s14, r8
=> 0xb661d3d2 <+802>: vldr d20, [r10]
0xb661d3d6 <+806>: vldr d19, [r9]
0xb661d3da <+810>: add r3, pc
0xb661d3dc <+812>: mov r2, r7
========
I think this code in opencv3.mk is wrong (or maybe the ARM fpu config options
are wrong):
ifeq ($(BR2_ARCH_IS_64):$(BR2_ARM_CPU_HAS_VFPV3),:y)
OPENCV3_CONF_OPTS += -DENABLE_VFPV3=ON
else
OPENCV3_CONF_OPTS += -DENABLE_VFPV3=OFF
endif
Apparently I have BR2_ARM_CPU_HAS_VFPV3 set (even though I only have the -D16
version), but when you pass -DENABLE_VFPV3=ON to OpenCV, it passes -mfpu=vfpv3
to the compiler and this is what's causing the SIGILL.
--
You are receiving this mail because:
You are on the CC list for the bug.
next reply other threads:[~2019-07-01 17:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-01 17:17 bugzilla at busybox.net [this message]
2019-07-01 21:47 ` [Buildroot] [Bug 11996] opencv3 SIGILL on Cortex-A5 with VFPv4-D16 bugzilla at busybox.net
2019-11-27 22:20 ` bugzilla at busybox.net
2020-02-05 16:49 ` bugzilla at busybox.net
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-11996-163@https.bugs.busybox.net/ \
--to=bugzilla@busybox.net \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox