merge conflicts

This commit is contained in:
christos 2019-10-06 23:29:42 +00:00
parent c0269b9b8d
commit caea1f9a8b
7 changed files with 1792 additions and 1507 deletions

View File

@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2018 Free Software Foundation, Inc.
# Copyright 1992-2019 Free Software Foundation, Inc.
timestamp='2018-01-26'
timestamp='2019-06-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright 1992-2018 Free Software Foundation, Inc.
Copyright 1992-2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -84,8 +84,6 @@ if test $# != 0; then
exit 1
fi
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
@ -96,34 +94,38 @@ trap 'exit 1' 1 2 15
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > "$dummy.c" ;
for c in cc gcc c89 c99 ; do
if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ; set_cc_for_build= ;'
tmp=
# shellcheck disable=SC2172
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
set_cc_for_build() {
: "${TMPDIR=/tmp}"
# shellcheck disable=SC2039
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
dummy=$tmp/dummy
case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
,,) echo "int x;" > "$dummy.c"
for driver in cc gcc c89 c99 ; do
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
CC_FOR_BUILD="$driver"
break
fi
done
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac
}
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
@ -138,7 +140,7 @@ Linux|GNU|GNU/*)
# We could probably try harder.
LIBC=gnu
eval "$set_cc_for_build"
set_cc_for_build
cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
@ -199,7 +201,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval "$set_cc_for_build"
set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
@ -237,7 +239,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "$machine-${os}${release}${abi}"
echo "$machine-${os}${release}${abi-}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@ -260,6 +262,9 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:SolidBSD:*:*)
echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
*:OS108:*:*)
echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
exit ;;
macppc:MirBSD:*:*)
echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
@ -389,7 +394,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
echo i386-pc-auroraux"$UNAME_RELEASE"
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval "$set_cc_for_build"
set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
@ -482,7 +487,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
echo clipper-intergraph-clix"$UNAME_RELEASE"
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval "$set_cc_for_build"
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
@ -579,7 +584,7 @@ EOF
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval "$set_cc_for_build"
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
@ -660,7 +665,7 @@ EOF
esac
fi
if [ "$HP_ARCH" = "" ]; then
eval "$set_cc_for_build"
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
@ -700,7 +705,7 @@ EOF
esac
if [ "$HP_ARCH" = hppa2.0w ]
then
eval "$set_cc_for_build"
set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@ -726,7 +731,7 @@ EOF
echo ia64-hp-hpux"$HPUX_REV"
exit ;;
3050*:HI-UX:*:*)
eval "$set_cc_for_build"
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
@ -840,6 +845,17 @@ EOF
*:BSD/OS:*:*)
echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
exit ;;
arm:FreeBSD:*:*)
UNAME_PROCESSOR=`uname -p`
set_cc_for_build
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
else
echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
fi
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
case "$UNAME_PROCESSOR" in
@ -881,7 +897,7 @@ EOF
echo "$UNAME_MACHINE"-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
echo x86_64-pc-cygwin
exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
@ -894,8 +910,8 @@ EOF
# other systems with GNU libc and userland
echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
exit ;;
i*86:Minix:*:*)
echo "$UNAME_MACHINE"-pc-minix
*:Minix:*:*)
echo "$UNAME_MACHINE"-unknown-minix
exit ;;
aarch64:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@ -922,7 +938,7 @@ EOF
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arm*:Linux:*:*)
eval "$set_cc_for_build"
set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
@ -971,23 +987,51 @@ EOF
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval "$set_cc_for_build"
set_cc_for_build
IS_GLIBC=0
test x"${LIBC}" = xgnu && IS_GLIBC=1
sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#undef mips
#undef mipsel
#undef mips64
#undef mips64el
#if ${IS_GLIBC} && defined(_ABI64)
LIBCABI=gnuabi64
#else
#if ${IS_GLIBC} && defined(_ABIN32)
LIBCABI=gnuabin32
#else
LIBCABI=${LIBC}
#endif
#endif
#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
CPU=mipsisa64r6
#else
#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
CPU=mipsisa32r6
#else
#if defined(__mips64)
CPU=mips64
#else
CPU=mips
#endif
#endif
#endif
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=${UNAME_MACHINE}el
MIPS_ENDIAN=el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=${UNAME_MACHINE}
MIPS_ENDIAN=
#else
CPU=
MIPS_ENDIAN=
#endif
#endif
EOF
eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
;;
mips64el:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@ -1100,7 +1144,7 @@ EOF
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
@ -1284,38 +1328,39 @@ EOF
echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
eval "$set_cc_for_build"
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
UNAME_PROCESSOR=`uname -p`
case $UNAME_PROCESSOR in
unknown) UNAME_PROCESSOR=powerpc ;;
esac
if command -v xcode-select > /dev/null 2> /dev/null && \
! xcode-select --print-path > /dev/null 2> /dev/null ; then
# Avoid executing cc if there is no toolchain installed as
# cc will be a stub that puts up a graphical alert
# prompting the user to install developer tools.
CC_FOR_BUILD=no_compiler_found
else
set_cc_for_build
fi
if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_PPC >/dev/null
then
UNAME_PROCESSOR=powerpc
fi
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_PPC >/dev/null
then
UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
# that puts up a graphical alert prompting to install
# developer tools. Any system running Mac OS X 10.7 or
# later (Darwin 11 and later) is required to have a 64-bit
# processor. This is not true of the ARM version of Darwin
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
# uname -m returns i386 or x86_64
UNAME_PROCESSOR=$UNAME_MACHINE
fi
echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
@ -1358,6 +1403,7 @@ EOF
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
# shellcheck disable=SC2154
if test "$cputype" = 386; then
UNAME_MACHINE=i386
else
@ -1414,8 +1460,148 @@ EOF
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
exit ;;
*:Unleashed:*:*)
echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
exit ;;
esac
# No uname command or uname output not recognized.
set_cc_for_build
cat > "$dummy.c" <<EOF
#ifdef _SEQUENT_
#include <sys/types.h>
#include <sys/utsname.h>
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#include <signal.h>
#if defined(_SIZE_T_) || defined(SIGLOST)
#include <sys/utsname.h>
#endif
#endif
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
#if !defined (ultrix)
#include <sys/param.h>
#if defined (BSD)
#if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
#else
#if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
#else
printf ("vax-dec-bsd\n"); exit (0);
#endif
#endif
#else
printf ("vax-dec-bsd\n"); exit (0);
#endif
#else
#if defined(_SIZE_T_) || defined(SIGLOST)
struct utsname un;
uname (&un);
printf ("vax-dec-ultrix%s\n", un.release); exit (0);
#else
printf ("vax-dec-ultrix\n"); exit (0);
#endif
#endif
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#if defined(_SIZE_T_) || defined(SIGLOST)
struct utsname *un;
uname (&un);
printf ("mips-dec-ultrix%s\n", un.release); exit (0);
#else
printf ("mips-dec-ultrix\n"); exit (0);
#endif
#endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
echo "$0: unable to guess system type" >&2
case "$UNAME_MACHINE:$UNAME_SYSTEM" in
@ -1469,7 +1655,7 @@ EOF
exit 1
# Local variables:
# eval: (add-hook 'write-file-functions 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"

File diff suppressed because it is too large Load Diff

View File

@ -21,16 +21,43 @@
/* Define if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define if you have the `dbmalloc' library (-ldbmalloc). */
#undef HAVE_LIBDBMALLOC
/* Define if you have the `dmalloc' library (-ldmalloc). */
#undef HAVE_LIBDMALLOC
/* Define if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if mkstemp() is available and working. */
#undef HAVE_MKSTEMP
/* Define to 1 if vsnprintf() is available and working. */
/* Define if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF
/* Define to maximum table size (default: 32500) */
@ -42,6 +69,9 @@
/* Define to 1 if you want to perform memory-leak testing. */
#undef NO_LEAKS
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define to the system name. */
#undef SYSTEM_NAME
@ -59,3 +89,6 @@
/* Define to 1 if you want to perform memory-leak testing. */
#undef YY_NO_LEAKS
/* Define to `int' if <sys/types.h> does not define. */
#undef mode_t

