Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Apr 2019 17:29:49 +0000 (UTC)
From:      Cy Schubert <cy@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r499547 - in head/shells/ksh93: . files
Message-ID:  <201904211729.x3LHTn7u056284@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cy
Date: Sun Apr 21 17:29:49 2019
New Revision: 499547
URL: https://svnweb.freebsd.org/changeset/ports/499547

Log:
  shells/ksh93: Update to 93v 2014-12-24
  
  PR:		208098 (fixed)
  Submitted by:	saper@saper.info (maintainer)
  Reported by:	fuz@fuz.su
  Reviewed by:	cy@, pkubaj@
  Approved by:	maintainer (implicit, submitter)
  Differential Revision:	https://reviews.freebsd.org/D19343

Added:
  head/shells/ksh93/files/patch-src_cmd_proto_proto.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_cmd_std_features_procfs   (contents, props changed)
  head/shells/ksh93/files/patch-src_cmd_std_pss-kvm.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_comp_setlocale.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_features_mmap   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_features_standards   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_features_vmalloc   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_features_wchar   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_port_astcopy.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfclose.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfhdr.h   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfmode.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfpurge.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfrd.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfseek.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsetbuf.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsetfd.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsize.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsk.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_string_strexpr.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_malloc.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmbest.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmdcshare.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmdcsystem.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmdebug.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmhdr.h   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmlast.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmmaddress.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmopen.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmpool.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmsegment.c   (contents, props changed)
  head/shells/ksh93/files/patch-src_lib_libcmd_ls.c   (contents, props changed)
Deleted:
  head/shells/ksh93/files/patch-src-lib-libast-features-wchar
  head/shells/ksh93/files/patch-src-lib-libast-hash-hashalloc.c
  head/shells/ksh93/files/patch-src-lib-libast-string-tokscan.c
  head/shells/ksh93/files/patch-src_cmd_INIT_iffe.sh
Modified:
  head/shells/ksh93/Makefile
  head/shells/ksh93/distinfo

