> Any thoughts about doing this? Regression tests are all OK, I'm about > to start a ports build with it in (but I don't expect any problems). > > For bzip2 the call is right at the start of main(). > > For xz it's a bit lower - below hardware_init(), which uses sysctls > to find the amount of memory and number of CPUs.
that's the principle way I'm adding this. Another tool is nm binary | grep ' U ' Now you see what it pulls in from libc. Sort those by hand, seperate out the malloc and stdio calls. Look for unlink, chmod, chown, and the what varations of open/fopen exist. If the list is pretty simple, your confidence in what you are doing will arrive early. If the list is NOT simple, you'll work at it longer because you aren't sure. > Index: xz/Makefile > =================================================================== > RCS file: /cvs/ports/archivers/xz/Makefile,v > retrieving revision 1.25 > diff -u -p -r1.25 Makefile > --- xz/Makefile 31 Mar 2015 18:00:23 -0000 1.25 > +++ xz/Makefile 5 Oct 2015 09:23:15 -0000 > @@ -3,6 +3,7 @@ > COMMENT= LZMA compression and decompression tools > > DISTNAME= xz-5.2.1 > +REVISION= 0 > SHARED_LIBS= lzma 2.1 # .7.1 > CATEGORIES= archivers > DPB_PROPERTIES= parallel > Index: xz/patches/patch-src_xz_main_c > =================================================================== > RCS file: xz/patches/patch-src_xz_main_c > diff -N xz/patches/patch-src_xz_main_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ xz/patches/patch-src_xz_main_c 5 Oct 2015 09:23:15 -0000 > @@ -0,0 +1,13 @@ > +$OpenBSD$ > +--- src/xz/main.c.orig Mon Oct 5 10:07:16 2015 > ++++ src/xz/main.c Mon Oct 5 10:17:18 2015 > +@@ -163,6 +163,9 @@ main(int argc, char **argv) > + // on the command line, thus this must be done before args_parse(). > + hardware_init(); > + > ++ if (tame("stdio wpath cpath fattr", NULL) == -1) > ++ err(1, "tame"); > ++ > + // Parse the command line arguments and get an array of filenames. > + // This doesn't return if something is wrong with the command line > + // arguments. If there are no arguments, one filename ("-") is still > Index: bzip2/Makefile > =================================================================== > RCS file: /cvs/ports/archivers/bzip2/Makefile,v > retrieving revision 1.64 > diff -u -p -r1.64 Makefile > --- bzip2/Makefile 24 May 2014 20:51:54 -0000 1.64 > +++ bzip2/Makefile 5 Oct 2015 09:23:15 -0000 > @@ -4,7 +4,7 @@ COMMENT= block-sorting file compressor, > > VERSION= 1.0.6 > DISTNAME= bzip2-${VERSION} > -REVISION= 1 > +REVISION= 2 > CATEGORIES= archivers > MASTER_SITES= ${HOMEPAGE}${VERSION}/ > SHARED_LIBS= bz2 10.4 > @@ -13,6 +13,7 @@ HOMEPAGE= http://www.bzip.org/ > > # BSD > PERMIT_PACKAGE_CDROM= Yes > + > WANTLIB= c > > BZ2_CFLAGS= -Wall -Winline -fomit-frame-pointer -fno-strength-reduce > Index: bzip2/patches/patch-bzip2_c > =================================================================== > RCS file: bzip2/patches/patch-bzip2_c > diff -N bzip2/patches/patch-bzip2_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ bzip2/patches/patch-bzip2_c 5 Oct 2015 09:23:15 -0000 > @@ -0,0 +1,13 @@ > +$OpenBSD$ > +--- bzip2.c.orig Mon Oct 5 10:03:08 2015 > ++++ bzip2.c Mon Oct 5 10:05:18 2015 > +@@ -1781,6 +1781,9 @@ IntNative main ( IntNative argc, Char *argv[] ) > + Cell *aa; > + Bool decode; > + > ++ if (tame("stdio wpath cpath fattr", NULL) == -1) > ++ err(1, "tame"); > ++ > + /*-- Be really really really paranoid :-) --*/ > + if (sizeof(Int32) != 4 || sizeof(UInt32) != 4 || > + sizeof(Int16) != 2 || sizeof(UInt16) != 2 || >