View File

@ -1,6 +1,6 @@
/* $NetBSD: defs.h,v 1.15 2019/01/27 04:25:37 dholland Exp $ */
/* $NetBSD: defs.h,v 1.16 2019/10/06 23:29:42 christos Exp $ */
/* Id: defs.h,v 1.60 2017/12/04 17:50:02 erik.b.andersen Exp */
/* Id: defs.h,v 1.61 2019/06/16 15:07:51 tom Exp */
#if HAVE_NBTOOL_CONFIG_H
#include "nbtool_config.h"
@ -280,6 +280,7 @@ struct param
/* global variables */
extern char dflag2;
extern char dflag;
extern char gflag;
extern char iflag;
@ -461,7 +462,7 @@ struct ainfo
extern void arg_number_disagree_warning(int a_lineno, char *a_name);
extern void arg_type_disagree_warning(int a_lineno, int i, char *a_name);
ATTRIBUTE_NORETURN
ATTRIBUTE_NORETURN
extern void at_error(int a_lineno, char *a_line, char *a_cptr) GCC_NORETURN;
extern void at_warning(int a_lineno, int i);
ATTRIBUTE_NORETURN
@ -506,7 +507,9 @@ extern void undefined_goal(char *s) GCC_NORETURN;
extern void undefined_symbol_warning(char *s);
ATTRIBUTE_NORETURN
extern void unexpected_EOF(void) GCC_NORETURN;
extern void unknown_arg_warning(int d_lineno, const char *dlr_opt, const char *d_arg, const char *d_line, const char *d_cptr);
extern void unknown_arg_warning(int d_lineno, const char *dlr_opt,
const char *d_arg, const char *d_line,
const char *d_cptr);
ATTRIBUTE_NORETURN
extern void unknown_rhs(int i) GCC_NORETURN;
extern void unsupported_flag_warning(const char *flag, const char *details);

