www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 8548] New: relocation R_X86_64_32 against can not be used when making a shared object

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8548

           Summary: relocation R_X86_64_32 against can not be used when
                    making a shared object
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: wbrana gmail.com



$ ./dmd hello.d 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/../../../../x86_64-pc-linux-gnu/bin/ld:
hello.o: relocation R_X86_64_32 against `.data' can not be used when making a
shared object; recompile with -fPIC
hello.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
--- errorlevel 1

$ ./dmd -fPIC hello.d 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/../../../../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

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 15 2012
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8548


Maxim Fomin <maxim maxim-fomin.ru> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |maxim maxim-fomin.ru



---
Which version of dmd are you using and what is in hello.d?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 15 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8548




dmd.2.060.zip
dmd2/linux/bin64/dmd

import std.stdio;

void main(string[] args)
{
    writeln("hello world");
    writefln("args.length = %d", args.length);

    foreach (index, arg; args)
    {
        writefln("args[%d] = '%s'", index, arg);
    }
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 15 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8548




It seems dmd is incompatible with Gentoo Hardened gcc.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 15 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8548




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

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 15 2012
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8548




---

 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: -------
Aug 15 2012