Откройте файл OpenSSL с именем Configure
в корне архива.Переместитесь вниз к строке 610, и вы увидите следующее для MIPS (найдите лучшее совпадение, если оно плохое):
"vxworks-mips","ccmips:-mrtp -mips2 -O -G 0 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DCPU=MIPS32 -msoft-float -mno-branch-likely -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/h/wrn/coreip::-D_REENTRANT:VXWORKS:-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/mips/MIPSI32/sfcommon::${mips32_asm}:o32::::::ranlibmips:",
Добавьте -fPIC
к используемым параметрам.
Альтернативно, откройте файл OpenSSL с именем Makefile.org
в корне архива.Перейдите к строке 60, и вы увидите следующее:
CC= gcc
Добавьте следующее как CC
:
CC= gcc -fPIC
Это своего рода хак, потому что вы хотите это сделатьдля CFLAGS
, но Makefile не принимает макрос.
Или вы можете подождать, пока завершится конфигурация OpenSSL (т. е. после запуска ./config
), а затем открыть все make-файлы идобавьте его в CFLAGS
, созданный из шаблона Makefile.org
.Обязательно посетите make-файлы в подкаталогах, таких как crypto
и engines
.
. Окончательное решение для OpenSSL - добавить пользовательскую строку в config
и Configure
.Бен Лори и другие делают это, когда выполняют пользовательские сборки.Ищите config
и Configure
для "debug-ben" или "ben-debug" или аналогичного.
Для libcurl
, я полагаю, это проект автомобильного проекта.Просто выполните следующее:
$ export CFLAGS="-fPIC"
$ ./config