From 8e6fa9a5c6834ce93ba8a47027933bcbd466a35c Mon Sep 17 00:00:00 2001 From: tg Date: Mon, 17 Dec 2012 23:31:30 +0000 Subject: [PATCH] =?UTF-8?q?now=20we=20can=20actually=20prefer=20sys=5Ferrl?= =?UTF-8?q?ist[]=20(oh,=20and=20=5Fsys=5Ferrlist[]=20also=20exists,=20a?= =?UTF-8?q?=CC=B2n=CC=B2d=CC=B2=20fix=20a=20pasto)=20over=20strerror(3)=20?= =?UTF-8?q?like=20we=20do=20for=20sys=5Fsiglist[]=20and=20strsignal(3);=20?= =?UTF-8?q?our=20implementation=20is=20smaller=20and=20does=20more=20code?= =?UTF-8?q?=20reuse=20than=20even=20MirBSD=20libc=E2=80=99s=20after=20all?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Build.sh | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/Build.sh b/Build.sh index 5382a6b..cc8a152 100644 --- a/Build.sh +++ b/Build.sh @@ -1,5 +1,5 @@ #!/bin/sh -srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.602 2012/12/17 23:18:01 tg Exp $' +srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.603 2012/12/17 23:31:30 tg Exp $' #- # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 @@ -1527,7 +1527,7 @@ else #define EXTERN #define MKSH_INCLUDES_ONLY #include "sh.h" - __RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.602 2012/12/17 23:18:01 tg Exp $"); + __RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.603 2012/12/17 23:31:30 tg Exp $"); int main(void) { printf("Hello, World!\n"); return (0); } EOF case $cm in @@ -1560,10 +1560,27 @@ EOF fi # -# Environment: signals +# Environment: errors and signals # test x"NetBSD" = x"$TARGET_OS" && $e Ignore the compatibility warning. +ac_testn sys_errlist '' "the sys_errlist[] array and sys_nerr" <<-'EOF' + extern int sys_nerr; + extern char *sys_errlist[]; + int main(void) { return (*sys_errlist[sys_nerr - 1]); } +EOF +ac_testn _sys_errlist '!' sys_errlist 0 "the _sys_errlist[] array and _sys_nerr" <<-'EOF' + extern int _sys_nerr; + extern char *_sys_errlist[]; + int main(void) { return (*_sys_errlist[_sys_nerr - 1]); } +EOF +if test 1 = "$HAVE__SYS_ERRLIST"; then + add_cppflags -Dsys_nerr=_sys_nerr + add_cppflags -Dsys_errlist=_sys_errlist + HAVE_SYS_ERRLIST=1 +fi +ac_cppflags SYS_ERRLIST + for what in name list; do uwhat=`upper $what` ac_testn sys_sig$what '' "the sys_sig${what}[] array" <<-EOF @@ -1582,12 +1599,6 @@ for what in name list; do ac_cppflags SYS_SIG$uwhat done -ac_test strsignal '!' sys_siglist 0 <<-'EOF' - #include - #include - int main(void) { return (strsignal(1)[0]); } -EOF - # # Environment: library functions # @@ -1774,15 +1785,15 @@ EOF fi fi -ac_test strerror <<-'EOF' +ac_test strerror '!' sys_errlist 0 <<-'EOF' extern char *strerror(int); int main(int ac, char *av[]) { return (*strerror(*av[ac])); } EOF -ac_test sys_errlist '!' strerror 0 "the sys_signame[] array and sys_nerr" <<-'EOF' - extern int sys_nerr; - extern char *sys_errlist[]; - int main(void) { return (*sys_errlist[sys_nerr - 1]); } +ac_test strsignal '!' sys_siglist 0 <<-'EOF' + #include + #include + int main(void) { return (strsignal(1)[0]); } EOF ac_test strlcpy <<-'EOF'