octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SONAME clarification


From: John W. Eaton
Subject: Re: SONAME clarification
Date: Wed, 28 Jan 2009 10:46:54 -0500

On 28-Jan-2009, Marco Atzeri wrote:

| 
| --- "John W. Eaton" ha scritto:
| 
| > On 13-Nov-2008, Marco Atzeri wrote:
| > 
| > | --- Marco Atzeri  ha scritto:
| > | 
| > | > --- "John W. Eaton"  ha scritto:
| > | > 
| > | > > On 12-Nov-2008, Marco Atzeri wrote:
| > |  
| > | > > Oh, I see, you are changing LIBPRE to "cyg". 
| > If
| > | > you
| > | > > do that and you
| > | > > also strip it off for the --out-implib option,
| > | > then
| > | > > how about using
| > | > > something like
| > | > > 
| > | > >   SONAME_FLAGS='-Wl,--out-implib=$(patsubst
| > | > > $(LIBPRE)%, %, $@).a'
| > | > 
| > | > I need to check, in any case there are other
| > points 
| > | > where I need to differentiate between
| > | > LIBPRE=cyg and an additional SOPRE=lib.
| > | > See attached patch, in cygwin it works, and
| > | > I should have left correct for all the other
| > | > systems.
| > | 
| > | I re-made the patch using your suggestion,
| > | and adding the SOPRE=lib to differentiate from
| > | LIBPRE=cyg
| > | 
| > | SONAME_FLAGS='-Wl,--out-implib=$(patsubst
| > $(SOPRE)%,
| > | %, $@).a'
| > | 
| > | > 
| > | > > Comments?
| > | > > 
| > | > > jwe
| > | > > 
| > | 
| > | The patch is now cleaner and simpler.
| > | It builds fine on cygwin, but a check on other 
| > | system is worth.
| > 
| > I'm confused about this patch because it installs
| > files with names
| > like $(SOPRE)octinterp.$(LIBEXT) and
| > $(SOPRE)octinterp.$(SHLLIB), but
| > there are no rules for building files with with the
| > $(SOPRE) prefix.
| > 

| Hi John,
| There were some mistakes in the one I sent you before.
| The correct form for cygwin SONAME should be 
| 
| SONAME_FLAGS='-Wl,--out-implib=$(patsubst
| $(LIBPRE)%,$(SOPRE)%,$@).a'
| 
| where
|     LIBPRE=cyg
|     SOPRE=lib
| 
| Attached the latest version I am using on 3.0.3
| and 3.0.4 release candidate.
| http://cygwin.com/ml/cygwin-announce/2009-01/msg00035.html
| 
| 
| The scope of the patch is to have for cygwin
| 
| shared lib as cygcruft.dll
| import lib as libcruft.dll.a
| 
| from compilation log:
| 
| *********************************
| 
| make cygcruft.dll.3.0.4
| make[3]: Entering directory
| `/pub/cygports/octave/octave-3.0.4-2/build/libcruft'
| rm -f cygcruft.dll
| g++-4 -shared -Wl,--export-all-symbols
| -Wl,--enable-auto-import -Wl,--enable-aut
| o-image-base  -Wl,--out-implib=libcruft.dll.a -o
| cygcruft.dll amos/dgamln.o .....
| 
| Creating library file: libcruft.dll.a
| rm -f cygcruft.dll.3.0.4
| ln -s cygcruft.dll cygcruft.dll.3.0.4
| 
| *********************************
| 
| and from install log:
| 
| *********************************
|           rm -f
| 
/pub/cygports/octave/octave-3.0.4-2/inst/usr/lib/octave-3.0.4/libcruft.dll.a.3.0.4;
| \
|           /bin/install -c \
|             libcruft.dll.a
| 
/pub/cygports/octave/octave-3.0.4-2/inst/usr/lib/octave-3.0.4/libcruft.dll.a.3.0.4;
| 
| \
|           rm -f
| /pub/cygports/octave/octave-3.0.4-2/inst/usr/lib/octave-3.0.4/libcruft.dll.a;
| \
|           (cd
| /pub/cygports/octave/octave-3.0.4-2/inst/usr/lib/octave-3.0.4;
| \
|           ln -s libcruft.dll.a.3.0.4
| /pub/cygports/octave/octave-3.0.4-2/inst/usr/lib/octave-3.0.4/libcruft.dll
| .a); \
|           if  test xdll != x ; then \
|             rm -f
| /pub/cygports/octave/octave-3.0.4-2/inst/usr/bin/cygcruft.dll;
| \
|             /bin/install -c \
|               cygcruft.dll
| /pub/cygports/octave/octave-3.0.4-2/inst/usr/bin/cygcruft.dll;
| \
|  
| *********************************
| 
| the installed lib files will be
| 
| usr/bin/cygcruft.dll
| usr/bin/cygoctave.dll
| usr/bin/cygoctinterp.dll
| 
| usr/lib/octave-3.0.4/libcruft.dll.a
| usr/lib/octave-3.0.4/libcruft.dll.a.3.0.4
| usr/lib/octave-3.0.4/liboctave.dll.a
| usr/lib/octave-3.0.4/liboctave.dll.a.3.0.4
| usr/lib/octave-3.0.4/liboctinterp.dll.a
| usr/lib/octave-3.0.4/liboctinterp.dll.a.3.0.4

Yes, but in your current patch the install rules are still using
$(SOPRE) as a prefix for static libraries.  That doesn't seem correct,
or the name SOPRE is not the best choice.  Which is it?

I'm guessing that you are not building static libraries.  Is that
correct?

jwe


reply via email to

[Prev in Thread] Current Thread [Next in Thread]