mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
This takes another step towards cleaning up the build system. We now do not even pretend to be theoretically compatible with pre-1989 K&R C compilers or with C++ compilers. In practice, this had already been broken for many years due to bit rot. Commit46593a89already removed the license handling enormity that depended on proto, so now we can cleanly remove it altogether. But we do need to leave some backwards compatibility stubs to keep the build system compatible with older AST code; it should remain possible to build older ksh versions with the current build system (the bin/ and src/cmd/INIT/ directories) for testing purposes. So as of now there is no more __MANGLE__d rubbish in your generated header files. This is only about a quarter of a century overdue... This commit also includes a huge amount of code cleanup to remove thousands of unused K&R C fallbacks and other cruft, particularly in libast. This code base should now be a little easier to understand for people who are familiar with a modern(ish) C standard. ratz is now also removed; this was a standalone and simplified 2005 version of gunzip. As of6137b99a, none of our code uses it, even theoretically. And the real g(un)zip is now everywhere. src/cmd/INIT/proto.c, src/cmd/INIT/ratz.c: - Removed. COPYRIGHT: - Remove zlib license; this only applied to ratz. bin/package, src/cmd/INIT/package.sh: - Related cleanups. - Unset LC_ALL before invoking a new shell, respecting the user's locale again and avoiding multibyte character corruption on the command line. src/cmd/INIT/proto.sh: - Add stub for backwards compatibility with Mamfiles that depend on proto. It does nothing but pass input without modification and is now installed as the new arch/*/bin/proto by src/cmd/INIT/Mamfile. src/cmd/INIT/iffe.sh: - Ignore the proto-related -e (--package) and -p (--prototyped) options; keep parsing them for backwards compatibility. - Trim the macros passed to every test to their standard C versions, removing K&R C and C++ versions. These are now considered to be for backwards compatibility only. src/cmd/INIT/iffe.tst: - Remove proto(1) mangling code. By the way, iffe can be regression-tested as follows: $ bin/package use # set up environment in a child shell $ regress src/cmd/INIT/iffe.tst $ exit # leave package environment src/cmd/INIT/make.probe, src/cmd/INIT/probe.win32: - Remove code to handle C++. src/lib/libast/features/common: - As in iffe.sh above, trim macros designed for compatibility with C++ and ancient C compilers to their standard C versions and comment that they are for backwards compatibility with AST code. This is needed to keep all the old ast and ksh code compiling. src/cmd/ksh93/sh/init.c, src/cmd/ksh93/sh/name.c: - Clarify libshell ABI compatibility function versions of macros. A "proto workaround" comment in the original code mislead me into thinking this had something to do with the removed proto(1), but it's unrelated. Call the workaround macro BYPASS_MACRO instead. src/cmd/ksh93/include/defs.h: - sh_sigcheck() macro: allow &sh as an argument: parenthesise shp. src/cmd/ksh93/sh/nvtype.c: - Remove unused nv_mkstruct() function. (re:d0a5cab1) **/features/*: - Remove obsolete iffe 'set prototyped' option. **/Mamfile: - Remove all references to the ast/prototyped.h header. - Remove all use of the proto command. Simply copy instead. *** 850-ish source files: *** - Remove all '#pragma prototyped' directives. - Remove all C++ compat code conditional upon defined(__cplusplus). - Remove all use of the _ARG_ macro, which on standard C expands to its argument: #define _ARG_(x) x (on K&R C, it expanded to nothing) - Remove all use of _BEGIN_EXTERNS_ and _END_EXTERNS_ macros (empty on standard C; this was for C++ compatibility) - Reduce all #if __STD_C (standard code) #else (K&R code) #endif blocks to the standard code only, without use of the macro. - Same for _STD_ macro which seems to have had the same function. - Change all instances of 'Void_t' to standard 'void'.
This commit is contained in:
parent
3785a0685c
commit
a1f5c99204
869 changed files with 1853 additions and 14292 deletions
|
|
@ -408,41 +408,6 @@ make install
|
|||
done mamake.o generated
|
||||
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o mamake mamake.o
|
||||
done mamake generated
|
||||
make proto
|
||||
make proto.o
|
||||
make proto.c
|
||||
done proto.c
|
||||
meta proto.o %.c>%.o proto.c proto
|
||||
prev proto.c
|
||||
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -c proto.c
|
||||
done proto.o generated
|
||||
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o proto proto.o
|
||||
done proto generated
|
||||
make ratz
|
||||
make ratz.o
|
||||
make ratz.c
|
||||
make unix.h implicit
|
||||
done unix.h dontcare virtual
|
||||
make alloc.h implicit
|
||||
done alloc.h dontcare virtual
|
||||
make unixio.h implicit
|
||||
done unixio.h dontcare virtual
|
||||
make ast_std.h implicit
|
||||
done ast_std.h dontcare virtual
|
||||
make windows.h implicit
|
||||
done windows.h dontcare virtual
|
||||
make io.h implicit
|
||||
done io.h dontcare virtual
|
||||
make direct.h implicit
|
||||
done direct.h dontcare virtual
|
||||
prev ast.h implicit
|
||||
done ratz.c
|
||||
meta ratz.o %.c>%.o ratz.c ratz
|
||||
prev ratz.c
|
||||
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -c ratz.c
|
||||
done ratz.o generated
|
||||
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o ratz ratz.o
|
||||
done ratz generated
|
||||
make mprobe
|
||||
make mprobe.sh
|
||||
done mprobe.sh
|
||||
|
|
@ -634,14 +599,16 @@ make install
|
|||
prev mamake
|
||||
exec - test '' = 'mamake' || ${STDCMP} 2>/dev/null -s mamake ${INSTALLROOT}/bin/mamake || { ${STDMV} ${INSTALLROOT}/bin/mamake ${INSTALLROOT}/bin/mamake.old 2>/dev/null || true; ${STDCP} mamake ${INSTALLROOT}/bin/mamake ;}
|
||||
done ${INSTALLROOT}/bin/mamake generated
|
||||
make ${INSTALLROOT}/bin/proto
|
||||
prev proto
|
||||
exec - test '' = 'proto' || ${STDCMP} 2>/dev/null -s proto ${INSTALLROOT}/bin/proto || { ${STDMV} ${INSTALLROOT}/bin/proto ${INSTALLROOT}/bin/proto.old 2>/dev/null || true; ${STDCP} proto ${INSTALLROOT}/bin/proto ;}
|
||||
done ${INSTALLROOT}/bin/proto generated
|
||||
make ${INSTALLROOT}/bin/ratz
|
||||
prev ratz
|
||||
exec - test '' = 'ratz' || ${STDCMP} 2>/dev/null -s ratz ${INSTALLROOT}/bin/ratz || { ${STDMV} ${INSTALLROOT}/bin/ratz ${INSTALLROOT}/bin/ratz.old 2>/dev/null || true; ${STDCP} ratz ${INSTALLROOT}/bin/ratz ;}
|
||||
done ${INSTALLROOT}/bin/ratz generated
|
||||
make __proto_stub
|
||||
note *
|
||||
note * proto(1) has been removed, but install a backwards compatibility stub
|
||||
note * that allows old Mamfiles containing proto commands to keep working.
|
||||
note *
|
||||
exec - src=${PACKAGEROOT}/src/cmd/INIT/proto.sh
|
||||
exec - dst=${INSTALLROOT}/bin/proto
|
||||
exec - ${STDCMP} 2>/dev/null -s $src $dst || { ${STDMV} $dst $dst.old 2>/dev/null || true; ${STDCP} $src $dst ;}
|
||||
exec - test -w $dst && test -x $dst || chmod u+w,+x $dst
|
||||
done __proto_stub dontcare virtual
|
||||
make ${INSTALLROOT}/bin/mkdir
|
||||
make mkdir.sh
|
||||
done mkdir.sh
|
||||
|
|
@ -876,18 +843,6 @@ make install
|
|||
exec - then mkdir -p ${INSTALLROOT}/include/ast
|
||||
exec - fi
|
||||
done ${INSTALLROOT}/include/ast generated
|
||||
make ${INSTALLROOT}/include/ast/prototyped.h
|
||||
prev ${INSTALLROOT}/include/ast
|
||||
make prototyped.h
|
||||
prev ${INSTALLROOT}/bin/proto
|
||||
exec - proto -f /dev/null > h.${COTEMP}.h
|
||||
exec - if cmp 2>/dev/null -s h.${COTEMP}.h prototyped.h
|
||||
exec - then rm -f h.${COTEMP}.h
|
||||
exec - else mv h.${COTEMP}.h prototyped.h
|
||||
exec - fi
|
||||
done prototyped.h generated
|
||||
exec - test '' = 'prototyped.h' || ${STDCMP} 2>/dev/null -s prototyped.h ${INSTALLROOT}/include/ast/prototyped.h || { ${STDMV} ${INSTALLROOT}/include/ast/prototyped.h ${INSTALLROOT}/include/ast/prototyped.h.old 2>/dev/null || true; ${STDCP} prototyped.h ${INSTALLROOT}/include/ast/prototyped.h ;}
|
||||
done ${INSTALLROOT}/include/ast/prototyped.h generated
|
||||
make ${INSTALLROOT}/lib/lib
|
||||
exec - if test ! -d ${INSTALLROOT}/lib/lib
|
||||
exec - then mkdir -p ${INSTALLROOT}/lib/lib
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ AIX) unset LIBPATH ;;
|
|||
esac
|
||||
|
||||
command=iffe
|
||||
version=2021-12-06
|
||||
version=2021-12-22
|
||||
|
||||
compile() # $cc ...
|
||||
{
|
||||
|
|
@ -682,7 +682,6 @@ case `(set -f && set x * && echo $# && set +f) 2>/dev/null` in
|
|||
esac
|
||||
;;
|
||||
esac
|
||||
protoflags=
|
||||
puthdr=
|
||||
putlib=
|
||||
pragma=
|
||||
|
|
@ -811,9 +810,8 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
|||
[N!:optimize?\b--nooptimize\b disables compiler optimization options.]
|
||||
[o:output?Sets the output file name to \afile\a.]:[file]
|
||||
[O:stdio?Sets the standard io header to \ahdr\a.]:[hdr:=stdio.h]
|
||||
[e:package?Sets the \bproto\b(1) package name to \aname\a.]:[name]
|
||||
[p:prototyped?Emits \b#pragma prototyped\b at the top of the
|
||||
output file. See \bproto\b(1).]
|
||||
[e:package?Obsolete; ignored.]
|
||||
[p:prototyped?Obsolete; ignored.]
|
||||
[P:pragma?Emits \b#pragma\b \atext\a at the top of the output file.]:[text]
|
||||
[r:regress?Massage output for regression testing.]
|
||||
[s:shell?Sets the internal shell name to \aname\a. Used for debugging
|
||||
|
|
@ -880,30 +878,17 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
|||
\bNOTE("...")\b to emit short text in \b--verbose\b output; only one
|
||||
\bNOTE()\b should be called per test for readability. In addition to
|
||||
all macro definitions generated by previous tests, all generated
|
||||
code contains the following at the top to hide dialect differences:]{
|
||||
[+ ?#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)]
|
||||
code contains the following at the top:]{
|
||||
[+ ?/* AST backwards compatibility macros */]
|
||||
[+ ?#define _NIL_(x) ((x)0)]
|
||||
[+ ?#define _STD_ 1]
|
||||
[+ ?#define _ARG_(x) x]
|
||||
[+ ?#define _VOID_ void]
|
||||
[+ ?#else]
|
||||
[+ ?#define _STD_ 0]
|
||||
[+ ?#define _ARG_(x) ()]
|
||||
[+ ?#define _VOID_ char]
|
||||
[+ ?#endif]
|
||||
[+ ?#if defined(__cplusplus)]
|
||||
[+ ?#define _BEGIN_EXTERNS_ extern "C" {]
|
||||
[+ ?#define _END_EXTERNS_ }]
|
||||
[+ ?#else]
|
||||
[+ ?#define _BEGIN_EXTERNS_]
|
||||
[+ ?#define _END_EXTERNS_]
|
||||
[+ ?#endif]
|
||||
[+ ?#define _NIL_(x) ((x)0)]
|
||||
[+ ?#include <stdio.h> /* unless changed using the "stdio" option */]
|
||||
[+ ?/* if/when available, "$INSTALLROOT/src/lib/libast/FEATURE/standards" is included here */]
|
||||
[+ ?/* then <stdio.h> is included, unless this was disabled using the "stdio" option */]
|
||||
}
|
||||
[+?In addition, if and when available, standards macros set as a result of the
|
||||
\bsrc/lib/libast/features/standards\b feature test are incorporated
|
||||
here, ensuring the compilation environment is consistent between the
|
||||
tests and the code that uses the test results.]
|
||||
[+?= \adefault\a may be specified for the \bkey\b, \blib\b, \bmac\b, \bmth\b
|
||||
and \btyp\b tests. If the test fails for \aarg\a then
|
||||
\b#define\b \aarg\a \adefault\a is emitted. \bkey\b accepts multiple
|
||||
|
|
@ -1111,7 +1096,7 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
|||
\bendif\b } with unnamed \b{\b ... \b}\b blocks.]
|
||||
}
|
||||
[+SEE ALSO?\bautoconf\b(1), \bconfig\b(1), \bgetconf\b(1), \bcrossexec\b(1),
|
||||
\bnmake\b(1), \bpackage\b(1), \bproto\b(1), \bsh\b(1)]
|
||||
\bnmake\b(1), \bpackage\b(1), \bsh\b(1)]
|
||||
'
|
||||
while getopts -a "$command" "$USAGE" OPT
|
||||
do case $OPT in
|
||||
|
|
@ -1128,8 +1113,8 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
|||
n) set="$set set namval $OPTARG :" ;;
|
||||
N) set="$set set nooptimize $OPTARG :" ;;
|
||||
o) set="$set set output $OPTARG :" ;;
|
||||
e) set="$set set package $OPTARG :" ;;
|
||||
p) set="$set set prototyped :" ;;
|
||||
e) ;; # obsolete
|
||||
p) ;; # obsolete
|
||||
P) set="$set set pragma $OPTARG :" ;;
|
||||
r) set="$set set regress :" ;;
|
||||
s) set="$set set shell $OPTARG :" ;;
|
||||
|
|
@ -1195,10 +1180,10 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
|||
REM=o`echo X$1 | sed 's,[^=]*=,,'`
|
||||
;;
|
||||
--pa=*|--pac=*|--pack=*|--packa=*|--packag=*|--package=*)
|
||||
REM=e`echo X$1 | sed 's,[^=]*=,,'`
|
||||
# obsolete
|
||||
;;
|
||||
--pro|--prot|--proto|--protot|--prototy|--prototyp|--prototype|--prototyped)
|
||||
REM=p
|
||||
# obsolete
|
||||
;;
|
||||
--pra=*|--prag=*|--pragma=*)
|
||||
REM=P`echo X$1 | sed 's,[^=]*=,,'`
|
||||
|
|
@ -1265,8 +1250,8 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
|||
n) set="$set set namval $OPTARG :" ;;
|
||||
N) set="$set set nooptimize $OPTARG :" ;;
|
||||
o) set="$set set output $OPTARG :" ;;
|
||||
e) set="$set set package $OPTARG :" ;;
|
||||
p) set="$set set prototyped :" ;;
|
||||
e) ;; # obsolete
|
||||
p) ;; # obsolete
|
||||
P) set="$set set pragma $OPTARG :" ;;
|
||||
r) set="$set set regress :" ;;
|
||||
s) set="$set set shell $OPTARG :" ;;
|
||||
|
|
@ -1352,23 +1337,13 @@ status=2
|
|||
|
||||
# standard header for c source
|
||||
|
||||
std='#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
|
||||
std='/* AST backwards compatibility macros */
|
||||
#define _NIL_(x) ((x)0)
|
||||
#define _STD_ 1
|
||||
#define _ARG_(x) x
|
||||
#define _VOID_ void
|
||||
#else
|
||||
#define _STD_ 0
|
||||
#define _ARG_(x) ()
|
||||
#define _VOID_ char
|
||||
#endif
|
||||
#if defined(__cplusplus)
|
||||
#define _BEGIN_EXTERNS_ extern "C" {
|
||||
#define _END_EXTERNS_ }
|
||||
#else
|
||||
#define _BEGIN_EXTERNS_
|
||||
#define _END_EXTERNS_
|
||||
#endif
|
||||
#define _NIL_(x) ((x)0)'
|
||||
#define _END_EXTERNS_'
|
||||
# To ensure the environment tested is the same as that used, add standards
|
||||
# compliance macros as probed by libast as soon as they are available.
|
||||
if test -f "${INSTALLROOT}/src/lib/libast/FEATURE/standards"
|
||||
|
|
@ -1392,7 +1367,6 @@ ini=
|
|||
init=1
|
||||
line=0
|
||||
nan=
|
||||
prototyped=
|
||||
while :
|
||||
do case $in in
|
||||
"") case $argx:$* in
|
||||
|
|
@ -1616,8 +1590,8 @@ do case $in in
|
|||
n) op=namval ;;
|
||||
N) op=nooptimize ;;
|
||||
o) op=output ;;
|
||||
e) op=package ;;
|
||||
p) op=prototyped ;;
|
||||
e) ;; # obsolete
|
||||
p) ;; # obsolete
|
||||
P) op=pragma ;;
|
||||
r) op=regress ;;
|
||||
s) op=shell ;;
|
||||
|
|
@ -1818,15 +1792,11 @@ do case $in in
|
|||
def=
|
||||
test=
|
||||
;;
|
||||
package)protoflags="$protoflags -e $arg"
|
||||
package)# obsolete
|
||||
continue
|
||||
;;
|
||||
prototyped|noprototyped)
|
||||
pragma="$pragma $op"
|
||||
case $op in
|
||||
prototyped) prototyped=1 ;;
|
||||
*) prototyped= ;;
|
||||
esac
|
||||
# obsolete
|
||||
continue
|
||||
;;
|
||||
pragma) pragma="$pragma $arg"
|
||||
|
|
@ -2406,10 +2376,8 @@ int x;
|
|||
$std
|
||||
#include <sys/types.h>
|
||||
$usr
|
||||
_BEGIN_EXTERNS_
|
||||
struct _iffe_struct { int _iffe_member; };
|
||||
extern struct _iffe_struct* $x _ARG_((struct _iffe_struct*));
|
||||
_END_EXTERNS_
|
||||
extern struct _iffe_struct* $x (struct _iffe_struct*);
|
||||
"
|
||||
# some compilers with -O only warn for invalid intrinsic prototypes
|
||||
case " $cc " in
|
||||
|
|
@ -2445,13 +2413,7 @@ _END_EXTERNS_
|
|||
;;
|
||||
esac
|
||||
copy - "extern $t $x$v;"
|
||||
# NOTE: technically if prototyped is on all tests should
|
||||
# be run through proto(1), but we'd like iffe to
|
||||
# work sans proto -- so we drop the extern's in
|
||||
# the test headers
|
||||
case $prototyped in
|
||||
'') usr="$usr${nl}extern $t $x$v;" ;;
|
||||
esac
|
||||
usr="$usr${nl}extern $t $x$v;"
|
||||
else failure -
|
||||
case $in in
|
||||
"") while :
|
||||
|
|
@ -3142,8 +3104,7 @@ int x;
|
|||
n) sed '/^#/d' $tmp.h > $tmp.c
|
||||
sed '/^#/d' $x > $tmp.t
|
||||
;;
|
||||
*) (proto -r $protoflags $tmp.h) >/dev/null 2>&1
|
||||
sed 's,/\*[^/]*\*/, ,g' $tmp.h > $tmp.c
|
||||
*) sed 's,/\*[^/]*\*/, ,g' $tmp.h > $tmp.c
|
||||
sed 's,/\*[^/]*\*/, ,g' $x > $tmp.t
|
||||
;;
|
||||
esac
|
||||
|
|
@ -3596,9 +3557,7 @@ $tst
|
|||
$ext
|
||||
$std
|
||||
$usr
|
||||
_BEGIN_EXTERNS_
|
||||
extern int $statictest;
|
||||
_END_EXTERNS_
|
||||
int main(){char* i = (char*)&$statictest; return ((unsigned int)i)^0xaaaa;}
|
||||
"
|
||||
rm -f $tmp.exe
|
||||
|
|
@ -3707,9 +3666,7 @@ $pre
|
|||
case $inc in
|
||||
?*) echo "$inc"
|
||||
;;
|
||||
*) echo "_BEGIN_EXTERNS_
|
||||
extern int $v;
|
||||
_END_EXTERNS_"
|
||||
*) echo "extern int $v;"
|
||||
;;
|
||||
esac
|
||||
echo "
|
||||
|
|
@ -4081,9 +4038,7 @@ $v i;
|
|||
#else
|
||||
typedef int (*_IFFE_fun)();
|
||||
#ifdef _IFFE_extern
|
||||
_BEGIN_EXTERNS_
|
||||
extern int $v();
|
||||
_END_EXTERNS_
|
||||
#endif
|
||||
static _IFFE_fun i=(_IFFE_fun)$v;int main(){return ((unsigned int)i)^0xaaaa;}
|
||||
#endif
|
||||
|
|
@ -4124,9 +4079,7 @@ $std
|
|||
$usr
|
||||
$pre
|
||||
$inc
|
||||
_BEGIN_EXTERNS_
|
||||
extern int foo();
|
||||
_END_EXTERNS_
|
||||
static int ((*i)())=foo;int main(){return(i==0);}
|
||||
"
|
||||
compile $cc -c $tmp.c <&$nullin >&$nullout
|
||||
|
|
@ -4248,14 +4201,8 @@ $std
|
|||
$usr
|
||||
$pre
|
||||
$inc
|
||||
_BEGIN_EXTERNS_
|
||||
struct _iffe_struct { int _iffe_member; };
|
||||
#if _STD_
|
||||
extern struct _iffe_struct* $v(struct _iffe_struct*);
|
||||
#else
|
||||
extern struct _iffe_struct* $v();
|
||||
#endif
|
||||
_END_EXTERNS_
|
||||
"
|
||||
# some compilers with -O only warn for invalid intrinsic prototypes
|
||||
case " $cc " in
|
||||
|
|
@ -4273,9 +4220,7 @@ $std
|
|||
$usr
|
||||
$pre
|
||||
$inc
|
||||
_BEGIN_EXTERNS_
|
||||
int _iffe_int = $v / 2;
|
||||
_END_EXTERNS_
|
||||
"
|
||||
compile $cc -c $tmp.c <&$nullin >&$nullout
|
||||
report $? 1 "$v is a numeric constant" "$v is not a numeric constant"
|
||||
|
|
|
|||
|
|
@ -1778,71 +1778,9 @@ iffe: test: is Tab_lE a symbol that needs a prototype ... yes'
|
|||
TEST 17 'features/* => FEATURE/*'
|
||||
|
||||
EXEC -r -v run features/stdio
|
||||
INPUT features/stdio $'set prototyped
|
||||
header stdio.h'
|
||||
OUTPUT FEATURE/stdio $'
|
||||
/* : : generated by proto : : */
|
||||
/* : : generated from features/stdio by iffe version 1995-03-19 : : */
|
||||
|
||||
INPUT features/stdio $'header stdio.h'
|
||||
OUTPUT FEATURE/stdio $'/* : : generated from features/stdio by iffe version 1995-03-19 : : */
|
||||
#ifndef _REGRESS
|
||||
#if !defined(__PROTO__)
|
||||
# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
|
||||
# if defined(__cplusplus)
|
||||
# define __LINKAGE__ "C"
|
||||
# else
|
||||
# define __LINKAGE__
|
||||
# endif
|
||||
# define __STDARG__
|
||||
# define __PROTO__(x) x
|
||||
# define __OTORP__(x)
|
||||
# define __PARAM__(n,o) n
|
||||
# if !defined(__STDC__) && !defined(__cplusplus)
|
||||
# if !defined(c_plusplus)
|
||||
# define const
|
||||
# endif
|
||||
# define signed
|
||||
# define void int
|
||||
# define volatile
|
||||
# define __V_ char
|
||||
# else
|
||||
# define __V_ void
|
||||
# endif
|
||||
# else
|
||||
# define __PROTO__(x) ()
|
||||
# define __OTORP__(x) x
|
||||
# define __PARAM__(n,o) o
|
||||
# define __LINKAGE__
|
||||
# define __V_ char
|
||||
# define const
|
||||
# define signed
|
||||
# define void int
|
||||
# define volatile
|
||||
# endif
|
||||
# define __MANGLE__ __LINKAGE__
|
||||
# if defined(__cplusplus) || defined(c_plusplus)
|
||||
# define __VARARG__ ...
|
||||
# else
|
||||
# define __VARARG__
|
||||
# endif
|
||||
# if defined(__STDARG__)
|
||||
# define __VA_START__(p,a) va_start(p,a)
|
||||
# else
|
||||
# define __VA_START__(p,a) va_start(p)
|
||||
# endif
|
||||
# if !defined(__INLINE__)
|
||||
# if defined(__cplusplus)
|
||||
# define __INLINE__ extern __MANGLE__ inline
|
||||
# else
|
||||
# if defined(_WIN32) && !defined(__GNUC__)
|
||||
# define __INLINE__ __inline
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(__LINKAGE__)
|
||||
#define __LINKAGE__ /* 2004-08-11 transition */
|
||||
#endif
|
||||
|
||||
#define _REGRESS 1
|
||||
#define _sys_types 1 /* #include <sys/types.h> ok */
|
||||
#include <stdio.h>
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ extern int i;
|
|||
int i = 1;
|
||||
extern int f(){return(!i);}
|
||||
int main(){FILE* fp=stdin;return(f());}' > pic.$src
|
||||
echo 'class x {int n;} m;' > plusplus.$src
|
||||
echo 'int prefix(){return 0;}' > prefix.$src
|
||||
echo 'template<class T> int gt(T a, T b);
|
||||
template<class T> int gt(T a, T b) { return a > b; }
|
||||
|
|
@ -102,9 +101,7 @@ int i;
|
|||
int main(){int j;j = i * 10;return j;}' > strip.$src
|
||||
echo 'template <class T> void f(T){}
|
||||
int main(){f(1);return 0;}' > toucho.$src
|
||||
echo '#if defined(__STDC__) || defined(__cplusplus)
|
||||
extern type call(int);
|
||||
#endif
|
||||
echo 'extern type call(int);
|
||||
int main() {call(0);return(0);}' > tstlib.$src
|
||||
echo 'int main(){return 0;}' > warn.$src
|
||||
echo 'int f(){return 0;}' > warn1.$src
|
||||
|
|
@ -154,7 +151,6 @@ nmedit=
|
|||
nmflags=
|
||||
no_protect=
|
||||
optimize=
|
||||
plusplus=
|
||||
prefix_archive=lib
|
||||
prefix_dynamic=
|
||||
prefix_shared=lib
|
||||
|
|
@ -433,7 +429,6 @@ int main() { f(); return 0; }' > picok.$src
|
|||
esac
|
||||
fi
|
||||
|
||||
$cc -c plusplus.$src && plusplus=1
|
||||
$cc -E -dD dDflag.$src > t
|
||||
case `grep '#define[ ][ ]*dDflag[ ][ ]*on' t` in
|
||||
?*) dDflag=1 ;;
|
||||
|
|
@ -441,90 +436,7 @@ esac
|
|||
case `grep '#define.*_GNUC_' t` in
|
||||
?*) gnu=1 ;;
|
||||
esac
|
||||
case $plusplus in
|
||||
"") $cc -c stdc.$src && stdc=1 ;;
|
||||
*) mkdir ptr
|
||||
cd ptr
|
||||
$cc -c ../ptr.$src &
|
||||
NFS_locks_are_botched=$!
|
||||
cd ..
|
||||
if $cc -c require.$src && $cc require.$obj
|
||||
then set x `$cc require.$obj 2>&1`
|
||||
d=
|
||||
while :
|
||||
do shift
|
||||
case $# in
|
||||
0) break ;;
|
||||
esac
|
||||
case $1 in
|
||||
-l*) d="$d $1" ;;
|
||||
esac
|
||||
done
|
||||
for f in ++
|
||||
do if $cc require.$obj -l$f
|
||||
then set x `$cc require.$obj -l$f 2>&1`
|
||||
r=
|
||||
while :
|
||||
do shift
|
||||
case $# in
|
||||
0) break ;;
|
||||
esac
|
||||
case $1 in
|
||||
-l*) case " $d $r " in
|
||||
*" "$1" "*) ;;
|
||||
*) r="$r $1" ;;
|
||||
esac
|
||||
esac
|
||||
done
|
||||
case $r in
|
||||
?*) require="$require $f"
|
||||
echo '' $r > req.$f
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
fi
|
||||
cd ptr
|
||||
for i in *
|
||||
do if test -d $i
|
||||
then repository=$i
|
||||
break
|
||||
fi
|
||||
done
|
||||
cd ..
|
||||
kill -9 $NFS_locks_are_botched
|
||||
rm -rf ptr
|
||||
case $repository in
|
||||
*?) mkdir ptr
|
||||
cd ptr
|
||||
i=PTR
|
||||
case $repository in
|
||||
$i) i=$i$i ;;
|
||||
esac
|
||||
$cc -ptr$i -c ../ptr.$src &
|
||||
NFS_locks_are_botched=$!
|
||||
cd ..
|
||||
sleep 5
|
||||
if test -d ptr/$i/$repository
|
||||
then ptrimplicit=1
|
||||
fi
|
||||
kill -9 $NFS_locks_are_botched
|
||||
rm -rf ptr
|
||||
;;
|
||||
esac
|
||||
$cc -o implc implc.$src && $executable implc && implicitc=1
|
||||
if $cc -c toucho.$src && test -f toucho.$obj
|
||||
then o=`ls -l toucho.$obj`
|
||||
if $cc -o toucho toucho.$obj && $executable toucho
|
||||
then n=`ls -l touch.$obj`
|
||||
case $n in
|
||||
"$o") ;;
|
||||
*) toucho=1 ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
$cc -c stdc.$src && stdc=1
|
||||
|
||||
if $cc -c pic.$src
|
||||
then eval set x $probe_nmflags
|
||||
|
|
@ -713,37 +625,34 @@ case $cc_dll:$cc_pic:$so:$dynamic:$static in
|
|||
esac
|
||||
dld=$xx
|
||||
shared=$1
|
||||
# does -nostartfiles make sense for C?
|
||||
case $plusplus in
|
||||
'') z=`wc -c < xxx$dll`
|
||||
eval set x $probe_shared_nostart
|
||||
while :
|
||||
do shift
|
||||
case $# in
|
||||
0) break ;;
|
||||
esac
|
||||
rm -f xxx$dll
|
||||
if $dld $shared $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll
|
||||
then case `wc -c < xxx$dll` in
|
||||
$z) ;;
|
||||
*) if test -s e
|
||||
then case `cat e` in
|
||||
*[Ee][Rr][Rr][Oo][Rr]*|*[Ww][Aa][Rr][Nn][Ii][Nn][Gg]*|*[Oo][Pp][Tt][Ii][Oo][Nn]*)
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case $shared in
|
||||
'') shared=$1 ;;
|
||||
*) shared="$shared $1" ;;
|
||||
# does -nostartfiles make sense?
|
||||
z=`wc -c < xxx$dll`
|
||||
eval set x $probe_shared_nostart
|
||||
while :
|
||||
do shift
|
||||
case $# in
|
||||
0) break ;;
|
||||
esac
|
||||
rm -f xxx$dll
|
||||
if $dld $shared $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll
|
||||
then case `wc -c < xxx$dll` in
|
||||
$z) ;;
|
||||
*) if test -s e
|
||||
then case `cat e` in
|
||||
*[Ee][Rr][Rr][Oo][Rr]*|*[Ww][Aa][Rr][Nn][Ii][Nn][Gg]*|*[Oo][Pp][Tt][Ii][Oo][Nn]*)
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
break
|
||||
;;
|
||||
fi
|
||||
case $shared in
|
||||
'') shared=$1 ;;
|
||||
*) shared="$shared $1" ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
break
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
case $cc_dll in
|
||||
"") cc_dll=$cc_dll_def ;;
|
||||
esac
|
||||
|
|
@ -1319,9 +1228,7 @@ case $stdlib in
|
|||
fi
|
||||
tstlib="$tstlib $implib"
|
||||
if $cc -Dtype=void -Dcall=exit -c tstlib.$src && mv tstlib.$obj tst.$obj
|
||||
then case $plusplus in
|
||||
'') probe_lxx= ;;
|
||||
esac
|
||||
then probe_lxx=
|
||||
l=
|
||||
for sym in $probe_l $probe_lxx
|
||||
do case $l in
|
||||
|
|
@ -1666,9 +1573,6 @@ done
|
|||
case $stdc in
|
||||
?*) dialect="$dialect ANSI" ;;
|
||||
esac
|
||||
case $plusplus in
|
||||
?*) dialect="$dialect C++" ;;
|
||||
esac
|
||||
case $hosted in
|
||||
"") dialect="$dialect CROSS" ;;
|
||||
esac
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
* Glenn Fowler <gsf@research.att.com> *
|
||||
* *
|
||||
***********************************************************************/
|
||||
#pragma prototyped
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-register"
|
||||
#pragma clang diagnostic ignored "-Wparentheses"
|
||||
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ command=${0##*/}
|
|||
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||
0123) USAGE=$'
|
||||
[-?
|
||||
@(#)$Id: '$command$' (ksh 93u+m) 2021-12-15 $
|
||||
@(#)$Id: '$command$' (ksh 93u+m) 2021-12-22 $
|
||||
]
|
||||
[-author?Glenn Fowler <gsf@research.att.com>]
|
||||
[-author?Contributors to https://github.com/ksh93/ksh]
|
||||
|
|
@ -252,13 +252,6 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
|||
file (\bMamfile\b). A Mamfile contains a portable makefile description
|
||||
written in a simple dependency tree language using indented
|
||||
\bmake\b...\bdone\b blocks.]
|
||||
[+?Most component C source is prototyped. If \b$CC\b (default value
|
||||
\bcc\b) is not a prototyping C compiler then \b'$command$' make\b runs
|
||||
\bproto\b(1) on portions of the \b$PACKAGEROOT/src\b tree and places
|
||||
the converted output files in the \b$PACKAGEROOT/proto/src\b tree.
|
||||
Converted files are then viewpathed over the original source.
|
||||
\bproto\b(1) converts an ANSI C subset to code that is compatible with
|
||||
K&R, ANSI, and C++ dialects.]
|
||||
[+?All scripts and commands under \b$PACKAGEROOT\b use \b$PATH\b
|
||||
relative pathnames (via the \bAST\b \bpathpath\b(3) function); there
|
||||
are no embedded absolute pathnames. This means that binaries generated
|
||||
|
|
@ -271,7 +264,7 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
|||
|
||||
[+SEE ALSO?\bautoconfig\b(1), \bcksum\b(1), \bexecrate\b(1), \bexpmake\b(1),
|
||||
\bgzip\b(1), \bmake\b(1), \bmamake\b(1), \bpax\b(1),
|
||||
\bpkgadd\b(1), \bpkgmk\b(1), \bproto\b(1), \bratz\b(1), \brpm\b(1),
|
||||
\bpkgadd\b(1), \bpkgmk\b(1), \brpm\b(1),
|
||||
\bsh\b(1), \btar\b(1), \boptget\b(3)]
|
||||
'
|
||||
case $* in
|
||||
|
|
@ -321,7 +314,6 @@ tab=" "
|
|||
verbose=0
|
||||
AUTHORIZE=
|
||||
DEBUG=
|
||||
PROTOROOT=-
|
||||
SHELLMAGIC=-
|
||||
|
||||
unset FIGNORE BINDIR DLLDIR ETCDIR FUNDIR INCLUDEDIR LIBDIR LOCALEDIR MANDIR SHAREDIR 2>/dev/null || true
|
||||
|
|
@ -507,13 +499,6 @@ DETAILS
|
|||
Mamfile contains a portable makefile description written in a simple
|
||||
dependency tree language using indented make...done blocks.
|
||||
|
||||
Most component C source is prototyped. If $CC (default value cc) is not a
|
||||
prototyping C compiler then package make runs proto(1) on portions of the
|
||||
$PACKAGEROOT/src tree and places the converted output files in the
|
||||
$PACKAGEROOT/proto/src tree. Converted files are then viewpathed over the
|
||||
original source. proto(1) converts an ANSI C subset to code that is
|
||||
compatible with K&R, ANSI, and C++ dialects.
|
||||
|
||||
All scripts and commands under $PACKAGEROOT use $PATH relative pathnames (via
|
||||
the AST pathpath(3) function); there are no embedded absolute pathnames. This
|
||||
means that binaries generated under $PACKAGEROOT may be copied to a different
|
||||
|
|
@ -523,11 +508,10 @@ DETAILS
|
|||
|
||||
SEE ALSO
|
||||
autoconfig(1), cksum(1), execrate(1), expmake(1), gzip(1), make(1),
|
||||
mamake(1), pax(1), pkgadd(1), pkgmk(1), proto(1), ratz(1), rpm(1), sh(1),
|
||||
tar(1), optget(3)
|
||||
mamake(1), pax(1), pkgadd(1), pkgmk(1), rpm(1), sh(1), tar(1), optget(3)
|
||||
|
||||
IMPLEMENTATION
|
||||
version package (ksh 93u+m) 2021-12-15
|
||||
version package (ksh 93u+m) 2021-12-22
|
||||
author Glenn Fowler <gsf@research.att.com>
|
||||
author Contributors to https://github.com/ksh93/ksh
|
||||
copyright (c) 1994-2012 AT&T Intellectual Property
|
||||
|
|
@ -2257,7 +2241,7 @@ cat $INITROOT/$i.sh
|
|||
$show export PATH
|
||||
export PATH
|
||||
;;
|
||||
*) for i in package proto
|
||||
*) for i in package
|
||||
do if onpath $i
|
||||
then EXECROOT=$(echo $_onpath_ | sed -e 's,//*[^/]*//*[^/]*$,,')
|
||||
EXECTYPE=$(echo $EXECROOT | sed -e 's,.*/,,')
|
||||
|
|
@ -2375,9 +2359,6 @@ cat $INITROOT/$i.sh
|
|||
?*) USER_VPATH=$USER_VPATH:$i
|
||||
USER_VPATH_CHAIN="$USER_VPATH_CHAIN $p $i"
|
||||
p=$i
|
||||
case $PROTOROOT in
|
||||
-) executable $i/bin/mamake && PROTOROOT= ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
|
@ -2533,87 +2514,18 @@ esac
|
|||
|
||||
checkaout() # cmd ...
|
||||
{
|
||||
case $PROTOROOT in
|
||||
-) PROTOROOT=
|
||||
case $* in
|
||||
ratz) if test -f $INITROOT/ratz.c -a -w $PACKAGEROOT
|
||||
then test -f $INITROOT/hello.c || {
|
||||
cat > $INITROOT/hello.c <<'!'
|
||||
#ifndef printf
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
int main() { int new = 0; printf("hello world\n"); return new;}
|
||||
!
|
||||
}
|
||||
test -f $INITROOT/p.c || {
|
||||
cat > $INITROOT/p.c <<'!'
|
||||
/*
|
||||
* small test for prototyping cc
|
||||
*/
|
||||
|
||||
int main(int argc, char** argv) { return argc || argv; }
|
||||
!
|
||||
}
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c -a -w $PACKAGEROOT || {
|
||||
for i
|
||||
do onpath $i || {
|
||||
note "$i: command not found"
|
||||
return 1
|
||||
}
|
||||
done
|
||||
return 0
|
||||
case $cc in
|
||||
'') _PACKAGE_cc=0
|
||||
;;
|
||||
*) _PACKAGE_cc=1
|
||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c || {
|
||||
note "$INITROOT: INIT package source not found"
|
||||
return 1
|
||||
}
|
||||
case $cc in
|
||||
'') _PACKAGE_cc=0
|
||||
;;
|
||||
*) _PACKAGE_cc=1
|
||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c || {
|
||||
note "$INITROOT: INIT package source not found"
|
||||
return 1
|
||||
}
|
||||
|
||||
# check for prototyping cc
|
||||
# NOTE: proto.c must be K&R compatible
|
||||
|
||||
$CC -c $INITROOT/p.c >/dev/null 2>&1
|
||||
c=$?
|
||||
rm -f p.*
|
||||
test 0 != "$c" && {
|
||||
checkaout proto || return
|
||||
PROTOROOT=$PACKAGEROOT/proto
|
||||
$show PROTOROOT=$PACKAGEROOT/proto
|
||||
export PROTOROOT
|
||||
INITPROTO=$PROTOROOT/src/cmd/INIT
|
||||
note "proto convert $PACKAGEROOT/src into $PROTOROOT/src"
|
||||
dirs="src"
|
||||
(
|
||||
if test -f $PROTOROOT/UPDATE
|
||||
then newer="-newer $PROTOROOT/UPDATE"
|
||||
else newer=""
|
||||
fi
|
||||
case $exec in
|
||||
'') cd $PACKAGEROOT
|
||||
find $dirs -name '*.[CcHh]' $newer -print | proto -v -L - -C proto
|
||||
;;
|
||||
*) $exec cd $PACKAGEROOT
|
||||
$exec "find $dirs -name '*.[CcHh]' $newer -print | proto -L - -C proto"
|
||||
;;
|
||||
esac
|
||||
$exec touch $PROTOROOT/UPDATE
|
||||
)
|
||||
VPATH=$INSTALLROOT:$PROTOROOT:$PACKAGEROOT$USER_VPATH
|
||||
$show VPATH=$VPATH
|
||||
export VPATH
|
||||
}
|
||||
|
||||
for i in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
||||
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || return
|
||||
done
|
||||
;;
|
||||
esac
|
||||
for i in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
||||
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || return
|
||||
done
|
||||
;;
|
||||
esac
|
||||
case $_PACKAGE_cc in
|
||||
|
|
@ -2672,30 +2584,12 @@ int main(int argc, char** argv) { return argc || argv; }
|
|||
case $(ls -t $INITROOT/$i.c $INSTALLROOT/bin/$i 2>/dev/null) in
|
||||
"$INITROOT/$i.c"*)
|
||||
note "update $INSTALLROOT/bin/$i"
|
||||
if test proto != "$i" && executable $INSTALLROOT/bin/proto
|
||||
then case $exec in
|
||||
'') $INSTALLROOT/bin/proto -p $INITROOT/$i.c > $i.c || return ;;
|
||||
*) $exec "$INSTALLROOT/bin/proto -p $INITROOT/$i.c > $i.c" ;;
|
||||
esac
|
||||
$exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $i.c || return
|
||||
$exec rm -f $i.c
|
||||
else if test ! -d $INSTALLROOT/bin
|
||||
then for j in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
||||
do test -d $PACKAGEROOT/$j || $exec mkdir $PACKAGEROOT/$j || return
|
||||
done
|
||||
fi
|
||||
if test '' != "$PROTOROOT" -a -f $INITPROTO/$i.c
|
||||
then $exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITPROTO/$i.c || return
|
||||
else $exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITROOT/$i.c || return
|
||||
fi
|
||||
case $i:$exec in
|
||||
proto:) test -d $INSTALLROOT/include || mkdir $INSTALLROOT/include
|
||||
$INSTALLROOT/bin/proto -f /dev/null > $i.c
|
||||
cmp -s $i.c $INSTALLROOT/include/prototyped.h 2>/dev/null || cp $i.c $INSTALLROOT/include/prototyped.h
|
||||
rm $i.c
|
||||
;;
|
||||
esac
|
||||
if test ! -d $INSTALLROOT/bin
|
||||
then for j in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
||||
do test -d $PACKAGEROOT/$j || $exec mkdir $PACKAGEROOT/$j || return
|
||||
done
|
||||
fi
|
||||
$exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITROOT/$i.c || return
|
||||
test -f $i.o && $exec rm -f $i.o
|
||||
i=$PATH
|
||||
PATH=/bin
|
||||
|
|
@ -3172,9 +3066,9 @@ cat $j $k
|
|||
esac
|
||||
fi
|
||||
|
||||
# initialize a few mamake related commands
|
||||
# initialize mamake
|
||||
|
||||
checkaout mamake proto ratz || exit
|
||||
checkaout mamake || exit
|
||||
|
||||
# execrate if necessary
|
||||
|
||||
|
|
@ -3529,7 +3423,7 @@ results)set '' $target
|
|||
case $filter in
|
||||
errors) $exeg egrep '^pax:|\*\*\*' $j
|
||||
;;
|
||||
*) $exec egrep -iv '^($||[\+\[]|cc[^-:]|kill |make.*(file system time|has been replaced)|so|[0123456789]+ error|uncrate |[0123456789]+ block|ar: creat|iffe: test: |conf: (check|generate|test)|[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*=|gsf@research|ar:.*warning|cpio:|ld:.*(duplicate symbol|to obtain more information)|[0123456789]*$|(checking|creating|touch) [/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789])| obsolete predefined symbol | is (almost always misused|dangerous|deprecated|not implemented)| trigraph| assigned to | cast .* different size| integer overflow .*<<| optimization may be attained | passed as |::__builtin|pragma.*prototyped|^creating.*\.a$|warning.*not optimized|exceeds size thresh|ld:.*preempts|is unchanged|with value >=|(-l|lib)\*|/(ast|sys)/(dir|limits|param|stropts)\.h.*redefined|usage|base registers|`\.\.\.` obsolete'"$i" $j |
|
||||
*) $exec egrep -iv '^($||[\+\[]|cc[^-:]|kill |make.*(file system time|has been replaced)|so|[0123456789]+ error|uncrate |[0123456789]+ block|ar: creat|iffe: test: |conf: (check|generate|test)|[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*=|gsf@research|ar:.*warning|cpio:|ld:.*(duplicate symbol|to obtain more information)|[0123456789]*$|(checking|creating|touch) [/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789])| obsolete predefined symbol | is (almost always misused|dangerous|deprecated|not implemented)| trigraph| assigned to | cast .* different size| integer overflow .*<<| optimization may be attained | passed as |::__builtin|^creating.*\.a$|warning.*not optimized|exceeds size thresh|ld:.*preempts|is unchanged|with value >=|(-l|lib)\*|/(ast|sys)/(dir|limits|param|stropts)\.h.*redefined|usage|base registers|`\.\.\.` obsolete'"$i" $j |
|
||||
$exec grep :
|
||||
;;
|
||||
esac
|
||||
|
|
@ -3564,6 +3458,7 @@ use) # finalize the environment
|
|||
esac
|
||||
eval PACKAGE_USE=$package_use
|
||||
export PACKAGE_USE
|
||||
unset LC_ALL # respect the user's locale again; avoids multibyte corruption
|
||||
|
||||
# run the command
|
||||
|
||||
|
|
|
|||
|
|
@ -37,9 +37,6 @@ done
|
|||
for i in $probe_header
|
||||
do echo "#include <$i>"
|
||||
done
|
||||
echo '#ifdef __cplusplus'
|
||||
echo "int _Pr0b3_cplus=__cplusplus;"
|
||||
echo '#endif'
|
||||
echo '#ifdef _UWIN'
|
||||
echo "int _Pr0b3_uwin=_UWIN;"
|
||||
echo '#endif'
|
||||
|
|
@ -71,7 +68,6 @@ echo '#endif'
|
|||
|
||||
include=
|
||||
uwin=
|
||||
cplus=
|
||||
|
||||
$cc -E easy.c 2>&1 |
|
||||
egrep -i '^(#(line)? 1 .*\.[hH]| *int +_Pr0b3_[a-zA-Z_]* *= *[0-9])' |
|
||||
|
|
@ -133,11 +129,6 @@ then : the payoff
|
|||
set -- $(whence $cmd) "$@"
|
||||
typ=$(package)
|
||||
dialect="ANSI CLOSURE DYNAMIC EXPORT=DLL LIBPP -I-"
|
||||
case ${cc##*/} in
|
||||
*CC*) dialect="$dialect C++"
|
||||
cplus=1
|
||||
;;
|
||||
esac
|
||||
ld=${cc%cc}ld
|
||||
if [[ ! -x $ld ]]
|
||||
then ld=${cc%/*}/ld
|
||||
|
|
|
|||
3215
src/cmd/INIT/proto.c
3215
src/cmd/INIT/proto.c
File diff suppressed because it is too large
Load diff
35
src/cmd/INIT/proto.sh
Normal file
35
src/cmd/INIT/proto.sh
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
########################################################################
|
||||
# #
|
||||
# This file is part of the ksh 93u+m package #
|
||||
# Copyright (c) 2021 Contributors to ksh 93u+m #
|
||||
# <https://github.com/ksh93/ksh> #
|
||||
# and is licensed under the #
|
||||
# Eclipse Public License, Version 1.0 #
|
||||
# #
|
||||
# A copy of the License is available at #
|
||||
# http://www.eclipse.org/org/documents/epl-v10.html #
|
||||
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
|
||||
# #
|
||||
# Martijn Dekker <martijn@inlv.org> #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
# proto(1) has been removed. This is a backwards compatibility stub that allows
|
||||
# compiling older AST code (with Mamfiles containing proto commands) using the
|
||||
# current INIT system. This stub ignores all options, then invokes 'cat'.
|
||||
|
||||
while getopts ':dfhinprstvzPSC:e:l:o:L:' opt
|
||||
do case $opt in
|
||||
\?) case $OPTARG in
|
||||
+) ;;
|
||||
*) echo "proto: $OPTARG: unknown option"
|
||||
echo 'Usage: proto [-dfhinprstvzP+S] [-C directory] [-e package] [-l file]'
|
||||
echo ' [-o "name='\''value'\'' ..."] [-L file] file ...'
|
||||
exit 2
|
||||
;;
|
||||
esac >&2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND - 1))
|
||||
exec cat -- "$@"
|
||||
5310
src/cmd/INIT/ratz.c
5310
src/cmd/INIT/ratz.c
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue