if the OS does not provide sig_atomic_t and/or ssize_t, you can now define

MKSH_TYPEDEF_SIG_ATOMIC_T and MKSH_TYPEDEF_SSIZE_T via CPPFLAGS to the
*correct* definitions (it’s absolutely critical they be correct!)
This commit is contained in:
tg 2012-04-14 14:02:40 +00:00
parent d388de51f9
commit 29e4269f33
2 changed files with 14 additions and 4 deletions

View File

@ -1,5 +1,5 @@
#!/bin/sh
srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.544 2012/04/08 20:02:33 tg Exp $'
srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.545 2012/04/14 14:02:39 tg Exp $'
#-
# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012
@ -649,7 +649,7 @@ syllable)
;;
ULTRIX)
: ${CC=cc -YPOSIX}
add_cppflags -Dssize_t=int
add_cppflags -DMKSH_TYPEDEF_SSIZE_T=int
: ${HAVE_SETLOCALE_CTYPE=0}
;;
UnixWare|UNIX_SV)
@ -1392,7 +1392,7 @@ else
#define EXTERN
#define MKSH_INCLUDES_ONLY
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.544 2012/04/08 20:02:33 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.545 2012/04/14 14:02:39 tg Exp $");
int main(void) { printf("Hello, World!\n"); return (0); }
EOF
case $cm in
@ -2092,6 +2092,8 @@ MKSH_NO_EXTERNAL_CAT omit hack to skip cat builtin when flags passed
MKSH_NO_LIMITS omit ulimit code
MKSH_SMALL omit some code, optimise hard for size (slower)
MKSH_S_NOVI disable Vi editing mode (default if MKSH_SMALL)
MKSH_TYPEDEF_SIG_ATOMIC_T define to e.g. 'int' if sig_atomic_t is missing
MKSH_TYPEDEF_SSIZE_T define to e.g. 'long' if your OS has no ssize_t
MKSH_UNEMPLOYED disable job control (but not jobs/co-processes)
=== generic installation instructions ===

10
sh.h
View File

@ -152,7 +152,7 @@
#endif
#ifdef EXTERN
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.545 2012/04/07 11:19:51 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.546 2012/04/14 14:02:40 tg Exp $");
#endif
#define MKSH_VERSION "R40 2012/04/07"
@ -212,6 +212,14 @@ typedef unsigned long rlim_t;
typedef void (*sig_t)(int);
#endif
#ifdef MKSH_TYPEDEF_SIG_ATOMIC_T
typedef MKSH_TYPEDEF_SIG_ATOMIC_T sig_atomic_t;
#endif
#ifdef MKSH_TYPEDEF_SSIZE_T
typedef MKSH_TYPEDEF_SSIZE_T ssize_t;
#endif
/* un-do vendor damage */
#undef BAD /* AIX defines that somewhere */