Message ID | ydda5l4vygg.fsf@CeBiTec.Uni-Bielefeld.DE |
---|---|
State | New |
Headers | show |
Series | libgfortran: Fix libgfortran.so versioning on Solaris with subdirs | expand |
Hi Rainer, > This patch fixes this by allowing for the new structure. > Tested on i386-pc-solaris2.11 and sparc-sun-solaris2.11. > > Ok for trunk? OK to push, given it’s localised inside LIBGFOR_USE_SYMVER_SUN. I find it weird though that .libs is harcoded there. If we look at all the lib*/Makefile.am in gcc, the only thing that ever needs to specify .libs is for Solaris versioning. It feels like it should be more generic, as you say (but that’s for longer term). FX
Hi FX, >> This patch fixes this by allowing for the new structure. >> Tested on i386-pc-solaris2.11 and sparc-sun-solaris2.11. >> >> Ok for trunk? > > OK to push, given it’s localised inside LIBGFOR_USE_SYMVER_SUN. > > I find it weird though that .libs is harcoded there. If we look at all the > lib*/Makefile.am in gcc, the only thing that ever needs to specify .libs is > for Solaris versioning. It feels like it should be more generic, as you say > (but that’s for longer term). look again ;-) libgo/Makefile.am has other unrelated instances for both setting LD_LIBRARY_PATH and related to AIX. It seems that libtool has no provision for operations other than compile (create .lo from sources) and link (create executable from libtool objects/archives). It you need something else, there's no way but to reach below the abstraction. I believe libtool could provide something like this, but apparently it doesn't. Rainer
diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am --- a/libgfortran/Makefile.am +++ b/libgfortran/Makefile.am @@ -29,7 +29,7 @@ gfortran.ver-sun : gfortran.ver \ $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD) perl $(top_srcdir)/../contrib/make_sunver.pl \ gfortran.ver \ - $(libgfortran_la_OBJECTS:%.lo=.libs/%.o) \ + $(subst /,/.libs/,$(libgfortran_la_OBJECTS:.lo=.o)) \ `echo $(libgfortran_la_LIBADD) | \ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ > $@ || (rm -f $@ ; exit 1) diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in @@ -4576,7 +4576,7 @@ uninstall-am: uninstall-cafexeclibLTLIBR @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD) @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \ @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ gfortran.ver \ -@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(libgfortran_la_OBJECTS:%.lo=.libs/%.o) \ +@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(subst /,/.libs/,$(libgfortran_la_OBJECTS:.lo=.o)) \ @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ `echo $(libgfortran_la_LIBADD) | \ @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ > $@ || (rm -f $@ ; exit 1)