tech-pkg archive

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

Convert libnbcompat to regular buildlink3



Currently pkgtools/libnbcompat is implemented in such a way that every
package that requires it will build its own private copy of the static
library and pull it in.
This is a waste of time and resources, and during a --full bootstrap
means we build 5 identical copies of libnbcompat.
I have a diff which converts it to a regular buildlink3 dependency,
and patches packages to pull it in as a BUILD_DEPENDS and find the
installed headers instead of the inplace ones:
 https://github.com/joyent/pkgsrc/commit/61ab01a01e32a27ceeba3e07dee4b66839d9535d
On SmartOS with "./bootstrap --full" this takes us down from 5 builds
to 2, and the time to bootstrap from:
 real 8:38.8
 user 4:16.3
 sys 2:48.0
to this:
 real 6:49.6
 user 3:27.5
 sys 2:09.4
This also helps NetBSD bootstrap. A default "./bootstrap" on NetBSD
6.1.5 will build 3 copies:
 /tmp/pkgsrc/libnbcompat
 /tmp/pkgsrc/wrk/pkgtools/pkg_install/work/libnbcompat
 /tmp/pkgsrc/wrk/devel/bmake/work/libnbcompat
taking:
 48.54 real 27.00 user 14.43 sys
whereas with the patch applied it builds only two:
 /tmp/pkgsrc/libnbcompat
 /tmp/pkgsrc/wrk/pkgtools/libnbcompat
 
and takes:
 42.95 real 23.36 user 12.74 sys
I have tested this in a full bulkbuild here:
 https://us-east.manta.joyent.com/pkgsrc/public/reports/upstream-bulktest/20150708.1604/meta/report.html
and cannot find any fallout, other than existing nbcompat-related
failures which I will be fixing shortly.
Two possible issues with the patch that I can think of are:
 - We have to add pkgtools/libnbcompat as an exclusion for
 USE_CWRAPPERS=yes to avoid circular dependencies. Maybe we want to
 add a package-settable variable to disable cwrappers rather than
 hardcoding PKGPATHs in bsd.prefs.mk.
 - It removes the nascent support for LIBNBCOMPAT_USE_PIC which tnn@
 introduced 7 years ago. That work, as far as I can see, was never
 finished anyway, and there's no particular reason why my work would
 prevent a similar feature to be introduced in the future.
Please review.
Thanks,
-- 
Jonathan Perkin - Joyent, Inc. - www.joyent.com


Home | Main Index | Thread Index | Old Index

AltStyle によって変換されたページ (->オリジナル) /