Modified: head/shells/ksh93/Makefile
==============================================================================
--- head/shells/ksh93/Makefile	Sun Apr 21 16:41:37 2019	(r499546)
+++ head/shells/ksh93/Makefile	Sun Apr 21 17:29:49 2019	(r499547)
@@ -12,31 +12,31 @@
 
 PORTNAME=	ksh93
 PORTVERSION=	${KSHVERSION:S/-//g}
-PORTREVISION=	2
 CATEGORIES=	shells
-MASTER_SITES=	http://www2.research.att.com/~astopen/download/tgz/ \
-		LOCAL/sunpoet/${PORTNAME}
-DISTFILES=	INIT.${INITVERSION}.tgz ast-ksh.${KSHVERSION}.tgz
 DIST_SUBDIR=	${PORTNAME}
 
 MAINTAINER=	saper@saper.info
-COMMENT=	Official AT&T release of KornShell 93
+COMMENT=	KornShell 93
 
 LICENSE=	EPL
 
 BROKEN_aarch64=		Fails to compile: needs sbrk
 
+USES=		compiler:c11
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	att
+GH_PROJECT=	ast
+GH_TAGNAME=	${PORTNAME}v
+
 CONFLICTS=	ksh93-devel-*
 
 OPTIONS_DEFINE=	EXAMPLES STATIC
 
-FETCH_ENV=	HTTP_AUTH=basic:*:I\ accept\ www.opensource.org/licenses/cpl:.
 LDFLAGS+=	-lm
-MAKE_ENV=	CCFLAGS="${CFLAGS}"
-NO_WRKSUBDIR=	yes
+MAKE_ENV=	CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses ${CFLAGS}"
 
-INITVERSION=	2013-05-24
-KSHVERSION=	2012-08-01
+KSHVERSION=	2014-12-24
 
 STATIC_MAKE_ENV=	LDFLAGS+=-static
 
@@ -44,7 +44,7 @@ post-patch:
 	@${REINPLACE_CMD} -e 's|SF_FLAGS|SFIO_FLAGS|g' ${WRKSRC}/src/lib/libast/include/sfio*.h ${WRKSRC}/src/lib/libast/sfio/*.c
 
 do-build:
-	@cd ${WRKSRC}/ && ${SETENV} -i ${MAKE_ENV} ${SH} bin/package flat make
+	@cd ${WRKSRC}/ && ${SETENV} -i ${MAKE_ENV} ${SH} bin/package flat make ksh93
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/bin/ksh ${STAGEDIR}${PREFIX}/bin/ksh93

Modified: head/shells/ksh93/distinfo
==============================================================================
--- head/shells/ksh93/distinfo	Sun Apr 21 16:41:37 2019	(r499546)
+++ head/shells/ksh93/distinfo	Sun Apr 21 17:29:49 2019	(r499547)
@@ -1,4 +1,3 @@
-SHA256 (ksh93/INIT.2013-05-24.tgz) = 118b2c8a4d651727fcd680289be69941d3045951bf9e3a4d45dcb42f0658f014
-SIZE (ksh93/INIT.2013-05-24.tgz) = 383979
-SHA256 (ksh93/ast-ksh.2012-08-01.tgz) = e6192cfa52a6a9fd20618cbaf3fa81f0cc9fd83525500757e83017275e962851
-SIZE (ksh93/ast-ksh.2012-08-01.tgz) = 2053532
+TIMESTAMP = 1553675701
+SHA256 (ksh93/att-ast-20141224-ksh93v_GH0.tar.gz) = 89e5aeec66c28692aa392105552c06053ba60b09a62e94dc555dadf967bca643
+SIZE (ksh93/att-ast-20141224-ksh93v_GH0.tar.gz) = 26409086

Added: head/shells/ksh93/files/patch-src_cmd_proto_proto.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_cmd_proto_proto.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,18 @@
+--- src/cmd/proto/proto.c.orig	2017-11-30 22:35:04 UTC
++++ src/cmd/proto/proto.c
+@@ -396,6 +396,15 @@ proto(char* file, char* license, char* o
+ 
+ #if !PROTO_STANDALONE
+ #undef	error
++void
++error( int xit, const char *msg, ... )
++{
++	va_list ap;
++	va_start( ap, msg );
++	vfprintf( stderr, msg, ap );
++	va_end( ap );
++	exit( xit );
++}
+ #endif
+ 
+ typedef struct Sufcom_s

Added: head/shells/ksh93/files/patch-src_cmd_std_features_procfs
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_cmd_std_features_procfs	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,36 @@
+--- src/cmd/std/features/procfs.orig	2017-11-30 22:35:04 UTC
++++ src/cmd/std/features/procfs
+@@ -1,6 +1,6 @@
+ hdr	kvm,procinfo,pstat,asm/param
+ 
+-sys	procfs,sysctl
++sys	procfs,sysctl,user
+ 
+ lib	getprocs
+ lib	kvm_open,kvm_getprocs kvm.h sys/time.h sys/param.h sys/proc.h sys/sysctl.h -lkvm
+@@ -10,7 +10,11 @@ mem	extern_proc.p_pid,extern_proc.p_star
+ mem	procsinfo64.pi_pri procinfo.h
+ mem	prpsinfo.pr_clname,prpsinfo.pr_cstime,prpsinfo.pr_cstime.tv_sec,prpsinfo.pr_ctime,prpsinfo.pr_cutime,prpsinfo.pr_gid,prpsinfo.pr_lttydev,prpsinfo.pr_ntpid,prpsinfo.pr_pgid,prpsinfo.pr_pgrp,prpsinfo.pr_psargs,prpsinfo.pr_refcount,prpsinfo.pr_rssize,prpsinfo.pr_sid,prpsinfo.pr_sonproc,prpsinfo.pr_start,prpsinfo.pr_start.tv_sec,prpsinfo.pr_starttime,prpsinfo.pr_starttime.tv_sec,prpsinfo.pr_state,prpsinfo.pr_stime,prpsinfo.pr_tgrp,prpsinfo.pr_time,prpsinfo.pr_time.tv_sec,prpsinfo.pr_utime,prpsinfo.pr_zomb,prpsinfo.pr_pctcpu,prpsinfo.pr_cpu,prpsinfo.pr_lwp.pr_pctcpu,prpsinfo.pr_lwp.pr_cpu -D_STRUCTURED_PROC -Dprpsinfo=psinfo sys/types.h sys/procfs.h
+ 
++num	PIOCPSINFO
++
+ typ	struct.prpsinfo -D_STRUCTURED_PROC -Dprpsinfo=psinfo sys/types.h sys/procfs.h
++typ	struct.kinfo_proc sys/types.h sys/procfs.h sys/user.h
++typ	struct.kp_proc sys/types.h sys/procfs.h sys/user.h
+ 
+ tst	lib_info note{ info(2) kernel table api }end link{
+ 	#include <info.h>
+@@ -587,11 +591,11 @@ cat{
+ #define PSS_METHOD		PSS_METHOD_getprocs
+ #endif
+ 
+-#if !PSS_METHOD && defined(_PS_dir)
++#if !PSS_METHOD && defined(_PS_dir) && (_PS_scan_binary || _num_PIOCPSINFO)
+ #define PSS_METHOD		PSS_METHOD_procfs
+ #endif
+ 
+-#if !PSS_METHOD && _hdr_kvm && _sys_sysctl && _lib_kvm_open && _lib_kvm_getprocs
++#if !PSS_METHOD && _hdr_kvm && _sys_sysctl && _lib_kvm_open && _lib_kvm_getprocs && _typ_struct_kinfo_proc && _typ_struct_kp_proc
+ #define PSS_METHOD		PSS_METHOD_kvm
+ #endif
+ 

Added: head/shells/ksh93/files/patch-src_cmd_std_pss-kvm.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_cmd_std_pss-kvm.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,12 @@
+--- src/cmd/std/pss-kvm.c.orig	2017-11-30 22:35:04 UTC
++++ src/cmd/std/pss-kvm.c
+@@ -43,6 +43,9 @@ NoN(pss_kvm)
+ #if _sys_proc
+ #include <sys/proc.h>
+ #endif
++#if _sys_user
++#include <sys/user.h>
++#endif
+ #include <sys/sysctl.h>
+ #include <sys/tty.h>
+ 

Added: head/shells/ksh93/files/patch-src_lib_libast_comp_setlocale.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_comp_setlocale.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,10 @@
+--- src/lib/libast/comp/setlocale.c.orig	2017-11-30 22:35:04 UTC
++++ src/lib/libast/comp/setlocale.c
+@@ -38,6 +38,7 @@
+ #include <namval.h>
+ #include <iconv.h>
+ #include <codeset.h>
++#include <errno.h>
+ 
+ #if ( _lib_wcwidth || _lib_wctomb ) && _hdr_wctype
+ #include <wctype.h>

Added: head/shells/ksh93/files/patch-src_lib_libast_features_mmap
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_features_mmap	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,191 @@
+--- src/lib/libast/features/mmap.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/features/mmap
+@@ -16,14 +16,7 @@ tst	lib_mmap note{ standard mmap interfa
+ 
+ 	#define Failed(file)	(remove(file),1)
+ 
+-	int
+-	#if _STD_
+-	main(int argc, char** argv)
+-	#else
+-	main(argc,argv)
+-	int     argc;
+-	char**  argv;
+-	#endif
++	int main(int argc, char** argv)
+ 	{
+ 		caddr_t		mm;
+ 		char		*file;
+@@ -165,169 +158,18 @@ tst	lib_mmap64 -D_LARGEFILE64_SOURCE not
+ 	}
+ }end
+ 
+-tst	mmap_anon note{ use mmap MAP_ANON to get raw memory }end execute{
+-	#if !_lib_mmap
+-	(
+-	#endif
+-	#include <unistd.h>
+-	#include <fcntl.h>
+-	#include <sys/types.h>
+-	#include <sys/mman.h>
+-	#if defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
+-	#define MAP_ANON	MAP_ANONYMOUS
+-	#endif
+-	int
+-	main()
+-	{	void	*addr;
+-		addr = mmap(0,1024*1024,PROT_READ|PROT_WRITE,MAP_ANON|MAP_PRIVATE,-1,0);
+-		return (addr && addr != (void*)(-1)) ? 0 : 1;
+-	}
+-}end
+-
+-tst	mmap_devzero note{ use mmap on /dev/zero to get raw memory }end execute{
+-	#if !_lib_mmap
+-	(
+-	#endif
+-	#include <unistd.h>
+-	#include <fcntl.h>
+-	#include <sys/types.h>
+-	#include <sys/mman.h>
+-	int
+-	main()
+-	{	int	fd;
+-		void	*addr;
+-		if((fd = open("/dev/zero", O_RDWR)) < 0)
+-			return 1;
+-		addr = mmap(0,1024*1024,PROT_READ|PROT_WRITE,MAP_PRIVATE,fd,0);
+-		return (addr && addr != (void*)(-1)) ? 0 : 1;
+-	}
+-}end
+-
+-tst	-D_LARGEFILE64_SOURCE note{ mmap is worth using }end output{
+-	#if !_lib_mmap
+-	(
+-	#endif
+-	#include <unistd.h>
+-	#include <fcntl.h>
+-	#include <string.h>
+-	#include <sys/types.h>
+-	#include <sys/mman.h>
+-	#include <sys/stat.h>
+-	#include <sys/times.h>
+-
+-	#if _lib_mmap64
+-	#undef	mmap
+-	#define mmap	mmap64
+-	#endif
+-
+-	#if _lib_munmap64
+-	#undef	munmap
+-	#define munmap	munmap64
+-	#endif
+-	
+-	#define MAPSIZE (64*1024)
+-	#define BUFSIZE	(MAPSIZE/8)
+-	#define WRITE   (64)
+-	#define RUN	(64)
+-	
+-	#define Failed(file)	(remove(file),1)
+-	
+-	int
+-	#if _STD_
+-	main(int argc, char** argv)
+-	#else
+-	main(argc,argv)
+-	int     argc;
+-	char**  argv;
+-	#endif
+-	{
+-		caddr_t		mm;
+-		char		*file, *t;
+-		int		i, fd, k, run;
+-		char		buf[MAPSIZE];
+-		struct tms	stm, etm;
+-		clock_t		rdtm, mmtm;
+-	
+-		file = argv[1];
+-		if ((fd = open(file, O_CREAT|O_TRUNC|O_WRONLY, 0666)) < 0)
+-			return 1;
+-	
+-		for (i = 0; i < sizeof(buf); ++i)
+-			buf[i] = '0' + (i%10);
+-		for (i = 0; i < WRITE; ++i)
+-			if (write(fd,buf,sizeof(buf)) != sizeof(buf))
+-				return Failed(file);
+-		close(fd);
+-	
+-		/* read time */
+-		times(&stm);
+-		for(run = 0; run < RUN; ++run)
+-		{	if((fd = open(file, O_RDWR)) < 0)
+-				return Failed(file);
+-			for (i = 0; i < WRITE; ++i)
+-			{	for(k = 0; k < MAPSIZE; k += BUFSIZE)
+-					if (read(fd,buf,BUFSIZE) != BUFSIZE)
+-						return Failed(file);
+-			}
+-			close(fd);
+-		}
+-		times(&etm);
+-		rdtm = (etm.tms_utime-stm.tms_utime) + (etm.tms_stime-stm.tms_stime);
+-	
+-		/* mmap time */
+-		times(&stm);
+-		for(run = 0; run < RUN; ++run)
+-		{	if ((fd = open(file, O_RDWR)) < 0)
+-				return Failed(file);
+-			for(i = 0, mm = (caddr_t)0; i < WRITE; ++i)
+-			{	if(mm)
+-					munmap(mm, MAPSIZE);
+-				mm = (caddr_t)mmap((caddr_t)0, MAPSIZE,
+-						   (PROT_READ|PROT_WRITE),
+-						   MAP_PRIVATE, fd, i*MAPSIZE );
+-				if(mm == (caddr_t)(-1) || mm == (caddr_t)0)
+-					return Failed(file);
+-	
+-				/* the memcpy is < BUFSIZE to simulate the
+-				   fact that functions like sfreserve/sfgetr do
+-				   not do buffer copying.
+-				*/
+-				t = (char*)mm;
+-				for(k = 0; k < MAPSIZE; k += BUFSIZE, t += BUFSIZE)
+-					memcpy(buf,t,(3*BUFSIZE)/4);
+-			}
+-			close(fd);
+-		}
+-		times(&etm);
+-		mmtm = (etm.tms_utime-stm.tms_utime) + (etm.tms_stime-stm.tms_stime);
+-
+-		remove(file);
+-	
+-		if(4*mmtm <= 3*rdtm)
+-			printf("#define _mmap_worthy	2	/* mmap outperforms read on 64Ki buffers -- use it */\n");
+-		else if(4*mmtm <= 5*rdtm)
+-			printf("#define _mmap_worthy	2	/* mmap is slightly better than read on 64Ki buffers -- use it */\n");
+-		else
+-			printf("#define _mmap_worthy	2	/* mmap worse than read on 64Ki buffers -- use it anyway */\n");
+-
+-		return 0;
+-	}
+-}end
+-
+ cat{
++        /* assume MAP_ANON works */
++        #define _mmap_anon 1
+ 
+ 	/* some systems get it wrong but escape concise detection */
+-	#ifndef _NO_MMAP
+ 	#if __CYGWIN__
+ 	#define _NO_MMAP	1
+ 	#endif
+-	#endif
+ 
+ 	#if _NO_MMAP
+ 	#undef	_lib_mmap
+ 	#undef	_lib_mmap64
+-	#undef	_mmap_anon
+-	#undef	_mmap_devzero
+-	#undef	_mmap_worthy
++	#undef  _mmap_anon
+ 	#endif
+ }end

