как собрать g cc для поддержки -mcmodel = large -fpi c на arm64 - PullRequest
0 голосов
/ 07 апреля 2020

Когда я попытался скомпилировать пример кода, размещенный в https://eli.thegreenplace.net/2012/01/03/understanding-the-x64-code-models/#example - c -источник на устройстве arm64 (Raspberrypi) с

raspberrypi:~$ gcc -g -O0 -c code_model.c -fPIC -mcmodel=large -o code_model_large_pic.o
cc1: sorry, unimplemented: code model ‘large’ with -fPIC

, но clang с радостью компилирует то же самое.

Я подозреваю, что мне нужно включить некоторые дополнительные параметры конфигурации при сборке g cc для моего Raspberrypi.

raspberrypi:~$ gcc -dumpspecs
...
*cc1:
%{profile:-p}%{%:sanitize(address):-funwind-tables}
...

на моем x86-64 p c

x86-64-pc:~$ gcc -dumpspecs
...
*cc1:
%{!mandroid|tno-android-cc:%(cc1_cpu) %{profile:-p};:%(cc1_cpu) %{profile:-p} %{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} %{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC}}}}}
...

Я полагаю, что это как-то связано с %{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC}}}}}.

Как собрать g cc для устройства arm64 для поддержки модели большого кода с позиционно-независимым кодом?

...