head	1.56;
access;
symbols
	netbsd-11-0-RC3:1.55
	netbsd-11-0-RC2:1.55
	netbsd-11-0-RC1:1.55
	perseant-exfatfs-base-20250801:1.55
	netbsd-11:1.55.0.4
	netbsd-11-base:1.55
	netbsd-10-1-RELEASE:1.53
	perseant-exfatfs-base-20240630:1.55
	perseant-exfatfs:1.55.0.2
	perseant-exfatfs-base:1.55
	netbsd-8-3-RELEASE:1.39
	netbsd-9-4-RELEASE:1.43
	netbsd-10-0-RELEASE:1.53
	netbsd-10-0-RC6:1.53
	netbsd-10-0-RC5:1.53
	netbsd-10-0-RC4:1.53
	netbsd-10-0-RC3:1.53
	netbsd-10-0-RC2:1.53
	thorpej-ifq:1.53.0.8
	thorpej-ifq-base:1.53
	thorpej-altq-separation:1.53.0.6
	thorpej-altq-separation-base:1.53
	netbsd-10-0-RC1:1.53
	netbsd-10:1.53.0.4
	netbsd-10-base:1.53
	bouyer-sunxi-drm:1.53.0.2
	bouyer-sunxi-drm-base:1.53
	netbsd-9-3-RELEASE:1.43
	thorpej-i2c-spi-conf2:1.51.0.8
	thorpej-i2c-spi-conf2-base:1.51
	thorpej-futex2:1.51.0.6
	thorpej-futex2-base:1.51
	thorpej-cfargs2:1.51.0.4
	thorpej-cfargs2-base:1.51
	cjep_sun2x-base1:1.51
	cjep_sun2x:1.51.0.2
	cjep_sun2x-base:1.51
	cjep_staticlib_x-base1:1.51
	netbsd-9-2-RELEASE:1.43
	cjep_staticlib_x:1.50.0.6
	cjep_staticlib_x-base:1.50
	thorpej-i2c-spi-conf:1.50.0.4
	thorpej-i2c-spi-conf-base:1.51
	thorpej-cfargs:1.50.0.2
	thorpej-cfargs-base:1.50
	thorpej-futex:1.49.0.2
	thorpej-futex-base:1.50
	netbsd-9-1-RELEASE:1.43
	bouyer-xenpvh-base2:1.47
	phil-wifi-20200421:1.47
	bouyer-xenpvh-base1:1.47
	phil-wifi-20200411:1.47
	bouyer-xenpvh:1.47.0.6
	bouyer-xenpvh-base:1.47
	is-mlppp:1.47.0.4
	is-mlppp-base:1.47
	phil-wifi-20200406:1.47
	netbsd-8-2-RELEASE:1.39
	ad-namecache-base3:1.47
	netbsd-9-0-RELEASE:1.43
	netbsd-9-0-RC2:1.43
	ad-namecache-base2:1.47
	ad-namecache-base1:1.47
	ad-namecache:1.47.0.2
	ad-namecache-base:1.47
	netbsd-9-0-RC1:1.43
	phil-wifi-20191119:1.43
	netbsd-9:1.43.0.4
	netbsd-9-base:1.43
	phil-wifi-20190609:1.43
	netbsd-8-1-RELEASE:1.39
	netbsd-8-1-RC1:1.39
	isaki-audio2:1.43.0.2
	isaki-audio2-base:1.43
	pgoyette-compat-merge-20190127:1.41.2.2
	pgoyette-compat-20190127:1.43
	pgoyette-compat-20190118:1.43
	pgoyette-compat-1226:1.43
	pgoyette-compat-1126:1.43
	pgoyette-compat-1020:1.43
	pgoyette-compat-0930:1.43
	pgoyette-compat-0906:1.43
	netbsd-7-2-RELEASE:1.35.2.1
	pgoyette-compat-0728:1.42
	netbsd-8-0-RELEASE:1.39
	phil-wifi:1.41.0.4
	phil-wifi-base:1.41
	pgoyette-compat-0625:1.41
	netbsd-8-0-RC2:1.39
	pgoyette-compat-0521:1.41
	pgoyette-compat-0502:1.41
	pgoyette-compat-0422:1.41
	netbsd-8-0-RC1:1.39
	pgoyette-compat-0415:1.41
	pgoyette-compat-0407:1.41
	pgoyette-compat-0330:1.41
	pgoyette-compat-0322:1.41
	pgoyette-compat-0315:1.41
	netbsd-7-1-2-RELEASE:1.35.2.1
	pgoyette-compat:1.41.0.2
	pgoyette-compat-base:1.41
	netbsd-7-1-1-RELEASE:1.35.2.1
	tls-maxphys-base-20171202:1.40
	matt-nb8-mediatek:1.39.0.14
	matt-nb8-mediatek-base:1.39
	nick-nhusb-base-20170825:1.39
	perseant-stdc-iso10646:1.39.0.12
	perseant-stdc-iso10646-base:1.39
	netbsd-8:1.39.0.10
	netbsd-8-base:1.39
	prg-localcount2-base3:1.39
	prg-localcount2-base2:1.39
	prg-localcount2-base1:1.39
	prg-localcount2:1.39.0.8
	prg-localcount2-base:1.39
	pgoyette-localcount-20170426:1.39
	bouyer-socketcan-base1:1.39
	jdolecek-ncq:1.39.0.6
	jdolecek-ncq-base:1.39
	pgoyette-localcount-20170320:1.39
	netbsd-7-1:1.35.2.1.0.6
	netbsd-7-1-RELEASE:1.35.2.1
	netbsd-7-1-RC2:1.35.2.1
	nick-nhusb-base-20170204:1.39
	netbsd-7-nhusb-base-20170116:1.35.2.1
	bouyer-socketcan:1.39.0.4
	bouyer-socketcan-base:1.39
	pgoyette-localcount-20170107:1.39
	netbsd-7-1-RC1:1.35.2.1
	nick-nhusb-base-20161204:1.39
	pgoyette-localcount-20161104:1.39
	netbsd-7-0-2-RELEASE:1.35.2.1
	nick-nhusb-base-20161004:1.39
	localcount-20160914:1.39
	netbsd-7-nhusb:1.35.2.1.0.4
	netbsd-7-nhusb-base:1.35.2.1
	pgoyette-localcount-20160806:1.39
	pgoyette-localcount-20160726:1.39
	pgoyette-localcount:1.39.0.2
	pgoyette-localcount-base:1.39
	nick-nhusb-base-20160907:1.39
	nick-nhusb-base-20160529:1.39
	netbsd-7-0-1-RELEASE:1.35.2.1
	nick-nhusb-base-20160422:1.38
	nick-nhusb-base-20160319:1.38
	nick-nhusb-base-20151226:1.38
	netbsd-7-0:1.35.2.1.0.2
	netbsd-7-0-RELEASE:1.35.2.1
	nick-nhusb-base-20150921:1.38
	netbsd-7-0-RC3:1.35.2.1
	netbsd-7-0-RC2:1.35.2.1
	netbsd-7-0-RC1:1.35.2.1
	nick-nhusb-base-20150606:1.38
	nick-nhusb-base-20150406:1.37
	nick-nhusb:1.36.0.2
	nick-nhusb-base:1.36
	netbsd-6-0-6-RELEASE:1.17
	netbsd-6-1-5-RELEASE:1.17
	netbsd-7:1.35.0.2
	netbsd-7-base:1.35
	yamt-pagecache-base9:1.32
	yamt-pagecache-tag8:1.14.2.3
	netbsd-6-1-4-RELEASE:1.17
	netbsd-6-0-5-RELEASE:1.17
	tls-earlyentropy:1.32.0.2
	tls-earlyentropy-base:1.34
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.32
	riastradh-drm2-base3:1.32
	netbsd-6-1-3-RELEASE:1.17
	netbsd-6-0-4-RELEASE:1.17
	netbsd-6-1-2-RELEASE:1.17
	netbsd-6-0-3-RELEASE:1.17
	rmind-smpnet-nbase:1.32
	netbsd-6-1-1-RELEASE:1.17
	riastradh-drm2-base2:1.26
	riastradh-drm2-base1:1.26
	riastradh-drm2:1.25.0.2
	riastradh-drm2-base:1.25
	rmind-smpnet:1.24.0.2
	rmind-smpnet-base:1.32
	netbsd-6-1:1.17.0.8
	netbsd-6-0-2-RELEASE:1.17
	netbsd-6-1-RELEASE:1.17
	khorben-n900:1.23.0.4
	netbsd-6-1-RC4:1.17
	netbsd-6-1-RC3:1.17
	agc-symver:1.23.0.2
	agc-symver-base:1.23
	netbsd-6-1-RC2:1.17
	netbsd-6-1-RC1:1.17
	yamt-pagecache-base8:1.18
	netbsd-6-0-1-RELEASE:1.17
	yamt-pagecache-base7:1.18
	matt-nb6-plus-nbase:1.17
	yamt-pagecache-base6:1.18
	netbsd-6-0:1.17.0.6
	netbsd-6-0-RELEASE:1.17
	netbsd-6-0-RC2:1.17
	tls-maxphys:1.18.0.2
	tls-maxphys-base:1.35
	matt-nb6-plus:1.17.0.4
	matt-nb6-plus-base:1.17
	netbsd-6-0-RC1:1.17
	jmcneill-usbmp-base10:1.17
	yamt-pagecache-base5:1.17
	jmcneill-usbmp-base9:1.17
	yamt-pagecache-base4:1.17
	jmcneill-usbmp-base8:1.17
	jmcneill-usbmp-base7:1.17
	jmcneill-usbmp-base6:1.17
	jmcneill-usbmp-base5:1.17
	jmcneill-usbmp-base4:1.17
	jmcneill-usbmp-base3:1.17
	jmcneill-usbmp-pre-base2:1.15
	jmcneill-usbmp-base2:1.17
	netbsd-6:1.17.0.2
	netbsd-6-base:1.17
	jmcneill-usbmp:1.15.0.2
	jmcneill-usbmp-base:1.15
	jmcneill-audiomp3:1.14.0.4
	jmcneill-audiomp3-base:1.14
	yamt-pagecache-base3:1.14
	yamt-pagecache-base2:1.14
	yamt-pagecache:1.14.0.2
	yamt-pagecache-base:1.14
	rmind-uvmplock-nbase:1.13
	cherry-xenmp:1.13.0.2
	cherry-xenmp-base:1.13
	bouyer-quota2-nbase:1.12
	bouyer-quota2:1.10.0.4
	bouyer-quota2-base:1.10
	jruoho-x86intr:1.10.0.2
	jruoho-x86intr-base:1.10
	matt-mips64-premerge-20101231:1.10
	uebayasi-xip-base4:1.10
	uebayasi-xip-base3:1.10
	yamt-nfs-mp-base11:1.10
	uebayasi-xip-base2:1.10
	yamt-nfs-mp-base10:1.10
	uebayasi-xip-base1:1.9
	rmind-uvmplock:1.9.0.4
	rmind-uvmplock-base:1.13
	yamt-nfs-mp-base9:1.9
	uebayasi-xip:1.9.0.2
	uebayasi-xip-base:1.9
	matt-premerge-20091211:1.7
	yamt-nfs-mp-base8:1.5
	yamt-nfs-mp-base7:1.5
	jymxensuspend-base:1.3
	yamt-nfs-mp-base6:1.2
	yamt-nfs-mp-base5:1.2
	yamt-nfs-mp-base4:1.2
	jym-xensuspend-nbase:1.5
	yamt-nfs-mp:1.2.0.2
	yamt-nfs-mp-base3:1.2
	nick-hppapmap-base4:1.2
	nick-hppapmap-base3:1.2
	nick-hppapmap-base2:1.1
	jym-xensuspend:1.1.0.6
	jym-xensuspend-base:1.2
	nick-hppapmap-base:1.2
	nick-hppapmap:1.1.0.4
	mjf-devfs2-base:1.1
	mjf-devfs2:1.1.0.2;
