Date: Tue, 7 May 2013 21:39:40 +0200 From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: Warner Losh <imp@bsdimp.com> Cc: Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= <des@des.no>, freebsd-arch@FreeBSD.org Subject: Re: Building library that depends on another library. Message-ID: <20130507193940.GC1888@garage.freebsd.pl> In-Reply-To: <D4E8DD1C-2F19-4D3D-B6E6-1302D6033D66@bsdimp.com> References: <20130505201436.GJ1374@garage.freebsd.pl> <86r4hkgd04.fsf@nine.des.no> <20130507185005.GB1888@garage.freebsd.pl> <D4E8DD1C-2F19-4D3D-B6E6-1302D6033D66@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--DSayHWYpDlRfCAAQ Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, May 07, 2013 at 01:27:34PM -0600, Warner Losh wrote: >=20 > On May 7, 2013, at 12:50 PM, Pawel Jakub Dawidek wrote: >=20 > > On Mon, May 06, 2013 at 08:49:15PM +0200, Dag-Erling Sm=F8rgrav wrote: > >> Pawel Jakub Dawidek <pjd@FreeBSD.org> writes: > >>> It looks like to make such dependency work one HAS TO add libnv to > >>> _prebuild_libs in src/Makefile.inc1, which seems wrong. > >>=20 > >> It may seem wrong, but it is correct, cf the following comment in > >> Makefile.inc1: > >>=20 > >> # The list of libraries with dependents (${_prebuild_libs}) and their > >> # interdependencies (__L) are built automatically by the > >> # ${.CURDIR}/tools/make_libdeps.sh script. > >=20 > > Yes, this also means SUBDIR_ORDERED in lib/Makefile doesn't make sense. > >=20 > > All in all I really don't like to add libraries to Makefile.inc1, it > > doesn't sound right. I'd like this to be self-contained. For bsd.prog.mk > > it is enough to specify DPADD/LDADD in program's Makefile instead of > > hacking some central Makefile. > >=20 > > I came up with something like the following. Instead of: > >=20 > > DPADD=3D ${LIBNV} > > LDADD=3D -lnv > > (plus modifying src/Makefile.inc1) > >=20 > > I only add: > >=20 > > LDADD=3D -L${.OBJDIR}/../libnv -lnv > >=20 > > What do people think? >=20 > Still won't work. It won't ensure that libnv is built, leading to cross-t= hreading on upgrade issues. >=20 > Better would be a 'plus modifying src/Makefile.inc1' would instead be 'ha= ve Makefile.inc1 figure it out fast.' We have to get the order right, there= 's no way around that. I forgot to mention. The way I'm proposing makes SUBDIR_ORDERED relevant again. So we should either remove SUBDIR_ORDERED fro lib/Makefile and keep adding to _prebuild_libs or adopt what I'm proposing. One argument against my method was that my library without DPADD won't be relinked after libnv change, which may affect symbol versioning. My libraries don't use symbol versioning yet, but I'm after general solution here. --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://mobter.com --DSayHWYpDlRfCAAQ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlGJWHwACgkQForvXbEpPzTp0wCgqgK9lNTPOxzvPlExqSAW3Zfh 19IAoMl/ibO1jY+71/ip6+9h+bFn7MKO =P/nh -----END PGP SIGNATURE----- --DSayHWYpDlRfCAAQ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130507193940.GC1888>