Re: SONAME and D

2012-02-27 Thread Jacob Carlborg

On 2012-02-26 14:53, bioinfornatics wrote:

Le vendredi 24 février 2012 à 15:56 +0100, Mike Wey a écrit :

On 02/23/2012 08:29 PM, bioinfornatics wrote:

Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :

On 02/23/2012 05:27 PM, bioinfornatics wrote:

dear,
for set soname with:
- gdc: -Xlinker -soname myLib.so.1
- ldc2: -soname myLib.so.1
- dmd: ?

someone know how set soname with dmd ?



dmd -L-soname=mylib.so.1



Thanks
i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
request for gtkd because ldc do not use -L-soname instead of dmd



The GtkD Makefile uses:

$(LINKERFLAG)-soname=$@.$(call stripBugfix,$(SO_VERSION))

Witch works with all the compilers, $(LINKERFLAG) is either -L or
-Xlinker (with a space on th end).



this it is good for dmd and gdc but ldc use -soname without -L
gdc: -Xlinker -soname
ldc: -soname
dmd: -L -soname


with ldc you do not to do calling the linker with $(LINKERFLAG


Do the ldmd and gdmd wrapper scripts handle this?

--
/Jacob Carlborg


Re: SONAME and D

2012-02-27 Thread bioinfornatics
Le lundi 27 février 2012 à 09:51 +0100, Jacob Carlborg a écrit :
 On 2012-02-26 14:53, bioinfornatics wrote:
  Le vendredi 24 février 2012 à 15:56 +0100, Mike Wey a écrit :
  On 02/23/2012 08:29 PM, bioinfornatics wrote:
  Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :
  On 02/23/2012 05:27 PM, bioinfornatics wrote:
  dear,
  for set soname with:
  - gdc: -Xlinker -soname myLib.so.1
  - ldc2: -soname myLib.so.1
  - dmd: ?
 
  someone know how set soname with dmd ?
 
 
  dmd -L-soname=mylib.so.1
 
 
  Thanks
  i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
  request for gtkd because ldc do not use -L-soname instead of dmd
 
 
  The GtkD Makefile uses:
 
  $(LINKERFLAG)-soname=$@.$(call stripBugfix,$(SO_VERSION))
 
  Witch works with all the compilers, $(LINKERFLAG) is either -L or
  -Xlinker (with a space on th end).
 
 
  this it is good for dmd and gdc but ldc use -soname without -L
  gdc: -Xlinker -soname
  ldc: -soname
  dmd: -L -soname
 
 
  with ldc you do not to do calling the linker with $(LINKERFLAG
 
 Do the ldmd and gdmd wrapper scripts handle this?
 

no but i will add it soon, waiting klickverbot or sokol


Mike Wey could you look if soname is really setted with
objdup -p libgtkd.so.1.5 | grep -i soname



Re: SONAME and D

2012-02-27 Thread Mike Wey

On 02/27/2012 10:30 AM, bioinfornatics wrote:

Le lundi 27 février 2012 à 09:51 +0100, Jacob Carlborg a écrit :

On 2012-02-26 14:53, bioinfornatics wrote:

Le vendredi 24 février 2012 à 15:56 +0100, Mike Wey a écrit :

On 02/23/2012 08:29 PM, bioinfornatics wrote:

Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :

On 02/23/2012 05:27 PM, bioinfornatics wrote:

dear,
for set soname with:
- gdc: -Xlinker -soname myLib.so.1
- ldc2: -soname myLib.so.1
- dmd: ?

someone know how set soname with dmd ?



dmd -L-soname=mylib.so.1



Thanks
i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
request for gtkd because ldc do not use -L-soname instead of dmd



The GtkD Makefile uses:

$(LINKERFLAG)-soname=$@.$(call stripBugfix,$(SO_VERSION))

Witch works with all the compilers, $(LINKERFLAG) is either -L or
-Xlinker (with a space on th end).



this it is good for dmd and gdc but ldc use -soname without -L
gdc: -Xlinker -soname
ldc: -soname
dmd: -L -soname


with ldc you do not to do calling the linker with $(LINKERFLAG


Do the ldmd and gdmd wrapper scripts handle this?



no but i will add it soon, waiting klickverbot or sokol


Mike Wey could you look if soname is really setted with
objdup -p libgtkd.so.1.5 | grep -i soname



$ make shared-libs DC=ldc2
[ Lots of text scrolls by ;) ]

$ objdump -p libgtkd.so | grep -i soname
  SONAME   libgtkd.so.1.5

ldc is called like this by the make file:
ld -r All the object files -o libgtkd.so.o
ldc2 -shared -oflibgtkd.so -L-soname=libgtkd.so.1.5 -L-ldl -m64 libgtkd.so.o

--
Mike Wey


Re: SONAME and D

2012-02-27 Thread bioinfornatics
Le lundi 27 février 2012 à 11:36 +0100, Mike Wey a écrit :
 On 02/27/2012 10:30 AM, bioinfornatics wrote:
  Le lundi 27 février 2012 à 09:51 +0100, Jacob Carlborg a écrit :
  On 2012-02-26 14:53, bioinfornatics wrote:
  Le vendredi 24 février 2012 à 15:56 +0100, Mike Wey a écrit :
  On 02/23/2012 08:29 PM, bioinfornatics wrote:
  Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :
  On 02/23/2012 05:27 PM, bioinfornatics wrote:
  dear,
  for set soname with:
  - gdc: -Xlinker -soname myLib.so.1
  - ldc2: -soname myLib.so.1
  - dmd: ?
 
  someone know how set soname with dmd ?
 
 
  dmd -L-soname=mylib.so.1
 
 
  Thanks
  i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
  request for gtkd because ldc do not use -L-soname instead of dmd
 
 
  The GtkD Makefile uses:
 
  $(LINKERFLAG)-soname=$@.$(call stripBugfix,$(SO_VERSION))
 
  Witch works with all the compilers, $(LINKERFLAG) is either -L or
  -Xlinker (with a space on th end).
 
 
  this it is good for dmd and gdc but ldc use -soname without -L
  gdc: -Xlinker -soname
  ldc: -soname
  dmd: -L -soname
 
 
  with ldc you do not to do calling the linker with $(LINKERFLAG
 
  Do the ldmd and gdmd wrapper scripts handle this?
 
 
  no but i will add it soon, waiting klickverbot or sokol
 
 
  Mike Wey could you look if soname is really setted with
  objdup -p libgtkd.so.1.5 | grep -i soname
 
 
 $ make shared-libs DC=ldc2
 [ Lots of text scrolls by ;) ]
 
 $ objdump -p libgtkd.so | grep -i soname
SONAME   libgtkd.so.1.5
 
 ldc is called like this by the make file:
 ld -r All the object files -o libgtkd.so.o
 ldc2 -shared -oflibgtkd.so -L-soname=libgtkd.so.1.5 -L-ldl -m64 libgtkd.so.o
 

awesome, thanks a lot



Re: SONAME and D

2012-02-26 Thread bioinfornatics
Le vendredi 24 février 2012 à 13:00 -0800, H. S. Teoh a écrit :
 On Fri, Feb 24, 2012 at 09:35:57PM +0100, Jordi Sayol wrote:
  Al 24/02/12 20:45, En/na H. S. Teoh ha escrit:
 [...]
   I personally think that phobos *should* be a shared object at some
   point, but not everyone agrees with me.
   
  
  I think that phobos should be a shared object too, but only when it
  has some sense (by now, every dmd release breaks previous libraries,
  at least gtkd ones)
 [...]
 
 I suppose D/Phobos is currently still too volatile to start committing
 to shared library version numbers yet. One *could* in theory start doing
 it and just end up with very large version numbers, which the system in
 theory can handle just fine, although people seem aversive to the
 possibility of having /usr/lib/libphobos.so.2.x for all x from 0 to some
 very large number.
 
 
 T
 

ldc build already phobos / druntime as shared lib with
/usr/lib/libphobos.so.2.x
/usr/lib/libphobos.so.2
/usr/lib/libphobos.so.2

and same for druntime



Re: SONAME and D

2012-02-26 Thread bioinfornatics
Le vendredi 24 février 2012 à 15:56 +0100, Mike Wey a écrit :
 On 02/23/2012 08:29 PM, bioinfornatics wrote:
  Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :
  On 02/23/2012 05:27 PM, bioinfornatics wrote:
  dear,
  for set soname with:
  - gdc: -Xlinker -soname myLib.so.1
  - ldc2: -soname myLib.so.1
  - dmd: ?
 
  someone know how set soname with dmd ?
 
 
  dmd -L-soname=mylib.so.1
 
 
  Thanks
  i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
  request for gtkd because ldc do not use -L-soname instead of dmd
 
 
 The GtkD Makefile uses:
 
 $(LINKERFLAG)-soname=$@.$(call stripBugfix,$(SO_VERSION))
 
 Witch works with all the compilers, $(LINKERFLAG) is either -L or 
 -Xlinker (with a space on th end).
 

this it is good for dmd and gdc but ldc use -soname without -L
gdc: -Xlinker -soname 
ldc: -soname
dmd: -L -soname


with ldc you do not to do calling the linker with $(LINKERFLAG



Re: SONAME and D

2012-02-26 Thread Mike Wey

On 02/26/2012 02:53 PM, bioinfornatics wrote:

Le vendredi 24 février 2012 à 15:56 +0100, Mike Wey a écrit :

On 02/23/2012 08:29 PM, bioinfornatics wrote:

Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :

On 02/23/2012 05:27 PM, bioinfornatics wrote:

dear,
for set soname with:
- gdc: -Xlinker -soname myLib.so.1
- ldc2: -soname myLib.so.1
- dmd: ?

someone know how set soname with dmd ?



dmd -L-soname=mylib.so.1



Thanks
i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
request for gtkd because ldc do not use -L-soname instead of dmd



The GtkD Makefile uses:

$(LINKERFLAG)-soname=$@.$(call stripBugfix,$(SO_VERSION))

Witch works with all the compilers, $(LINKERFLAG) is either -L or
-Xlinker (with a space on th end).



this it is good for dmd and gdc but ldc use -soname without -L
gdc: -Xlinker -soname
ldc: -soname
dmd: -L -soname


with ldc you do not to do calling the linker with $(LINKERFLAG



Well, i am able to build the GtkD shared libs for ldc2 with the current 
make file.


Not sure why ldc has it's own soname flag as only the linker would care 
about it so using -L to pass it on to the linker works just fine.


--
Mike Wey


Re: SONAME and D

2012-02-24 Thread Jordi Sayol
Al 23/02/12 20:29, En/na bioinfornatics ha escrit:
 Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :
 On 02/23/2012 05:27 PM, bioinfornatics wrote:
 dear,
 for set soname with:
 - gdc: -Xlinker -soname myLib.so.1
 - ldc2: -soname myLib.so.1
 - dmd: ?

 someone know how set soname with dmd ?


 dmd -L-soname=mylib.so.1

 
 Thanks
 i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
 request for gtkd because ldc do not use -L-soname instead of dmd
 
 

Are you able to build dynamic libraries directly with DMD?
How?
-- 
Jordi Sayol



Re: SONAME and D

2012-02-24 Thread David

Am 24.02.2012 11:40, schrieb Jordi Sayol:

Al 23/02/12 20:29, En/na bioinfornatics ha escrit:

Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :

On 02/23/2012 05:27 PM, bioinfornatics wrote:

dear,
for set soname with:
- gdc: -Xlinker -soname myLib.so.1
- ldc2: -soname myLib.so.1
- dmd: ?

someone know how set soname with dmd ?



dmd -L-soname=mylib.so.1



Thanks
i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
request for gtkd because ldc do not use -L-soname instead of dmd




Are you able to build dynamic libraries directly with DMD?
How?

-sharedgenerate shared library


Re: SONAME and D

2012-02-24 Thread Jordi Sayol
Al 24/02/12 11:59, En/na David ha escrit:

 Are you able to build dynamic libraries directly with DMD?
 How?
 -sharedgenerate shared library
 

I got this:
$ dmd -fPIC -shared foo.d 
/usr/bin/ld: /usr/lib/libphobos2.a(minfo.o): relocation R_X86_64_32 against 
`.data' can not be used when making a shared object; recompile with -fPIC
/usr/lib/libphobos2.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
--- errorlevel 1

-- 
Jordi Sayol


Re: SONAME and D

2012-02-24 Thread Jordi Sayol
Al 24/02/12 11:59, En/na David ha escrit:

 Are you able to build dynamic libraries directly with DMD?
 How?
 -sharedgenerate shared library
 

It compiles to 32-bit but fails for 64-bit, maybe due to compiled libphobos2 
(64-bit) without -fPIC argument?

Another thing.
$ dmd -fPIC -shared foo.d -m32 -offoo.so.0.0.1
generate the incorrect foo.so.0.0.so file name.

but with:
$ dmd -fPIC -shared foo.d -m32 -L-ofoo.so.0.0.1
the correct foo.so.0.0.1 file name is created.

Best regards,
-- 
Jordi Sayol


Re: SONAME and D

2012-02-24 Thread Mike Wey

On 02/23/2012 08:29 PM, bioinfornatics wrote:

Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :

On 02/23/2012 05:27 PM, bioinfornatics wrote:

dear,
for set soname with:
- gdc: -Xlinker -soname myLib.so.1
- ldc2: -soname myLib.so.1
- dmd: ?

someone know how set soname with dmd ?



dmd -L-soname=mylib.so.1



Thanks
i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
request for gtkd because ldc do not use -L-soname instead of dmd



The GtkD Makefile uses:

$(LINKERFLAG)-soname=$@.$(call stripBugfix,$(SO_VERSION))

Witch works with all the compilers, $(LINKERFLAG) is either -L or 
-Xlinker (with a space on th end).


--
Mike Wey


Re: SONAME and D

2012-02-24 Thread Ellery Newcomer

On 02/24/2012 06:27 AM, Jordi Sayol wrote:


It compiles to 32-bit but fails for 64-bit, maybe due to compiled libphobos2 
(64-bit) without -fPIC argument?



What? -shared works with 32-bit?

Holy crap, it does! this is awesome!

maybe make a bug report for 64 bit?


Re: SONAME and D

2012-02-24 Thread Jordi Sayol
Al 24/02/12 20:21, En/na Ellery Newcomer ha escrit:
 On 02/24/2012 06:27 AM, Jordi Sayol wrote:

 It compiles to 32-bit but fails for 64-bit, maybe due to compiled libphobos2 
 (64-bit) without -fPIC argument?

 
 What? -shared works with 32-bit?
 
 Holy crap, it does! this is awesome!
 
 maybe make a bug report for 64 bit?
 

better wait till libphobos2.a becomes libphobos2.so

-- 
Jordi Sayol


Re: SONAME and D

2012-02-24 Thread H. S. Teoh
On Fri, Feb 24, 2012 at 08:36:03PM +0100, Jordi Sayol wrote:
[...]
 better wait till libphobos2.a becomes libphobos2.so
[...]

You might have to wait a while for that. AFAIK there are no plans
currently to make phobos available as a shared library yet.

I personally think that phobos *should* be a shared object at some
point, but not everyone agrees with me.


T

-- 
Lottery: tax on the stupid. -- Slashdotter


Re: SONAME and D

2012-02-24 Thread Jordi Sayol
Al 24/02/12 20:45, En/na H. S. Teoh ha escrit:
 On Fri, Feb 24, 2012 at 08:36:03PM +0100, Jordi Sayol wrote:
 [...]
 better wait till libphobos2.a becomes libphobos2.so
 [...]
 
 You might have to wait a while for that. AFAIK there are no plans
 currently to make phobos available as a shared library yet.
 
 I personally think that phobos *should* be a shared object at some
 point, but not everyone agrees with me.
 

I think that phobos should be a shared object too, but only when it has some 
sense (by now, every dmd release breaks previous libraries, at least gtkd ones)

Best regards,
-- 
Jordi Sayol


Re: SONAME and D

2012-02-24 Thread H. S. Teoh
On Fri, Feb 24, 2012 at 09:35:57PM +0100, Jordi Sayol wrote:
 Al 24/02/12 20:45, En/na H. S. Teoh ha escrit:
[...]
  I personally think that phobos *should* be a shared object at some
  point, but not everyone agrees with me.
  
 
 I think that phobos should be a shared object too, but only when it
 has some sense (by now, every dmd release breaks previous libraries,
 at least gtkd ones)
[...]

I suppose D/Phobos is currently still too volatile to start committing
to shared library version numbers yet. One *could* in theory start doing
it and just end up with very large version numbers, which the system in
theory can handle just fine, although people seem aversive to the
possibility of having /usr/lib/libphobos.so.2.x for all x from 0 to some
very large number.


T

-- 
It won't be covered in the book. The source code has to be useful for
something, after all. -- Larry Wall


SONAME and D

2012-02-23 Thread bioinfornatics
dear,
for set soname with:
- gdc: -Xlinker -soname myLib.so.1
- ldc2: -soname myLib.so.1
- dmd: ?

someone know how set soname with dmd ?



Re: SONAME and D

2012-02-23 Thread Mike Wey

On 02/23/2012 05:27 PM, bioinfornatics wrote:

dear,
for set soname with:
- gdc: -Xlinker -soname myLib.so.1
- ldc2: -soname myLib.so.1
- dmd: ?

someone know how set soname with dmd ?



dmd -L-soname=mylib.so.1

--
Mike Wey


Re: SONAME and D

2012-02-23 Thread bioinfornatics
Le jeudi 23 février 2012 à 19:46 +0100, Mike Wey a écrit :
 On 02/23/2012 05:27 PM, bioinfornatics wrote:
  dear,
  for set soname with:
  - gdc: -Xlinker -soname myLib.so.1
  - ldc2: -soname myLib.so.1
  - dmd: ?
 
  someone know how set soname with dmd ?
 
 
 dmd -L-soname=mylib.so.1
 

Thanks
i will do so a $(SONAME_FLAG) in my makefile and maybe i will do a pull
request for gtkd because ldc do not use -L-soname instead of dmd