Added: head/shells/ksh93/files/patch-src_lib_libast_features_standards
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_features_standards	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,23 @@
+--- src/lib/libast/features/standards.orig	2017-11-30 22:35:04 UTC
++++ src/lib/libast/features/standards
+@@ -1,5 +1,19 @@
+ set stdio
+-if tst note{ _GNU_SOURCE works }end compile{
++# In FreeBSD, definitions like _POSIX_SOURCE and such are used to *limit*
++# functionality to known API; they don't enable anything. The general intent in
++# BSD is to enable everything by default (effectively, providing the
++# _KITCHEN_SINK_SOURCE mentioned below). So we look for that here, but stay
++# careful that we don't get fooled by presence of FreeBSD that underpins some
++# subsystems in Mac OS X; there are other Apple-specific portability hacks
++# elsewhere we should not interfere with.
++if tst note{ FreeBSD }end compile{
++		#include <sys/param.h>
++		#if !defined(__FreeBSD__) || defined(APPLE)
++		#error not a FreeBSD system
++		#endif
++	}end {
++	}
++elif tst note{ _GNU_SOURCE works }end compile{
+ 		#define _GNU_SOURCE 1
+ 		#include <sys/types.h>
+ 		#include <sys/stat.h>

Added: head/shells/ksh93/files/patch-src_lib_libast_features_vmalloc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_features_vmalloc	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,10 @@
+--- src/lib/libast/features/vmalloc.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/features/vmalloc
+@@ -217,7 +217,4 @@ cat{
+ 	#if _mmap_anon
+ 	#define _mem_mmap_anon	1
+ 	#endif
+-	#if _mmap_devzero
+-	#define _mem_mmap_zero	1
+-	#endif
+ }end

Added: head/shells/ksh93/files/patch-src_lib_libast_features_wchar
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_features_wchar	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,10 @@
+--- src/lib/libast/features/wchar.orig	2017-11-30 22:35:04 UTC
++++ src/lib/libast/features/wchar
+@@ -6,6 +6,7 @@ set	include .
+ cat{
+ 	#ifndef _AST_WCHAR_H
+ 	#define _AST_WCHAR_H	1
++	#define _STDFILE_DECLARED
+ }end
+ 
+ lib	mbstowcs,wctomb,wcscmp,wcscoll,wcslen,wcstombs,wcsxfrm,wcwidth stdlib.h stdio.h wchar.h

Added: head/shells/ksh93/files/patch-src_lib_libast_port_astcopy.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_port_astcopy.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,17 @@
+--- src/lib/libast/port/astcopy.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/port/astcopy.c
+@@ -30,14 +30,10 @@
+ #include <ast.h>
+ #include <ast_mmap.h>
+ 
+-#if _mmap_worthy > 1
+-
+ #include <ls.h>
+ 
+ #define MAPSIZE		(1024*256)
+ 
+-#endif
+-
+ #undef	BUFSIZ
+ #define BUFSIZ		4096
+ 

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfclose.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfclose.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,14 @@
+--- src/lib/libast/sfio/sfclose.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfclose.c
+@@ -104,11 +104,9 @@ Sfio_t*	f;
+ 
+ 	if(f->data && (!local || (f->flags&SF_STRING) || (f->bits&SF_MMAP) ) )
+ 	{	/* free buffer */
+-#if _mmap_worthy
+ 		if(f->bits&SF_MMAP)
+ 			SFMUNMAP(f,f->data,f->endb-f->data);
+ 		else
+-#endif
+ 		if(f->flags&SF_MALLOC)
+ 			data = (Void_t*)f->data;
+ 

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfhdr.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfhdr.h	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,12 @@
+--- src/lib/libast/sfio/sfhdr.h.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfhdr.h
+@@ -209,9 +209,6 @@
+ 
+ /* see if we can use memory mapping for io */
+ #if _LARGEFILE64_SOURCE && !_lib_mmap64
+-#undef _mmap_worthy
+-#endif
+-#if !_mmap_worthy
+ #undef _hdr_mman
+ #undef _sys_mman
+ #endif

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfmode.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfmode.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,45 @@
+--- src/lib/libast/sfio/sfmode.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfmode.c
+@@ -404,7 +404,6 @@ reg int		local;	/* a local call */
+ 
+ 	if(f->mode&SF_GETR)
+ 	{	f->mode &= ~SF_GETR;
+-#if _mmap_worthy
+ 		if(f->bits&SF_MMAP)
+ 		{
+ 			if (!++f->ngetr)
+@@ -415,7 +414,6 @@ reg int		local;	/* a local call */
+ 				f->ngetr = f->tiny[0] = 0;
+ 			}
+ 		}
+-#endif
+ 		if(f->getr)
+ 		{	f->next[-1] = f->getr;
+ 			f->getr = 0;
+@@ -519,12 +517,10 @@ reg int		local;	/* a local call */
+ 			if((f->flags&(SF_SHARE|SF_PUBLIC)) == (SF_SHARE|SF_PUBLIC) &&
+ 			   (addr = SFSK(f,0,SEEK_CUR,f->disc)) != f->here)
+ 			{
+-#if _mmap_worthy
+ 				if((f->bits&SF_MMAP) && f->data)
+ 				{	SFMUNMAP(f,f->data,f->endb-f->data);
+ 					f->data = NIL(uchar*);
+ 				}
+-#endif
+ 				f->endb = f->endr = f->endw = f->next = f->data;
+ 				f->here = addr;
+ 			}
+@@ -567,13 +563,11 @@ reg int		local;	/* a local call */
+ 		}
+ 
+ 		f->mode = SF_WRITE|SF_LOCK;
+-#if _mmap_worthy
+ 		if(f->bits&SF_MMAP)
+ 		{	if(f->data)
+ 				SFMUNMAP(f,f->data,f->endb-f->data);
+ 			(void)SFSETBUF(f,(Void_t*)f->tiny,(size_t)SF_UNBOUND);
+ 		}
+-#endif
+ 		if(f->data == f->tiny)
+ 		{	f->endb = f->data = f->next = NIL(uchar*);
+ 			f->size = 0;

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfpurge.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfpurge.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,18 @@
+--- src/lib/libast/sfio/sfpurge.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfpurge.c
+@@ -54,7 +54,6 @@ Sfio_t*	f;
+ 	SFLOCK(f,0);
+ 
+ 	/* if memory map must be a read stream, pretend data is gone */
+-#if _mmap_worthy
+ 	if(f->bits&SF_MMAP)
+ 	{	f->here -= f->endb - f->next;
+ 		if(f->data)
+@@ -64,7 +63,6 @@ Sfio_t*	f;
+ 		SFOPEN(f,0);
+ 		SFMTXRETURN(f, 0);
+ 	}
+-#endif
+ 
+ 	switch(f->mode&~SF_LOCK)
+ 	{

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfrd.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfrd.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,31 @@
+--- src/lib/libast/sfio/sfrd.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfrd.c
+@@ -92,12 +92,10 @@ Sfdisc_t*	disc;
+ 			{	f->endb = f->next = f->endr = f->data;
+ 				f->mode &= ~SF_SYNCED;
+ 			}
+-#if _mmap_worthy
+ 			if((f->bits&SF_MMAP) && f->data)
+ 			{	SFMUNMAP(f, f->data, f->endb-f->data);
+ 				f->data = NIL(uchar*);
+ 			}
+-#endif
+ 			f->next = f->endb = f->endr = f->endw = f->data;
+ 		}
+ 	}
+@@ -132,7 +130,6 @@ Sfdisc_t*	disc;
+ 			}
+ 		}
+ 
+-#if _mmap_worthy
+ 		if(f->bits&SF_MMAP)
+ 		{	reg ssize_t	a, round;
+ 			sfstat_t	st;
+@@ -230,7 +227,6 @@ Sfdisc_t*	disc;
+ 				}
+ 			}
+ 		}
+-#endif
+ 
+ 		/* sync unseekable write streams to prevent deadlock */
+ 		if(!dosync && f->extent < 0)

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfseek.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfseek.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,43 @@
+--- src/lib/libast/sfio/sfseek.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfseek.c
+@@ -34,12 +34,10 @@ Sfio_t*	f;
+ Sfoff_t p;
+ #endif
+ {
+-#if _mmap_worthy
+ 	if((f->bits&SF_MMAP) && f->data)
+ 	{	SFMUNMAP(f, f->data, f->endb-f->data);
+ 		f->data = NIL(uchar*);
+ 	}
+-#endif
+ 	f->next = f->endr = f->endw = f->data;
+ 	f->endb = (f->mode&SF_WRITE) ? f->data+f->size : f->data;
+ 	if((f->here = p) < 0)
+@@ -201,23 +199,13 @@ int	type;	/* 0: from org, 1: from here, 
+ 	if((p += type == SEEK_CUR ? s : 0) < 0)
+ 		goto done;
+ 
+-#if _mmap_worthy
+ 	if(f->bits&SF_MMAP)
+ 	{	/* if mmap is not great, stop mmaping if moving around too much */
+-#if _mmap_worthy < 2
+-		if((f->next - f->data) < ((f->endb - f->data)/4) )
+-		{	SFSETBUF(f,(Void_t*)f->tiny,(size_t)SF_UNBOUND);
+-			hardseek = 1; /* this forces a hard seek below */
+-		}
+-		else
+-#endif
+-		{	/* for mmap, f->here can be virtual except for hardseek */
+-			newpos(f,p);
+-			if(!hardseek)
+-				goto done;
+-		}
++		/* for mmap, f->here can be virtual except for hardseek */
++		newpos(f,p);
++		if(!hardseek)
++			goto done;
+ 	}
+-#endif
+ 
+ 	if(f->endb > f->next)
+ 	{	/* reduce wastage in future buffer fillings */

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsetbuf.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsetbuf.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,34 @@
+--- src/lib/libast/sfio/sfsetbuf.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfsetbuf.c
+@@ -302,7 +302,6 @@ size_t	size;	/* buffer size, -1 for defa
+ 	okmmap = (buf || (f->flags&SF_STRING) || (f->flags&SF_RDWR) == SF_RDWR) ? 0 : 1;
+ 
+ 	/* save old buffer info */
+-#if _mmap_worthy
+ 	if(f->bits&SF_MMAP)
+ 	{	if(f->data)
+ 		{	if(f->getr && (f->mode&SF_GETR) && f->next)
+@@ -311,7 +310,6 @@ size_t	size;	/* buffer size, -1 for defa
+ 			f->data = NIL(uchar*);
+ 		}
+ 	} else
+-#endif
+ 	if(f->data == f->tiny)
+ 	{	f->data = NIL(uchar*);
+ 		f->size = 0;
+@@ -438,7 +436,6 @@ size_t	size;	/* buffer size, -1 for defa
+ 		}
+ 	}
+ 
+-#if _mmap_worthy
+ 	if(okmmap && size && (f->mode&SF_READ) && f->extent >= 0 )
+ 	{	/* see if we can try memory mapping */
+ 		if(!disc)
+@@ -457,7 +454,6 @@ size_t	size;	/* buffer size, -1 for defa
+ 			}
+ 		}
+ 	}
+-#endif
+ 
+ 	/* get buffer space */
+ setbuf:

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsetfd.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsetfd.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,15 @@
+--- src/lib/libast/sfio/sfsetfd.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfsetfd.c
+@@ -108,12 +108,10 @@ int	newfd;
+ 					SFMTXRETURN(f, -1);
+ 				}
+ 
+-#if _mmap_worthy
+ 				if((f->bits&SF_MMAP) && f->data)
+ 				{	SFMUNMAP(f,f->data,f->endb-f->data);
+ 					f->data = NIL(uchar*);
+ 				}
+-#endif
+ 
+ 				/* make stream appears uninitialized */
+ 				f->endb = f->endr = f->endw = f->data;

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsize.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsize.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,15 @@
+--- src/lib/libast/sfio/sfsize.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfsize.c
+@@ -80,12 +80,10 @@ Sfio_t*	f;
+ 
+ 	if(f->here != s && (f->mode&SF_READ) )
+ 	{	/* buffered data is known to be invalid */
+-#if _mmap_worthy
+ 		if((f->bits&SF_MMAP) && f->data)
+ 		{	SFMUNMAP(f,f->data,f->endb-f->data);
+ 			f->data = NIL(uchar*);
+ 		}
+-#endif
+ 		f->next = f->endb = f->endr = f->endw = f->data;
+ 	}
+ 

Added: head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsk.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_sfio_sfsk.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,15 @@
+--- src/lib/libast/sfio/sfsk.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/sfio/sfsk.c
+@@ -49,12 +49,10 @@ Sfdisc_t*	disc;
+ 			SFMTXRETURN(f, (Sfoff_t)(-1));
+ 		if(SFSYNC(f) < 0)
+ 			SFMTXRETURN(f, (Sfoff_t)(-1));
+-#if _mmap_worthy
+ 		if(f->mode == SF_READ && (f->bits&SF_MMAP) && f->data)
+ 		{	SFMUNMAP(f, f->data, f->endb-f->data);
+ 			f->data = NIL(uchar*);
+ 		}
+-#endif
+ 		f->next = f->endb = f->endr = f->endw = f->data;
+ 	}
+ 

Added: head/shells/ksh93/files/patch-src_lib_libast_string_strexpr.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_string_strexpr.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,87 @@
+--- src/lib/libast/string/strexpr.c.orig	2017-11-30 22:35:04 UTC
++++ src/lib/libast/string/strexpr.c
+@@ -44,7 +44,7 @@
+ #define peekchr(ex)	(*(ex)->nextchr)
+ #define ungetchr(ex)	((ex)->nextchr--)
+ 
+-#define error(ex,msg)	return(seterror(ex,msg))
++#define err(ex,msg)	return(seterror(ex,msg))
+ 
+ typedef struct				/* expression handle		*/
+ {
+@@ -87,7 +87,7 @@ expr(register Expr_t* ex, register int p
+ 	case 0:
+ 		ungetchr(ex);
+ 		if (!precedence) return(0);
+-		error(ex, "more tokens expected");
++		err(ex, "more tokens expected");
+ 	case '-':
+ 		n = -expr(ex, 13);
+ 		break;
+@@ -113,17 +113,17 @@ expr(register Expr_t* ex, register int p
+ 		case 0:
+ 			goto done;
+ 		case ')':
+-			if (!precedence) error(ex, "too many )'s");
++			if (!precedence) err(ex, "too many )'s");
+ 			goto done;
+ 		case '(':
+ 			n = expr(ex, 1);
+ 			if (getchr(ex) != ')')
+ 			{
+ 				ungetchr(ex);
+-				error(ex, "closing ) expected");
++				err(ex, "closing ) expected");
+ 			}
+ 		gotoperand:
+-			if (operand) error(ex, "operator expected");
++			if (operand) err(ex, "operator expected");
+ 			operand = 1;
+ 			continue;
+ 		case '?':
+@@ -140,7 +140,7 @@ expr(register Expr_t* ex, register int p
+ 				if (getchr(ex) != ':')
+ 				{
+ 					ungetchr(ex);
+-					error(ex, ": expected for ? operator");
++					err(ex, ": expected for ? operator");
+ 				}
+ 				if (n)
+ 				{
+@@ -189,7 +189,7 @@ expr(register Expr_t* ex, register int p
+ 			break;
+ 		case '=':
+ 		case '!':
+-			if (peekchr(ex) != '=') error(ex, "operator syntax error");
++			if (peekchr(ex) != '=') err(ex, "operator syntax error");
+ 			if (precedence > 7) goto done;
+ 			getchr(ex);
+ 			x = expr(ex, 8);
+@@ -237,7 +237,7 @@ expr(register Expr_t* ex, register int p
+ 			if (precedence > 11) goto done;
+ 			x = expr(ex, 12);
+ 			if (c == '*') n *= x;
+-			else if (x == 0) error(ex, "divide by zero");
++			else if (x == 0) err(ex, "divide by zero");
+ 			else if (c == '/') n /= x;
+ 			else n %= x;
+ 			break;
+@@ -246,15 +246,15 @@ expr(register Expr_t* ex, register int p
+ 			pos = --ex->nextchr;
+ 			if (isdigit(c)) n = strton(ex->nextchr, &ex->nextchr, NiL, 0);
+ 			else if (ex->convert) n = (*ex->convert)(ex->nextchr, &ex->nextchr, ex->handle);
+-			if (ex->nextchr == pos) error(ex, "syntax error");
++			if (ex->nextchr == pos) err(ex, "syntax error");
+ 			goto gotoperand;
+ 		}
+ 		if (ex->errmsg) return(0);
+-		if (!operand) error(ex, "operand expected");
++		if (!operand) err(ex, "operand expected");
+ 	}
+  done:
+ 	ungetchr(ex);
+-	if (!operand) error(ex, "operand expected");
++	if (!operand) err(ex, "operand expected");
+ 	return(n);
+ }
+ 

Added: head/shells/ksh93/files/patch-src_lib_libast_vmalloc_malloc.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_vmalloc_malloc.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,20 @@
+--- src/lib/libast/vmalloc/malloc.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/vmalloc/malloc.c
+@@ -906,7 +906,7 @@ union Alloca_u
+ 	{	char*		addr;
+ 		Alloca_t*	next;
+ 	} head;
+-	char	array[ALIGN];
++	char	array[MEM_ALIGN];
+ };
+ struct Alloca_s
+ {	union Alloca_u	head;
+@@ -914,7 +914,7 @@ struct Alloca_s
+ };
+ 
+ extern Void_t* alloca(size_t size)
+-{	char		array[ALIGN];
++{	char		array[MEM_ALIGN];
+ 	char*		file;
+ 	int		line;
+ 	Void_t*		func;

Added: head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmbest.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmbest.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,101 @@
+--- src/lib/libast/vmalloc/vmbest.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/vmalloc/vmbest.c
+@@ -64,19 +64,19 @@ void _STUB_vmbest(){}
+ #define	PK_ALLOW	128	/* min #packs allowed to be created	*/
+ 
+ /* Small requests are rounded to 0%SM_RNDx */
+-#define SM_RND0	(1*ALIGN)	/* round value:  1*ALIGN  ==   16	*/
++#define SM_RND0	(1*MEM_ALIGN)	/* round value:  1*MEM_ALIGN  ==   16	*/
+ #define SM_BIT0	4		/* (1<<SM_BIT0) == SM_RND0		*/
+ #define SM_CNT0	16	   	/* # caches as rounded by SM_RND0	*/
+ #define SM_IDX0	0		/* starting cache index of this group	*/
+ #define SM_MAX0	(SM_CNT0*SM_RND0)
+ 	
+-#define SM_RND1	(2*ALIGN)	/* round value:  2*ALIGN  ==   32	*/
++#define SM_RND1	(2*MEM_ALIGN)	/* round value:  2*MEM_ALIGN  ==   32	*/
+ #define SM_CNT1	8
+ #define SM_BIT1	5
+ #define SM_IDX1	(SM_IDX0+SM_CNT0)
+ #define SM_MAX1	(SM_MAX0 + SM_CNT1*SM_RND1)
+ 
+-#define SM_RND2	(4*ALIGN)	/* round value:  4*ALIGN  ==   64	*/
++#define SM_RND2	(4*MEM_ALIGN)	/* round value:  4*MEM_ALIGN  ==   64	*/
+ #define SM_BIT2	6
+ #define SM_CNT2	8
+ #define SM_IDX2	(SM_IDX1+SM_CNT1)
+@@ -167,7 +167,7 @@ static int chktree(Pack_t* pack, Block_t
+ 	if(_Vmassert & VM_check_reg)
+ 	{	if(!node) /* the empty tree is always good */
+ 			return 0;
+-		/**/DEBUG_ASSERT(BDSZ(node) >= BODYSIZE && (BDSZ(node)%ALIGN) == 0 );
++		/**/DEBUG_ASSERT(BDSZ(node) >= BODYSIZE && (BDSZ(node)%MEM_ALIGN) == 0 );
+ 
+ 		if(SIZE(node) & (BUSY|PFREE)) /* should be BITS-free */
+ 			{ /**/DEBUG_MESSAGE("Free block corrupted"); /**/DEBUG_ASSERT(0); return -1; }
+@@ -252,7 +252,7 @@ static int bestfree(Vmalloc_t* vm, Void_
+ 	if((Vmuchar_t*)data < vm->data->segmin || (Vmuchar_t*)data >= vm->data->segmax)
+ 		return -1;
+ 
+-	blk = BLOCK(data); /**/DEBUG_ASSERT((SIZE(blk)&BUSY) && (BDSZ(blk)%ALIGN) == 0 );
++	blk = BLOCK(data); /**/DEBUG_ASSERT((SIZE(blk)&BUSY) && (BDSZ(blk)%MEM_ALIGN) == 0 );
+ 	pack = PACK(blk); /**/DEBUG_ASSERT(pack->best == (Vmbest_t*)vm->data);
+ 	if((sz = SIZE(blk))&SMALL )
+ 		listp = &pack->small[SMDECODE(sz)].free;
+@@ -339,7 +339,7 @@ static Block_t* bestpackextend(Vmalloc_t
+ 
+ 	/**/DEBUG_ASSERT(!wild || (PACK(wild) == pack && BDSZ(wild) < size && PACKWILD(pack,wild)) );
+ 	blkz = BDSZ(pack->pblk); /**/DEBUG_ASSERT(blkz >= _Vmpagesize);
+-	size += blkz - (wild ? BDSZ(wild) : 0) + EXTRA(pack); /**/DEBUG_ASSERT(size%ALIGN == 0);
++	size += blkz - (wild ? BDSZ(wild) : 0) + EXTRA(pack); /**/DEBUG_ASSERT(size%MEM_ALIGN == 0);
+ 	if(_Vmassert & VM_debug) debug_printf(2, "%s:%d: PACK(%p) WILD(%p)=%zd BDSZ(%p)=%zd blkz=%zd size=%zu\n", __FILE__, __LINE__, pack, wild, wild ? BDSZ(wild) : 0, pack->pblk, BDSZ(pack->pblk), blkz, size);
+ 	if(!(pblk = (*_Vmsegalloc)(vm, pack->pblk, size, segtype)) )
+ 		pblk = pack->pblk;
+@@ -383,7 +383,7 @@ static Block_t* bestpackextract(Pack_t* 
+ 
+ 	l = r = &link;
+ 	if((root = pack->root) ) do /* top-down splay tree search */
+-	{	/**/DEBUG_ASSERT((size%ALIGN) == 0 && !(SIZE(root)&(BUSY|PFREE)) );
++	{	/**/DEBUG_ASSERT((size%MEM_ALIGN) == 0 && !(SIZE(root)&(BUSY|PFREE)) );
+ 		if(size == (sz = BDSZ(root)) )
+ 			break;
+ 		if(size < sz)
+@@ -508,7 +508,7 @@ static int bestlistreclaim(Vmalloc_t* vm
+ 			continue;
+ 
+ 		/**/DEBUG_ASSERT((SIZE(fp)&(BUSY|MARK)) == (BUSY|MARK) );
+-		/**/DEBUG_ASSERT(BDSZ(fp) >= sizeof(Body_t) && BDSZ(fp)%ALIGN == 0);
++		/**/DEBUG_ASSERT(BDSZ(fp) >= sizeof(Body_t) && BDSZ(fp)%MEM_ALIGN == 0);
+ 		SIZE(fp) &= ~BITS; 
+ 		t = NEXT(fp);
+ 		SIZE(t) |= PFREE; /**/DEBUG_ASSERT(SIZE(NEXT(fp))&BUSY);
+@@ -563,7 +563,7 @@ static Block_t* bestpackalloc(Vmalloc_t*
+ 	ssize_t		sz;
+ 	Block_t		*tp, *np, *pblk;
+ 	Vmbest_t	*best = (Vmbest_t*)vm->data;
+-	/**/DEBUG_ASSERT(size >= sizeof(Body_t) && size%ALIGN == 0);
++	/**/DEBUG_ASSERT(size >= sizeof(Body_t) && size%MEM_ALIGN == 0);
+ 
+ 	if((tp = pack->alloc) ) /* fast allocation from recent memory */
+ 	{	pack->alloc = NIL(Block_t*);
+@@ -719,9 +719,9 @@ static Void_t* bestalloc(Vmalloc_t* vm, 
+ 	asospindecl();
+ 
+ 	/**/DEBUG_COUNT(N_alloc);
+-	/**/DEBUG_ASSERT((ALIGN%(BITS+1)) == 0 );
+-	/**/DEBUG_ASSERT((sizeof(Head_t)%ALIGN) == 0 );
+-	/**/DEBUG_ASSERT((sizeof(Body_t)%ALIGN) == 0 );
++	/**/DEBUG_ASSERT((MEM_ALIGN%(BITS+1)) == 0 );
++	/**/DEBUG_ASSERT((sizeof(Head_t)%MEM_ALIGN) == 0 );
++	/**/DEBUG_ASSERT((sizeof(Body_t)%MEM_ALIGN) == 0 );
+ 	/**/DEBUG_ASSERT(sizeof(Block_t) == (sizeof(Body_t)+sizeof(Head_t)) );
+ 	/**/DEBUG_ASSERT(chkregion((Vmbest_t*)vm->data, local) >= 0);
+ 
+@@ -902,7 +902,7 @@ static Void_t* bestalign(Vmalloc_t* vm, 
+ 		return NIL(Void_t*);
+ 
+ 	algz = LGROUND(size);
+-	algn = (*_Vmlcm)(align,ALIGN);
++	algn = (*_Vmlcm)(align,MEM_ALIGN);
+ 
+ 	/* non-Vmbest methods may require extra header space */
+ 	if(METHOD(best) != VM_MTBEST && vm->meth.eventf)

Added: head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmdcshare.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmdcshare.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,20 @@
+--- src/lib/libast/vmalloc/vmdcshare.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/vmalloc/vmdcshare.c
+@@ -61,7 +61,7 @@ void _STUB_vmdcshare(){}
+ #define MM_REMOVE	02	/* remove files/segments	*/
+ 
+ /* macros to get the data section and size */
+-#define MMHEAD(name)	ROUND(sizeof(Mmvm_t)+strlen(name), ALIGN)
++#define MMHEAD(name)	ROUND(sizeof(Mmvm_t)+strlen(name), MEM_ALIGN)
+ #define MMDATA(mmvm)	((Vmuchar_t*)(mmvm)->base + MMHEAD(mmvm->name))
+ #define MMSIZE(mmvm)	((mmvm)->size - MMHEAD(mmvm->name))
+ 
+@@ -178,7 +178,7 @@ static int mminit(Mmdisc_t* mmdc)
+ 	/* fixed size region so make it reasonably large */
+ 	if((size = mmdc->size) < MM_MINSIZE )
+ 		size =  MM_MINSIZE;
+-	size += MMHEAD(mmdc->name) + ALIGN;
++	size += MMHEAD(mmdc->name) + MEM_ALIGN;
+ 	size  = ROUND(size, _Vmpagesize);
+ 
+ 	/* get/create the initial segment of data */

Added: head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmdcsystem.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/shells/ksh93/files/patch-src_lib_libast_vmalloc_vmdcsystem.c	Sun Apr 21 17:29:49 2019	(r499547)
@@ -0,0 +1,126 @@
+--- src/lib/libast/vmalloc/vmdcsystem.c.orig	2016-02-28 17:09:23 UTC
++++ src/lib/libast/vmalloc/vmdcsystem.c
+@@ -66,18 +66,16 @@ static Vmemory_f	_Vmemoryf = 0;
+ 
+ #if _std_malloc
+ #undef	_mem_mmap_anon
+-#undef	_mem_mmap_zero
+ #undef	_mem_sbrk
+ #undef	_mem_win32
+ #endif
+ 
+ #if _mem_win32
+ #undef	_mem_mmap_anon
+-#undef	_mem_mmap_zero
+ #undef	_mem_sbrk
+ #endif
+ 
+-#if _mem_mmap_anon || _mem_mmap_zero /* may get space using mmap */
++#if _mem_mmap_anon /* may get space using mmap */
+ #include		<sys/mman.h>
+ #ifndef MAP_ANON
+ #ifdef	MAP_ANONYMOUS
+@@ -86,7 +84,7 @@ static Vmemory_f	_Vmemoryf = 0;
+ #define MAP_ANON	0
+ #endif /*MAP_ANONYMOUS*/
+ #endif /*MAP_ANON*/
+-#endif /*_mem_mmap_anon || _mem_mmap_zero*/
++#endif /*_mem_mmap_anon*/
+ 
+ /*
+  * hint at "transparent huge pages" (=largepages) if
+@@ -259,73 +257,6 @@ static Void_t* mmapanonmem(Vmalloc_t* vm
+ }
+ #endif /* _mem_mmap_anon */
+ 
+-#if _mem_mmap_zero /* get space by mmapping from /dev/zero */
+-#include		<fcntl.h>
+-#ifndef OPEN_MAX
+-#define	OPEN_MAX	64
+-#endif
+-#define FD_PRIVATE	(3*OPEN_MAX/4)	/* private file descriptor	*/
+-#define FD_NONE		(-2)		/* no mapping with file desc	*/
+-
+-/* this is called after an initial successful call of mmapzeromeminit() */
+-static Void_t* mmapzeromem(Vmalloc_t* vm, Void_t* caddr, size_t csize, size_t nsize, Vmdisc_t* disc)
+-{
+-	Memdisc_t*	mmdc = (Memdisc_t*)disc;
+-	off_t		offset;
+-
+-	GETMEMCHK(vm, caddr, csize, nsize, disc);
+-	if(csize == 0)
+-	{	nsize = ROUND(nsize, _Vmpagesize);
+-		offset = asoaddoff(&mmdc->offset, nsize);
+-		RESTARTMEM(caddr, mmap(NIL(Void_t*), nsize, PROT_READ|PROT_WRITE, MAP_PRIVATE, mmdc->fd, offset));
+-		ADVISE(vm, caddr, nsize);
+-		RETURN(vm, caddr, nsize);
+-	}
+-	else if(nsize == 0)
+-	{	Vmuchar_t	*addr = (Vmuchar_t*)sbrk(0);
+-		if(addr < (Vmuchar_t*)caddr ) /* in sbrk space */
+-			return NIL(Void_t*);
+-		(void)munmap(caddr, csize);
+-		RETURN(vm, caddr, nsize);
+-	}
+-	else	return NIL(Void_t*);
+-}
+-
+-/* if this call succeeds then mmapzeromem() is the implementation */

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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