Ошибка при компиляции на платформе amd64.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Ошибка при компиляции на платформе amd64.

Dmitry V. Kustov
Решил поставить софт, необходимый для работы. В процессе компиляции
столкнулся со следующей ошибкой:

/usr/bin/ld:  
/usr/lib/gcc-lib/amd64-unknown-openbsd3.8/3.3.5/libgcc.a(unwind-dw2.o):  
relocation R_X86_64_32S can not be used when making a shared object;  
recompile with -fPIC
/usr/lib/gcc-lib/amd64-unknown-openbsd3.8/3.3.5/libgcc.a: could not read  
symbols: Bad value
collect2: ld returned 1 exit status
gmake: *** [lib/libCint.so] Ошибка 1

Я правильно понимаю, что это недоработка OpenBSD team? Или я где-то не так
что сделал? Ясное дело, в собираемом пакете всё с ключами -fPIC -DPIC.
userland пересобирал - не помогло.


Reply | Threaded
Open this post in threaded view
|

Re: Ошибка при компиляции на платформе amd64.

Alexander Yurchenko
On Thu, Dec 01, 2005 at 04:44:26PM +0300, Dmitry V. Kustov wrote:

> Решил поставить софт, необходимый для работы. В процессе компиляции
> столкнулся со следующей ошибкой:
>
> /usr/bin/ld:  
> /usr/lib/gcc-lib/amd64-unknown-openbsd3.8/3.3.5/libgcc.a(unwind-dw2.o):  
> relocation R_X86_64_32S can not be used when making a shared object;  
> recompile with -fPIC
> /usr/lib/gcc-lib/amd64-unknown-openbsd3.8/3.3.5/libgcc.a: could not read  
> symbols: Bad value
> collect2: ld returned 1 exit status
> gmake: *** [lib/libCint.so] Ошибка 1
>
> Я правильно понимаю, что это недоработка OpenBSD team? Или я где-то не так
> что сделал? Ясное дело, в собираемом пакете всё с ключами -fPIC -DPIC.
> userland пересобирал - не помогло.
>

Попробуйте приложить вот этот патч:

Index: bsd.own.mk
===================================================================
RCS file: /cvs/src/share/mk/bsd.own.mk,v
retrieving revision 1.93
diff -u -r1.93 bsd.own.mk
--- bsd.own.mk 2005/08/08 05:53:01 1.93
+++ bsd.own.mk 2005/12/01 14:14:10
@@ -122,7 +122,7 @@
 .endif
 
 # pic relocation flags.
-.if (${MACHINE_ARCH} == "sparc64")
+.if (${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "amd64")
 PICFLAG=-fPIC
 .else
 PICFLAG=-fpic

Потом сделайте make install в /usr/src/share/mk, потом пересоберите и
установите gcc и попробуйте собрать вашу софтину еще раз.

--
   Alexander Yurchenko


Reply | Threaded
Open this post in threaded view
|

Re: Ошибка при компиляции на платформе amd64.

Dmitry V. Kustov
Попоробовал - не получилось. Та же ошибка. Есть ещё идеи?

On Thu, 01 Dec 2005 17:16:54 +0300, Alexander Yurchenko  
<[hidden email]> wrote:

> On Thu, Dec 01, 2005 at 04:44:26PM +0300, Dmitry V. Kustov wrote:
>> Решил поставить софт, необходимый для работы. В процессе компиляции
>> столкнулся со следующей ошибкой:
>>
>> /usr/bin/ld:
>> /usr/lib/gcc-lib/amd64-unknown-openbsd3.8/3.3.5/libgcc.a(unwind-dw2.o):
>> relocation R_X86_64_32S can not be used when making a shared object;
>> recompile with -fPIC
>> /usr/lib/gcc-lib/amd64-unknown-openbsd3.8/3.3.5/libgcc.a: could not read
>> symbols: Bad value
>> collect2: ld returned 1 exit status
>> gmake: *** [lib/libCint.so] Ошибка 1
>>
>> Я правильно понимаю, что это недоработка OpenBSD team? Или я где-то не  
>> так
>> что сделал? Ясное дело, в собираемом пакете всё с ключами -fPIC -DPIC.
>> userland пересобирал - не помогло.
>>
>
> Попробуйте приложить вот этот патч:
>
> Index: bsd.own.mk
> ===================================================================
> RCS file: /cvs/src/share/mk/bsd.own.mk,v
> retrieving revision 1.93
> diff -u -r1.93 bsd.own.mk
> --- bsd.own.mk 2005/08/08 05:53:01 1.93
> +++ bsd.own.mk 2005/12/01 14:14:10
> @@ -122,7 +122,7 @@
>  .endif
> # pic relocation flags.
> -.if (${MACHINE_ARCH} == "sparc64")
> +.if (${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "amd64")
>  PICFLAG=-fPIC
>  .else
>  PICFLAG=-fpic
>
> Потом сделайте make install в /usr/src/share/mk, потом пересоберите и
> установите gcc и попробуйте собрать вашу софтину еще раз.
>