Illegal instruction on new port mongodb49 on arm64

Michał Górny mgorny at gentoo.org
Thu Apr 1 08:47:57 UTC 2021


On Thu, 2021-04-01 at 10:37 +0200, Ronald Klop wrote:
> Hi,
> 
> I created a new port for mongodb49: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254631
> It compiles fine: https://www.klop.ws/mongodb49-4.9.0.r0.log
> 
> When I run an application I get "Illegal Instruction" error.
> 
> ==============================================================
> [root at rpi4 /tmp]# lldb /usr/local/bin/mongo
> (lldb) target create "/usr/local/bin/mongo"
> Current executable set to '/usr/local/bin/mongo' (aarch64).
> (lldb) run
> Process 55420 launching
> Process 55420 launched: '/usr/local/bin/mongo' (aarch64)
> Process 55420 stopped
> * thread #1, name = 'mongo', stop reason = signal SIGILL: illegal trap
>     frame #0: 0x00000000016a320c mongo`___lldb_unnamed_symbol32$$mongo + 1784
> mongo`___lldb_unnamed_symbol32$$mongo:
> ->  0x16a320c <+1784>: ldaddal x9, x8, [x8]

According to [1], this instruction requires ARMv8.1.  If I grep
correctly, rpi4 is ARMv8-A.  Yet you're compiling with -march=armv8.2-a,
so it's a case of wrong -march.

[1] https://developer.arm.com/documentation/100069/0608/A64-Data-Transfer-Instructions/LDADDA--LDADDAL--LDADD--LDADDL--LDADDAL--LDADD--LDADDL

-- 
Best regards,
Michał Górny




More information about the freebsd-ports mailing list