locks; strict;
comment	@# @;


1.56
date	2025.10.22.12.34.00;	author roy;	state Exp;
branches;
next	1.55;
commitid	xfaNRfdzbv7IVyfG;

1.55
date	2024.01.20.11.04.53;	author kre;	state Exp;
branches;
next	1.54;
commitid	Ni4cJSeznmpg6bVE;

1.54
date	2024.01.01.20.33.34;	author rhialto;	state Exp;
branches;
next	1.53;
commitid	a1TUJWNmLAAZQMSE;

1.53
date	2021.10.27.03.06.59;	author ryo;	state Exp;
branches;
next	1.52;
commitid	uDcddIIHgGswEoeD;

1.52
date	2021.10.25.07.54.44;	author ryo;	state Exp;
branches;
next	1.51;
commitid	XeOvqRYi7f6ejaeD;

1.51
date	2021.05.17.08.50.36;	author mrg;	state Exp;
branches;
next	1.50;
commitid	BKaIGcEdyh58NtTC;

1.50
date	2021.01.25.12.45.49;	author thorpej;	state Exp;
branches
	1.50.4.1
	1.50.6.1;
next	1.49;
commitid	6c39RpUoolE2H6FC;

1.49
date	2020.06.30.16.20.02;	author maxv;	state Exp;
branches
	1.49.2.1;
next	1.48;
commitid	8xM4LQpsEIpLzgeC;

1.48
date	2020.04.30.03.28.19;	author riastradh;	state Exp;
branches;
next	1.47;
commitid	cPJImU3MZz0Vhm6C;

1.47
date	2019.12.14.17.24.43;	author riastradh;	state Exp;
branches;
next	1.46;
commitid	2OSQbDWpL91VlHOB;

1.46
date	2019.12.14.17.23.47;	author riastradh;	state Exp;
branches;
next	1.45;
commitid	8j8tjjY97HUBlHOB;

1.45
date	2019.12.14.17.23.31;	author riastradh;	state Exp;
branches;
next	1.44;
commitid	cpnK7ZRfiQgwlHOB;

1.44
date	2019.12.14.15.30.37;	author ad;	state Exp;
branches;
next	1.43;
commitid	XhpKQBNziMOIIGOB;

1.43
date	2018.09.03.16.54.54;	author riastradh;	state Exp;
branches;
next	1.42;
commitid	bctlAJn3hdkmcGQA;

1.42
date	2018.07.08.17.54.42;	author christos;	state Exp;
branches;
next	1.41;
commitid	o8WFNuIa2N1ummJA;

1.41
date	2017.12.08.21.51.07;	author christos;	state Exp;
branches
	1.41.2.1
	1.41.4.1;
next	1.40;
commitid	NWWbH7q36zx1u8iA;

1.40
date	2017.11.30.05.47.24;	author riastradh;	state Exp;
branches;
next	1.39;
commitid	Xv9t7ikdg7HBo1hA;

1.39
date	2016.05.02.19.18.29;	author christos;	state Exp;
branches;
next	1.38;
commitid	IDX4BBdMG19PqW4z;

1.38
date	2015.04.15.19.13.47;	author mrg;	state Exp;
branches;
next	1.37;
commitid	1Gj8YOlUlCiaJIhy;

1.37
date	2015.01.16.18.36.31;	author christos;	state Exp;
branches;
next	1.36;
commitid	gCnzsV3qQS7Mnh6y;

1.36
date	2014.11.20.16.25.16;	author christos;	state Exp;
branches
	1.36.2.1;
next	1.35;
commitid	BeCerdefilJQtWYx;

1.35
date	2014.08.10.16.44.36;	author tls;	state Exp;
branches
	1.35.2.1;
next	1.34;
commitid	423tWvLQyYa5SPLx;

1.34
date	2014.07.19.18.38.35;	author lneto;	state Exp;
branches;
next	1.33;
commitid	ANelHmZgJutVc1Jx;

1.33
date	2014.07.04.16.44.26;	author jmcneill;	state Exp;
branches;
next	1.32;
commitid	hSCtfSZMvXTZ35Hx;

1.32
date	2014.03.12.00.22.53;	author pooka;	state Exp;
branches
	1.32.2.1;
next	1.31;
commitid	SZbfDxh8cpECglsx;

1.31
date	2014.01.29.23.37.18;	author joerg;	state Exp;
branches;
next	1.30;
commitid	XzET6rd2DWYkm4nx;

1.30
date	2014.01.15.21.12.57;	author joerg;	state Exp;
branches;
next	1.29;
commitid	QxfSzOCRgfaQ0glx;

1.29
date	2013.12.27.20.25.33;	author christos;	state Exp;
branches;
next	1.28;
commitid	5IZLT8ZWT76tmOix;

1.28
date	2013.12.11.01.24.08;	author joerg;	state Exp;
branches;
next	1.27;
commitid	qPaI5q9UcXulyEgx;

1.27
date	2013.12.02.04.39.10;	author lneto;	state Exp;
branches;
next	1.26;
commitid	63cyf88869JEVvfx;

1.26
date	2013.07.23.14.52.07;	author skrll;	state Exp;
branches;
next	1.25;
commitid	KITXWfsy3xeyyBYw;

1.25
date	2013.06.29.16.02.01;	author rmind;	state Exp;
branches
	1.25.2.1;
next	1.24;
commitid	yV2Vg04WvrNOIwVw;

1.24
date	2013.06.24.04.21.20;	author riastradh;	state Exp;
branches
	1.24.2.1;
next	1.23;
commitid	6VKqBmjp9WKeZOUw;

1.23
date	2013.03.17.00.47.13;	author christos;	state Exp;
branches;
next	1.22;

1.22
date	2013.03.14.11.53.33;	author nakayama;	state Exp;
branches;
next	1.21;

1.21
date	2013.03.11.11.44.48;	author christos;	state Exp;
branches;
next	1.20;

1.20
date	2013.03.10.07.31.03;	author christos;	state Exp;
branches;
next	1.19;

1.19
date	2013.01.23.22.34.37;	author matt;	state Exp;
branches;
next	1.18;

1.18
date	2012.08.30.12.16.49;	author drochner;	state Exp;
branches
	1.18.2.1;
next	1.17;

1.17
date	2012.02.05.14.19.03;	author dholland;	state Exp;
branches
	1.17.2.1
	1.17.4.1
	1.17.6.1
	1.17.8.1;
next	1.16;

1.16
date	2012.01.20.00.25.29;	author joerg;	state Exp;
branches;
next	1.15;

1.15
date	2011.11.19.22.51.25;	author tls;	state Exp;
branches
	1.15.2.1;
next	1.14;

1.14
date	2011.08.26.21.22.10;	author dyoung;	state Exp;
branches
	1.14.2.1;
next	1.13;

1.13
date	2011.03.24.17.05.44;	author bouyer;	state Exp;
branches;
next	1.12;

1.12
date	2011.02.26.18.17.55;	author jakllsch;	state Exp;
branches;
next	1.11;

1.11
date	2011.02.26.16.28.10;	author matt;	state Exp;
branches;
next	1.10;

1.10
date	2010.05.11.21.50.35;	author pooka;	state Exp;
branches
	1.10.2.1
	1.10.4.1;
next	1.9;

1.9
date	2010.01.19.22.28.30;	author pooka;	state Exp;
branches
	1.9.2.1
	1.9.4.1;
next	1.8;

1.8
date	2009.12.14.12.18.14;	author uebayasi;	state Exp;
branches;
next	1.7;

1.7
date	2009.11.21.13.37.18;	author uebayasi;	state Exp;
branches;
next	1.6;

1.6
date	2009.11.21.13.30.23;	author uebayasi;	state Exp;
branches;
next	1.5;

1.5
date	2009.08.14.19.23.53;	author dsl;	state Exp;
branches;
next	1.4;

1.4
date	2009.08.12.21.18.42;	author dsl;	state Exp;
branches;
next	1.3;

1.3
date	2009.07.21.14.55.33;	author joerg;	state Exp;
branches;
next	1.2;

1.2
date	2009.03.25.01.26.13;	author darran;	state Exp;
branches
	1.2.2.1;
next	1.1;

1.1
date	2009.01.04.18.00.55;	author pooka;	state Exp;
branches
	1.1.2.1
	1.1.4.1
	1.1.6.1;
next	;

1.50.4.1
date	2021.06.17.04.46.33;	author thorpej;	state Exp;
branches;
next	;
commitid	d7CrUzY34skBrrXC;

1.50.6.1
date	2021.05.31.22.15.20;	author cjep;	state Exp;
branches;
next	;
commitid	eWz9SBW0XqKjJlVC;

1.49.2.1
date	2021.04.03.22.29.00;	author thorpej;	state Exp;
branches;
next	;
commitid	1gqS07EfPjskJTNC;

1.41.2.1
date	2018.07.28.04.38.08;	author pgoyette;	state Exp;
branches;
next	1.41.2.2;
commitid	1UP1xAIUxv1ZgRLA;

1.41.2.2
date	2018.09.06.06.56.42;	author pgoyette;	state Exp;
branches;
next	;
commitid	HCi1bXD317XIK0RA;

1.41.4.1
date	2019.06.10.22.09.04;	author christos;	state Exp;
branches;
next	1.41.4.2;
commitid	jtc8rnCzWiEEHGqB;

1.41.4.2
date	2020.04.08.14.08.52;	author martin;	state Exp;
branches;
next	;
commitid	Qli2aW9E74UFuA3C;

1.36.2.1
date	2015.04.06.15.18.20;	author skrll;	state Exp;
branches;
next	1.36.2.2;
commitid	pz01Zhy7RP6iGxgy;

1.36.2.2
date	2015.06.06.14.40.22;	author skrll;	state Exp;
branches;
next	1.36.2.3;
commitid	O6LVO5i6UulOvnoy;

1.36.2.3
date	2016.05.29.08.44.37;	author skrll;	state Exp;
branches;
next	;
commitid	8mlnPW6uSaJU1m8z;

1.35.2.1
date	2015.04.22.07.18.58;	author snj;	state Exp;
branches;
next	;
commitid	gPptfE5iUQUcxyiy;

1.32.2.1
date	2014.04.07.01.10.55;	author tls;	state Exp;
branches;
next	1.32.2.2;
commitid	IHXsP7OjimRwIGvx;

1.32.2.2
date	2014.07.17.14.03.33;	author tls;	state Exp;
branches;
next	1.32.2.3;
commitid	R9HdB99X4XC9DJIx;

1.32.2.3
date	2014.08.09.07.45.03;	author tls;	state Exp;
branches;
next	1.32.2.4;
commitid	BCgmTcO1aONIUELx;

