Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Sep 2003 23:27:15 +0300
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        Gordon Tetlow <gordont@gnf.org>, "David O'Brien" <obrien@FreeBSD.org>, Peter Wemm <peter@FreeBSD.org>
Cc:        current@FreeBSD.org
Subject:   /lib/foo.so.X -> /usr/lib/foo.so
Message-ID:  <20030904202715.GD4481@sunbay.com>
In-Reply-To: <20030904185839.GB4481@sunbay.com>
References:  <200309040429.h844TBhD058678@repoman.freebsd.org> <20030904083617.GA56261@dragon.nuxi.com> <20030904092755.GD45051@sunbay.com> <20030904140129.GA61909@dragon.nuxi.com> <20030904155659.GC97732@sunbay.com> <20030904162656.GA396@dragon.nuxi.com> <20030904174100.GY695@roark.gnf.org> <20030904185839.GB4481@sunbay.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--XStn23h1fwudRqtG
Content-Type: multipart/mixed; boundary="zaRBsRFn0XYhEU69"
Content-Disposition: inline


--zaRBsRFn0XYhEU69
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Sep 04, 2003 at 09:58:39PM +0300, Ruslan Ermilov wrote:
[...]
> The patch is not a problem (attached).  I've been looking at
> how our friends do this.  NetBSD has symlinks in /usr/lib to
> /lib, both to .so and .so.X, and their cc(1) and ld(1) don't
> look things in /lib.  Linux looks things up in both /lib and
> /usr/lib, and does not have symlinks from /usr/lib to /lib.
>=20
There is a sad typo above: Linux *does* have symlinks from
/usr/lib to /lib, so both use /usr/lib for linking.

> The only reason while I still think we should support both
> /lib and /usr/lib in cc(1) and ld(1) by default is to allow
> our users to have /usr symlinked somethere, otherwise relative
> symlinking from /usr/lib to ../../lib does not work, and we
> are back to that endless thread.
>=20
Not that I'm completely happy with introducing yet another
variable in bsd.lib.mk, but the attached patch:

- Leaves only one set of .so symlinks in /usr/lib.

  Benefits: all other systems that use both /lib and /usr/lib
  (that I've been able to test) have .so links in /usr/lib
  only, and use them for linking; GCC in ports will like this
  better.

- Uses absolute paths in .so symlinks.

  Benefit: works for people who have their /usr symlinked
  somewhere.

- Works without any more modifications to GCC.  ld(1)
  hacks can go away too.

Please review.


Cheers,
--=20
Ruslan Ermilov		Sysadmin and DBA,
ru@sunbay.com		Sunbay Software Ltd,
ru@FreeBSD.org		FreeBSD committer

--zaRBsRFn0XYhEU69
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=p

Index: Makefile.inc1
===================================================================
RCS file: /home/ncvs/src/Makefile.inc1,v
retrieving revision 1.389
diff -u -r1.389 Makefile.inc1
--- Makefile.inc1	1 Sep 2003 06:43:24 -0000	1.389
+++ Makefile.inc1	4 Sep 2003 19:30:19 -0000
@@ -227,6 +227,7 @@
 # world stage
 WMAKEENV=	${CROSSENV} \
 		DESTDIR=${WORLDTMP} \
+		SHLIBDIRPREFIX=${WORLDTMP} \
 		INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		PATH=${TMPPATH}
 WMAKE=		${WMAKEENV} ${MAKE} -f Makefile.inc1
Index: share/mk/bsd.lib.mk
===================================================================
RCS file: /home/ncvs/src/share/mk/bsd.lib.mk,v
retrieving revision 1.153
diff -u -r1.153 bsd.lib.mk
--- share/mk/bsd.lib.mk	4 Sep 2003 04:29:11 -0000	1.153
+++ share/mk/bsd.lib.mk	4 Sep 2003 19:34:08 -0000
@@ -208,9 +208,10 @@
 	    ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
 	    ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
 .if defined(SHLIB_LINK)
-	ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}
-.if (${LIBDIR} != ${SHLIBDIR})
-	ln -fs ${LIBDIR:C|/[^/]+|/..|g:S|^/||}${SHLIBDIR}/${SHLIB_NAME} \
+.if ${SHLIBDIR} == ${LIBDIR}
+	ln -fs ${SHLIB_NAME} ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
+.else
+	ln -fs ${SHLIBDIRPREFIX}${SHLIBDIR}/${SHLIB_NAME} \
 	    ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
 .endif
 .endif

--zaRBsRFn0XYhEU69--

--XStn23h1fwudRqtG
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)

iD8DBQE/V6AiUkv4P6juNwoRAgH8AJ4shZVRX6NnjzjIprMoIWGODRg9ugCfWTX1
Bv2r15X67cTw5fx1kEojeE8=
=SZiG
-----END PGP SIGNATURE-----

--XStn23h1fwudRqtG--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030904202715.GD4481>