Я смотрю, Вы не ищете лёгких путей.

А в чём цель-то? Чтобы именно на Обероне? В какой-нибудь Android Studio, чай проблем будет гораздо поменьше, а процесс попроще. Или это самоцель?
Когда-то я пробовал собирать приложение для Андроида на
GPCP, но срезался на ошибке в компиляторе (что-то связанное с инициализацией конструкторов) и общей "сырости" GPCP. А править его некому.
Притом это была попытка сделать SDK-приложение для Андроида (т.е. Java/JVM/Dalvik-based), а не NDK. Хотя JNI/NDK я тоже рассматривал.
А с Java micro edition такой трюк
получился. Впрочем, приложение было не особо сложное. Но это долбанная возня, надо было серьёзно разобраться с тем, как при помощи утилит из JDK получить .jar-файл, как верифицировать приложение, как подписать и так далее. Вы точно хотите в этом барахтаться?
Артем Запаранюк писал(а):
Нашел на сайте
https://blackbox.oberon.orgв разделе "Расширения-трансляторы" пакет под названием Транслятор Компонентного Паскаля в Си - CPFront.
Когда я
портировал BlackBox на ARMv7, пользовался именно CPfront. Инструмент хороший, хотя и сыроватый, но даден OMinc'ами "как есть", за что им огромное спасибо конечно.
Но CPfront не адаптирован под 64-битную разработку. И если его дорабатывать, то надо будет залезть и во фронт-энд (а он использует фронт-энд от BlackBox). Насколько мне известно, что-то в этом направлении сделал Дм. Дагаев (проект Мульти-Оберон), но подробностей не знаю, лучше бы спросить у него самого.
Артем Запаранюк писал(а):
Снова поискал на форуме и нашел здесь целую ветку про это расширение
В заголовке темы указана поддержка ARM.
Верно. И даже 64-битный ARM.
Но это не расширение, а вполне самостоятельный проект.
Артем Запаранюк писал(а):
Насколько я понял трансляция - это не компиляция.
Поэтому нужно будет использовать пакет GCC для Arm Android.
Именно. Придётся разобраться с опциями вызова Си-компайлера.
Артем Запаранюк писал(а):
В результате как мне кажется получить .so файл библиотеки для arm v7a Android вполне реально.
Вполне реально.
Артем Запаранюк писал(а):
Сначала нужно транслировать программу с помощью CPfront на Си. Потом использовать компилятор и линкер из набора GCC для Arm v7a Android.
Можете конечно и через CPfront, но Вы уверены, что справитесь? Тут сразу надо заметить, что сейчас Андроиды вполне уже 64-битные. Так что я бы советовал
Ofront+, который создан на базе Ofront, CPfront и BlackBox. И поддерживает 64-битную разработку.
Артем Запаранюк писал(а):
Таким образом у меня остался только такой вопрос - что нужно дополнительно указать в тексте программы на Компонентом Паскале, чтобы после трансляции на Си и обработки пакетом GCC для Arm v7a получить именно библиотеку so, а не исполняемый файл для Android?
Вас интересуют именно опции компиляции?
Тут будет много сложностей помимо них.
Во-первых, надо понять что из себя будет представлять эта библиотека .so
Вы точно хотите использовать все возможности Оберона/КП и включить туда системные вызовы и сборщик мусора? Может часть ядра? Или попробуете обойтись без NEW и сборки мусора? (Что будет гораздо проще).
В поставке Ofront+ есть
пример сборки простой DLL/SO, можно плясать оттуда.
Там же есть и опции GCC для сборки библиотеки.
Код:
CC="cc -Os -g0 -fvisibility=hidden -fomit-frame-pointer -finline-small-functions -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -Wl,--gc-sections"
$CC MyDLL.c -fPIC -shared -oMyDLL.so
Это самый простой и минимальный вариант сборки, но там будет ещё масса тонкостей, например: переназначать ли имена вида "Module_Proc" в "Proc"? И так далее. В общем, тут надо много времени потратить, чтобы разобраться. Если хотите, я помогу, но может всё же лучше Android SDK? Или сразу Dart/Flutter берите, чтобы не морочиться. Я серьёзно.