Problem with .so numbering on FreeBSD in contrast to Linux
Jeremy Messenger
mezz7 at cox.net
Sat Feb 21 08:54:23 PST 2009
On Sat, 21 Feb 2009 01:08:07 -0600, Thomas Schmitt <scdbackup at gmx.net>
wrote:
> Hi,
>
> Sam Lawrance wrote:
>> http://www.freebsd.org/doc/en/books/developers-handbook/policies-shlib.html
>
> That description is similar to what i experience
> on my Linux system but not to what i see on the
> FreeBSD server where i do my tests:
> everest.free-shells.com.ar
> FreeBSD 6.3-RELEASE-p5 (KEVEREST-6.3) #0: Thu Oct 9 13:54:44 ART 2008
> There is only one number after .so whereas
> policies-shlib.html talks of major.minor.
>
> So obviously my ./libtool resp. the programs used
> inside do not follow this convention.
> (autotools is not my personal choice. It was
> already in use when i became upstream of libburn.
> Its main advantage is its social standing in
> the community of distro packagers.)
>
>
> Jeremy Messenger wrote:
>> http://people.freebsd.org/~mezz/libtool.txt
>
> That's hard to read but seems to be exactly about
> my problem.
> I'll explore that. "ltmain.sh" is mentioned.
> Maybe i can do a private hack in my copy of it.
> This code snippet looks promising:
> case $version_type in
> darwin|linux|osf|windows)
> current=`expr $number_major + $number_minor`
> age="$number_minor"
> revision="$number_revision"
> ;;
> freebsd-aout|freebsd-elf|sunos)
> current="$number_major"
> revision="$number_minor"
> age="0"
> ;;
>
> Is "ltverhack" a piece of software ?
> (Can i have a look at it somewhere ?)
The ltverhack is a hack in ports/Mk/bsd.gnome.mk[1].
bsd.gnome.mk (693 line):
----------------------------------------------------
ltverhack_PRE_PATCH= for file in gnome-ltmain.sh gnome-libtool; do \
if [ -f ${WRKDIR}/$$file ]; then \
${REINPLACE_CMD} -e \
'/freebsd-elf)/,/;;/
s|major="\.$$current"|${ltverhack_LIB_VERSION}|; \
/freebsd-elf)/,/;;/
s|versuffix="\.$$current"|versuffix="$$major"|' \
${WRKDIR}/$$file; \
fi; \
done
----------------------------------------------------
http://www.freebsd.org/cgi/cvsweb.cgi/ports/x11-toolkits/gtk20/pkg-plist.diff?r1=1.90;r2=1.91
This URL above is an example what looks like when x11-toolkits/gtk20
started to use ltverhack.
----------------------------------------------------
lib/libgdk-x11-2.0.a
lib/libgdk-x11-2.0.so
-lib/libgdk-x11-2.0.so.600
+lib/libgdk-x11-2.0.so.0
lib/libgdk_pixbuf-2.0.a
lib/libgdk_pixbuf-2.0.so
-lib/libgdk_pixbuf-2.0.so.600
+lib/libgdk_pixbuf-2.0.so.0
lib/libgdk_pixbuf_xlib-2.0.a
lib/libgdk_pixbuf_xlib-2.0.so
-lib/libgdk_pixbuf_xlib-2.0.so.600
+lib/libgdk_pixbuf_xlib-2.0.so.0
lib/libgtk-x11-2.0.a
lib/libgtk-x11-2.0.so
-lib/libgtk-x11-2.0.so.600
+lib/libgtk-x11-2.0.so.0
----------------------------------------------------
[1] http://www.freebsd.org/cgi/cvsweb.cgi/ports/Mk/bsd.gnome.mk
Cheers,
Mezz
>> <mezz7> Why do libtool have to be weird? 600 - 600..
>> couldn't it be simple to just 0? :-)
>
> It is confusing that the libtool documentation
> talks about a .so numbering scheme which would
> allow to demand a upper and lower limits for LT_AGE
> at link time.
> Neither Linux nor FreeBSD seem to implement that
> scheme. It would be very convenient though.
>
> All in all, as upstream, i would love to trash .so
> in total. With my apps i take care to provide
> statically linked versions as alternative to the
> .so cripples.
> But, sigh, the world wants DLLs.
>
> Many thanks for your help.
>
> Have a nice day :)
>
> Thomas
--
mezz7 at cox.net - mezz at FreeBSD.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/ - gnome at FreeBSD.org
More information about the freebsd-ports
mailing list