View File

@ -1,10 +1,10 @@
/* $NetBSD: main.c,v 1.17 2019/01/27 02:08:33 pgoyette Exp $ */
/* $NetBSD: main.c,v 1.18 2019/10/06 23:29:42 christos Exp $ */
#include "defs.h"
#include <sys/cdefs.h>
__RCSID("$NetBSD: main.c,v 1.17 2019/01/27 02:08:33 pgoyette Exp $");
/* Id: main.c,v 1.61 2017/12/04 17:50:02 erik.b.andersen Exp */
__RCSID("$NetBSD: main.c,v 1.18 2019/10/06 23:29:42 christos Exp $");
/* Id: main.c,v 1.65 2019/06/16 19:59:58 tom Exp */
#include <signal.h>
#ifndef _WIN32
@ -38,6 +38,7 @@ static MY_TMPFILES *my_tmpfiles;
#endif /* USE_MKSTEMP */
char dflag;
char dflag2;
char gflag;
char iflag;
char lflag;
@ -156,7 +157,7 @@ done(int k)
if (rflag)
DO_FREE(code_file_name);
if (dflag)
if (dflag && !dflag2)
DO_FREE(defines_file_name);
if (iflag)
@ -216,6 +217,7 @@ usage(void)
," -b file_prefix set filename prefix (default \"y.\")"
," -B create a backtracking parser"
," -d write definitions (" DEFINES_SUFFIX ")"
," -H defines_file write definitions to defines_file"
," -i write interface (y.tab.i)"
," -g write a graphical description"
," -l suppress #line directives"
@ -236,7 +238,7 @@ usage(void)
for (n = 0; n < sizeof(msg) / sizeof(msg[0]); ++n)
fprintf(stderr, "%s\n", msg[n]);
exit(1);
exit(EXIT_FAILURE);
}
static void
@ -254,6 +256,7 @@ setflag(int ch)
case 'd':
dflag = 1;
dflag2 = 0;
break;
case 'g':
@ -346,6 +349,16 @@ getargs(int argc, char *argv[])
usage();
continue;
case 'H':
dflag = dflag2 = 1;
if (*++s)
defines_file_name = s;
else if (++i < argc)
defines_file_name = argv[i];
else
usage();
continue;
case 'o':
if (*++s)
output_file_name = s;
@ -483,7 +496,7 @@ create_file_names(void)
else
code_file_name = output_file_name;
if (dflag)
if (dflag && !dflag2)
{
if (explicit_file_name)
{
@ -715,7 +728,7 @@ open_files(void)
fprintf(graph_file, "\t*/\n");
}
if (dflag)
if (dflag || dflag2)
{
defines_file = fopen(defines_file_name, "w");
if (defines_file == 0)

View File

@ -1,18 +1,21 @@
.\" $NetBSD: yacc.1,v 1.8 2018/12/23 15:38:53 christos Exp $
.\" $NetBSD: yacc.1,v 1.9 2019/10/06 23:29:42 christos Exp $
.\"
.\" Id: yacc.1,v 1.26 2018/06/10 00:57:07 tom Exp
.\" Id: yacc.1,v 1.29 2019/06/16 19:58:03 tom Exp
.\"
.\" .TH YACC 1 "July\ 15,\ 1990"
.\" .UC 6
.de ES
.ne 8
.ds N Yacc
.ds n yacc
.de Ex
.RS +7
.PP
.nf
.sp
.in +4
.ft CW
..
.de XE
.in -4
.de Ee
.fi
.ft R
.RE
..
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds AQ \(aq
@ -26,12 +29,14 @@
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.TH YACC 1 "June 9, 2018" "Berkeley Yacc" "User Commands"
.TH YACC 1 "June 16, 2019" "Berkeley Yacc" "User Commands"
.SH NAME
Yacc \- an LALR(1) parser generator
\*N \- an LALR(1) parser generator
.SH SYNOPSIS
.B yacc [ -BdgilLPrtvVy ] [ \-b
.B \*n [ -BdgilLPrtvVy ] [ \-b
.I file_prefix
.B ] [ \-H
.I defines_file
.B ] [ \-o
.I output_file
.B ] [ \-p
@ -39,13 +44,13 @@ Yacc \- an LALR(1) parser generator
.B ]
.I filename
.SH DESCRIPTION
.B Yacc
.B \*N
reads the grammar specification in the file
.I filename
and generates an LALR(1) parser for it.
The parsers consist of a set of LALR(1) parsing tables and a driver routine
written in the C programming language.
.B Yacc
.B \*N
normally writes the parse tables and the driver routine to the file
.I y.tab.c.
.PP
@ -64,11 +69,16 @@ The default prefix is the character
create a backtracking parser (compile-time configuration for \fBbtyacc\fP).
.TP
.B \-d
The \fB-d\fR option causes the header file
causes the header file
.B y.tab.h
to be written.
It contains #define's for the token identifiers.
.TP
\fB\-H \fP\fIdefines_file\fR
causes #define's for the token identifiers
to be written to the given \fIdefines_file\fP rather
than the \fBy.tab.h\fP file used by the \fB\-d\fP option.
.TP
.B \-g
The
.B \-g
@ -95,12 +105,12 @@ of lex- and yacc-files.
If the
.B \-l
option is not specified,
.B yacc
.B \*n
will insert \fI#line\fP directives in the generated code.
The \fI#line\fP directives let the C compiler relate errors in the
generated code to the user's original code.
If the \fB-l\fR option is specified,
.B yacc
.B \*n
will not insert the \fI#line\fP directives.
\&\fI#line\fP directives specified by the user will be retained.
.TP
@ -130,7 +140,7 @@ create a reentrant parser, e.g., \*(``%pure-parser\*(''.
The
.B \-r
option causes
.B yacc
.B \*n
to produce separate files for code and tables.
The code file is named
.I y.code.c,
@ -144,19 +154,19 @@ a \*(``\fB%token\fP\*('' statement,
to more closely match original \fByacc\fP behavior.
.IP
Normally when \fByacc\fP sees a line such as
.ES
.Ex
%token OP_ADD "ADD"
.XE
.Ee
.IP
it notices that the quoted \*(``ADD\*('' is a valid C identifier,
and generates a #define not only for OP_ADD,
but for ADD as well,
e.g.,
.ES
.Ex
#define OP_ADD 257
.br
#define ADD 258
.XE
.Ee
.IP
The original \fByacc\fP does not generate the second \*(``\fB#define\fP\*(''.
The \fB\-s\fP option suppresses this \*(``\fB#define\fP\*(''.
@ -169,7 +179,7 @@ though original \fByacc\fP and bison also accept string literals.
The
.B \-t
option changes the preprocessor directives generated by
.B yacc
.B \*n
so that debugging statements will be incorporated in the compiled code.
.TP
.B \-v
@ -185,8 +195,14 @@ print the version number to the standard output.
.B \-y
\fByacc\fP ignores this option,
which bison supports for ostensible POSIX compatibility.
.PP
The \fIfilename\fP parameter is not optional.
However, \fByacc\fP accepts a single \*(``\-\*('' to read the grammar
from the standard input.
A double \*(``\-\-\*('' marker denotes the end of options.
A single \fIfilename\fP parameter is expected after a \*(``\-\-\*('' marker.
.SH EXTENSIONS
.B yacc
.B \*N
provides some extensions for
compatibility with bison and other implementations of yacc.
The \fB%destructor\fP and \fB%locations\fP features are available
@ -210,7 +226,8 @@ if the \fBYYSTYPE\fP value is, or contains,
pointers to dynamically allocated memory.
.IP
The bracketed \fIcode\fP is invoked whenever the parser discards one of
the symbols. Within \fIcode\fP, \*(``\fB$$\fP\*('' or
the symbols.
Within \fIcode\fP, \*(``\fB$$\fP\*('' or
\*(``\fB$<tag>$\fP\*('' designates the semantic value associated with the
discarded symbol, and \*(``\fB@$\fP\*('' designates its location (see
\fB%locations\fP directive).
@ -252,21 +269,23 @@ similar to management of semantic value information provided in \fByylval\fP.
As for semantic values, locations can be referenced within actions using
\fB@$\fP to refer to the location of the left hand side symbol, and \fB@N\fP
(\fBN\fP an integer) to refer to the location of one of the right hand side
symbols. Also as for semantic values, when a rule is matched, a default
symbols.
Also as for semantic values, when a rule is matched, a default
action is used the compute the location represented by \fB@$\fP as the
beginning of the first symbol and the end of the last symbol in the right
hand side of the rule. This default computation can be overridden by
hand side of the rule.
This default computation can be overridden by
explicit assignment to \fB@$\fP in a rule action.
.IP
The type of \fByylloc\fP is \fBYYLTYPE\fP, which is defined by default as:
.ES
.Ex
typedef struct YYLTYPE {
int first_line;
int first_column;
int last_line;
int last_column;
} YYLTYPE;
.XE
.Ee
.IP
\fBYYLTYPE\fP can be redefined by the user
(\fBYYLTYPE_IS_DEFINED\fP must be defined, to inhibit the default)
@ -296,23 +315,24 @@ reentrant.
\fB %token-table\fP
Make the parser's names for tokens available in the \fByytname\fP array.
However,
.B yacc
.B \*n
does not predefine \*(``$end\*('', \*(``$error\*(''
or \*(``$undefined\*('' in this array.
.SH PORTABILITY
According to Robert Corbett,
.ES
Berkeley Yacc is an LALR(1) parser generator. Berkeley Yacc has been made
as compatible as possible with AT&T Yacc. Berkeley Yacc can accept any input
specification that conforms to the AT&T Yacc documentation. Specifications
that take advantage of undocumented features of AT&T Yacc will probably be
rejected.
.XE
.Ex
Berkeley Yacc is an LALR(1) parser generator. Berkeley Yacc
has been made as compatible as possible with AT&T Yacc.
Berkeley Yacc can accept any input specification that
conforms to the AT&T Yacc documentation. Specifications
that take advantage of undocumented features of AT&T Yacc
will probably be rejected.
.Ee
.PP
The rationale in
.ES
.Ex
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html
.XE
.Ee
.PP
documents some features of AT&T yacc which are no longer required for POSIX
compliance.
@ -324,12 +344,12 @@ Here are a few differences:
.bP
\fBYacc\fP accepts an equals mark preceding the left curly brace
of an action (as in the original grammar file \fBftp.y\fP):
.ES
| STAT CRLF
= {
statcmd();
}
.XE
.Ex
| STAT CRLF
= {
statcmd();
}
.Ee
.bP
\fBYacc\fP and bison emit code in different order, and in particular bison
makes forward reference to common functions such as yylex, yyparse and
@ -346,10 +366,10 @@ features of AT&T yacc which were deemed obsolescent.
.bP
\fBYacc\fP accepts multiple parameters
with \fB%lex-param\fP and \fB%parse-param\fP in two forms
.ES
.Ex
{type1 name1} {type2 name2} ...
{type1 name1, type2 name2 ...}
.XE
.Ee
.IP
Bison accepts the latter (though undocumented), but depending on the
release may generate bad code.

View File

@ -2,36 +2,62 @@
/* config_h.in. Generated automatically from configure.in by autoheader. */
/* Define to noreturn-attribute for gcc */
/* #undef GCC_NORETURN */
#define GCC_NORETURN __dead
/* Define to 1 if the compiler supports gcc-like printf attribute. */
/* #undef GCC_PRINTF */
/* Define to printf-attribute for gcc */
#define GCC_PRINTFLIKE(a,b) __printflike(a,b)
#define GCC_PRINTFLIKE(a, b) __printflike(a, b)
/* Define to 1 if the compiler supports gcc-like scanf attribute. */
/* #undef GCC_SCANF */
/* Define to sscanf-attribute for gcc */
/* #undef GCC_SCANFLIKE */
#define GCC_SCANFLIKE(a, b) __scanflike(a, b)
/* Define to unused-attribute for gcc */
/* #undef GCC_UNUSED */
#define GCC_UNUSED __unused
/* Define if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
/* Define if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define if you have the `dbmalloc' library (-ldbmalloc). */
/* #undef HAVE_LIBDBMALLOC */
/* Define if you have the `dmalloc' library (-ldmalloc). */
/* #undef HAVE_LIBDMALLOC */
/* Define if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if mkstemp() is available and working. */
#define HAVE_MKSTEMP 1
/* Define to 1 if vsnprintf() is available and working. */
/* Define if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define if you have the `vsnprintf' function. */
#define HAVE_VSNPRINTF 1
/* Define to maximum table size (default: 32500) */
@ -43,6 +69,9 @@
/* Define to 1 if you want to perform memory-leak testing. */
/* #undef NO_LEAKS */
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to the system name. */
#define SYSTEM_NAME "NetBSD"
@ -56,7 +85,10 @@
/* #undef USE_VALGRIND */
/* Define to 1 to enable backtracking extension */
#define YYBTYACC 1
/* #undef YYBTYACC */
/* Define to 1 if you want to perform memory-leak testing. */
/* #undef YY_NO_LEAKS */
/* Define to `int' if <sys/types.h> does not define. */
/* #undef mode_t */