[Issue 8548] relocation R_X86_64_32 against can not be used when making a shared object

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Aug 15 10:28:16 PDT 2012


http://d.puremagic.com/issues/show_bug.cgi?id=8548



--- Comment #5 from Maxim Fomin <maxim at maxim-fomin.ru> 2012-08-15 10:28:14 PDT ---
(In reply to comment #4)
> following command fails also with non-hardened gcc
> 
>  ./dmd -shared -fPIC hello.d 
> /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2-pre9999/../../../../x86_64-pc-linux-gnu/bin/ld:
> ./../lib64/libphobos2.a(object__c_58c.o): relocation R_X86_64_32 against
> `_D10TypeInfo_m6__initZ' can not be used when making a shared object; recompile
> with -fPIC
> ./../lib64/libphobos2.a: could not read symbols: Bad value
> collect2: error: ld returned 1 exit status
> --- errorlevel 1

Libraries may be built in two steps 
(currently I don't know better solution):

dmd hello.d -fPIC -c
gcc --shared hello.o -o ...

if there is really need to make a library with main function.
Additionally, when linking object files from manually compiled sources, 
core modules have to be linked with phobos2.a, librt.so, libpthread.so.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list