Генерируемый двоичный файл mkbundle вызывает SIGSEGV на ARMv7h, а в Mono работает нормально
В настоящее время я тестирую Mono в archlinux на ARMv7h. Для начала я протестировал эту простую программу:
// test.cs
using System;
public class Test {
public static void Main(string[] args) {
Console.WriteLine("I'm working.");
}
}
Я использую Mono как нативный пакет, установленный через pacman
, не кросс-компилируется. При запуске он ведет себя как задумано:
mcs test.cs
mono test.exe
I'm working.
Когда я пытаюсь связать эту сборку, используя mkbundle
компилируется без ошибок:
mkbundle --deps test.exe -o test_standalone
OS is: Linux
Sources: 1 Auto-dependencies: True
embedding: /home/minx/usb/cs/test.exe
embedding: /usr/lib/mono/4.5/mscorlib.dll
Compiling:
as -o temp.o temp.s
cc -ggdb -o test_standalone -Wall temp.c `pkg-config --cflags --libs mono-2` temp.o
Done
/ usb / - это подключенный внешний USB-накопитель. mkbundle
вызывается как root. Когда я пытаюсь запустить двоичный результат:
./test_standalone
Native stacktrace:
Debug info from gdb:
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
и возвращается в оболочку. Двоичный файл не дает никакой дополнительной информации. Я пропустил флаг для этой конкретной архитектуры?