Created attachment 195063 [details]
I don't know why I did this, I'm not even planning to use .NET on my RPi3, I guess it was just bothering me that it worked on armv7 and not aarch64… (also I needed to do something in parallel while Crystal was compiling on the ThunderX I rented from packet.net)
Hopefully I didn't screw anything up (I was modifying the port as errors appeared, did not clean and rebuild from scratch — it's slow and access to a ThunderX is expensive… honestly it's not much faster than RPi here because of an issue described below)
The Roslyn C# compiler has a concurrency problem on aarch64: https://github.com/mono/mono/issues/7017 (not FreeBSD specific) so the workaround is to disable parallelism… so the .NET libraries are built very very slowly :(
BoringSSL patch is from bug 223019 but slightly modified (to ignore <sys/auxv.h>), see comment in that thread.
Also there was an intermittent jemalloc error, had to restart the build once:
<jemalloc>: /usr/src/contrib/jemalloc/include/jemalloc/internal/extent_inlines.h:63: Failed assertion: "szind < NSIZES"
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
gmake: *** [../../../build/library.make:342: ../../../class/lib/net_4_x-linux/Facades/System.IO.FileSystem.Primitives.dll] Abort trap (core dumped)
(In reply to Greg V from comment #0)
Can you regenerate the patch, the plist patch is broken:
svn patch --strip 3 --dry-run patch.aarch64
> applied hunk @@ -60,6 +60,15 @@ with offset 4
> applied hunk @@ -88,4 +97,4 @@ with offset 4
> rejected hunk @@ -2937,38 +2937,38 @@
Summary of conflicts:
Text conflicts: 1
It builds fine on -current (I don't have the jemalloc issue and I don't need the extra patch on my board), have you tried on 11.1 or 11.2?
Created attachment 195945 [details]
Sure, this should be a diff against current master.
I only tried on CURRENT.
jemalloc — maybe you got lucky, it only happened once during my build. Or maybe this was fixed — I used an old current snapshot for the build.
extra-patch — looks like the model of the processor matters. The concurrency bug is definitely happening on Cavium ThunderX (it's been happening to everyone on Linux before I even tried on FreeBSD).
It builds fine on 11.1.
Part of this patch has been merged upstream:
Created attachment 200579 [details]
Updated patch with correct cpu feature detection in boringssl (thanks: Mikael)