Я пытался кросс-компилировать Perl-5.14.2 для цели NetBSD с Linux-машины.Сценарий Configure успешно вызывается со следующими параметрами:
./Configure -des -Dusecrosscompile
-Dtargetarch=netbsd
-Dosvers=3.0.0
-Dtargethost=10.184.22.48
-Dtargetuser=username
-Dusrinc=.../sb1-mips/usr/include
-Dlibpth=.../xc-sb1-mips/netbsd/Lib/lib
-Dcc=.../mips64-netbsdelf-gcc
После настройки make
не удалось.
В разных местах происходит разрыв при создании файла miniperlmain.o
.
Например, при создании файла gv.o
произошла следующая ошибка:
gv.c: In function `Perl_try_amagic_un':
gv.c:2018: error: void value not ignored as it ought to be
gv.c:2029: error: void value not ignored as it ought to be
gv.c:2029: warning: cast from pointer to integer of different size
gv.c: In function `Perl_try_amagic_bin':
gv.c:2061: error: void value not ignored as it ought to be
gv.c:2063: error: void value not ignored as it ought to be
make: *** [gv.o] Error 1
Теперь, чтобы избавиться от этих ошибок, я передал два флага, а именно -DPERL_IMPLICIT_CONTEXT
и -DPERL_GCC_BRACE_GROUPS_FORBIDDEN
компилятору C CCFLAGS
, которыйрешил проблему.
- Поскольку это пользовательская сборка, вы хотите знать обо всех
CCFLAGS
, которые необходимо пройти для успешной сборки? - Чтоозначает каждый флаг?
- Имеется ли у них какая-либо документация?