1.32.2.4
date	2014.08.10.06.56.02;	author tls;	state Exp;
branches;
next	;
commitid	iXAwS8Yo92ToCMLx;

1.25.2.1
date	2013.07.23.21.07.36;	author riastradh;	state Exp;
branches;
next	;
commitid	rochtllMBJfBDDYw;

1.24.2.1
date	2013.08.28.23.59.35;	author rmind;	state Exp;
branches;
next	1.24.2.2;
commitid	cbp9Ov2uYijlqh3x;

1.24.2.2
date	2014.05.18.17.46.08;	author rmind;	state Exp;
branches;
next	;
commitid	mL5ZYSzpqK6QS2Bx;

1.18.2.1
date	2013.02.25.00.29.58;	author tls;	state Exp;
branches;
next	1.18.2.2;

1.18.2.2
date	2013.06.23.06.20.23;	author tls;	state Exp;
branches;
next	1.18.2.3;
commitid	eVjr9caYRQbRGHUw;

1.18.2.3
date	2014.08.20.00.04.29;	author tls;	state Exp;
branches;
next	1.18.2.4;
commitid	jTnpym9Qu0o4R1Nx;

1.18.2.4
date	2017.12.03.11.38.46;	author jdolecek;	state Exp;
branches;
next	;
commitid	XcIYRZTAh1LmerhA;

1.17.2.1
date	2017.08.23.19.38.02;	author snj;	state Exp;
branches;
next	;
commitid	SJjn7Of4SFAEbn4A;

1.17.4.1
date	2013.02.07.07.03.28;	author matt;	state Exp;
branches;
next	;

1.17.6.1
date	2017.08.23.19.36.28;	author snj;	state Exp;
branches;
next	;
commitid	75h1LYwCVOE7bn4A;

1.17.8.1
date	2017.08.23.19.37.20;	author snj;	state Exp;
branches;
next	;
commitid	qdRn4n8C3dgqbn4A;

1.15.2.1
date	2012.02.18.07.35.35;	author mrg;	state Exp;
branches;
next	;

1.14.2.1
date	2011.11.02.21.53.59;	author yamt;	state Exp;
branches;
next	1.14.2.2;

1.14.2.2
date	2012.04.17.00.08.33;	author yamt;	state Exp;
branches;
next	1.14.2.3;

1.14.2.3
date	2012.10.30.17.22.39;	author yamt;	state Exp;
branches;
next	1.14.2.4;

1.14.2.4
date	2014.05.22.11.41.04;	author yamt;	state Exp;
branches;
next	;
commitid	VUUXuyNWnt3AKwBx;

1.10.2.1
date	2011.06.06.09.09.42;	author jruoho;	state Exp;
branches;
next	;

1.10.4.1
date	2011.03.05.15.10.41;	author bouyer;	state Exp;
branches;
next	;

1.9.2.1
date	2010.08.17.06.47.35;	author uebayasi;	state Exp;
branches;
next	;

1.9.4.1
date	2010.05.30.05.17.59;	author rmind;	state Exp;
branches;
next	1.9.4.2;

1.9.4.2
date	2011.03.05.20.55.27;	author rmind;	state Exp;
branches;
next	1.9.4.3;

1.9.4.3
date	2011.04.21.01.42.12;	author rmind;	state Exp;
branches;
next	;

1.2.2.1
date	2009.03.25.01.26.13;	author yamt;	state dead;
branches;
next	1.2.2.2;

1.2.2.2
date	2009.05.04.08.13.50;	author yamt;	state Exp;
branches;
next	1.2.2.3;

1.2.2.3
date	2009.06.20.07.20.32;	author yamt;	state Exp;
branches;
next	1.2.2.4;

1.2.2.4
date	2009.08.19.18.48.18;	author yamt;	state Exp;
branches;
next	1.2.2.5;

1.2.2.5
date	2010.03.11.15.04.21;	author yamt;	state Exp;
branches;
next	1.2.2.6;

1.2.2.6
date	2010.08.11.22.54.45;	author yamt;	state Exp;
branches;
next	;

1.1.2.1
date	2009.01.04.18.00.55;	author mjf;	state dead;
branches;
next	1.1.2.2;

1.1.2.2
date	2009.01.17.13.29.21;	author mjf;	state Exp;
branches;
next	;

1.1.4.1
date	2009.01.04.18.00.55;	author skrll;	state dead;
branches;
next	1.1.4.2;

1.1.4.2
date	2009.01.19.13.19.56;	author skrll;	state Exp;
branches;
next	1.1.4.3;

1.1.4.3
date	2009.04.28.07.37.13;	author skrll;	state Exp;
branches;
next	;

1.1.6.1
date	2009.05.13.17.22.15;	author jym;	state Exp;
branches;
next	1.1.6.2;

1.1.6.2
date	2009.07.23.23.32.45;	author jym;	state Exp;
branches;
next	;


desc
@@


1.56
log
@rbtree: Rename rb.c to rbtree.c to match it's header rbtree.h

While here rename RBTEST to RBLOCAL to give a better meaning as we
want to include the local rbtest.h rather than the system one.

Also allow to compile outside of NetBSD source tree by guarding some
things we would otherwise expect to be defined.
@
text
@#	$NetBSD: Makefile.libkern,v 1.55 2024/01/20 11:04:53 kre Exp $

#
# Variable definitions for libkern.
#
# Before including this, you _must_ set
#   KERNDIR: location of sys/lib/libkern
#
# You *may* set:
#   LIBKERN_ARCH: architecture subdir to be used
#   KERNCPPFLAGS: see Makefile.inc
#   KERNMISCCPPFLAGS: see Makefile.inc
#

.include <bsd.own.mk>

.if defined(LIBKERN_ARCH) && !empty(LIBKERN_ARCH) && \
    exists(${KERNDIR}/arch/${LIBKERN_ARCH})
ARCHSUBDIR=     ${LIBKERN_ARCH}
.elif defined(MACHINE_ARCH) && !empty(MACHINE_ARCH) && \
    exists(${KERNDIR}/arch/${MACHINE_ARCH})
ARCHSUBDIR=     ${MACHINE_ARCH}
.elif defined(MACHINE_CPU) && !empty(MACHINE_CPU) && \
    exists(${KERNDIR}/arch/${MACHINE_CPU})
ARCHSUBDIR=     ${MACHINE_CPU}
.endif

M= ${KERNDIR}/arch/${ARCHSUBDIR}

CPPFLAGS+=	-I$M ${KERNCPPFLAGS} ${KERNMISCCPPFLAGS}

.include "${.PARSEDIR}/../../../common/lib/libc/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libutil/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libprop/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libppath/Makefile.inc"

CPPFLAGS+=	-I${KERNDIR}/../../../common/include
CPPFLAGS+=	-I${KERNDIR}/../../../common/include/libc
CPPFLAGS+=	-I${KERNDIR}/../../../common/libc/hash/sha3

.PATH.c: ${KERNDIR}
.if exists ($M/Makefile.inc)
.PATH.c: $M
.PATH.S: $M
.include "$M/Makefile.inc"
.endif

.if !defined(RUMPKERNEL)
.include "${.PARSEDIR}/Makefile.compiler-rt"
.endif

# Other stuff
SRCS+=	kern_assert.c __main.c
SRCS+=	cpuset.c inet_addr.c intoa.c
.if empty(SRCS:Mbyte_swap_8.*)
SRCS+=	bswap64.c
.endif
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c sha3.c keccak.c murmurhash.c
SRCS+=	pmatch.c mcount.c crc32.c
SRCS+=	strlist.c

SRCS+=	ppath_kmem_alloc.c

SRCS+=	copystr.c
SRCS+=	strsep.c strstr.c
SRCS+=	strlcpy.c strlcat.c

SRCS+=	imax.c imin.c lmax.c lmin.c uimax.c uimin.c ulmax.c ulmin.c
SRCS+=	memmove.c
SRCS+=	strchr.c strrchr.c
SRCS+=	memcmp.c memmem.c

SRCS+=	memcpy.c
.if empty(SRCS:Mmemset2.*)
SRCS+=	memset.c
.endif

SRCS+=	popcount32.c popcount64.c
SRCS+=	strtoul.c strtoll.c strtoull.c strtoimax.c strtoumax.c
SRCS+=	strtoi.c strtou.c
SRCS+=	strnvisx.c

SRCS+=	scanc.c skpc.c
SRCS+=	random.c
SRCS+=	rngtest.c

SRCS+=	memchr.c
SRCS+=	strcat.c strcmp.c strcpy.c strcspn.c strlen.c strnlen.c
SRCS+=	strncat.c strncmp.c strncpy.c strpbrk.c strspn.c
SRCS+=	strcasecmp.c strncasecmp.c

SRCS+=	xlat_mbr_fstype.c

SRCS+=	heapsort.c ptree.c radixtree.c rbtree.c rpst.c

SRCS+=	hexdump.c

# for crypto
SRCS+=	explicit_memset.c consttime_memequal.c

SRCS+=	entpool.c

SRCS+=	dkcksum.c
SRCS+=	disklabel_swap.c

.PATH:	${.PARSEDIR}/../../../common/lib/libc/cdb
SRCS+=	cdbr.c
SRCS+=	mi_vector_hash.c

# Files to clean up
CLEANFILES+= lib${LIB}.o lib${LIB}.po

# Remove from SRCS the .c files for any .S files added by the MD makefiles,
# also remove from SRCS the .c files for the .c files in NO_SRCS.
# (Unlike libc, we don't worry about lint)

.for check_file in ${SRCS:M*.S} ${NO_SRCS}
unwanted_file := ${SRCS:M${check_file:.S=.c}}
.if "${unwanted_file}" != ""
SRCS := ${SRCS:N${unwanted_file}}
.endif
.endfor
@


1.55
log
@Compensate for src/common/lib/libc/atomic/atomic_init_cas.c losing
the extern declaration of __libc_atomic_init() and instead using a
new one added to src/lib/libc/include/extern.h

That file is outside src/common and src/sys so is unavailable to
kernel builds, so instead make a new include file in src/common
which the kernel can read which contains the needed extern decl
for __libc_atomic_init()

This seems to fix the evbarm builds (maybe others) - but it is
all MUCH TOO UGLY to keep.   Someone please make a better fix,
even if that just means reverting rev 1.5 of
	src/common/lib/libc/atomic/atomic_init_cas.c
and all of the changes here (the addition to libc/include/extern.h
should be harmless to keep).
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.54 2024/01/01 20:33:34 rhialto Exp $
d94 1
a94 1
SRCS+=	heapsort.c ptree.c radixtree.c rb.c rpst.c
@


1.54
log
@avoid dependency on NETBSDSRCDIR being set.

(similar to an earlier commit)
due to various things, non-build.sh builds don't have it set already
and it ends up defaulting to /usr/src, so if that doesn't exist or
is the wrong version, building libkern fails.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.53 2021/10/27 03:06:59 ryo Exp $
d38 1
@


1.53
log
@revert previous: http://mail-index.netbsd.org/source-changes/2021/10/25/msg133295.html

going to add __always_inline to the functions called from _mcount()
discussed on http://mail-index.netbsd.org/source-changes-d/2021/10/25/msg013480.html
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.51 2021/05/17 08:50:36 mrg Exp $
d105 1
a105 1
.PATH:	${NETBSDSRCDIR}/common/lib/libc/cdb
@


