перемещение R_X86_64_32 против локального символа 'ошибка - PullRequest
5 голосов
/ 18 июля 2009

Я пытаюсь установить Subversion с поддержкой Apache. Я установил apr, apr-utils, neon и OpenSSL с флагом --enable-shared. Тем не менее, я получаю следующую ошибку при попытке установить Subversion:

/usr/bin/ld: /usr0/software/openssl/ossl/lib/libssl.a(s23_clnt.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr0/software/openssl/ossl/lib/libssl.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [libserf-0.la] Error 1
make[1]: Leaving directory `/usr0/sources/svn/subversion-1.6.3/serf'
make: *** [external-all] Error 1

В FAQ по Subversion указано, что если я получаю эту ошибку, я должен использовать флаг --enable-shared, и он должен работать. Однако это не помогает. Есть идеи как обойти это?

Ответы [ 3 ]

5 голосов
/ 20 июля 2009

Я понял, что проблема была с установкой openssl. Переустановка openssl с включенным enable-shared.

0 голосов
/ 18 августа 2015

Я решаю это добавлением скрытого атрибута в OPENSSL_ia32cap_P в crypto \ cryptolib.h и перекомпилирую.

extern unsigned int OPENSSL_ia32cap_P[] __attribute__ ((visibility ("hidden")));
0 голосов
/ 06 марта 2010

Я столкнулся с этим в нескольких других сценариях, не относящихся к openssl, и обнаружил, что это, как правило, связано с отсутствием общих библиотек.

Добавление --enable-shared в строку конфигурации, кажется, исправляет это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...