digitalmars.D - Shared lib support for Linux
- Long Chang (14/14) Mar 21 2011 Hello ,
- Kagamin (21/40) Mar 22 2011 mov ESI, aptr;
- Kagamin (1/2) Mar 22 2011 oops, no, it's just me.
- Kagamin (1/2) Mar 22 2011 oops, no, it's just me.
- Iain Buclaw (6/20) Mar 22 2011 Ignoring any bugs in Druntime and DMD regarding PIC code generation; GDC...
- Long Chang (7/27) Mar 22 2011 this, GCC
- Long Chang (14/34) Mar 22 2011 this, GCC
- Long Chang (19/39) Mar 22 2011 I install libc_pic , and got this error :
Hello , The DMD will support shared lib for linux in future, But I wan't to know when this can be completed . I am try use GDC build libgdruntime.a with -fPIC, and catch some error I can't fix it . for example: ../../../../libphobos/rt/arraybyte.d ../../../../libphobos/rt/arraybyte.d: In function =E2=80=98_arraySliceExpAddSliceAssign_g=E2=80=99: ../../../../libphobos/rt/arraybyte.d:220: error: PIC register =E2=80=98ebx= =E2=80=99 clobbered in =E2=80=98asm=E2=80=99 If Druntime team can help GDC team fix this issue will be great . Kind Regards / Long Chang
Mar 21 2011
Long Chang Wrote:Hello , The DMD will support shared lib for linux in future, But I wan't to know when this can be completed . I am try use GDC build libgdruntime.a with -fPIC, and catch some error I can't fix it . for example: ../../../../libphobos/rt/arraybyte.d ../../../../libphobos/rt/arraybyte.d: In function ‘_arraySliceExpAddSliceAssign_g’: ../../../../libphobos/rt/arraybyte.d:220: error: PIC register ‘ebx’ clobbered in ‘asm’ If Druntime team can help GDC team fix this issue will be great . Kind Regards / Long Changmov ESI, aptr; mov EDI, bptr; mov CL, value; align 4; startadd386: add ESI, 4; mov DX, [EDI]; mov AX, [EDI+2]; add EDI, 4; add AL, CL; add AH, CL; add DL, CL; add DH, CL; mov [ESI -4], DX; mov [ESI+2 -4], AX; cmp ESI, n; jb startadd386; mov aptr, ESI; mov bptr, EDI; though the function looks buggy.
Mar 22 2011
though the function looks buggy.oops, no, it's just me.
Mar 22 2011
though the function looks buggy.oops, no, it's just me.
Mar 22 2011
== Quote from Long Chang (changlong jkys.info)'s articleHello , The DMD will support shared lib for linux in future, But I wan't to know when this can be completed . I am try use GDC build libgdruntime.a with -fPIC, and catch some error I can't fix it . for example: ../../../../libphobos/rt/arraybyte.d ../../../../libphobos/rt/arraybyte.d: In function ‘_arraySliceExpAddSliceAssign_g’: ../../../../libphobos/rt/arraybyte.d:220: error: PIC register ‘ebx ’ clobbered in ‘asm’ If Druntime team can help GDC team fix this issue will be great . Kind Regards / Long ChangIgnoring any bugs in Druntime and DMD regarding PIC code generation; GDC puts all used registers in any given asm statement in the clobbered list. Without this, GCC will not know of their usage, and so assumes the register(s) are free, therefore it may decide to use them for storing other data. Regards
Mar 22 2011
On Tue, Mar 22, 2011 at 8:57 PM, Iain Buclaw <ibuclaw ubuntu.com> wrote:=3D=3D Quote from Long Chang (changlong jkys.info)'s articleputs allHello , The DMD will support shared lib for linux in future, =A0But I wan't to know when this can be completed . I am try use GDC build libgdruntime.a with -fPIC, =A0and catch some error I can't fix it . for example: ../../../../libphobos/rt/arraybyte.d ../../../../libphobos/rt/arraybyte.d: In function =91_arraySliceExpAddSliceAssign_g=92: ../../../../libphobos/rt/arraybyte.d:220: error: PIC register =91ebx =92 clobbered in =91asm=92 If Druntime team can help GDC team fix this issue will be great . Kind Regards / Long ChangIgnoring any bugs in Druntime and DMD regarding PIC code generation; GDC =used registers in any given asm statement in the clobbered list. Without =this, GCCwill not know of their usage, and so assumes the register(s) are free, th=ereforeit may decide to use them for storing other data. RegardsThe GDC default build script report this error and stop building, I don't know to to ignore it. If the next GDC can release with shared lib support will be great news .
Mar 22 2011
On Tue, Mar 22, 2011 at 8:57 PM, Iain Buclaw <ibuclaw ubuntu.com> wrote:=3D=3D Quote from Long Chang (changlong jkys.info)'s articleputs allHello , The DMD will support shared lib for linux in future, =A0But I wan't to know when this can be completed . I am try use GDC build libgdruntime.a with -fPIC, =A0and catch some error I can't fix it . for example: ../../../../libphobos/rt/arraybyte.d ../../../../libphobos/rt/arraybyte.d: In function =91_arraySliceExpAddSliceAssign_g=92: ../../../../libphobos/rt/arraybyte.d:220: error: PIC register =91ebx =92 clobbered in =91asm=92 If Druntime team can help GDC team fix this issue will be great . Kind Regards / Long ChangIgnoring any bugs in Druntime and DMD regarding PIC code generation; GDC =used registers in any given asm statement in the clobbered list. Without =this, GCCwill not know of their usage, and so assumes the register(s) are free, th=ereforeit may decide to use them for storing other data. RegardsI delete all error asm code line, it building success . But when I build my project, got this error : gcc -shared -o dmd_xtpl.so dmd_xtpl.o -L/home/opt/usr/local/lib64/ -lgphobos2 -lgdruntime -fPIC /usr/bin/ld: /home/opt/usr/local/lib64//libgphobos2.a(errno_.o): relocation R_X86_64_PC32 against undefined symbol `__errno_location GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status
Mar 22 2011
I install libc_pic , and got this error : gcc -shared -o dmd_xtpl.so dmd_xtpl.o -fPIC -m64 -L/home/opt/usr/local/lib64 -lgdruntime -lc_pic/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/libc_pic.a(init-= first.os): In function `_init': (.text+0x20): multiple definition of `_init' /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crti.o:(.init+0x0): first defined here /usr/bin/ld: dmd_xtpl.so: version node not found for symbol pthread_cond_destroy GLIBC_2.3.2 /usr/bin/ld: failed to set dynamic section sizes: Bad value collect2: ld returned 1 exit status On Tue, Mar 22, 2011 at 8:57 PM, Iain Buclaw <ibuclaw ubuntu.com> wrote:=3D=3D Quote from Long Chang (changlong jkys.info)'s articleputs allHello , The DMD will support shared lib for linux in future, =A0But I wan't to know when this can be completed . I am try use GDC build libgdruntime.a with -fPIC, =A0and catch some error I can't fix it . for example: ../../../../libphobos/rt/arraybyte.d ../../../../libphobos/rt/arraybyte.d: In function =91_arraySliceExpAddSliceAssign_g=92: ../../../../libphobos/rt/arraybyte.d:220: error: PIC register =91ebx =92 clobbered in =91asm=92 If Druntime team can help GDC team fix this issue will be great . Kind Regards / Long ChangIgnoring any bugs in Druntime and DMD regarding PIC code generation; GDC =used registers in any given asm statement in the clobbered list. Without =this, GCCwill not know of their usage, and so assumes the register(s) are free, th=ereforeit may decide to use them for storing other data. Regards--=20 .
Mar 22 2011