1.52
log
@In some arch, _mcount() would be called recursively when built with COPTS=-O0.

Normally, functions called from mcount.c are expected to be expanded inline,
so _mcount() will never be called recursively. But when build with COPTS=-O0,
`static inline' functions aren't inlined, and _mcount() will be called
recursively.

Even if _mcount() has `__attribute__((__no_ instrument_function__))',
it has no effect on the calling external (no-inlined) function.

To avoid this, PROF.<fn> is added can be set the profiling flag of any file.
"PROF.mcount.c" is set to blank by default, mcount.c itself is compiled
without -pg.
@
text
@d58 1
a58 1
SRCS+=	pmatch.c crc32.c
a104 4
# for profiling
SRCS+=	mcount.c
PROF.mcount.c=			# mcount.c itself is never a profiling target

@


1.51
log
@move bi-endian disklabel support from the kernel and libsa into libkern.

- dkcksum() and dkcksum_sized() move from subr_disk.c and from
  libsa into libkern/dkcksum.c (which is missing _sized() version),
  using the version from usr.sbin/disklabel.

- swap_disklabel() moves from subr_disk_mbr.c into libkern, now called
  disklabel_swap().  (the sh3 version should be updated to use this.)

- DISKLABEL_EI becomes a first-class option with opt_disklabel.h.

- add libkern.h to libsa/disklabel.c.

this enables future work for bi-endian libsa/ufs.c (relevant for ffsv1,
ffsv2, lfsv1, and lfsv2), as well as making it possible for ports not
using subr_disk_mbr.c to include bi-endian disklabel support (which,
afaict, includes any disk on mbr-supporting platforms that do not have
an mbr as well as disklabel.)

builds successsfully on: alpha, i386, amd64, sun2, sun3, evbarm64,
evbarm64-eb, sparc, and sparc64.  tested in anita on i386 and sparc,
testing in hardware on evbarm64*.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.50 2021/01/25 12:45:49 thorpej Exp $
d58 1
a58 1
SRCS+=	pmatch.c mcount.c crc32.c
d105 4
@


1.50
log
@Build strlist.c.

(Sigh, missed in original commit.)
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.49 2020/06/30 16:20:02 maxv Exp $
d102 3
@


1.50.4.1
log
@Sync w/ HEAD.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.51 2021/05/17 08:50:36 mrg Exp $
a101 3
SRCS+=	dkcksum.c
SRCS+=	disklabel_swap.c

@


1.50.6.1
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.51 2021/05/17 08:50:36 mrg Exp $
a101 3
SRCS+=	dkcksum.c
SRCS+=	disklabel_swap.c

@


1.49
log
@Make copystr() a MI C function, part of libkern and shared on all
architectures.

Notes:

 - On alpha and ia64 the function is kept but gets renamed locally to avoid
   symbol collision. This is because on these two arches, I am not sure
   whether the ASM callers do not rely on fixed registers, so I prefer to
   keep the ASM body for now.
 - On Vax, only the symbol is removed, because the body is used from other
   functions.
 - On RISC-V, this change fixes a bug: copystr() was just a wrapper around
   strlcpy(), but strlcpy() makes the operation less safe (strlen on the
   source beyond its size).
 - The kASan, kCSan and kMSan wrappers are removed, because now that
   copystr() is in C, the compiler transformations are applied to it,
   without the need for manual wrappers.

Could test on amd64 only, but should be fine.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.48 2020/04/30 03:28:19 riastradh Exp $
d59 1
@


1.49.2.1
log
@Sync with HEAD.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.50 2021/01/25 12:45:49 thorpej Exp $
a58 1
SRCS+=	strlist.c
@


1.48
log
@Rewrite entropy subsystem.

Primary goals:

1. Use cryptography primitives designed and vetted by cryptographers.
2. Be honest about entropy estimation.
3. Propagate full entropy as soon as possible.
4. Simplify the APIs.
5. Reduce overhead of rnd_add_data and cprng_strong.
6. Reduce side channels of HWRNG data and human input sources.
7. Improve visibility of operation with sysctl and event counters.

Caveat: rngtest is no longer used generically for RND_TYPE_RNG
rndsources.  Hardware RNG devices should have hardware-specific
health tests.  For example, checking for two repeated 256-bit outputs
works to detect AMD's 2019 RDRAND bug.  Not all hardware RNGs are
necessarily designed to produce exactly uniform output.

ENTROPY POOL

- A Keccak sponge, with test vectors, replaces the old LFSR/SHA-1
  kludge as the cryptographic primitive.

- `Entropy depletion' is available for testing purposes with a sysctl
  knob kern.entropy.depletion; otherwise it is disabled, and once the
  system reaches full entropy it is assumed to stay there as far as
  modern cryptography is concerned.

- No `entropy estimation' based on sample values.  Such `entropy
  estimation' is a contradiction in terms, dishonest to users, and a
  potential source of side channels.  It is the responsibility of the
  driver author to study the entropy of the process that generates
  the samples.

- Per-CPU gathering pools avoid contention on a global queue.

- Entropy is occasionally consolidated into global pool -- as soon as
  it's ready, if we've never reached full entropy, and with a rate
  limit afterward.  Operators can force consolidation now by running
  sysctl -w kern.entropy.consolidate=1.

- rndsink(9) API has been replaced by an epoch counter which changes
  whenever entropy is consolidated into the global pool.
  . Usage: Cache entropy_epoch() when you seed.  If entropy_epoch()
    has changed when you're about to use whatever you seeded, reseed.
  . Epoch is never zero, so initialize cache to 0 if you want to reseed
    on first use.
  . Epoch is -1 iff we have never reached full entropy -- in other
    words, the old rnd_initial_entropy is (entropy_epoch() != -1) --
    but it is better if you check for changes rather than for -1, so
    that if the system estimated its own entropy incorrectly, entropy
    consolidation has the opportunity to prevent future compromise.

- Sysctls and event counters provide operator visibility into what's
  happening:
  . kern.entropy.needed - bits of entropy short of full entropy
  . kern.entropy.pending - bits known to be pending in per-CPU pools,
    can be consolidated with sysctl -w kern.entropy.consolidate=1
  . kern.entropy.epoch - number of times consolidation has happened,
    never 0, and -1 iff we have never reached full entropy

CPRNG_STRONG

- A cprng_strong instance is now a collection of per-CPU NIST
  Hash_DRBGs.  There are only two in the system: user_cprng for
  /dev/urandom and sysctl kern.?random, and kern_cprng for kernel
  users which may need to operate in interrupt context up to IPL_VM.

  (Calling cprng_strong in interrupt context does not strike me as a
  particularly good idea, so I added an event counter to see whether
  anything actually does.)

- Event counters provide operator visibility into when reseeding
  happens.

INTEL RDRAND/RDSEED, VIA C3 RNG (CPU_RNG)

- Unwired for now; will be rewired in a subsequent commit.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.47 2019/12/14 17:24:43 riastradh Exp $
d62 1
@


1.47
log
@Nix trailing whitespace.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.46 2019/12/14 17:23:47 riastradh Exp $
d38 1
d98 2
@


1.46
log
@Remove never-used Mersenne twister from libkern.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.45 2019/12/14 17:23:31 riastradh Exp $
d3 2
a4 2
# 
# Variable definitions for libkern.  
d71 1
a71 1
SRCS+=	memset.c 
@


1.45
log
@Omit vestigial unused commented-out experiment.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.44 2019/12/14 15:30:37 ad Exp $
d57 1
a57 1
SRCS+=	pmatch.c mcount.c mertwist.c crc32.c
@


1.44
log
@Include radixtree in the kernel.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.43 2018/09/03 16:54:54 riastradh Exp $
a100 3
#.PATH:	${NETBSDSRCDIR}/external/bsd/liblzf/dist
#SRCS+=	lzf_c.c lzf_d.c

@


1.43
log
@Rename min.c -> uimin.c, max.c -> uimax.c in libkern.
@
text
@d1 1
a1 1
#	$NetBSD$
d90 1
a90 1
SRCS+=	heapsort.c ptree.c rb.c
@


1.42
log
@provide memmem
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.41 2017/12/08 21:51:07 christos Exp $
d64 1
a64 1
SRCS+=	imax.c imin.c lmax.c lmin.c max.c min.c ulmax.c ulmin.c
@


1.41
log
@coalesce the two copies of hexdump into libkern
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.40 2017/11/30 05:47:24 riastradh Exp $
d67 1
a67 1
SRCS+=	memcmp.c
@


1.41.4.1
log
@Sync with HEAD
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.43 2018/09/03 16:54:54 riastradh Exp $
d64 1
a64 1
SRCS+=	imax.c imin.c lmax.c lmin.c uimax.c uimin.c ulmax.c ulmin.c
d67 1
a67 1
SRCS+=	memcmp.c memmem.c
@


1.41.4.2
log
@Merge changes from current as of 20200406
@
text
@d1 1
a1 1
#	$NetBSD$
d3 2
a4 2
#
# Variable definitions for libkern.
d57 1
a57 1
SRCS+=	pmatch.c mcount.c crc32.c
d71 1
a71 1
SRCS+=	memset.c
d90 1
a90 1
SRCS+=	heapsort.c ptree.c radixtree.c rb.c rpst.c
d101 3
@


1.41.2.1
log
@Sync with HEAD
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.42 2018/07/08 17:54:42 christos Exp $
d67 1
a67 1
SRCS+=	memcmp.c memmem.c
@


1.41.2.2
log
@Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.43 2018/09/03 16:54:54 riastradh Exp $
d64 1
a64 1
SRCS+=	imax.c imin.c lmax.c lmin.c uimax.c uimin.c ulmax.c ulmin.c
@


1.40
log
@Import SHA-3 code into libc and libkern.

No new public symbols in libc, but publishing the symbols is a simple
matter if/when we decide to do so.

Proposed on tech-kern and tech-userlevel with no objections:

https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html
https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.39 2016/05/02 19:18:29 christos Exp $
d92 2
@


1.39
log
@move scsipi_strvis -> libkern:strnvisx()
change the prototype to match userland
fix sizes of strings passed to it
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.38 2015/04/15 19:13:47 mrg Exp $
d56 1
a56 1
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c murmurhash.c
@


1.38
log
@remove various HAVE_GCC=45 fragments.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.37 2015/01/16 18:36:31 christos Exp $
d77 1
@


1.37
log
@strtoi and strtou for the kernel
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.36 2014/11/20 16:25:16 christos Exp $
a113 4

.if ${HAVE_GCC:U} == "45" && ${MACHINE_CPU} == "hppa"
COPTS.md5c.c +=		${${ACTIVE_CC} == "gcc" :? -O0 :}
.endif
@


1.36
log
@bcdtobin and bintobcd are now inlines in <dev/clock_subr.h>
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.35 2014/08/10 16:44:36 tls Exp $
d76 1
@


1.36.2.1
log
@Sync with HEAD
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.37 2015/01/16 18:36:31 christos Exp $
a75 1
SRCS+=	strtoi.c strtou.c
@


1.36.2.2
log
@Sync with HEAD
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.36.2.1 2015/04/06 15:18:20 skrll Exp $
d3 2
a4 2
#
# Variable definitions for libkern.
d71 1
a71 1
SRCS+=	memset.c
d114 4
@


1.36.2.3
log
@Sync with HEAD
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.36.2.2 2015/06/06 14:40:22 skrll Exp $
a76 1
SRCS+=	strnvisx.c
@


