Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 01 Apr 2021 10:47:49 +0200
From:      =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?= <mgorny@gentoo.org>
To:        Ronald Klop <ronald-lists@klop.ws>, freebsd-ports@freebsd.org,  freebsd-arm@freebsd.org
Subject:   Re: Illegal instruction on new port mongodb49 on arm64
Message-ID:  <dc54a8d4ee2ca73f41930681348bc9b2a3e89376.camel@gentoo.org>
In-Reply-To: <1071728798.124.1617266260257@localhost>
References:  <1071728798.124.1617266260257@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dc54a8d4ee2ca73f41930681348bc9b2a3e89376.camel>