1.35
log
@Merge tls-earlyentropy branch into HEAD.
@
text
@d1 1
a1 1
#	$NetBSD$
d57 1
a57 1
SRCS+=	pmatch.c bcd.c mcount.c mertwist.c crc32.c
@


1.35.2.1
log
@Pull up following revision(s) (requested by roy in ticket #648):
	common/lib/libc/stdlib/_strtoi.h: revisions 1.1, 1.2
	common/lib/libc/stdlib/strtoi.c: revision 1.1
	common/lib/libc/stdlib/strtou.c: revision 1.1
	distrib/sets/lists/base/ad.aarch64: patch
	distrib/sets/lists/base/ad.arm: patch
	distrib/sets/lists/base/ad.mips: patch
	distrib/sets/lists/base/ad.powerpc: patch
	distrib/sets/lists/base/md.amd64: patch
	distrib/sets/lists/base/md.sparc64: patch
	distrib/sets/lists/base/shl.mi: patch
	distrib/sets/lists/comp/mi: revision 1.1939
	distrib/sets/lists/debug/ad.aarch64: patch
	distrib/sets/lists/debug/ad.arm: patch
	distrib/sets/lists/debug/ad.mips: patch
	distrib/sets/lists/debug/ad.powerpc: patch
	distrib/sets/lists/debug/md.amd64: patch
	distrib/sets/lists/debug/md.sparc64: patch
	distrib/sets/lists/debug/shl.mi: patch
	include/inttypes.h: revision 1.11
	lib/libc/shlib_version: patch
	lib/libc/stdlib/Makefile.inc: revision 1.84
	lib/libc/stdlib/strtol.3: revisions 1.27-1.31
	lib/libc/stdlib/strtoul.3: revisions 1.26-1.29
	sys/lib/libkern/Makefile.libkern: revision 1.37
	sys/lib/libkern/libkern.h: revision 1.117
	tools/compat/Makefile: revision 1.73
	tools/compat/compat_defs.h: revision 1.101
	tools/compat/configure.ac: revision 1.83
	tools/compat/configure: revision 1.82
	tools/compat/nbtool_config.h.in: revision 1.36
add strto{i,u} from Kamil Rytarowski as discussed in tech-userlevel.
--
strtoi and strtou additions
--
strtoi and strtou for the kernel
--
strtoi and strtou additions
--
strtoi and strtou man pages
--
strto{i,u}
--
regen
--
Remove trailing whitespace.
--
match variable names with man page (Kamil Rytarowski)
--
cleanups from (Kamil Rytarowski)
--
add strtoi strtou (Kamil Rytarowski)
--
PR/49640: Kamil Rytarowski: Improve error printing
--
Use existing month for Dd.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.35 2014/08/10 16:44:36 tls Exp $
a75 1
SRCS+=	strtoi.c strtou.c
@


1.34
log
@lua: updated from 5.1 to 5.3 work3

* lua(1):
  - changed lua_Integer to intmax_t
  - updated distrib/sets/lists and etc/mtree
  - updated bsd.lua.mk
  - fixed bozohttpd (lua-bozo.c)
  - compatibilized bindings: gpio, sqlite
* lua(4):
  - removed floating-point and libc dependencies using '#ifndef _KERNEL'
  - fixed division by zero and exponentiation
  - libkern: added isalnum(), iscntrl(), isgraph(), isprint() and ispunct()
  - acpica: removed isprint() from acnetbsd.h
  - libc: moved strcspn.c, strpbrk.c and strspn.c to common
  - removed stub headers
  - compatibilized bindings: luapmf, luasystm
* reorganized luaconf.h
* updated doc/CHANGES and doc/RESPONSIBLE
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.33 2014/07/04 16:44:26 jmcneill Exp $
d57 1
a57 1
SRCS+=	pmatch.c arc4random.c bcd.c mcount.c mertwist.c crc32.c
d97 3
@


1.33
log
@${.PARSEDIR} not .${PARSEDIR} for Makefile.compiler-rt include
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.32 2014/03/12 00:22:53 pooka Exp $
d82 2
a83 2
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c strnlen.c
SRCS+=	strncat.c strncmp.c strncpy.c
@


1.32
log
@Do not include compiler-rt in librump.  librump is not a toolchain support
library, and toolchain support belongs in the host libc or libgcc or
equivalent entity that is actually supposed to complement the toolchain.

Fixes librump build on (a) Linux ARM (collisions with libgcc)
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.31 2014/01/29 23:37:18 joerg Exp $
d47 1
a47 1
.include ".${PARSEDIR}/Makefile.compiler-rt"
@


1.32.2.1
log
@LZF in the kernel.  As an entropy estimator for now but it's very small, and
we could use it for ipcomp, for hibernation, for paging, for core dumps, etc.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.32 2014/03/12 00:22:53 pooka Exp $
a96 3
.PATH:	${NETBSDSRCDIR}/external/bsd/liblzf/dist
SRCS+=	lzf_c.c lzf_d.c

@


1.32.2.2
log
@Adjustments to the "earlyentropy" branch in response to the various
discussions beginning with my initial proposal
http://mail-index.netbsd.org/tech-kern/2014/04/08/msg016876.html and
particularly the long discussion of cprng_fast() performance (e.g.
https://mail-index.netbsd.org/tech-crypto/2014/04/21/msg000642.html).

In particular:

	* Per-CPU, lockless cprng_fast replacement using Dennis Ferguson's
	  "ccrand" implementation of ChaCha8.

	* libkern arc4random() is gone, gone, gone.

	* Entropy estimator reverted to 32-bit recordkeeping and timestamps
	  per Dennis' comments and analysis.

	* LZF entropy estimator removed: it required a great deal of state,
	  and rejected only truly pathological input.

	I have not yet reverted the changes that provide LZF in the kernel
	as generic functionality; I will likely revert those changes prior
	to any merge of this branch to HEAD.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.32.2.1 2014/04/07 01:10:55 tls Exp $
d57 1
a57 1
SRCS+=	pmatch.c bcd.c mcount.c mertwist.c crc32.c
@


1.32.2.3
log
@(Temporarily) disable LZF in libkern -- it introduces a dependency from
src/sys to src/external which I'll need to fix by moving the LZF sources.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.32.2.2 2014/07/17 14:03:33 tls Exp $
d97 2
a98 2
#.PATH:	${NETBSDSRCDIR}/external/bsd/liblzf/dist
#SRCS+=	lzf_c.c lzf_d.c
@


1.32.2.4
log
@Rebase.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.34 2014/07/19 18:38:35 lneto Exp $
d47 1
a47 1
.include "${.PARSEDIR}/Makefile.compiler-rt"
d82 2
a83 2
SRCS+=	strcat.c strcmp.c strcpy.c strcspn.c strlen.c strnlen.c
SRCS+=	strncat.c strncmp.c strncpy.c strpbrk.c strspn.c
@


1.31
log
@Include compiler-rt in libc, libm and libkern.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.30 2014/01/15 21:12:57 joerg Exp $
d46 1
d48 1
@


1.30
log
@For HAVE_LIBGCC=no, use compiler-rt for quad support.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.29 2013/12/27 20:25:33 christos Exp $
a45 1
.if ${HAVE_LIBGCC} == "no"
a46 13
.else
.if (${MACHINE_ARCH} != "alpha") && \
    (${MACHINE_ARCH} != "mips64eb" || !empty(CFLAGS:M-mabi=32)) && \
    (${MACHINE_ARCH} != "mips64el" || !empty(CFLAGS:M-mabi=32)) && \
    (${MACHINE_ARCH} != "powerpc64") && \
    (${MACHINE_ARCH} != "sparc64") && \
    (${MACHINE_ARCH} != "x86_64" || !empty(CFLAGS:M-m32))
# Quad support
SRCS+=	adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
	lshldi3.c lshrdi3.c moddi3.c muldi3.c negdi2.c notdi2.c qdivrem.c \
	subdi3.c  ucmpdi2.c udivdi3.c umoddi3.c xordi3.c
.endif
.endif
@


1.29
log
@add strncat (for acpi)
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.28 2013/12/11 01:24:08 joerg Exp $
d46 3
d60 1
@


1.28
log
@Allow kernel code to access constant databases by moving cdbr(3) and the
required mi_vector_hash(3) into src/common.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.27 2013/12/02 04:39:10 lneto Exp $
d91 1
a91 1
SRCS+=	strncmp.c strncpy.c
@


1.27
log
@changed lua_Number to int64_t
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.26 2013/07/23 14:52:07 skrll Exp $
d101 4
@


1.26
log
@Another codegen bug that fixes (in this case lots of) atf tests.
rump_server doesn't die so much now.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.25 2013/06/29 16:02:01 rmind Exp $
d83 1
a83 1
SRCS+=	strtoul.c strtoll.c strtoull.c strtoumax.c
@


1.25
log
@libkern: add murmurhash module.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.24 2013/06/24 04:21:20 riastradh Exp $
d114 4
@


1.25.2.1
log
@sync with HEAD
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.26 2013/07/23 14:52:07 skrll Exp $
a113 4

.if ${HAVE_GCC:U} == "45" && ${MACHINE_CPU} == "hppa"
COPTS.md5c.c +=		${${ACTIVE_CC} == "gcc" :? -O0 :}
.endif
@


1.24
log
@Replace consttime_bcmp/explicit_bzero by consttime_memequal/explicit_memset.

consttime_memequal is the same as the old consttime_bcmp.
explicit_memset is to memset as explicit_bzero was to bcmp.

Passes amd64 release and i386/ALL, but I'm sure I missed some spots,
so please let me know.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.23 2013/03/17 00:47:13 christos Exp $
d64 1
a64 1
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c
@


1.24.2.1
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD$
d64 1
a64 1
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c murmurhash.c
a113 4

.if ${HAVE_GCC:U} == "45" && ${MACHINE_CPU} == "hppa"
COPTS.md5c.c +=		${${ACTIVE_CC} == "gcc" :? -O0 :}
.endif
@


1.24.2.2
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.24.2.1 2013/08/28 23:59:35 rmind Exp $
d46 10
a55 2
.if !defined(RUMPKERNEL)
.include ".${PARSEDIR}/Makefile.compiler-rt"
d83 1
a83 1
SRCS+=	strtoul.c strtoll.c strtoull.c strtoimax.c strtoumax.c
d91 1
a91 1
SRCS+=	strncat.c strncmp.c strncpy.c
a100 4
.PATH:	${NETBSDSRCDIR}/common/lib/libc/cdb
SRCS+=	cdbr.c
SRCS+=	mi_vector_hash.c

@


1.23
log
@undo sparc64 kludge
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.22 2013/03/14 11:53:33 nakayama Exp $
d99 1
a99 1
SRCS+=	explicit_bzero.c consttime_bcmp.c
@


1.22
log
@Make sparc64 32-bit kernel buildable.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.21 2013/03/11 11:44:48 christos Exp $
a76 2
.if (${MACHINE} != "sparc64") || defined(RUMPTOP)
# provided by memcpyset.s on sparc64, but RUMP does not know about it.
d81 1
a81 1
.endif
@


1.21
log
@amend previous sparc64 fix: rump does not know about memcpyset.s
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.20 2013/03/10 07:31:03 christos Exp $
d77 1
a77 1
.if (${MACHINE_ARCH} != "sparc64") || defined(RUMPTOP)
@


1.20
log
@On sparc64 memcpy and memset are provided by memcpyset.s (should have been
memcpyset.S, but...). Don't include them in the build because it breaks the
modular build where the kernel library is built as an object.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.19 2013/01/23 22:34:37 matt Exp $
d77 2
a78 1
.if (${MACHINE_ARCH} != "sparc64") # provided by memcpyset.s
@


1.19
log
@Add strnlen.c to SRCS (which will automatically use the .S version if it
exists).
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.18 2012/08/30 12:16:49 drochner Exp $
d73 1
a73 1
SRCS+=	memcpy.c memmove.c
d76 3
d82 1
@


1.18
log
@Add "consttime_bcmp" and "explicit_bzero" functions for both kernel
abd userland, as proposed on tech-security, with explicit_bzero using
a volatile function pointer as suggested by Alan Barrett.
Both do what the name says. For userland, both are prefixed by "__"
to keep them out of the user namespace.
Change some memset/memcmp uses to the new functions where it makes
sense -- these are just some examples, more to come.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.17 2012/02/05 14:19:03 dholland Exp $
d87 1
a87 1
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c
@


1.18.2.1
log
@resync with head
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.18 2012/08/30 12:16:49 drochner Exp $
d87 1
a87 1
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c strnlen.c
@


1.18.2.2
log
@resync from head
@
text
@d1 1
a1 1
#	$NetBSD$
d73 1
a73 1
SRCS+=	memmove.c
a75 2

SRCS+=	memcpy.c
a78 1

@


1.18.2.3
log
@Rebase to HEAD as of a few days ago.
@
text
@d46 10
a55 2
.if !defined(RUMPKERNEL)
.include "${.PARSEDIR}/Makefile.compiler-rt"
d64 2
a65 2
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c murmurhash.c
SRCS+=	pmatch.c bcd.c mcount.c mertwist.c crc32.c
d83 1
a83 1
SRCS+=	strtoul.c strtoll.c strtoull.c strtoimax.c strtoumax.c
d90 2
a91 2
SRCS+=	strcat.c strcmp.c strcpy.c strcspn.c strlen.c strnlen.c
SRCS+=	strncat.c strncmp.c strncpy.c strpbrk.c strspn.c
d99 1
a99 8
SRCS+=	explicit_memset.c consttime_memequal.c

.PATH:	${NETBSDSRCDIR}/common/lib/libc/cdb
SRCS+=	cdbr.c
SRCS+=	mi_vector_hash.c

#.PATH:	${NETBSDSRCDIR}/external/bsd/liblzf/dist
#SRCS+=	lzf_c.c lzf_d.c
a113 4

.if ${HAVE_GCC:U} == "45" && ${MACHINE_CPU} == "hppa"
COPTS.md5c.c +=		${${ACTIVE_CC} == "gcc" :? -O0 :}
.endif
@


1.18.2.4
log
@update from HEAD
@
text
@d56 2
a57 2
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c sha3.c keccak.c murmurhash.c
SRCS+=	pmatch.c mcount.c mertwist.c crc32.c
a75 2
SRCS+=	strtoi.c strtou.c
SRCS+=	strnvisx.c
d113 4
@


1.17
log
@Migrate one last leftover bit (used only by the kernel now) to
sys/ufs/ufs and remove the old quota headers and no-longer-used shared
code. Ok by releng.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.16 2012/01/20 00:25:29 joerg Exp $
d95 3
@


1.17.2.1
log
@Pull up following revision(s) (requested by mrg in ticket #1481):
	sys/lib/libkern/Makefile.libkern: revision 1.19
Add strnlen.c to SRCS (which will automatically use the .S version if it
exists).
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.17 2012/02/05 14:19:03 dholland Exp $
d87 1
a87 1
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c strnlen.c
@


1.17.8.1
log
@Pull up following revision(s) (requested by mrg in ticket #1481):
	sys/lib/libkern/Makefile.libkern: revision 1.19
Add strnlen.c to SRCS (which will automatically use the .S version if it
exists).
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.17 2012/02/05 14:19:03 dholland Exp $
d87 1
a87 1
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c strnlen.c
@


1.17.6.1
log
@Pull up following revision(s) (requested by mrg in ticket #1481):
	sys/lib/libkern/Makefile.libkern: revision 1.19
Add strnlen.c to SRCS (which will automatically use the .S version if it
exists).
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.17 2012/02/05 14:19:03 dholland Exp $
d87 1
a87 1
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c strnlen.c
@


1.17.4.1
log
@Pullup rev 1.19:
date: 2013/01/23 22:34:37;  author: matt;  state: Exp;  lines: +2 -2
Add strnlen.c to SRCS (which will automatically use the .S version if it
exists).
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.19 2013/01/23 22:34:37 matt Exp $
d87 1
a87 1
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c strnlen.c
@


1.16
log
@Don't use __cmsg_alignbytes in the kernel. Mark it as constant function
for userland as its value never changes. This allows the compiler to
optimise most invocations away.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.15 2011/11/19 22:51:25 tls Exp $
a35 1
.include "${.PARSEDIR}/../../../common/lib/libquota/Makefile.inc"
@


1.15
log
@First step of random number subsystem rework described in
<20111022023242.BA26F14A158@@mail.netbsd.org>.  This change includes
the following:

	An initial cleanup and minor reorganization of the entropy pool
	code in sys/dev/rnd.c and sys/dev/rndpool.c.  Several bugs are
	fixed.  Some effort is made to accumulate entropy more quickly at
	boot time.

	A generic interface, "rndsink", is added, for stream generators to
	request that they be re-keyed with good quality entropy from the pool
	as soon as it is available.

	The arc4random()/arc4randbytes() implementation in libkern is
	adjusted to use the rndsink interface for rekeying, which helps
	address the problem of low-quality keys at boot time.

	An implementation of the FIPS 140-2 statistical tests for random
	number generator quality is provided (libkern/rngtest.c).  This
	is based on Greg Rose's implementation from Qualcomm.

	A new random stream generator, nist_ctr_drbg, is provided.  It is
	based on an implementation of the NIST SP800-90 CTR_DRBG by
	Henric Jungheim.  This generator users AES in a modified counter
	mode to generate a backtracking-resistant random stream.

	An abstraction layer, "cprng", is provided for in-kernel consumers
	of randomness.  The arc4random/arc4randbytes API is deprecated for
	in-kernel use.  It is replaced by "cprng_strong".  The current
	cprng_fast implementation wraps the existing arc4random
	implementation.  The current cprng_strong implementation wraps the
	new CTR_DRBG implementation.  Both interfaces are rekeyed from
	the entropy pool automatically at intervals justifiable from best
	current cryptographic practice.

	In some quick tests, cprng_fast() is about the same speed as
	the old arc4randbytes(), and cprng_strong() is about 20% faster
	than rnd_extract_data().  Performance is expected to improve.

	The AES code in src/crypto/rijndael is no longer an optional
	kernel component, as it is required by cprng_strong, which is
	not an optional kernel component.

	The entropy pool output is subjected to the rngtest tests at
	startup time; if it fails, the system will reboot.  There is
	approximately a 3/10000 chance of a false positive from these
	tests.  Entropy pool _input_ from hardware random numbers is
	subjected to the rngtest tests at attach time, as well as the
	FIPS continuous-output test, to detect bad or stuck hardware
	RNGs; if any are detected, they are detached, but the system
	continues to run.

	A problem with rndctl(8) is fixed -- datastructures with
	pointers in arrays are no longer passed to userspace (this
	was not a security problem, but rather a major issue for
	compat32).  A new kernel will require a new rndctl.

	The sysctl kern.arandom() and kern.urandom() nodes are hooked
	up to the new generators, but the /dev/*random pseudodevices
	are not, yet.

	Manual pages for the new kernel interfaces are forthcoming.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.14 2011/08/26 21:22:10 dyoung Exp $
d61 1
a61 1
SRCS+=	__cmsg_alignbytes.c cpuset.c inet_addr.c intoa.c
@


1.15.2.1
log
@merge to -current.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.17 2012/02/05 14:19:03 dholland Exp $
d36 1
d61 1
a61 1
SRCS+=	cpuset.c inet_addr.c intoa.c
@


1.14
log
@Build and install ppath(3), property-list paths library.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.13 2011/03/24 17:05:44 bouyer Exp $
d85 1
@


1.14.2.1
log
@page cache related changes

- maintain object pages in radix tree rather than rb tree.
- reduce unnecessary page scan in putpages.  esp. when an object has a ton of
  pages cached but only a few of them are dirty.
- reduce the number of pmap operations by tracking page dirtiness more
  precisely in uvm layer.
- fix nfs commit range tracking.
- fix nfs write clustering.  XXX hack
@
text
@d1 1
a1 1
#	$NetBSD$
d93 1
a93 1
SRCS+=	heapsort.c ptree.c radixtree.c rb.c rpst.c
@


1.14.2.2
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.14.2.1 2011/11/02 21:53:59 yamt Exp $
d36 1
d61 1
a61 1
SRCS+=	cpuset.c inet_addr.c intoa.c
a84 1
SRCS+=	rngtest.c
@


1.14.2.3
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.14.2.2 2012/04/17 00:08:33 yamt Exp $
a94 3
# for crypto
SRCS+=	explicit_bzero.c consttime_bcmp.c

@


1.14.2.4
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.14.2.3 2012/10/30 17:22:39 yamt Exp $
d46 10
a55 2
.if !defined(RUMPKERNEL)
.include ".${PARSEDIR}/Makefile.compiler-rt"
d64 1
a64 1
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c murmurhash.c
d73 1
a73 1
SRCS+=	memmove.c
a75 2

SRCS+=	memcpy.c
a78 1

d80 1
a80 1
SRCS+=	strtoul.c strtoll.c strtoull.c strtoimax.c strtoumax.c
d87 2
a88 2
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c strnlen.c
SRCS+=	strncat.c strncmp.c strncpy.c
d96 1
a96 5
SRCS+=	explicit_memset.c consttime_memequal.c

.PATH:	${NETBSDSRCDIR}/common/lib/libc/cdb
SRCS+=	cdbr.c
SRCS+=	mi_vector_hash.c
a110 4

.if ${HAVE_GCC:U} == "45" && ${MACHINE_CPU} == "hppa"
COPTS.md5c.c +=		${${ACTIVE_CC} == "gcc" :? -O0 :}
.endif
@


1.13
log
@Add a new libquota library, which contains some blocks to build and/or
parse quota plists; as well as a getfsquota() function to retrieve quotas
for a single id from a single filesystem (whatever filesystem this is:
a local quota-enabled fs or NFS). This is build on functions getufsquota()
(for local filesystems with UFS-like quotas) and getnfsquota();
which are also available to userland programs.
move functions from quota2_subr.c to libquota or libprop as appropriate,
and ajust in-tree quota tools.
move some declarations from kernel headers to either sys/quota.h or
quota/quota.h as appropriate. ufs/ufs/quota.h still installed because
it's needed by other installed ufs headers.
ufs/ufs/quota1.h still installed as a quick&dirty way to get a code
using the old quotactl() to compile (just include ufs/ufs/quota1.h instead of
ufs/ufs/quota.h - old code won't compile without this change and this is
on purpose).
Discussed on tech-kern@@ and tech-net@@ (long thread, but not much about
libquota itself ...)
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.12 2011/02/26 18:17:55 jakllsch Exp $
d35 1
d68 2
@


1.12
log
@Add quad srcs if building x86_64 32-bit libkern.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.11 2011/02/26 16:28:10 matt Exp $
d35 1
@


1.11
log
@Add quad srcs if using MIPS O32 ABI
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.10 2010/05/11 21:50:35 pooka Exp $
d50 1
a50 1
    (${MACHINE_ARCH} != "x86_64")
@


1.10
log
@fix typo
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.9 2010/01/19 22:28:30 pooka Exp $
d46 2
a47 2
    (${MACHINE_ARCH} != "mips64eb") && \
    (${MACHINE_ARCH} != "mips64el") && \
@


1.10.2.1
log
@Sync with HEAD.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.13 2011/03/24 17:05:44 bouyer Exp $
a34 1
.include "${.PARSEDIR}/../../../common/lib/libquota/Makefile.inc"
d46 2
a47 2
    (${MACHINE_ARCH} != "mips64eb" || !empty(CFLAGS:M-mabi=32)) && \
    (${MACHINE_ARCH} != "mips64el" || !empty(CFLAGS:M-mabi=32)) && \
d50 1
a50 1
    (${MACHINE_ARCH} != "x86_64" || !empty(CFLAGS:M-m32))
@


1.10.4.1
log
@Sync with HEAD
@
text
@d1 1
a1 1
#	$NetBSD$
d46 2
a47 2
    (${MACHINE_ARCH} != "mips64eb" || !empty(CFLAGS:M-mabi=32)) && \
    (${MACHINE_ARCH} != "mips64el" || !empty(CFLAGS:M-mabi=32)) && \
d50 1
a50 1
    (${MACHINE_ARCH} != "x86_64" || !empty(CFLAGS:M-m32))
@


1.9
log
@Get rid of last "easy" kernel symbols starting with __:
__assert -> kern_assert
__sigtimedwait1 -> sigtimedwait1
__wdstart -> wdstart1

The rest are MD and/or shared with userspace, so they will require
a little more involvement than what is available for this quick
"ride the 5.99.24 bump" action.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.8 2009/12/14 12:18:14 uebayasi Exp $
d12 1
a12 1
#   KERNMICPPFLAGS: see Makefile.inc
@


1.9.2.1
log
@Sync with HEAD.
@
text
@d1 1
a1 1
#	$NetBSD$
d12 1
a12 1
#   KERNMISCCPPFLAGS: see Makefile.inc
@


1.9.4.1
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.9 2010/01/19 22:28:30 pooka Exp $
d12 1
a12 1
#   KERNMISCCPPFLAGS: see Makefile.inc
@


1.9.4.2
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD$
d46 2
a47 2
    (${MACHINE_ARCH} != "mips64eb" || !empty(CFLAGS:M-mabi=32)) && \
    (${MACHINE_ARCH} != "mips64el" || !empty(CFLAGS:M-mabi=32)) && \
d50 1
a50 1
    (${MACHINE_ARCH} != "x86_64" || !empty(CFLAGS:M-m32))
@


1.9.4.3
log
@sync with head
@
text
@a34 1
.include "${.PARSEDIR}/../../../common/lib/libquota/Makefile.inc"
@


1.8
log
@Build fix for the mips64 merge:
- If memset2.c is in ${SRCS}, exclude conflicting memset.c.
- If MD byte_swap_8.* is in ${SRCS}, exclude conflicting bswap64.c.
@
text
@d1 1
a1 1
#	$NetBSD$
d58 1
a58 1
SRCS+=	__assert.c __main.c
@


1.7
log
@Redo the previous inverted logic.  Sort alphabetically.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.6 2009/11/21 13:30:23 uebayasi Exp $
d60 1
d62 1
d72 4
a75 1
SRCS+=	memcmp.c memset.c 
a103 1

@


1.6
log
@Don't build quad support code on 64-bit platforms.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.5 2009/08/14 19:23:53 dsl Exp $
d45 6
a50 6
.if (${MACHINE_ARCH} != "alpha") || \
    (${MACHINE_ARCH} != "x86_64") || \
    (${MACHINE_ARCH} != "mips64eb") || \
    (${MACHINE_ARCH} != "mips64el") || \
    (${MACHINE_ARCH} != "powerpc64") || \
    (${MACHINE_ARCH} != "sparc64")
@


1.5
log
@Move that majority of the 'SRCS+= foo.c' into the main Makefile.libkern.
Any .S files added by the arch/*/Makefile.inc cause the .c file to
be excluded.
Specific exclusions added using NO_SRCS to match previous files.
At least sparc, sparc64, i386, amd64 and vax GENERIC still build.
(There is a fubar with the naming of the byte-swap files ...)
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.4 2009/08/12 21:18:42 dsl Exp $
d45 6
a50 1
.if (${MACHINE_ARCH} != "alpha")
@


1.4
log
@Use stuff from libc/Makefile to auto-remove .c files if a .S has been added.
Use it to dispose of tne .c files that were already only conditionally
added.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.3 2009/07/21 14:55:33 joerg Exp $
d53 1
d55 1
d61 2
d65 1
d67 4
d72 4
a75 1
SRCS+=	strtoll.c strtoull.c strtoumax.c
d85 2
a86 5
# also remove from SRCS the .c files for the .S and .c files in NO_SRCS.
#
# Usage: 
# Add .S files to NO_SRSC when another .S file provides the entry points.
# Add .c files to NO_SRSC when another .c file provides the entry points.
@


1.3
log
@Move popcount et al to src/common and add popcount32/popcount64.
Requested by rmind@@. MD should now override popcount32/popcount64 and
provide the aliases as fitting.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.2 2009/03/25 01:26:13 darran Exp $
d57 5
a61 1
SRCS+=	strsep.c strstr.c strlcpy.c strlcat.c
d72 11
a82 15
# XXX these stub builds should be cleaned up even further.

# if no machine specific memcpy(3), build one out of bcopy(3) based stub.
.if empty(SRCS:Mmemcpy.S)
SRCS+=	memcpy.c
.endif

# if no machine specific memmove(3), build one out of bcopy(3) based stub.
.if empty(SRCS:Mmemmove.S)
SRCS+=	memmove.c
.endif

# if no machine specific strchr(3), build one out of index(3) based stub.
.if empty(SRCS:Mstrchr.S)
SRCS+=	strchr.c
d84 1
a85 14
# if no machine specific strrchr(3), build one out of rindex(3) based stub.
.if empty(SRCS:Mstrrchr.S)
SRCS+=	strrchr.c
.endif

# if no machine specific popcount32(3), build generic version
.if empty(SRCS:Mpopcount32.S)
SRCS+=	popcount32.c
.endif

# if no machine specific popcount64(3), build generic version
.if empty(SRCS:Mpopcount64.S)
SRCS+=	popcount64.c
.endif
@


1.2
log
@Fixes PR kern/41069 and PR kern/41070.

Extends the Opencrypto API to allow the destination buffer size to be
specified when its not the same size as the input buffer (i.e. for
operations like compress and decompress).
The crypto_op and crypt_n_op structures gain a u_int dst_len field.
The session_op structure gains a comp_alg field to specify a compression
algorithm.
Moved four ioctls to new ids; CIOCGSESSION, CIOCNGSESSION,  CIOCCRYPT,
and CIOCNCRYPTM.
Added four backward compatible ioctls; OCIOCGSESSION, OCIOCNGSESSION,
OCIOCCRYPT, and OCIOCNCRYPTM.

Backward compatibility is maintained in ocryptodev.h and ocryptodev.c which
implement the original ioctls and set dst_len and comp_alg to 0.

Adds user-space access to compression features.

Adds software gzip support (CRYPTO_GZIP_COMP).

Adds the fast version of crc32 from zlib to libkern. This should be generally
useful and provide a place to start normalizing the various crc32 routines
in the kernel.  The crc32 routine is used in this patch to support GZIP.

With input and support from tls@@NetBSD.org.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.1 2009/01/04 18:00:55 pooka Exp $
d89 10
@


1.2.2.1
log
@file Makefile.libkern was added on branch yamt-nfs-mp on 2009-05-04 08:13:50 +0000
@
text
@d1 88
@


1.2.2.2
log
@sync with head.
@
text
@a0 88
#	$NetBSD$

# 
# Variable definitions for libkern.  
#
# Before including this, you _must_ set
#   KERNDIR: location of sys/lib/libkern
#
# You *may* set:
#   LIBKERN_ARCH: architecture subdir to be used
#   KERNCPPFLAGS: see Makefile.inc
#   KERNMICPPFLAGS: see Makefile.inc
#

.include <bsd.own.mk>

.if defined(LIBKERN_ARCH) && !empty(LIBKERN_ARCH) && \
    exists(${KERNDIR}/arch/${LIBKERN_ARCH})
ARCHSUBDIR=     ${LIBKERN_ARCH}
.elif defined(MACHINE_ARCH) && !empty(MACHINE_ARCH) && \
    exists(${KERNDIR}/arch/${MACHINE_ARCH})
ARCHSUBDIR=     ${MACHINE_ARCH}
.elif defined(MACHINE_CPU) && !empty(MACHINE_CPU) && \
    exists(${KERNDIR}/arch/${MACHINE_CPU})
ARCHSUBDIR=     ${MACHINE_CPU}
.endif

M= ${KERNDIR}/arch/${ARCHSUBDIR}

CPPFLAGS+=	-I$M ${KERNCPPFLAGS} ${KERNMISCCPPFLAGS}

.include "${.PARSEDIR}/../../../common/lib/libc/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libutil/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libprop/Makefile.inc"

CPPFLAGS+=	-I${KERNDIR}/../../../common/include

.PATH.c: ${KERNDIR}
.if exists ($M/Makefile.inc)
.PATH.c: $M
.PATH.S: $M
.include "$M/Makefile.inc"
.endif

.if (${MACHINE_ARCH} != "alpha")
# Quad support
SRCS+=	adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
	lshldi3.c lshrdi3.c moddi3.c muldi3.c negdi2.c notdi2.c qdivrem.c \
	subdi3.c  ucmpdi2.c udivdi3.c umoddi3.c xordi3.c
.endif

# Other stuff
SRCS+=	__cmsg_alignbytes.c cpuset.c inet_addr.c intoa.c
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c
SRCS+=	pmatch.c arc4random.c bcd.c mcount.c mertwist.c crc32.c

SRCS+=	strsep.c strstr.c strlcpy.c strlcat.c

SRCS+=	strtoll.c strtoull.c strtoumax.c

SRCS+=	xlat_mbr_fstype.c

SRCS+=	heapsort.c ptree.c rb.c

# Files to clean up
CLEANFILES+= lib${LIB}.o lib${LIB}.po

# XXX these stub builds should be cleaned up even further.

# if no machine specific memcpy(3), build one out of bcopy(3) based stub.
.if empty(SRCS:Mmemcpy.S)
SRCS+=	memcpy.c
.endif

# if no machine specific memmove(3), build one out of bcopy(3) based stub.
.if empty(SRCS:Mmemmove.S)
SRCS+=	memmove.c
.endif

# if no machine specific strchr(3), build one out of index(3) based stub.
.if empty(SRCS:Mstrchr.S)
SRCS+=	strchr.c
.endif

# if no machine specific strrchr(3), build one out of rindex(3) based stub.
.if empty(SRCS:Mstrrchr.S)
SRCS+=	strrchr.c
.endif
@


1.2.2.3
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.2 2009/03/25 01:26:13 darran Exp $
d63 1
a63 1
SRCS+=	heapsort.c ptree.c rb.c rpst.c
@


1.2.2.4
log
@sync with head.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.2.2.3 2009/06/20 07:20:32 yamt Exp $
a52 1
SRCS+=	__assert.c __main.c
a53 1
SRCS+=	bswap64.c
d57 1
a57 2
SRCS+=	strsep.c strstr.c
SRCS+=	strlcpy.c strlcat.c
d59 1
a59 14
SRCS+=	imax.c imin.c lmax.c lmin.c max.c min.c ulmax.c ulmin.c
SRCS+=	memcpy.c memmove.c
SRCS+=	strchr.c strrchr.c
SRCS+=	memcmp.c memset.c 
SRCS+=	popcount32.c popcount64.c
SRCS+=	strtoul.c strtoll.c strtoull.c strtoumax.c

SRCS+=	scanc.c skpc.c
SRCS+=	random.c

SRCS+=	memchr.c
SRCS+=	strcat.c strcmp.c strcpy.c strlen.c
SRCS+=	strncmp.c strncpy.c
SRCS+=	strcasecmp.c strncasecmp.c
d68 10
a77 8
# Remove from SRCS the .c files for any .S files added by the MD makefiles,
# also remove from SRCS the .c files for the .c files in NO_SRCS.
# (Unlike libc, we don't worry about lint)

.for check_file in ${SRCS:M*.S} ${NO_SRCS}
unwanted_file := ${SRCS:M${check_file:.S=.c}}
.if "${unwanted_file}" != ""
SRCS := ${SRCS:N${unwanted_file}}
a78 1
.endfor
d80 9
@


1.2.2.5
log
@sync with head
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.2.2.4 2009/08/19 18:48:18 yamt Exp $
d45 1
a45 6
.if (${MACHINE_ARCH} != "alpha") && \
    (${MACHINE_ARCH} != "mips64eb") && \
    (${MACHINE_ARCH} != "mips64el") && \
    (${MACHINE_ARCH} != "powerpc64") && \
    (${MACHINE_ARCH} != "sparc64") && \
    (${MACHINE_ARCH} != "x86_64")
d53 1
a53 1
SRCS+=	kern_assert.c __main.c
a54 1
.if empty(SRCS:Mbyte_swap_8.*)
a55 1
.endif
d65 1
a65 4
SRCS+=	memcmp.c
.if empty(SRCS:Mmemset2.*)
SRCS+=	memset.c 
.endif
d94 1
@


1.2.2.6
log
@sync with head.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.2.2.5 2010/03/11 15:04:21 yamt Exp $
d12 1
a12 1
#   KERNMISCCPPFLAGS: see Makefile.inc
@


1.1
log
@Split variables out of Makefile into Makefile.libkern so that we
can easily just .include it for the proper SRCS etc. definitions
in case we're interested in the files but not in building an actual
libkern.{a,o}.  for librump
@
text
@d1 1
a1 1
#	$NetBSD$
d55 1
a55 1
SRCS+=	pmatch.c arc4random.c bcd.c mcount.c mertwist.c
@


1.1.6.1
log
@Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.2 2009/03/25 01:26:13 darran Exp $
d55 1
a55 1
SRCS+=	pmatch.c arc4random.c bcd.c mcount.c mertwist.c crc32.c
@


1.1.6.2
log
@Sync with HEAD.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.3 2009/07/21 14:55:33 joerg Exp $
a88 10

# if no machine specific popcount32(3), build generic version
.if empty(SRCS:Mpopcount32.S)
SRCS+=	popcount32.c
.endif

# if no machine specific popcount64(3), build generic version
.if empty(SRCS:Mpopcount64.S)
SRCS+=	popcount64.c
.endif
@


1.1.4.1
log
@file Makefile.libkern was added on branch nick-hppapmap on 2009-01-19 13:19:56 +0000
@
text
@d1 88
@


1.1.4.2
log
@Sync with HEAD.
@
text
@a0 88
#	$NetBSD: Makefile.libkern,v 1.1 2009/01/04 18:00:55 pooka Exp $

# 
# Variable definitions for libkern.  
#
# Before including this, you _must_ set
#   KERNDIR: location of sys/lib/libkern
#
# You *may* set:
#   LIBKERN_ARCH: architecture subdir to be used
#   KERNCPPFLAGS: see Makefile.inc
#   KERNMICPPFLAGS: see Makefile.inc
#

.include <bsd.own.mk>

.if defined(LIBKERN_ARCH) && !empty(LIBKERN_ARCH) && \
    exists(${KERNDIR}/arch/${LIBKERN_ARCH})
ARCHSUBDIR=     ${LIBKERN_ARCH}
.elif defined(MACHINE_ARCH) && !empty(MACHINE_ARCH) && \
    exists(${KERNDIR}/arch/${MACHINE_ARCH})
ARCHSUBDIR=     ${MACHINE_ARCH}
.elif defined(MACHINE_CPU) && !empty(MACHINE_CPU) && \
    exists(${KERNDIR}/arch/${MACHINE_CPU})
ARCHSUBDIR=     ${MACHINE_CPU}
.endif

M= ${KERNDIR}/arch/${ARCHSUBDIR}

CPPFLAGS+=	-I$M ${KERNCPPFLAGS} ${KERNMISCCPPFLAGS}

.include "${.PARSEDIR}/../../../common/lib/libc/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libutil/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libprop/Makefile.inc"

CPPFLAGS+=	-I${KERNDIR}/../../../common/include

.PATH.c: ${KERNDIR}
.if exists ($M/Makefile.inc)
.PATH.c: $M
.PATH.S: $M
.include "$M/Makefile.inc"
.endif

.if (${MACHINE_ARCH} != "alpha")
# Quad support
SRCS+=	adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
	lshldi3.c lshrdi3.c moddi3.c muldi3.c negdi2.c notdi2.c qdivrem.c \
	subdi3.c  ucmpdi2.c udivdi3.c umoddi3.c xordi3.c
.endif

# Other stuff
SRCS+=	__cmsg_alignbytes.c cpuset.c inet_addr.c intoa.c
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c
SRCS+=	pmatch.c arc4random.c bcd.c mcount.c mertwist.c

SRCS+=	strsep.c strstr.c strlcpy.c strlcat.c

SRCS+=	strtoll.c strtoull.c strtoumax.c

SRCS+=	xlat_mbr_fstype.c

SRCS+=	heapsort.c ptree.c rb.c

# Files to clean up
CLEANFILES+= lib${LIB}.o lib${LIB}.po

# XXX these stub builds should be cleaned up even further.

# if no machine specific memcpy(3), build one out of bcopy(3) based stub.
.if empty(SRCS:Mmemcpy.S)
SRCS+=	memcpy.c
.endif

# if no machine specific memmove(3), build one out of bcopy(3) based stub.
.if empty(SRCS:Mmemmove.S)
SRCS+=	memmove.c
.endif

# if no machine specific strchr(3), build one out of index(3) based stub.
.if empty(SRCS:Mstrchr.S)
SRCS+=	strchr.c
.endif

# if no machine specific strrchr(3), build one out of rindex(3) based stub.
.if empty(SRCS:Mstrrchr.S)
SRCS+=	strrchr.c
.endif
@


1.1.4.3
log
@Sync with HEAD.
@
text
@d1 1
a1 1
#	$NetBSD: Makefile.libkern,v 1.1.4.2 2009/01/19 13:19:56 skrll Exp $
d55 1
a55 1
SRCS+=	pmatch.c arc4random.c bcd.c mcount.c mertwist.c crc32.c
@


1.1.2.1
log
@file Makefile.libkern was added on branch mjf-devfs2 on 2009-01-17 13:29:21 +0000
@
text
@d1 88
@


1.1.2.2
log
@Sync with HEAD.
@
text
@a0 88
#	$NetBSD$

# 
# Variable definitions for libkern.  
#
# Before including this, you _must_ set
#   KERNDIR: location of sys/lib/libkern
#
# You *may* set:
#   LIBKERN_ARCH: architecture subdir to be used
#   KERNCPPFLAGS: see Makefile.inc
#   KERNMICPPFLAGS: see Makefile.inc
#

.include <bsd.own.mk>

.if defined(LIBKERN_ARCH) && !empty(LIBKERN_ARCH) && \
    exists(${KERNDIR}/arch/${LIBKERN_ARCH})
ARCHSUBDIR=     ${LIBKERN_ARCH}
.elif defined(MACHINE_ARCH) && !empty(MACHINE_ARCH) && \
    exists(${KERNDIR}/arch/${MACHINE_ARCH})
ARCHSUBDIR=     ${MACHINE_ARCH}
.elif defined(MACHINE_CPU) && !empty(MACHINE_CPU) && \
    exists(${KERNDIR}/arch/${MACHINE_CPU})
ARCHSUBDIR=     ${MACHINE_CPU}
.endif

M= ${KERNDIR}/arch/${ARCHSUBDIR}

CPPFLAGS+=	-I$M ${KERNCPPFLAGS} ${KERNMISCCPPFLAGS}

.include "${.PARSEDIR}/../../../common/lib/libc/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libutil/Makefile.inc"
.include "${.PARSEDIR}/../../../common/lib/libprop/Makefile.inc"

CPPFLAGS+=	-I${KERNDIR}/../../../common/include

.PATH.c: ${KERNDIR}
.if exists ($M/Makefile.inc)
.PATH.c: $M
.PATH.S: $M
.include "$M/Makefile.inc"
.endif

.if (${MACHINE_ARCH} != "alpha")
# Quad support
SRCS+=	adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
	lshldi3.c lshrdi3.c moddi3.c muldi3.c negdi2.c notdi2.c qdivrem.c \
	subdi3.c  ucmpdi2.c udivdi3.c umoddi3.c xordi3.c
.endif

# Other stuff
SRCS+=	__cmsg_alignbytes.c cpuset.c inet_addr.c intoa.c
SRCS+=	md4c.c md5c.c rmd160.c sha1.c sha2.c
SRCS+=	pmatch.c arc4random.c bcd.c mcount.c mertwist.c

SRCS+=	strsep.c strstr.c strlcpy.c strlcat.c

SRCS+=	strtoll.c strtoull.c strtoumax.c

SRCS+=	xlat_mbr_fstype.c

SRCS+=	heapsort.c ptree.c rb.c

# Files to clean up
CLEANFILES+= lib${LIB}.o lib${LIB}.po

# XXX these stub builds should be cleaned up even further.

# if no machine specific memcpy(3), build one out of bcopy(3) based stub.
.if empty(SRCS:Mmemcpy.S)
SRCS+=	memcpy.c
.endif

# if no machine specific memmove(3), build one out of bcopy(3) based stub.
.if empty(SRCS:Mmemmove.S)
SRCS+=	memmove.c
.endif

# if no machine specific strchr(3), build one out of index(3) based stub.
.if empty(SRCS:Mstrchr.S)
SRCS+=	strchr.c
.endif

# if no machine specific strrchr(3), build one out of rindex(3) based stub.
.if empty(SRCS:Mstrrchr.S)
SRCS+=	strrchr.c
.endif
@


