From: John Marino Date: Fri, 25 Nov 2011 22:42:29 +0000 (+0100) Subject: binutils 2.22: Add makefiles, new incremental-dump binary X-Git-Tag: v3.0.0~568 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/d83cfc8d85b905d12358d755882d57f95b2a0f48 binutils 2.22: Add makefiles, new incremental-dump binary The makefiles and headers for binutils 2.22 are similar to those of binutils 2.21 with the exception of the restructuring of the gold build. A dedicated include file was created, and several files were moved to libgold. This was done to avoid redundant compiling of object files in common between ld.gold and incremental-dump. The latter was never built before although the source was previously available. --- diff --git a/gnu/usr.bin/binutils222/Makefile b/gnu/usr.bin/binutils222/Makefile new file mode 100644 index 0000000000..b3f621cc3f --- /dev/null +++ b/gnu/usr.bin/binutils222/Makefile @@ -0,0 +1,11 @@ +SUBDIR= libiberty libbfd libopcodes libbinutils \ + addr2line ar as ld nm objcopy objdump ranlib readelf \ + elfedit size strings strip doc cxxfilt gprof \ + libgold gold incdump + +TARGET_ARCH?= ${MACHINE_ARCH} + +# interdependant header files +.ORDER: ${SUBDIR} + +.include diff --git a/gnu/usr.bin/binutils222/Makefile.bu b/gnu/usr.bin/binutils222/Makefile.bu new file mode 100644 index 0000000000..b64c0c7013 --- /dev/null +++ b/gnu/usr.bin/binutils222/Makefile.bu @@ -0,0 +1,5 @@ +.include "Makefile.inc0" + +CFLAGS+= -I${.CURDIR}/${RELTOP}/libbinutils +CFLAGS+= -I${SRCDIR}/binutils +CFLAGS+= -I${SRCDIR}/bfd -I${.OBJDIR}/../libbfd diff --git a/gnu/usr.bin/binutils222/Makefile.gld b/gnu/usr.bin/binutils222/Makefile.gld new file mode 100644 index 0000000000..3eda5633c4 --- /dev/null +++ b/gnu/usr.bin/binutils222/Makefile.gld @@ -0,0 +1,21 @@ +RELTOP:= .. + +RELSRC= ${RELTOP}/../../../contrib/binutils-2.22 +SRCDIR= ${.CURDIR}/${RELSRC} + +.PATH: ${SRCDIR}/gold + +.include "${.CURDIR}/../libgold/Makefile.${MACHINE_ARCH}" + +CFLAGS= -DHAVE_CONFIG_H +CFLAGS+= -DLARGEFILE_SOURCE +CFLAGS+= -D_FILE_OFFSET_BITS=64 +CFLAGS+= -DGOLD_DEFAULT_MACHINE=${GOLD_DEFAULT_MACHINE} +CFLAGS+= -DGOLD_DEFAULT_SIZE=${GOLD_DEFAULT_SIZE} +CFLAGS+= -DBINDIR="\"${TOOLS_PREFIX}${BINDIR}\"" +CFLAGS+= -DTOOLBINDIR="\"${TOOLS_PREFIX}${BINDIR}\"" +CFLAGS+= -DUSRDATA_PREFIX="\"${USRDATA_PREFIX}\"" +CFLAGS+= -I. -I${.CURDIR} +CFLAGS+= -I${SRCDIR}/gold +CFLAGS+= -I${SRCDIR}/include -I${SRCDIR}/elfcpp + diff --git a/gnu/usr.bin/binutils222/Makefile.inc b/gnu/usr.bin/binutils222/Makefile.inc new file mode 100644 index 0000000000..f1c139380d --- /dev/null +++ b/gnu/usr.bin/binutils222/Makefile.inc @@ -0,0 +1 @@ +BINDIR?= /usr/libexec/binutils222/elf diff --git a/gnu/usr.bin/binutils222/Makefile.inc0 b/gnu/usr.bin/binutils222/Makefile.inc0 new file mode 100644 index 0000000000..8f3c7ece03 --- /dev/null +++ b/gnu/usr.bin/binutils222/Makefile.inc0 @@ -0,0 +1,50 @@ +# This is included explicitly at the top of each sub-Makefile. We can't +# use the normal "Makefile.inc" mechanism, because we need some of these +# definitions before the sub-Makefile is processed. + +TARGET_ARCH?= ${MACHINE_ARCH} +BINUTIL_ARCH= ${TARGET_ARCH} + +# RELTOP is the relative path to this point in the source or object +# tree, from any subdirectory of same. It gets extra "../" prefixes +# added to it as we descend into subdirectories. +RELTOP:= .. + +RELSRC= ${RELTOP}/../../../contrib/binutils-2.22 +SRCDIR= ${.CURDIR}/${RELSRC} + +CFLAGS+= -I. +.if exists(${.CURDIR}/${BINUTIL_ARCH}) +CFLAGS+= -I${.CURDIR}/${BINUTIL_ARCH} +.endif +CFLAGS+= -I${.CURDIR} +CFLAGS+= -I${.CURDIR}/${RELTOP}/libbfd/${BINUTIL_ARCH} +CFLAGS+= -I${SRCDIR}/include + +DPADD= ${RELTOP}/libbinutils/libbinutils.a +LDADD= ${RELTOP}/libbinutils/libbinutils.a +DPADD+= ${RELTOP}/libbfd/libbfd.a +LDADD+= ${RELTOP}/libbfd/libbfd.a +DPADD+= ${RELTOP}/libiberty/libiberty.a +LDADD+= ${RELTOP}/libiberty/libiberty.a + +DPADD+= ${LIBZ} +LDADD+= -lz + +.if exists(${.CURDIR}/${BINUTIL_ARCH}) +.PATH: ${.CURDIR}/${BINUTIL_ARCH} +.endif + +ARCHS= ${BINUTIL_ARCH} + +.for _arch in ${CROSS_ARCH} +.if (${ARCHS:R:M${_arch:R}} == "") +ARCHS+= $(_arch) +.endif +.endfor + +.for _arch in ${ARCHS} +.if exists(${.CURDIR}/Makefile.${_arch}) +.include "${.CURDIR}/Makefile.${_arch}" +.endif +.endfor diff --git a/gnu/usr.bin/binutils222/addr2line/Makefile b/gnu/usr.bin/binutils222/addr2line/Makefile new file mode 100644 index 0000000000..a6d89801f3 --- /dev/null +++ b/gnu/usr.bin/binutils222/addr2line/Makefile @@ -0,0 +1,16 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= addr2line +SRCS= addr2line.c +MAN= addr2line222.1 +MLINKS+=addr2line222.1 addr2line.1 +WARNS= 2 + +addr2line222.1: ${SRCDIR}/binutils/doc/addr2line.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= addr2line222.1 + +.include diff --git a/gnu/usr.bin/binutils222/ar/Makefile b/gnu/usr.bin/binutils222/ar/Makefile new file mode 100644 index 0000000000..1c622c0cd3 --- /dev/null +++ b/gnu/usr.bin/binutils222/ar/Makefile @@ -0,0 +1,16 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= ar +SRCS= ar.c not-ranlib.c +MAN= ar222.1 +MLINKS+=ar222.1 ar.1 +NOSHARED?= yes + +ar222.1: ${SRCDIR}/binutils/doc/ar.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= ar222.1 + +.include diff --git a/gnu/usr.bin/binutils222/as/Makefile b/gnu/usr.bin/binutils222/as/Makefile new file mode 100644 index 0000000000..aad29ed3bc --- /dev/null +++ b/gnu/usr.bin/binutils222/as/Makefile @@ -0,0 +1,32 @@ +.include "${.CURDIR}/../Makefile.inc0" + +GASES= ${BINUTIL_ARCH} +FORMATS=dragonfly + +# Only build the cross tools when not cross-compiling. +.if ${TARGET_ARCH} == ${MACHINE_ARCH} +.if defined(CROSS_ARCH) +.for _g in ${CROSS_ARCH} +.if (${GASES:R:M${_g:R}} == "") +GASES+= $(_g) +.endif +.endfor +.endif +.if defined(CROSS_FORMATS) +.for _f in ${CROSS_FORMATS} +.if (${FORMATS:R:M${_f:R}} == "") +FORMATS+= $(_f) +.endif +.endfor +.endif +.endif + +.for _g in ${GASES} +.for _f in ${FORMATS} +.if exists(${.CURDIR}/${_g}-${_f}) +SUBDIR+= ${_g}-${_f} +.endif +.endfor +.endfor + +.include diff --git a/gnu/usr.bin/binutils222/as/Makefile.inc b/gnu/usr.bin/binutils222/as/Makefile.inc new file mode 100644 index 0000000000..228dbdfb6b --- /dev/null +++ b/gnu/usr.bin/binutils222/as/Makefile.inc @@ -0,0 +1,2 @@ +# BINDIR +.include "${.CURDIR}/../../Makefile.inc" diff --git a/gnu/usr.bin/binutils222/as/Makefile.inc0 b/gnu/usr.bin/binutils222/as/Makefile.inc0 new file mode 100644 index 0000000000..daa169dc9d --- /dev/null +++ b/gnu/usr.bin/binutils222/as/Makefile.inc0 @@ -0,0 +1,61 @@ +.include "${.CURDIR}/../../Makefile.inc0" + +RELTOP:= ../${RELTOP} +.PATH: ${SRCDIR}/gas ${SRCDIR}/gas/config ${.CURDIR}/.. + +TARGET_OS?= dragonfly + +PROG= as +MAN= as222.1 +MLINKS+=as222.1 as.1 +SRCS+= app.c \ + as.c \ + atof-generic.c \ + compress-debug.c \ + cond.c \ + depend.c \ + dwarf2dbg.c \ + dw2gencfi.c \ + ecoff.c \ + ehopt.c \ + expr.c \ + flonum-copy.c \ + flonum-konst.c \ + flonum-mult.c \ + frags.c \ + hash.c \ + input-file.c \ + input-scrub.c \ + listing.c \ + literal.c \ + macro.c \ + messages.c \ + output-file.c \ + read.c \ + remap.c \ + sb.c \ + stabs.c \ + subsegs.c \ + symbols.c \ + write.c + +WARNS= 1 +CFLAGS+= -I${SRCDIR}/gas -I${SRCDIR}/gas/config -I${SRCDIR} -I${.CURDIR}/.. +CFLAGS+= -I${SRCDIR}/bfd -I${.OBJDIR}/../../libbfd +CFLAGS+= -DTARGET_ALIAS=\"${TARGET_ALIAS}\" +CFLAGS+= -DTARGET_CANONICAL=\"${TARGET_CANONICAL}\" +CFLAGS+= -DTARGET_CPU=\"${TARGET_CPU}\" +CFLAGS+= -DDEFAULT_ARCH=\"${DEFAULT_ARCH}\" +CFLAGS+= -DTARGET_OS=\"${TARGET_OS}\" +CFLAGS+= "-DEMULATIONS=${EMULATIONS}" +CFLAGS+= -DDEFAULT_EMULATION=\"${DEFAULT_EMULATION}\" +CFLAGS+= -DTE_DragonFly +NOSHARED?= yes + +DPADD+= ${RELTOP}/libopcodes/libopcodes.a +LDADD+= ${RELTOP}/libopcodes/libopcodes.a + +as222.1: ${SRCDIR}/gas/doc/as.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= as222.1 diff --git a/gnu/usr.bin/binutils222/as/config.h b/gnu/usr.bin/binutils222/as/config.h new file mode 100644 index 0000000000..90c4cd40f4 --- /dev/null +++ b/gnu/usr.bin/binutils222/as/config.h @@ -0,0 +1,320 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.in by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Define if using AIX 5.2 value for C_WEAKEXT. */ +/* #undef AIX_WEAK_SUPPORT */ + +/* assert broken? */ +/* #undef BROKEN_ASSERT */ + +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +/* #undef CRAY_STACKSEG_END */ + +/* Compiling cross-assembler? */ +/* #undef CROSS_COMPILE */ + +/* Define to 1 if using `alloca.c'. */ +/* #undef C_ALLOCA */ + +/* Default architecture. */ +/* #define DEFAULT_ARCH "x86_64" */ + +/* Default CRIS architecture. */ +/* #undef DEFAULT_CRIS_ARCH */ + +/* Default emulation. */ +/* #define DEFAULT_EMULATION "i386elf" */ + +/* Supported emulations. */ +/* #define EMULATIONS &i386elf, */ + +/* Define if you want run-time sanity checks. */ +#define ENABLE_CHECKING 1 + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Define to 1 if you have `alloca', as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +/* #undef HAVE_ALLOCA_H */ + +/* Is the prototype for getopt in in the expected format? */ +#define HAVE_DECL_GETOPT 1 + +/* Define to 1 if you have the declaration of `mempcpy', and to 0 if you + don't. */ +#define HAVE_DECL_MEMPCPY 0 + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VSNPRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `remove' function. */ +/* #undef HAVE_REMOVE */ + +/* Define to 1 if you have the `sbrk' function. */ +#define HAVE_SBRK 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define if has struct stat.st_mtim.tv_nsec */ +#define HAVE_ST_MTIM_TV_NSEC 1 + +/* Define if has struct stat.st_mtim.tv_sec */ +#define HAVE_ST_MTIM_TV_SEC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TIME_H 1 + +/* Define if has struct tm.tm_gmtoff. */ +#define HAVE_TM_GMTOFF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlink' function. */ +#define HAVE_UNLINK 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Using i386 COFF? */ +/* #undef I386COFF */ + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Using m68k COFF? */ +/* #undef M68KCOFF */ + +/* Using m88k COFF? */ +/* #undef M88KCOFF */ + +/* Default CPU for MIPS targets. */ +/* #undef MIPS_CPU_STRING_DEFAULT */ + +/* Generate 64-bit code by default on MIPS targets. */ +/* #undef MIPS_DEFAULT_64BIT */ + +/* Choose a default ABI for MIPS targets. */ +/* #undef MIPS_DEFAULT_ABI */ + +/* Define if environ is not declared in system header files. */ +#define NEED_DECLARATION_ENVIRON 1 + +/* Define if errno is not declared in system header files. */ +/* #undef NEED_DECLARATION_ERRNO */ + +/* Define if ffs is not declared in system header files. */ +/* #undef NEED_DECLARATION_FFS */ + +/* Define if free is not declared in system header files. */ +/* #undef NEED_DECLARATION_FREE */ + +/* Define if malloc is not declared in system header files. */ +/* #undef NEED_DECLARATION_MALLOC */ + +/* Define if sbrk is not declared in system header files. */ +/* #undef NEED_DECLARATION_SBRK */ + +/* Define if strstr is not declared in system header files. */ +/* #undef NEED_DECLARATION_STRSTR */ + +/* a.out support? */ +/* #undef OBJ_MAYBE_AOUT */ + +/* b.out support? */ +/* #undef OBJ_MAYBE_BOUT */ + +/* COFF support? */ +/* #undef OBJ_MAYBE_COFF */ + +/* ECOFF support? */ +/* #undef OBJ_MAYBE_ECOFF */ + +/* ELF support? */ +/* #undef OBJ_MAYBE_ELF */ + +/* generic support? */ +/* #undef OBJ_MAYBE_GENERIC */ + +/* SOM support? */ +/* #undef OBJ_MAYBE_SOM */ + +/* Name of package */ +#define PACKAGE "gas" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* Define if defaulting to ELF on SCO 5. */ +/* #undef SCO_ELF */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +/* #undef STACK_DIRECTION */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Using strict COFF? */ +/* #undef STRICTCOFF */ + +/* Target alias. */ +/* #define TARGET_ALIAS "x86_64-unknown-dragonfly2.13" */ + +/* Define as 1 if big endian. */ +/* #undef TARGET_BYTES_BIG_ENDIAN */ + +/* Canonical target. */ +/* #define TARGET_CANONICAL "x86_64-unknown-dragonfly2.13" */ + +/* Target CPU. */ +/* #define TARGET_CPU "x86_64" */ + +/* Target OS. */ +/* #define TARGET_OS "dragonfly2.13" */ + +/* Define if default target is PowerPC Solaris. */ +/* #undef TARGET_SOLARIS_COMMENT */ + +/* Define if target is Symbian OS. */ +/* #undef TARGET_SYMBIAN */ + +/* Target vendor. */ +#define TARGET_VENDOR "unknown" + +/* Use b modifier when opening binary files? */ +/* #undef USE_BINARY_FOPEN */ + +/* Use emulation support? */ +/* #undef USE_EMULATIONS */ + +/* Allow use of E_MIPS_ABI_O32 on MIPS targets. */ +/* #undef USE_E_MIPS_ABI_O32 */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Using cgen code? */ +/* #undef USING_CGEN */ + +/* Version number of package */ +#define VERSION "2.22" + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#define YYTEXT_POINTER 1 + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif diff --git a/gnu/usr.bin/binutils222/as/i386-dragonfly/Makefile b/gnu/usr.bin/binutils222/as/i386-dragonfly/Makefile new file mode 100644 index 0000000000..19ee908cfa --- /dev/null +++ b/gnu/usr.bin/binutils222/as/i386-dragonfly/Makefile @@ -0,0 +1,16 @@ +DEFAULT_ARCH= i386 +EMULATIONS= &i386elf, +DEFAULT_EMULATION= i386elf +TARGET_ALIAS= i386-just-dragonfly +TARGET_CANONICAL= i386-just-dragonfly +TARGET_CPU= i386 + +.include "${.CURDIR}/../Makefile.inc0" + +CFLAGS += -I${.OBJDIR}/../../libbfd +.if ${TARGET_ARCH} != "i386" +BINDIR= /usr/libexec/cross/i386-dragonfly +.endif +SRCS+= obj-elf.c tc-i386.c atof-ieee.c + +.include diff --git a/gnu/usr.bin/binutils222/as/i386-dragonfly/obj-format.h b/gnu/usr.bin/binutils222/as/i386-dragonfly/obj-format.h new file mode 100644 index 0000000000..69c64aac88 --- /dev/null +++ b/gnu/usr.bin/binutils222/as/i386-dragonfly/obj-format.h @@ -0,0 +1 @@ +#include "obj-elf.h" diff --git a/gnu/usr.bin/binutils222/as/i386-dragonfly/targ-cpu.h b/gnu/usr.bin/binutils222/as/i386-dragonfly/targ-cpu.h new file mode 100644 index 0000000000..f4be0e50bd --- /dev/null +++ b/gnu/usr.bin/binutils222/as/i386-dragonfly/targ-cpu.h @@ -0,0 +1 @@ +#include "tc-i386.h" diff --git a/gnu/usr.bin/binutils222/as/i386-dragonfly/targ-env.h b/gnu/usr.bin/binutils222/as/i386-dragonfly/targ-env.h new file mode 100644 index 0000000000..5834f24846 --- /dev/null +++ b/gnu/usr.bin/binutils222/as/i386-dragonfly/targ-env.h @@ -0,0 +1,8 @@ +/* + * Default target format spec for the assembler + */ + +#define LOCAL_LABELS_DOLLAR 1 +#define LOCAL_LABELS_FB 1 + +#include "obj-format.h" diff --git a/gnu/usr.bin/binutils222/as/x86_64-dragonfly/Makefile b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/Makefile new file mode 100644 index 0000000000..235024289f --- /dev/null +++ b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/Makefile @@ -0,0 +1,16 @@ +DEFAULT_ARCH= x86_64 +EMULATIONS= &i386elf, +DEFAULT_EMULATION= i386elf +TARGET_ALIAS= x86_64-just-dragonfly +TARGET_CANONICAL= x86_64-just-dragonfly +TARGET_CPU= x86_64 + +.include "${.CURDIR}/../Makefile.inc0" + +CFLAGS += -I${.OBJDIR}/../../libbfd +.if ${TARGET_ARCH} != "x86_64" +BINDIR= /usr/libexec/cross/x86_64-dragonfly +.endif +SRCS+= obj-elf.c tc-i386.c atof-ieee.c + +.include diff --git a/gnu/usr.bin/binutils222/as/x86_64-dragonfly/itbl-cpu.h b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/itbl-cpu.h new file mode 100644 index 0000000000..54880214c7 --- /dev/null +++ b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/itbl-cpu.h @@ -0,0 +1 @@ +#include "itbl-i386.h" diff --git a/gnu/usr.bin/binutils222/as/x86_64-dragonfly/obj-format.h b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/obj-format.h new file mode 100644 index 0000000000..69c64aac88 --- /dev/null +++ b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/obj-format.h @@ -0,0 +1 @@ +#include "obj-elf.h" diff --git a/gnu/usr.bin/binutils222/as/x86_64-dragonfly/targ-cpu.h b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/targ-cpu.h new file mode 100644 index 0000000000..f4be0e50bd --- /dev/null +++ b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/targ-cpu.h @@ -0,0 +1 @@ +#include "tc-i386.h" diff --git a/gnu/usr.bin/binutils222/as/x86_64-dragonfly/targ-env.h b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/targ-env.h new file mode 100644 index 0000000000..5834f24846 --- /dev/null +++ b/gnu/usr.bin/binutils222/as/x86_64-dragonfly/targ-env.h @@ -0,0 +1,8 @@ +/* + * Default target format spec for the assembler + */ + +#define LOCAL_LABELS_DOLLAR 1 +#define LOCAL_LABELS_FB 1 + +#include "obj-format.h" diff --git a/gnu/usr.bin/binutils222/cxxfilt/Makefile b/gnu/usr.bin/binutils222/cxxfilt/Makefile new file mode 100644 index 0000000000..c1d21e4ab7 --- /dev/null +++ b/gnu/usr.bin/binutils222/cxxfilt/Makefile @@ -0,0 +1,16 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils + +PROG= c++filt +SRCS= cxxfilt.c +MAN= c++filt222.1 +MLINKS+=c++filt222.1 c++filt.1 +WARNS= 1 + +c++filt222.1: ${.CURDIR}/c++filt.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= c++filt222.1 + +.include diff --git a/gnu/usr.bin/binutils222/cxxfilt/c++filt.1 b/gnu/usr.bin/binutils222/cxxfilt/c++filt.1 new file mode 100644 index 0000000000..71fff6dac3 --- /dev/null +++ b/gnu/usr.bin/binutils222/cxxfilt/c++filt.1 @@ -0,0 +1,338 @@ +.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "C++FILT 1" +.TH C++FILT 1 "2011-11-21" "binutils-2.21.90" "GNU Development Tools" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +c++filt \- Demangle C++ and Java symbols. +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +c++filt [\fB\-_\fR|\fB\-\-strip\-underscores\fR] + [\fB\-n\fR|\fB\-\-no\-strip\-underscores\fR] + [\fB\-p\fR|\fB\-\-no\-params\fR] + [\fB\-t\fR|\fB\-\-types\fR] + [\fB\-i\fR|\fB\-\-no\-verbose\fR] + [\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR] + [\fB\-\-help\fR] [\fB\-\-version\fR] [\fIsymbol\fR...] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The \*(C+ and Java languages provide function overloading, which means +that you can write many functions with the same name, providing that +each function takes parameters of different types. In order to be +able to distinguish these similarly named functions \*(C+ and Java +encode them into a low-level assembler name which uniquely identifies +each different version. This process is known as \fImangling\fR. The +\&\fBc++filt\fR +[1] +program does the inverse mapping: it decodes (\fIdemangles\fR) low-level +names into user-level names so that they can be read. +.PP +Every alphanumeric word (consisting of letters, digits, underscores, +dollars, or periods) seen in the input is a potential mangled name. +If the name decodes into a \*(C+ name, the \*(C+ name replaces the +low-level name in the output, otherwise the original word is output. +In this way you can pass an entire assembler source file, containing +mangled names, through \fBc++filt\fR and see the same source file +containing demangled names. +.PP +You can also use \fBc++filt\fR to decipher individual symbols by +passing them on the command line: +.PP +.Vb 1 +\& c++filt +.Ve +.PP +If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol +names from the standard input instead. All the results are printed on +the standard output. The difference between reading names from the +command line versus reading names from the standard input is that +command line arguments are expected to be just mangled names and no +checking is performed to separate them from surrounding text. Thus +for example: +.PP +.Vb 1 +\& c++filt \-n _Z1fv +.Ve +.PP +will work and demangle the name to \*(L"f()\*(R" whereas: +.PP +.Vb 1 +\& c++filt \-n _Z1fv, +.Ve +.PP +will not work. (Note the extra comma at the end of the mangled +name which makes it invalid). This command however will work: +.PP +.Vb 1 +\& echo _Z1fv, | c++filt \-n +.Ve +.PP +and will display \*(L"f(),\*(R", i.e., the demangled name followed by a +trailing comma. This behaviour is because when the names are read +from the standard input it is expected that they might be part of an +assembler source file where there might be extra, extraneous +characters trailing after a mangled name. For example: +.PP +.Vb 1 +\& .type _Z1fv, @function +.Ve +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-_\fR" 4 +.IX Item "-_" +.PD 0 +.IP "\fB\-\-strip\-underscores\fR" 4 +.IX Item "--strip-underscores" +.PD +On some systems, both the C and \*(C+ compilers put an underscore in front +of every name. For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level +name \f(CW\*(C`_foo\*(C'\fR. This option removes the initial underscore. Whether +\&\fBc++filt\fR removes the underscore by default is target dependent. +.IP "\fB\-n\fR" 4 +.IX Item "-n" +.PD 0 +.IP "\fB\-\-no\-strip\-underscores\fR" 4 +.IX Item "--no-strip-underscores" +.PD +Do not remove the initial underscore. +.IP "\fB\-p\fR" 4 +.IX Item "-p" +.PD 0 +.IP "\fB\-\-no\-params\fR" 4 +.IX Item "--no-params" +.PD +When demangling the name of a function, do not display the types of +the function's parameters. +.IP "\fB\-t\fR" 4 +.IX Item "-t" +.PD 0 +.IP "\fB\-\-types\fR" 4 +.IX Item "--types" +.PD +Attempt to demangle types as well as function names. This is disabled +by default since mangled types are normally only used internally in +the compiler, and they can be confused with non-mangled names. For example, +a function called \*(L"a\*(R" treated as a mangled type name would be +demangled to \*(L"signed char\*(R". +.IP "\fB\-i\fR" 4 +.IX Item "-i" +.PD 0 +.IP "\fB\-\-no\-verbose\fR" 4 +.IX Item "--no-verbose" +.PD +Do not include implementation details (if any) in the demangled +output. +.IP "\fB\-s\fR \fIformat\fR" 4 +.IX Item "-s format" +.PD 0 +.IP "\fB\-\-format=\fR\fIformat\fR" 4 +.IX Item "--format=format" +.PD +\&\fBc++filt\fR can decode various methods of mangling, used by +different compilers. The argument to this option selects which +method it uses: +.RS 4 +.ie n .IP """auto""" 4 +.el .IP "\f(CWauto\fR" 4 +.IX Item "auto" +Automatic selection based on executable (the default method) +.ie n .IP """gnu""" 4 +.el .IP "\f(CWgnu\fR" 4 +.IX Item "gnu" +the one used by the \s-1GNU\s0 \*(C+ compiler (g++) +.ie n .IP """lucid""" 4 +.el .IP "\f(CWlucid\fR" 4 +.IX Item "lucid" +the one used by the Lucid compiler (lcc) +.ie n .IP """arm""" 4 +.el .IP "\f(CWarm\fR" 4 +.IX Item "arm" +the one specified by the \*(C+ Annotated Reference Manual +.ie n .IP """hp""" 4 +.el .IP "\f(CWhp\fR" 4 +.IX Item "hp" +the one used by the \s-1HP\s0 compiler (aCC) +.ie n .IP """edg""" 4 +.el .IP "\f(CWedg\fR" 4 +.IX Item "edg" +the one used by the \s-1EDG\s0 compiler +.ie n .IP """gnu\-v3""" 4 +.el .IP "\f(CWgnu\-v3\fR" 4 +.IX Item "gnu-v3" +the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0. +.ie n .IP """java""" 4 +.el .IP "\f(CWjava\fR" 4 +.IX Item "java" +the one used by the \s-1GNU\s0 Java compiler (gcj) +.ie n .IP """gnat""" 4 +.el .IP "\f(CWgnat\fR" 4 +.IX Item "gnat" +the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0). +.RE +.RS 4 +.RE +.IP "\fB\-\-help\fR" 4 +.IX Item "--help" +Print a summary of the options to \fBc++filt\fR and exit. +.IP "\fB\-\-version\fR" 4 +.IX Item "--version" +Print the version number of \fBc++filt\fR and exit. +.IP "\fB@\fR\fIfile\fR" 4 +.IX Item "@file" +Read command-line options from \fIfile\fR. The options read are +inserted in place of the original @\fIfile\fR option. If \fIfile\fR +does not exist, or cannot be read, then the option will be treated +literally, and not removed. +.Sp +Options in \fIfile\fR are separated by whitespace. A whitespace +character may be included in an option by surrounding the entire +option in either single or double quotes. Any character (including a +backslash) may be included by prefixing the character to be included +with a backslash. The \fIfile\fR may itself contain additional +@\fIfile\fR options; any such options will be processed recursively. +.SH "FOOTNOTES" +.IX Header "FOOTNOTES" +.IP "1." 4 +MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on +MS-DOS this program is named \fB\s-1CXXFILT\s0\fR. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +the Info entries for \fIbinutils\fR. +.SH "COPYRIGHT" +.IX Header "COPYRIGHT" +Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 +Free Software Foundation, Inc. +.PP +Permission is granted to copy, distribute and/or modify this document +under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 +or any later version published by the Free Software Foundation; +with no Invariant Sections, with no Front-Cover Texts, and with no +Back-Cover Texts. A copy of the license is included in the +section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R". diff --git a/gnu/usr.bin/binutils222/doc/Makefile b/gnu/usr.bin/binutils222/doc/Makefile new file mode 100644 index 0000000000..e764345988 --- /dev/null +++ b/gnu/usr.bin/binutils222/doc/Makefile @@ -0,0 +1,38 @@ +.include "../Makefile.inc0" + +CONTRIBDIR= ${.CURDIR}/../../../../contrib + +.PATH: ${SRCDIR}/gas/doc ${SRCDIR}/ld ${SRCDIR}/bfd/doc + +INFO = as ld binutils +INFOSECTION= "Programming & development tools." +INFOENTRY_as= "* As: (as). The GNU assembler." +INFOENTRY_ld= "* Ld: (ld). The GNU linker." +INFOENTRY_binutils= "* Binutils: (binutils). The GNU Binary Utilities." + +MAKEINFOFLAGS+= --no-validate +MAKEINFOFLAGS+= -I ${SRCDIR}/gas/doc -I ${SRCDIR}/ld -I ${SRCDIR}/bfd/doc +MAKEINFOFLAGS+= -I ${SRCDIR}/binutils -I ${SRCDIR}/libiberty +MAKEINFOFLAGS+= -I ${CONTRIBDIR}/libreadline/doc + +CLEANFILES= config.texi configdoc.texi inc-hist.texi \ + inc-hist.texi.orig gasver.texi ldver.texi + +as.info: as.texinfo asconfig.texi c-i386.texi gasver.texi +ld.info: ld.texinfo bfdsumm.texi ldver.texi configdoc.texi + +configdoc.texi: gen-doc.texi + ${LN} -sf ${.ALLSRC} ${.TARGET} + +.PATH: ${SRCDIR}/binutils/doc +binutils.info: binutils.texi config.texi + +config.texi gasver.texi ldver.texi: + echo "@set VERSION ${VERSION}" > ${.TARGET} + +.PATH: ${CONTRIBDIR}/libreadline/doc +inc-hist.texi: hsuser.texinfo inc-hist.diff + cp ${.ALLSRC:M*.texinfo} ${.TARGET} + patch --suffix=.orig < ${.ALLSRC:M*.diff} + +.include diff --git a/gnu/usr.bin/binutils222/doc/asconfig.texi b/gnu/usr.bin/binutils222/doc/asconfig.texi new file mode 100644 index 0000000000..2a7b652f83 --- /dev/null +++ b/gnu/usr.bin/binutils222/doc/asconfig.texi @@ -0,0 +1,70 @@ +@c Copyright 1992, 1993 Free Software Foundation, Inc. +@c This file is part of the documentation for the GAS manual + +@c Configuration settings for all-inclusive version of manual + +@c switches:------------------------------------------------------------ +@c Properties of the manual +@c ======================== +@c Discuss all architectures? +@clear ALL-ARCH +@c A generic form of manual (not tailored to specific target)? +@clear GENERIC +@c Include text on assembler internals? +@set INTERNALS +@c Many object formats supported in this config? +@clear MULTI-OBJ + +@c Object formats of interest +@c ========================== +@clear AOUT +@clear BOUT +@clear COFF +@set ELF +@clear SOM + +@c CPUs of interest +@c ================ +@clear A29K +@clear ARC +@clear ARM +@clear D10V +@clear H8/300 +@clear H8/500 +@clear SH +@set I80386 +@clear I960 +@clear MIPS +@clear M32R +@clear M680X0 +@clear Z8000 +@clear SPARC +@clear VAX +@clear VXWORKS +@clear HPPA +@clear V850 + +@c Does this version of the assembler use the difference-table kluge? +@clear DIFF-TBL-KLUGE + +@c Do all machines described use IEEE floating point? +@set IEEEFLOAT + +@c Is a word 32 bits, or 16? +@set W32 +@clear W16 + +@c Do symbols have different characters than usual? +@clear SPECIAL-SYMS + +@c strings:------------------------------------------------------------ +@c Name of the assembler: +@set AS as +@c Name of C compiler: +@set GCC gcc +@c Name of linker: +@set LD ld +@c Text for target machine (best not used in generic case; but just in case...) +@set TARGET i386 +@c Name of object format (NOT SET in generic version) +@set OBJ-NAME ELF diff --git a/gnu/usr.bin/binutils222/elfedit/Makefile b/gnu/usr.bin/binutils222/elfedit/Makefile new file mode 100644 index 0000000000..cbefa397d6 --- /dev/null +++ b/gnu/usr.bin/binutils222/elfedit/Makefile @@ -0,0 +1,16 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= elfedit +SRCS= elfedit.c elfcomm.c +MAN= elfedit222.1 +MLINKS+=elfedit222.1 elfedit.1 +WARNS= 1 + +elfedit222.1: ${SRCDIR}/binutils/doc/elfedit.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= elfedit222.1 + +.include diff --git a/gnu/usr.bin/binutils222/gold/Makefile b/gnu/usr.bin/binutils222/gold/Makefile new file mode 100644 index 0000000000..d7e2e73721 --- /dev/null +++ b/gnu/usr.bin/binutils222/gold/Makefile @@ -0,0 +1,16 @@ +.include "../Makefile.gld" + +PROG_CXX= ld.gold +SRCS+= main.cc +NOMAN= +WARNS= 1 +CFLAGS+= -I${.CURDIR}/../libgold + +DPADD= ${RELTOP}/libgold/libgold.a +LDADD= ${RELTOP}/libgold/libgold.a +DPADD+= ${RELTOP}/libiberty/libiberty.a +LDADD+= ${RELTOP}/libiberty/libiberty.a +DPADD+= ${LIBZ} +LDADD+= -lz + +.include diff --git a/gnu/usr.bin/binutils222/gprof/Makefile b/gnu/usr.bin/binutils222/gprof/Makefile new file mode 100644 index 0000000000..d05b1f0269 --- /dev/null +++ b/gnu/usr.bin/binutils222/gprof/Makefile @@ -0,0 +1,60 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/gprof + +PROG= gprof +SRCS= basic_blocks.c \ + call_graph.c \ + cg_arcs.c \ + cg_dfn.c \ + cg_print.c \ + corefile.c \ + gmon_io.c \ + gprof.c \ + hertz.c \ + hist.c \ + source.c \ + search_list.c \ + symtab.c \ + sym_ids.c \ + utils.c \ + i386.c \ + alpha.c \ + vax.c \ + tahoe.c \ + sparc.c \ + mips.c \ + flat_bl.c \ + bsd_callg_bl.c \ + fsf_callg_bl.c +MAN= gprof222.1 +MLINKS+=gprof222.1 gprof.1 + +CFLAGS= -DHAVE_CONFIG_H +CFLAGS+=-I${.CURDIR} -I${.CURDIR}/../libbfd -I${.OBJDIR}/../libbfd +CFLAGS+=-I${SRCDIR}/include -I${SRCDIR}/bfd + +gprof222.1: ${.CURDIR}/gprof.1 + cp ${.ALLSRC} ${.TARGET} + +flat_bl.c: + /usr/bin/awk -f ${SRCDIR}/gprof/gen-c-prog.awk > ${.TARGET} \ + FUNCTION=`(echo flat_bl|sed -e 's,.*/,,g' -e 's/_bl//')`_blurb \ + FILE=flat_bl.m ${SRCDIR}/gprof/flat_bl.m + +bsd_callg_bl.c: + /usr/bin/awk -f ${SRCDIR}/gprof/gen-c-prog.awk > ${.TARGET} \ + FUNCTION=`(echo bsd_callg_bl|sed -e 's,.*/,,g' -e 's/_bl//')`_blurb \ + FILE=bsd_callg_bl.m ${SRCDIR}/gprof/bsd_callg_bl.m + +fsf_callg_bl.c: + /usr/bin/awk -f ${SRCDIR}/gprof/gen-c-prog.awk > ${.TARGET} \ + FUNCTION=`(echo fsf_callg_bl|sed -e 's,.*/,,g' -e 's/_bl//')`_blurb \ + FILE=fsf_callg_bl.m ${SRCDIR}/gprof/fsf_callg_bl.m + +CLEANFILES+= gprof222.1 \ + flat_bl.c \ + bsd_callg_bl.c \ + fsf_callg_bl.c + +.include diff --git a/gnu/usr.bin/binutils222/gprof/gconfig.h b/gnu/usr.bin/binutils222/gprof/gconfig.h new file mode 100644 index 0000000000..98b69c5275 --- /dev/null +++ b/gnu/usr.bin/binutils222/gprof/gconfig.h @@ -0,0 +1,117 @@ +/* gconfig.h. Generated from gconfig.in by configure. */ +/* gconfig.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Is the prototype for getopt in in the expected format? */ +#define HAVE_DECL_GETOPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `setmode' function. */ +#define HAVE_SETMODE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_GMON_OUT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "gprof" + +/* Define to the address where bug reports for this package should be sent. + * This definition redefines the libbfd config.h version, so it's disabled + * to silent the error messages seeing during buildworld. + * #define PACKAGE_BUGREPORT "" + */ + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version number of package */ +#define VERSION "2.22" + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ diff --git a/gnu/usr.bin/binutils222/gprof/gprof.1 b/gnu/usr.bin/binutils222/gprof/gprof.1 new file mode 100644 index 0000000000..a6fc4a7efb --- /dev/null +++ b/gnu/usr.bin/binutils222/gprof/gprof.1 @@ -0,0 +1,757 @@ +.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "GPROF 1" +.TH GPROF 1 "2011-11-21" "binutils-2.21.90" "GNU" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +gprof \- display call graph profile data +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +gprof [ \-[abcDhilLrsTvwxyz] ] [ \-[ACeEfFJnNOpPqQZ][\fIname\fR] ] + [ \-I \fIdirs\fR ] [ \-d[\fInum\fR] ] [ \-k \fIfrom/to\fR ] + [ \-m \fImin-count\fR ] [ \-R \fImap_file\fR ] [ \-t \fItable-length\fR ] + [ \-\-[no\-]annotated\-source[=\fIname\fR] ] + [ \-\-[no\-]exec\-counts[=\fIname\fR] ] + [ \-\-[no\-]flat\-profile[=\fIname\fR] ] [ \-\-[no\-]graph[=\fIname\fR] ] + [ \-\-[no\-]time=\fIname\fR] [ \-\-all\-lines ] [ \-\-brief ] + [ \-\-debug[=\fIlevel\fR] ] [ \-\-function\-ordering ] + [ \-\-file\-ordering \fImap_file\fR ] [ \-\-directory\-path=\fIdirs\fR ] + [ \-\-display\-unused\-functions ] [ \-\-file\-format=\fIname\fR ] + [ \-\-file\-info ] [ \-\-help ] [ \-\-line ] [ \-\-min\-count=\fIn\fR ] + [ \-\-no\-static ] [ \-\-print\-path ] [ \-\-separate\-files ] + [ \-\-static\-call\-graph ] [ \-\-sum ] [ \-\-table\-length=\fIlen\fR ] + [ \-\-traditional ] [ \-\-version ] [ \-\-width=\fIn\fR ] + [ \-\-ignore\-non\-functions ] [ \-\-demangle[=\fI\s-1STYLE\s0\fR] ] + [ \-\-no\-demangle ] [\-\-external\-symbol\-table=name] + [ \fIimage-file\fR ] [ \fIprofile-file\fR ... ] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\f(CW\*(C`gprof\*(C'\fR produces an execution profile of C, Pascal, or Fortran77 +programs. The effect of called routines is incorporated in the profile +of each caller. The profile data is taken from the call graph profile file +(\fIgmon.out\fR default) which is created by programs +that are compiled with the \fB\-pg\fR option of +\&\f(CW\*(C`cc\*(C'\fR, \f(CW\*(C`pc\*(C'\fR, and \f(CW\*(C`f77\*(C'\fR. +The \fB\-pg\fR option also links in versions of the library routines +that are compiled for profiling. \f(CW\*(C`Gprof\*(C'\fR reads the given object +file (the default is \f(CW\*(C`a.out\*(C'\fR) and establishes the relation between +its symbol table and the call graph profile from \fIgmon.out\fR. +If more than one profile file is specified, the \f(CW\*(C`gprof\*(C'\fR +output shows the sum of the profile information in the given profile files. +.PP +\&\f(CW\*(C`Gprof\*(C'\fR calculates the amount of time spent in each routine. +Next, these times are propagated along the edges of the call graph. +Cycles are discovered, and calls into a cycle are made to share the time +of the cycle. +.PP +Several forms of output are available from the analysis. +.PP +The \fIflat profile\fR shows how much time your program spent in each function, +and how many times that function was called. If you simply want to know +which functions burn most of the cycles, it is stated concisely here. +.PP +The \fIcall graph\fR shows, for each function, which functions called it, which +other functions it called, and how many times. There is also an estimate +of how much time was spent in the subroutines of each function. This can +suggest places where you might try to eliminate function calls that use a +lot of time. +.PP +The \fIannotated source\fR listing is a copy of the program's +source code, labeled with the number of times each line of the +program was executed. +.SH "OPTIONS" +.IX Header "OPTIONS" +These options specify which of several output formats +\&\f(CW\*(C`gprof\*(C'\fR should produce. +.PP +Many of these options take an optional \fIsymspec\fR to specify +functions to be included or excluded. These options can be +specified multiple times, with different symspecs, to include +or exclude sets of symbols. +.PP +Specifying any of these options overrides the default (\fB\-p \-q\fR), +which prints a flat profile and call graph analysis +for all functions. +.ie n .IP """\-A[\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-A[\f(CIsymspec\f(CW]\fR" 4 +.IX Item "-A[symspec]" +.PD 0 +.ie n .IP """\-\-annotated\-source[=\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-\-annotated\-source[=\f(CIsymspec\f(CW]\fR" 4 +.IX Item "--annotated-source[=symspec]" +.PD +The \fB\-A\fR option causes \f(CW\*(C`gprof\*(C'\fR to print annotated source code. +If \fIsymspec\fR is specified, print output only for matching symbols. +.ie n .IP """\-b""" 4 +.el .IP "\f(CW\-b\fR" 4 +.IX Item "-b" +.PD 0 +.ie n .IP """\-\-brief""" 4 +.el .IP "\f(CW\-\-brief\fR" 4 +.IX Item "--brief" +.PD +If the \fB\-b\fR option is given, \f(CW\*(C`gprof\*(C'\fR doesn't print the +verbose blurbs that try to explain the meaning of all of the fields in +the tables. This is useful if you intend to print out the output, or +are tired of seeing the blurbs. +.ie n .IP """\-C[\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-C[\f(CIsymspec\f(CW]\fR" 4 +.IX Item "-C[symspec]" +.PD 0 +.ie n .IP """\-\-exec\-counts[=\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-\-exec\-counts[=\f(CIsymspec\f(CW]\fR" 4 +.IX Item "--exec-counts[=symspec]" +.PD +The \fB\-C\fR option causes \f(CW\*(C`gprof\*(C'\fR to +print a tally of functions and the number of times each was called. +If \fIsymspec\fR is specified, print tally only for matching symbols. +.Sp +If the profile data file contains basic-block count records, specifying +the \fB\-l\fR option, along with \fB\-C\fR, will cause basic-block +execution counts to be tallied and displayed. +.ie n .IP """\-i""" 4 +.el .IP "\f(CW\-i\fR" 4 +.IX Item "-i" +.PD 0 +.ie n .IP """\-\-file\-info""" 4 +.el .IP "\f(CW\-\-file\-info\fR" 4 +.IX Item "--file-info" +.PD +The \fB\-i\fR option causes \f(CW\*(C`gprof\*(C'\fR to display summary information +about the profile data file(s) and then exit. The number of histogram, +call graph, and basic-block count records is displayed. +.ie n .IP """\-I \f(CIdirs\f(CW""" 4 +.el .IP "\f(CW\-I \f(CIdirs\f(CW\fR" 4 +.IX Item "-I dirs" +.PD 0 +.ie n .IP """\-\-directory\-path=\f(CIdirs\f(CW""" 4 +.el .IP "\f(CW\-\-directory\-path=\f(CIdirs\f(CW\fR" 4 +.IX Item "--directory-path=dirs" +.PD +The \fB\-I\fR option specifies a list of search directories in +which to find source files. Environment variable \fI\s-1GPROF_PATH\s0\fR +can also be used to convey this information. +Used mostly for annotated source output. +.ie n .IP """\-J[\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-J[\f(CIsymspec\f(CW]\fR" 4 +.IX Item "-J[symspec]" +.PD 0 +.ie n .IP """\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]\fR" 4 +.IX Item "--no-annotated-source[=symspec]" +.PD +The \fB\-J\fR option causes \f(CW\*(C`gprof\*(C'\fR not to +print annotated source code. +If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints annotated source, +but excludes matching symbols. +.ie n .IP """\-L""" 4 +.el .IP "\f(CW\-L\fR" 4 +.IX Item "-L" +.PD 0 +.ie n .IP """\-\-print\-path""" 4 +.el .IP "\f(CW\-\-print\-path\fR" 4 +.IX Item "--print-path" +.PD +Normally, source filenames are printed with the path +component suppressed. The \fB\-L\fR option causes \f(CW\*(C`gprof\*(C'\fR +to print the full pathname of +source filenames, which is determined +from symbolic debugging information in the image file +and is relative to the directory in which the compiler +was invoked. +.ie n .IP """\-p[\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-p[\f(CIsymspec\f(CW]\fR" 4 +.IX Item "-p[symspec]" +.PD 0 +.ie n .IP """\-\-flat\-profile[=\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-\-flat\-profile[=\f(CIsymspec\f(CW]\fR" 4 +.IX Item "--flat-profile[=symspec]" +.PD +The \fB\-p\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a flat profile. +If \fIsymspec\fR is specified, print flat profile only for matching symbols. +.ie n .IP """\-P[\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-P[\f(CIsymspec\f(CW]\fR" 4 +.IX Item "-P[symspec]" +.PD 0 +.ie n .IP """\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]\fR" 4 +.IX Item "--no-flat-profile[=symspec]" +.PD +The \fB\-P\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing a flat profile. +If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a flat profile, +but excludes matching symbols. +.ie n .IP """\-q[\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-q[\f(CIsymspec\f(CW]\fR" 4 +.IX Item "-q[symspec]" +.PD 0 +.ie n .IP """\-\-graph[=\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-\-graph[=\f(CIsymspec\f(CW]\fR" 4 +.IX Item "--graph[=symspec]" +.PD +The \fB\-q\fR option causes \f(CW\*(C`gprof\*(C'\fR to print the call graph analysis. +If \fIsymspec\fR is specified, print call graph only for matching symbols +and their children. +.ie n .IP """\-Q[\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-Q[\f(CIsymspec\f(CW]\fR" 4 +.IX Item "-Q[symspec]" +.PD 0 +.ie n .IP """\-\-no\-graph[=\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-\-no\-graph[=\f(CIsymspec\f(CW]\fR" 4 +.IX Item "--no-graph[=symspec]" +.PD +The \fB\-Q\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing the +call graph. +If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a call graph, +but excludes matching symbols. +.ie n .IP """\-t""" 4 +.el .IP "\f(CW\-t\fR" 4 +.IX Item "-t" +.PD 0 +.ie n .IP """\-\-table\-length=\f(CInum\f(CW""" 4 +.el .IP "\f(CW\-\-table\-length=\f(CInum\f(CW\fR" 4 +.IX Item "--table-length=num" +.PD +The \fB\-t\fR option causes the \fInum\fR most active source lines in +each source file to be listed when source annotation is enabled. The +default is 10. +.ie n .IP """\-y""" 4 +.el .IP "\f(CW\-y\fR" 4 +.IX Item "-y" +.PD 0 +.ie n .IP """\-\-separate\-files""" 4 +.el .IP "\f(CW\-\-separate\-files\fR" 4 +.IX Item "--separate-files" +.PD +This option affects annotated source output only. +Normally, \f(CW\*(C`gprof\*(C'\fR prints annotated source files +to standard-output. If this option is specified, +annotated source for a file named \fIpath/\fIfilename\fI\fR +is generated in the file \fI\fIfilename\fI\-ann\fR. If the underlying +file system would truncate \fI\fIfilename\fI\-ann\fR so that it +overwrites the original \fI\fIfilename\fI\fR, \f(CW\*(C`gprof\*(C'\fR generates +annotated source in the file \fI\fIfilename\fI.ann\fR instead (if the +original file name has an extension, that extension is \fIreplaced\fR +with \fI.ann\fR). +.ie n .IP """\-Z[\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-Z[\f(CIsymspec\f(CW]\fR" 4 +.IX Item "-Z[symspec]" +.PD 0 +.ie n .IP """\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]""" 4 +.el .IP "\f(CW\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]\fR" 4 +.IX Item "--no-exec-counts[=symspec]" +.PD +The \fB\-Z\fR option causes \f(CW\*(C`gprof\*(C'\fR not to +print a tally of functions and the number of times each was called. +If \fIsymspec\fR is specified, print tally, but exclude matching symbols. +.ie n .IP """\-r""" 4 +.el .IP "\f(CW\-r\fR" 4 +.IX Item "-r" +.PD 0 +.ie n .IP """\-\-function\-ordering""" 4 +.el .IP "\f(CW\-\-function\-ordering\fR" 4 +.IX Item "--function-ordering" +.PD +The \fB\-\-function\-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a +suggested function ordering for the program based on profiling data. +This option suggests an ordering which may improve paging, tlb and +cache behavior for the program on systems which support arbitrary +ordering of functions in an executable. +.Sp +The exact details of how to force the linker to place functions +in a particular order is system dependent and out of the scope of this +manual. +.ie n .IP """\-R \f(CImap_file\f(CW""" 4 +.el .IP "\f(CW\-R \f(CImap_file\f(CW\fR" 4 +.IX Item "-R map_file" +.PD 0 +.ie n .IP """\-\-file\-ordering \f(CImap_file\f(CW""" 4 +.el .IP "\f(CW\-\-file\-ordering \f(CImap_file\f(CW\fR" 4 +.IX Item "--file-ordering map_file" +.PD +The \fB\-\-file\-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a +suggested .o link line ordering for the program based on profiling data. +This option suggests an ordering which may improve paging, tlb and +cache behavior for the program on systems which do not support arbitrary +ordering of functions in an executable. +.Sp +Use of the \fB\-a\fR argument is highly recommended with this option. +.Sp +The \fImap_file\fR argument is a pathname to a file which provides +function name to object file mappings. The format of the file is similar to +the output of the program \f(CW\*(C`nm\*(C'\fR. +.Sp +.Vb 8 +\& c\-parse.o:00000000 T yyparse +\& c\-parse.o:00000004 C yyerrflag +\& c\-lang.o:00000000 T maybe_objc_method_name +\& c\-lang.o:00000000 T print_lang_statistics +\& c\-lang.o:00000000 T recognize_objc_keyword +\& c\-decl.o:00000000 T print_lang_identifier +\& c\-decl.o:00000000 T print_lang_type +\& ... +.Ve +.Sp +To create a \fImap_file\fR with \s-1GNU\s0 \f(CW\*(C`nm\*(C'\fR, type a command like +\&\f(CW\*(C`nm \-\-extern\-only \-\-defined\-only \-v \-\-print\-file\-name program\-name\*(C'\fR. +.ie n .IP """\-T""" 4 +.el .IP "\f(CW\-T\fR" 4 +.IX Item "-T" +.PD 0 +.ie n .IP """\-\-traditional""" 4 +.el .IP "\f(CW\-\-traditional\fR" 4 +.IX Item "--traditional" +.PD +The \fB\-T\fR option causes \f(CW\*(C`gprof\*(C'\fR to print its output in +\&\*(L"traditional\*(R" \s-1BSD\s0 style. +.ie n .IP """\-w \f(CIwidth\f(CW""" 4 +.el .IP "\f(CW\-w \f(CIwidth\f(CW\fR" 4 +.IX Item "-w width" +.PD 0 +.ie n .IP """\-\-width=\f(CIwidth\f(CW""" 4 +.el .IP "\f(CW\-\-width=\f(CIwidth\f(CW\fR" 4 +.IX Item "--width=width" +.PD +Sets width of output lines to \fIwidth\fR. +Currently only used when printing the function index at the bottom +of the call graph. +.ie n .IP """\-x""" 4 +.el .IP "\f(CW\-x\fR" 4 +.IX Item "-x" +.PD 0 +.ie n .IP """\-\-all\-lines""" 4 +.el .IP "\f(CW\-\-all\-lines\fR" 4 +.IX Item "--all-lines" +.PD +This option affects annotated source output only. +By default, only the lines at the beginning of a basic-block +are annotated. If this option is specified, every line in +a basic-block is annotated by repeating the annotation for the +first line. This behavior is similar to \f(CW\*(C`tcov\*(C'\fR's \fB\-a\fR. +.ie n .IP """\-\-demangle[=\f(CIstyle\f(CW]""" 4 +.el .IP "\f(CW\-\-demangle[=\f(CIstyle\f(CW]\fR" 4 +.IX Item "--demangle[=style]" +.PD 0 +.ie n .IP """\-\-no\-demangle""" 4 +.el .IP "\f(CW\-\-no\-demangle\fR" 4 +.IX Item "--no-demangle" +.PD +These options control whether \*(C+ symbol names should be demangled when +printing output. The default is to demangle symbols. The +\&\f(CW\*(C`\-\-no\-demangle\*(C'\fR option may be used to turn off demangling. Different +compilers have different mangling styles. The optional demangling style +argument can be used to choose an appropriate demangling style for your +compiler. +.SS "Analysis Options" +.IX Subsection "Analysis Options" +.ie n .IP """\-a""" 4 +.el .IP "\f(CW\-a\fR" 4 +.IX Item "-a" +.PD 0 +.ie n .IP """\-\-no\-static""" 4 +.el .IP "\f(CW\-\-no\-static\fR" 4 +.IX Item "--no-static" +.PD +The \fB\-a\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress the printing of +statically declared (private) functions. (These are functions whose +names are not listed as global, and which are not visible outside the +file/function/block where they were defined.) Time spent in these +functions, calls to/from them, etc., will all be attributed to the +function that was loaded directly before it in the executable file. +This option affects both the flat profile and the call graph. +.ie n .IP """\-c""" 4 +.el .IP "\f(CW\-c\fR" 4 +.IX Item "-c" +.PD 0 +.ie n .IP """\-\-static\-call\-graph""" 4 +.el .IP "\f(CW\-\-static\-call\-graph\fR" 4 +.IX Item "--static-call-graph" +.PD +The \fB\-c\fR option causes the call graph of the program to be +augmented by a heuristic which examines the text space of the object +file and identifies function calls in the binary machine code. +Since normal call graph records are only generated when functions are +entered, this option identifies children that could have been called, +but never were. Calls to functions that were not compiled with +profiling enabled are also identified, but only if symbol table +entries are present for them. +Calls to dynamic library routines are typically \fInot\fR found +by this option. +Parents or children identified via this heuristic +are indicated in the call graph with call counts of \fB0\fR. +.ie n .IP """\-D""" 4 +.el .IP "\f(CW\-D\fR" 4 +.IX Item "-D" +.PD 0 +.ie n .IP """\-\-ignore\-non\-functions""" 4 +.el .IP "\f(CW\-\-ignore\-non\-functions\fR" 4 +.IX Item "--ignore-non-functions" +.PD +The \fB\-D\fR option causes \f(CW\*(C`gprof\*(C'\fR to ignore symbols which +are not known to be functions. This option will give more accurate +profile data on systems where it is supported (Solaris and \s-1HPUX\s0 for +example). +.ie n .IP """\-k \f(CIfrom\f(CW/\f(CIto\f(CW""" 4 +.el .IP "\f(CW\-k \f(CIfrom\f(CW/\f(CIto\f(CW\fR" 4 +.IX Item "-k from/to" +The \fB\-k\fR option allows you to delete from the call graph any arcs from +symbols matching symspec \fIfrom\fR to those matching symspec \fIto\fR. +.ie n .IP """\-l""" 4 +.el .IP "\f(CW\-l\fR" 4 +.IX Item "-l" +.PD 0 +.ie n .IP """\-\-line""" 4 +.el .IP "\f(CW\-\-line\fR" 4 +.IX Item "--line" +.PD +The \fB\-l\fR option enables line-by-line profiling, which causes +histogram hits to be charged to individual source code lines, +instead of functions. This feature only works with programs compiled +by older versions of the \f(CW\*(C`gcc\*(C'\fR compiler. Newer versions of +\&\f(CW\*(C`gcc\*(C'\fR are designed to work with the \f(CW\*(C`gcov\*(C'\fR tool instead. +.Sp +If the program was compiled with basic-block counting enabled, +this option will also identify how many times each line of +code was executed. +While line-by-line profiling can help isolate where in a large function +a program is spending its time, it also significantly increases +the running time of \f(CW\*(C`gprof\*(C'\fR, and magnifies statistical +inaccuracies. +.ie n .IP """\-m \f(CInum\f(CW""" 4 +.el .IP "\f(CW\-m \f(CInum\f(CW\fR" 4 +.IX Item "-m num" +.PD 0 +.ie n .IP """\-\-min\-count=\f(CInum\f(CW""" 4 +.el .IP "\f(CW\-\-min\-count=\f(CInum\f(CW\fR" 4 +.IX Item "--min-count=num" +.PD +This option affects execution count output only. +Symbols that are executed less than \fInum\fR times are suppressed. +.ie n .IP """\-n\f(CIsymspec\f(CW""" 4 +.el .IP "\f(CW\-n\f(CIsymspec\f(CW\fR" 4 +.IX Item "-nsymspec" +.PD 0 +.ie n .IP """\-\-time=\f(CIsymspec\f(CW""" 4 +.el .IP "\f(CW\-\-time=\f(CIsymspec\f(CW\fR" 4 +.IX Item "--time=symspec" +.PD +The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis, +to only propagate times for symbols matching \fIsymspec\fR. +.ie n .IP """\-N\f(CIsymspec\f(CW""" 4 +.el .IP "\f(CW\-N\f(CIsymspec\f(CW\fR" 4 +.IX Item "-Nsymspec" +.PD 0 +.ie n .IP """\-\-no\-time=\f(CIsymspec\f(CW""" 4 +.el .IP "\f(CW\-\-no\-time=\f(CIsymspec\f(CW\fR" 4 +.IX Item "--no-time=symspec" +.PD +The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis, +not to propagate times for symbols matching \fIsymspec\fR. +.ie n .IP """\-S\f(CIfilename\f(CW""" 4 +.el .IP "\f(CW\-S\f(CIfilename\f(CW\fR" 4 +.IX Item "-Sfilename" +.PD 0 +.ie n .IP """\-\-external\-symbol\-table=\f(CIfilename\f(CW""" 4 +.el .IP "\f(CW\-\-external\-symbol\-table=\f(CIfilename\f(CW\fR" 4 +.IX Item "--external-symbol-table=filename" +.PD +The \fB\-S\fR option causes \f(CW\*(C`gprof\*(C'\fR to read an external symbol table +file, such as \fI/proc/kallsyms\fR, rather than read the symbol table +from the given object file (the default is \f(CW\*(C`a.out\*(C'\fR). This is useful +for profiling kernel modules. +.ie n .IP """\-z""" 4 +.el .IP "\f(CW\-z\fR" 4 +.IX Item "-z" +.PD 0 +.ie n .IP """\-\-display\-unused\-functions""" 4 +.el .IP "\f(CW\-\-display\-unused\-functions\fR" 4 +.IX Item "--display-unused-functions" +.PD +If you give the \fB\-z\fR option, \f(CW\*(C`gprof\*(C'\fR will mention all +functions in the flat profile, even those that were never called, and +that had no time spent in them. This is useful in conjunction with the +\&\fB\-c\fR option for discovering which routines were never called. +.SS "Miscellaneous Options" +.IX Subsection "Miscellaneous Options" +.ie n .IP """\-d[\f(CInum\f(CW]""" 4 +.el .IP "\f(CW\-d[\f(CInum\f(CW]\fR" 4 +.IX Item "-d[num]" +.PD 0 +.ie n .IP """\-\-debug[=\f(CInum\f(CW]""" 4 +.el .IP "\f(CW\-\-debug[=\f(CInum\f(CW]\fR" 4 +.IX Item "--debug[=num]" +.PD +The \fB\-d\fR \fInum\fR option specifies debugging options. +If \fInum\fR is not specified, enable all debugging. +.ie n .IP """\-h""" 4 +.el .IP "\f(CW\-h\fR" 4 +.IX Item "-h" +.PD 0 +.ie n .IP """\-\-help""" 4 +.el .IP "\f(CW\-\-help\fR" 4 +.IX Item "--help" +.PD +The \fB\-h\fR option prints command line usage. +.ie n .IP """\-O\f(CIname\f(CW""" 4 +.el .IP "\f(CW\-O\f(CIname\f(CW\fR" 4 +.IX Item "-Oname" +.PD 0 +.ie n .IP """\-\-file\-format=\f(CIname\f(CW""" 4 +.el .IP "\f(CW\-\-file\-format=\f(CIname\f(CW\fR" 4 +.IX Item "--file-format=name" +.PD +Selects the format of the profile data files. Recognized formats are +\&\fBauto\fR (the default), \fBbsd\fR, \fB4.4bsd\fR, \fBmagic\fR, and +\&\fBprof\fR (not yet supported). +.ie n .IP """\-s""" 4 +.el .IP "\f(CW\-s\fR" 4 +.IX Item "-s" +.PD 0 +.ie n .IP """\-\-sum""" 4 +.el .IP "\f(CW\-\-sum\fR" 4 +.IX Item "--sum" +.PD +The \fB\-s\fR option causes \f(CW\*(C`gprof\*(C'\fR to summarize the information +in the profile data files it read in, and write out a profile data +file called \fIgmon.sum\fR, which contains all the information from +the profile data files that \f(CW\*(C`gprof\*(C'\fR read in. The file \fIgmon.sum\fR +may be one of the specified input files; the effect of this is to +merge the data in the other input files into \fIgmon.sum\fR. +.Sp +Eventually you can run \f(CW\*(C`gprof\*(C'\fR again without \fB\-s\fR to analyze the +cumulative data in the file \fIgmon.sum\fR. +.ie n .IP """\-v""" 4 +.el .IP "\f(CW\-v\fR" 4 +.IX Item "-v" +.PD 0 +.ie n .IP """\-\-version""" 4 +.el .IP "\f(CW\-\-version\fR" 4 +.IX Item "--version" +.PD +The \fB\-v\fR flag causes \f(CW\*(C`gprof\*(C'\fR to print the current version +number, and then exit. +.SS "Deprecated Options" +.IX Subsection "Deprecated Options" +These options have been replaced with newer versions that use symspecs. +.ie n .IP """\-e \f(CIfunction_name\f(CW""" 4 +.el .IP "\f(CW\-e \f(CIfunction_name\f(CW\fR" 4 +.IX Item "-e function_name" +The \fB\-e\fR \fIfunction\fR option tells \f(CW\*(C`gprof\*(C'\fR to not print +information about the function \fIfunction_name\fR (and its +children...) in the call graph. The function will still be listed +as a child of any functions that call it, but its index number will be +shown as \fB[not printed]\fR. More than one \fB\-e\fR option may be +given; only one \fIfunction_name\fR may be indicated with each \fB\-e\fR +option. +.ie n .IP """\-E \f(CIfunction_name\f(CW""" 4 +.el .IP "\f(CW\-E \f(CIfunction_name\f(CW\fR" 4 +.IX Item "-E function_name" +The \f(CW\*(C`\-E \f(CIfunction\f(CW\*(C'\fR option works like the \f(CW\*(C`\-e\*(C'\fR option, but +time spent in the function (and children who were not called from +anywhere else), will not be used to compute the percentages-of-time for +the call graph. More than one \fB\-E\fR option may be given; only one +\&\fIfunction_name\fR may be indicated with each \fB\-E\fR option. +.ie n .IP """\-f \f(CIfunction_name\f(CW""" 4 +.el .IP "\f(CW\-f \f(CIfunction_name\f(CW\fR" 4 +.IX Item "-f function_name" +The \fB\-f\fR \fIfunction\fR option causes \f(CW\*(C`gprof\*(C'\fR to limit the +call graph to the function \fIfunction_name\fR and its children (and +their children...). More than one \fB\-f\fR option may be given; +only one \fIfunction_name\fR may be indicated with each \fB\-f\fR +option. +.ie n .IP """\-F \f(CIfunction_name\f(CW""" 4 +.el .IP "\f(CW\-F \f(CIfunction_name\f(CW\fR" 4 +.IX Item "-F function_name" +The \fB\-F\fR \fIfunction\fR option works like the \f(CW\*(C`\-f\*(C'\fR option, but +only time spent in the function and its children (and their +children...) will be used to determine total-time and +percentages-of-time for the call graph. More than one \fB\-F\fR option +may be given; only one \fIfunction_name\fR may be indicated with each +\&\fB\-F\fR option. The \fB\-F\fR option overrides the \fB\-E\fR option. +.SH "FILES" +.IX Header "FILES" +.ie n .IP """\f(CIa.out\f(CW""" 4 +.el .IP "\f(CW\f(CIa.out\f(CW\fR" 4 +.IX Item "a.out" +the namelist and text space. +.ie n .IP """\f(CIgmon.out\f(CW""" 4 +.el .IP "\f(CW\f(CIgmon.out\f(CW\fR" 4 +.IX Item "gmon.out" +dynamic call graph and profile. +.ie n .IP """\f(CIgmon.sum\f(CW""" 4 +.el .IP "\f(CW\f(CIgmon.sum\f(CW\fR" 4 +.IX Item "gmon.sum" +summarized dynamic call graph and profile. +.SH "BUGS" +.IX Header "BUGS" +The granularity of the sampling is shown, but remains +statistical at best. +We assume that the time for each execution of a function +can be expressed by the total time for the function divided +by the number of times the function is called. +Thus the time propagated along the call graph arcs to the function's +parents is directly proportional to the number of times that +arc is traversed. +.PP +Parents that are not themselves profiled will have the time of +their profiled children propagated to them, but they will appear +to be spontaneously invoked in the call graph listing, and will +not have their time propagated further. +Similarly, signal catchers, even though profiled, will appear +to be spontaneous (although for more obscure reasons). +Any profiled children of signal catchers should have their times +propagated properly, unless the signal catcher was invoked during +the execution of the profiling routine, in which case all is lost. +.PP +The profiled program must call \f(CW\*(C`exit\*(C'\fR(2) +or return normally for the profiling information to be saved +in the \fIgmon.out\fR file. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fImonitor\fR\|(3), \fIprofil\fR\|(2), \fIcc\fR\|(1), \fIprof\fR\|(1), and the Info entry for \fIgprof\fR. +.PP +\&\*(L"An Execution Profiler for Modular Programs\*(R", +by S. Graham, P. Kessler, M. McKusick; +Software \- Practice and Experience, +Vol. 13, pp. 671\-685, 1983. +.PP +\&\*(L"gprof: A Call Graph Execution Profiler\*(R", +by S. Graham, P. Kessler, M. McKusick; +Proceedings of the \s-1SIGPLAN\s0 '82 Symposium on Compiler Construction, +\&\s-1SIGPLAN\s0 Notices, Vol. 17, No 6, pp. 120\-126, June 1982. +.SH "COPYRIGHT" +.IX Header "COPYRIGHT" +Copyright (c) 1988, 1992, 1997, 1998, 1999, 2000, 2001, 2003, +2007, 2008, 2009 Free Software Foundation, Inc. +.PP +Permission is granted to copy, distribute and/or modify this document +under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 +or any later version published by the Free Software Foundation; +with no Invariant Sections, with no Front-Cover Texts, and with no +Back-Cover Texts. A copy of the license is included in the +section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R". diff --git a/gnu/usr.bin/binutils222/incdump/Makefile b/gnu/usr.bin/binutils222/incdump/Makefile new file mode 100644 index 0000000000..19c90750dc --- /dev/null +++ b/gnu/usr.bin/binutils222/incdump/Makefile @@ -0,0 +1,15 @@ +.include "../Makefile.gld" + +PROG_CXX= incremental-dump +NOMAN= +WARNS= 1 +CFLAGS+= -I${.CURDIR}/../libgold + +DPADD= ${RELTOP}/libgold/libgold.a +LDADD= ${RELTOP}/libgold/libgold.a +DPADD+= ${RELTOP}/libiberty/libiberty.a +LDADD+= ${RELTOP}/libiberty/libiberty.a +DPADD+= ${LIBZ} +LDADD+= -lz + +.include diff --git a/gnu/usr.bin/binutils222/ld/Makefile b/gnu/usr.bin/binutils222/ld/Makefile new file mode 100644 index 0000000000..59f93b878a --- /dev/null +++ b/gnu/usr.bin/binutils222/ld/Makefile @@ -0,0 +1,66 @@ +ELF_SCR_EXT= x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw + +.include "../Makefile.inc0" + +.PATH: ${SRCDIR}/ld + +PROG= ld.bfd +MAN= ld222.1 +MLINKS+=ld222.1 ld.1 +LIBEXEC_BINUTILS= ${BINDIR}/.. +SCRIPTDIR= ${LIBEXEC_BINUTILS}/ldscripts +SRCS+= ldgram.y \ + ldlex.l \ + lexsup.c \ + ldlang.c \ + mri.c \ + ldctor.c \ + ldmain.c \ + ldwrite.c \ + ldexp.c \ + ldemul.c \ + ldver.c \ + ldmisc.c \ + ldfile.c \ + ldcref.c + +SRCS+= ldemul-list.h + +WARNS= 1 +CFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" +CFLAGS+= -I${SRCDIR}/ld -I${SRCDIR}/bfd -I${.OBJDIR}/../libbfd +CFLAGS+= -DBINDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" +CFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" +NOSHARED?= yes + +CLEANDIRS+= ldscripts tmpdir +CLEANFILES+= ldemul-list.h stringify.sed + +LINKS= ${BINDIR}/ld.bfd ${BINDIR}/ld + +EMXFR= +EMLST= +.for _e in ${EMS} +EMXFR+= extern ld_emulation_xfer_type ld_${_e}_emulation; +EMLST+= &ld_${_e}_emulation, +.endfor + +ldemul-list.h: + echo "${EMXFR}" > ${.TARGET} + echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET} + +stringify.sed: + ${LN} -sf ${SRCDIR}/ld/emultempl/astring.sed ${.TARGET} + +ld222.1: ${SRCDIR}/ld/ld.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= ld222.1 + +afterinstall: install-ldscripts + +install-ldscripts: ${LDSCRIPTS:S|^|ldscripts/|} + ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + ${.ALLSRC} ${DESTDIR}${SCRIPTDIR} + +.include diff --git a/gnu/usr.bin/binutils222/ld/Makefile.i386 b/gnu/usr.bin/binutils222/ld/Makefile.i386 new file mode 100644 index 0000000000..b960d051f0 --- /dev/null +++ b/gnu/usr.bin/binutils222/ld/Makefile.i386 @@ -0,0 +1,36 @@ +TARGET_TUPLE?= i386-just-dragonfly + +.if ${TARGET_ARCH} == "i386" +NATIVE_EMULATION= elf_i386 +HOST= ${TARGET_TUPLE} +CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\" +CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\" +_i386_path= ${USRDATA_PREFIX}/usr/lib +.else +_i386_path= /usr/cross/i386-dragonfly/usr/lib +.endif +EMS+= ${NATIVE_EMULATION} +.for ext in ${ELF_SCR_EXT} +LDSCRIPTS_${NATIVE_EMULATION}+= ${NATIVE_EMULATION}.${ext} +.endfor +LDSCRIPTS+= ${LDSCRIPTS_${NATIVE_EMULATION}} +SRCS+= e${NATIVE_EMULATION}.c +CLEANFILES+= e${NATIVE_EMULATION}.c + +e${NATIVE_EMULATION}.c ${LDSCRIPTS_${NATIVE_EMULATION}}: \ + emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \ + scripttempl/elf.sc genscripts.sh stringify.sed + sh ${SRCDIR}/ld/genscripts.sh \ + ${SRCDIR:Q}/ld \ + ${_i386_path:Q} \ + "" \ + "" \ + ${HOST} \ + ${TARGET_TUPLE:Q} \ + ${TARGET_TUPLE:Q} \ + ${NATIVE_EMULATION:Q} \ + "/usr/lib" \ + no \ + no \ + ${NATIVE_EMULATION:Q} \ + ${TARGET_TUPLE:Q} diff --git a/gnu/usr.bin/binutils222/ld/Makefile.x86_64 b/gnu/usr.bin/binutils222/ld/Makefile.x86_64 new file mode 100644 index 0000000000..9cf6b2b614 --- /dev/null +++ b/gnu/usr.bin/binutils222/ld/Makefile.x86_64 @@ -0,0 +1,61 @@ +TARGET_TUPLE?= x86_64-just-dragonfly + +NATIVE_EMULATION= elf_x86_64 +HOST= ${TARGET_TUPLE} +CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\" +CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\" +_x86_64_path= ${USRDATA_PREFIX}/usr/lib +EMS+= ${NATIVE_EMULATION} +.for ext in ${ELF_SCR_EXT} +LDSCRIPTS_${NATIVE_EMULATION}+= ${NATIVE_EMULATION}.${ext} +.endfor +LDSCRIPTS+= ${LDSCRIPTS_${NATIVE_EMULATION}} +SRCS+= e${NATIVE_EMULATION}.c +CLEANFILES+= e${NATIVE_EMULATION}.c + +e${NATIVE_EMULATION}.c ${LDSCRIPTS_${NATIVE_EMULATION}}: \ + emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \ + scripttempl/elf.sc genscripts.sh stringify.sed + sh ${SRCDIR}/ld/genscripts.sh \ + ${SRCDIR:Q}/ld \ + ${_x86_64_path:Q} \ + "" \ + "" \ + ${HOST} \ + ${TARGET_TUPLE:Q} \ + ${TARGET_TUPLE:Q} \ + ${NATIVE_EMULATION:Q} \ + "/usr/lib" \ + no \ + no \ + ${NATIVE_EMULATION:Q} \ + ${TARGET_TUPLE:Q} + +X86_EMULATION= elf_i386 +# XXX adjust path +_i386_path= ${USRDATA_PREFIX}/usr/lib/i386 +EMS+= ${X86_EMULATION} +.for ext in ${ELF_SCR_EXT} +LDSCRIPTS_${X86_EMULATION}+= ${X86_EMULATION}.${ext} +.endfor +LDSCRIPTS+= ${LDSCRIPTS_${X86_EMULATION}} + +SRCS+= e${X86_EMULATION}.c +CLEANFILES+= e${X86_EMULATION}.c +e${X86_EMULATION}.c ${LDSCRIPTS_${X86_EMULATION}}: \ + emulparams/${X86_EMULATION}.sh emultempl/elf32.em \ + scripttempl/elf.sc genscripts.sh stringify.sed + sh ${SRCDIR}/ld/genscripts.sh \ + ${SRCDIR:Q}/ld \ + ${_i386_path:Q} \ + "" \ + "" \ + ${HOST} \ + ${TARGET_TUPLE:Q} \ + ${TARGET_TUPLE:Q} \ + ${X86_EMULATION:Q} \ + "" \ + no \ + no \ + ${X86_EMULATION:Q} \ + ${TARGET_TUPLE:Q} diff --git a/gnu/usr.bin/binutils222/ld/config.h b/gnu/usr.bin/binutils222/ld/config.h new file mode 100644 index 0000000000..8fde17dc0d --- /dev/null +++ b/gnu/usr.bin/binutils222/ld/config.h @@ -0,0 +1,219 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Additional extension a shared object might have. */ +/* #undef EXTRA_SHLIB_EXTENSION */ + +/* Define to choose default GOT handling scheme */ +#define GOT_HANDLING_DEFAULT GOT_HANDLING_TARGET_DEFAULT + +/* Define to 1 if you have the `close' function. */ +#define HAVE_CLOSE 1 + +/* Define to 1 if you have the declaration of `environ', and to 0 if you + don't. */ +#define HAVE_DECL_ENVIRON 0 + +/* Define to 1 if you have the declaration of `free', and to 0 if you don't. + */ +#define HAVE_DECL_FREE 1 + +/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. + */ +#define HAVE_DECL_GETENV 1 + +/* Is the prototype for getopt in in the expected format? */ +#define HAVE_DECL_GETOPT 1 + +/* Define to 1 if you have the declaration of `sbrk', and to 0 if you don't. + */ +#define HAVE_DECL_SBRK 1 + +/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't. + */ +#define HAVE_DECL_STRSTR 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the `dlclose' function. */ +#define HAVE_DLCLOSE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dlsym' function. */ +#define HAVE_DLSYM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ELF_HINTS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `glob' function. */ +#define HAVE_GLOB 1 + +/* Define .init_array/.fini_array sections are available and working. */ +/* #undef HAVE_INITFINI_ARRAY */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the `lseek' function. */ +#define HAVE_LSEEK 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mkstemp' function. */ +#define HAVE_MKSTEMP 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the `open' function. */ +#define HAVE_OPEN 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define to 1 if you have the `sbrk' function. */ +#define HAVE_SBRK 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WINDOWS_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "ld" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* The size of `long', as computed by sizeof. */ +/* #undef SIZEOF_LONG */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Use b modifier when opening binary files? */ +/* #undef USE_BINARY_FOPEN */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version number of package */ +#define VERSION "2.22" + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#define YYTEXT_POINTER 1 + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ diff --git a/gnu/usr.bin/binutils222/libbfd/Makefile b/gnu/usr.bin/binutils222/libbfd/Makefile new file mode 100644 index 0000000000..d26c3e8d73 --- /dev/null +++ b/gnu/usr.bin/binutils222/libbfd/Makefile @@ -0,0 +1,76 @@ +.include "../Makefile.inc0" + +LIB= bfd +INTERNALLIB= true + +CONTRIBDIR= ${SRCDIR}/bfd +.PATH: ${CONTRIBDIR} + +CFLAGS+= -I${SRCDIR}/include -I${CONTRIBDIR} -I${.CURDIR} -I${.OBJDIR} +# XXX no clue what DEBUGDIR is for +CFLAGS+= -DDEBUGDIR='"/usr/lib/debug"' + +SRCS= archive.c archures.c bfd.c bfdio.c bfdwin.c \ + cache.c coffgen.c corefile.c \ + format.c init.c libbfd.c opncls.c reloc.c \ + section.c syms.c targets.c hash.c linker.c \ + srec.c binary.c tekhex.c ihex.c stabs.c stab-syms.c \ + merge.c dwarf2.c simple.c compress.c verilog.c + +SRCS+= targmatch.h elf32-target.h elf64-target.h +CLEANFILES+= elf64-target.h elf32-target.h targmatch.h + +targmatch.h: config.bfd targmatch.sed + sed -f ${CONTRIBDIR}/targmatch.sed < ${CONTRIBDIR}/config.bfd > ${.TARGET} + +elf32-target.h: elfxx-target.h + sed -e s/NN/32/g < ${CONTRIBDIR}/elfxx-target.h > ${.TARGET} +elf64-target.h: elfxx-target.h + sed -e s/NN/64/g < ${CONTRIBDIR}/elfxx-target.h > ${.TARGET} + +TARGET_ARCH?= ${MACHINE_ARCH} +.include "Makefile.${TARGET_ARCH}" + +_selvec= +.for _v in ${VECTORS} +CFLAGS+= -DHAVE_${_v} +.if !empty(_selvec) +_selvec+= , +.endif +_selvec+= &${_v} +.endfor +CFLAGS+= -DSELECT_VECS='${_selvec}' +CFLAGS+= -DSELECT_ARCHITECTURES='${ARCHITECTURES:S/^/\&/:S/$/,/} 0' +CFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR} + + +SRCS+= bfd.h +CLEANFILES+= bfd.h + +# Used to do keyword replacement in bfd-X.h +# +BFD_HOST_64_BIT_DEFINED?=1 +BFD_HOST_LONG_LONG?=1 +.include "Makefile.host.${MACHINE_ARCH}" + +bfd.h: ${CONTRIBDIR}/bfd-in2.h + sed -e "s/@supports_plugins@/0/g" \ + -e "s/@wordsize@/${BFD_ARCH_SIZE}/g" \ + -e "s/@bfd_default_target_size@/${BFD_DEFAULT_TARGET_SIZE}/g" \ + -e "s/@BFD_HOST_64BIT_LONG@/${BFD_HOST_64BIT_LONG}/g" \ + -e "s/@BFD_HOST_64BIT_LONG_LONG@/${BFD_HOST_64BIT_LONG_LONG}/g" \ + -e "s/@BFD_HOST_64_BIT@/${BFD_HOST_64_BIT}/g" \ + -e "s/@BFD_HOST_U_64_BIT@/${BFD_HOST_U_64_BIT}/g" \ + -e "s/@BFD_HOST_64_BIT_DEFINED@/${BFD_HOST_64_BIT_DEFINED}/g" \ + -e "s/@bfd_file_ptr@/${BFD_HOST_64_BIT}/g" \ + -e "s/@BFD_HOSTPTR_T@/${BFD_HOSTPTR_T}/g" \ + < ${CONTRIBDIR}/bfd-in2.h > bfd.h.new + mv -f bfd.h.new bfd.h + +SRCS+= bfd_stdint.h +CLEANFILES+= bfd_stdint.h + +bfd_stdint.h: + touch ${.TARGET} + +.include diff --git a/gnu/usr.bin/binutils222/libbfd/Makefile.host.i386 b/gnu/usr.bin/binutils222/libbfd/Makefile.host.i386 new file mode 100644 index 0000000000..044ae550b5 --- /dev/null +++ b/gnu/usr.bin/binutils222/libbfd/Makefile.host.i386 @@ -0,0 +1,7 @@ +# Used to do keyword replacement in bfd-X.h +# +BFD_HOST_64BIT_LONG?=0 +BFD_HOST_64BIT_LONG_LONG?=1 +BFD_HOST_64_BIT?=long long +BFD_HOST_U_64_BIT?=unsigned long long +BFD_HOSTPTR_T?=unsigned long diff --git a/gnu/usr.bin/binutils222/libbfd/Makefile.host.x86_64 b/gnu/usr.bin/binutils222/libbfd/Makefile.host.x86_64 new file mode 100644 index 0000000000..0604dde437 --- /dev/null +++ b/gnu/usr.bin/binutils222/libbfd/Makefile.host.x86_64 @@ -0,0 +1,8 @@ +# Used to do keyword replacement in bfd-X.h +# +BFD_HOST_64BIT_LONG?=1 +BFD_HOST_64BIT_LONG_LONG?=0 +BFD_HOST_64_BIT?=long +BFD_HOST_U_64_BIT?=unsigned long +BFD_HOSTPTR_T?=unsigned long +BFD_ARCH_SIZE=64 diff --git a/gnu/usr.bin/binutils222/libbfd/Makefile.i386 b/gnu/usr.bin/binutils222/libbfd/Makefile.i386 new file mode 100644 index 0000000000..cd5e8ade04 --- /dev/null +++ b/gnu/usr.bin/binutils222/libbfd/Makefile.i386 @@ -0,0 +1,20 @@ +# from Makefile, BFD_BACKENDS/BFD_MACHINES +SRCS+= elf32-i386.c elf-ifunc.c elf-vxworks.c elf32.c elf.c \ + elflink.c elf-attrs.c elf-strtab.c elf-eh-frame.c dwarf1.c elf32-gen.c +SRCS+= cpu-i386.c + +SRCS+= elf32-target.h + +# for crossbuilding i386 on x86_64 +SRCS+= archive64.c + +VECTORS= bfd_elf32_i386_vec \ + bfd_elf32_little_generic_vec \ + bfd_elf32_big_generic_vec + +DEFAULT_VECTOR= bfd_elf32_i386_vec + +ARCHITECTURES= bfd_i386_arch + +BFD_DEFAULT_TARGET_SIZE?= 32 +BFD_ARCH_SIZE?= 32 diff --git a/gnu/usr.bin/binutils222/libbfd/Makefile.x86_64 b/gnu/usr.bin/binutils222/libbfd/Makefile.x86_64 new file mode 100644 index 0000000000..0116283f5d --- /dev/null +++ b/gnu/usr.bin/binutils222/libbfd/Makefile.x86_64 @@ -0,0 +1,23 @@ +# from Makefile, BFD_BACKENDS/BFD_MACHINES +SRCS+= elf64-x86-64.c elf-ifunc.c elf64.c elf.c elflink.c elf-attrs.c \ + elf-strtab.c elf-eh-frame.c dwarf1.c elf32-i386.c elf-vxworks.c \ + elf32.c elf64-gen.c elf32-gen.c +SRCS+= cpu-i386.c cpu-l1om.c + +# BFD64_LIBS +SRCS+= archive64.c + +VECTORS= bfd_elf64_x86_64_vec \ + bfd_elf32_i386_vec \ + bfd_elf64_l1om_vec \ + bfd_elf64_little_generic_vec \ + bfd_elf64_big_generic_vec \ + bfd_elf32_little_generic_vec \ + bfd_elf32_big_generic_vec + +DEFAULT_VECTOR= bfd_elf64_x86_64_vec + +ARCHITECTURES= bfd_i386_arch bfd_l1om_arch + +BFD_DEFAULT_TARGET_SIZE?= 64 +BFD_ARCH_SIZE= 64 diff --git a/gnu/usr.bin/binutils222/libbfd/config.h b/gnu/usr.bin/binutils222/libbfd/config.h new file mode 100644 index 0000000000..8bdb8facf5 --- /dev/null +++ b/gnu/usr.bin/binutils222/libbfd/config.h @@ -0,0 +1,364 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.in by autoheader. */ + +/* Name of host specific core header file to include in elf.c. */ +/* #undef CORE_HEADER */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ALLOCA_H */ + +/* Define to 1 if you have the declaration of `basename', and to 0 if you + don't. */ +#define HAVE_DECL_BASENAME 0 + +/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */ +#define HAVE_DECL_FFS 1 + +/* Define to 1 if you have the declaration of `free', and to 0 if you don't. + */ +#define HAVE_DECL_FREE 1 + +/* Define to 1 if you have the declaration of `fseeko', and to 0 if you don't. + */ +#define HAVE_DECL_FSEEKO 1 + +/* Define to 1 if you have the declaration of `fseeko64', and to 0 if you + don't. */ +#define HAVE_DECL_FSEEKO64 0 + +/* Define to 1 if you have the declaration of `ftello', and to 0 if you don't. + */ +#define HAVE_DECL_FTELLO 1 + +/* Define to 1 if you have the declaration of `ftello64', and to 0 if you + don't. */ +#define HAVE_DECL_FTELLO64 0 + +/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. + */ +#define HAVE_DECL_GETENV 1 + +/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't. + */ +#define HAVE_DECL_MALLOC 1 + +/* Define to 1 if you have the declaration of `realloc', and to 0 if you + don't. */ +#define HAVE_DECL_REALLOC 1 + +/* Define to 1 if you have the declaration of `snprintf', and to 0 if you + don't. */ +#define HAVE_DECL_SNPRINTF 1 + +/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't. + */ +#define HAVE_DECL_STPCPY 1 + +/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't. + */ +#define HAVE_DECL_STRSTR 1 + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VSNPRINTF 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `fcntl' function. */ +#define HAVE_FCNTL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `fdopen' function. */ +#define HAVE_FDOPEN 1 + +/* Define to 1 if you have the `fileno' function. */ +#define HAVE_FILENO 1 + +/* Define to 1 if you have the `fopen64' function. */ +/* #undef HAVE_FOPEN64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fseeko64' function. */ +/* #undef HAVE_FSEEKO64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftello64' function. */ +/* #undef HAVE_FTELLO64 */ + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define if has lwpstatus_t. */ +/* #undef HAVE_LWPSTATUS_T */ + +/* Define if has lwpstatus_t.pr_context. */ +/* #undef HAVE_LWPSTATUS_T_PR_CONTEXT */ + +/* Define if has lwpstatus_t.pr_fpreg. */ +/* #undef HAVE_LWPSTATUS_T_PR_FPREG */ + +/* Define if has lwpstatus_t.pr_reg. */ +/* #undef HAVE_LWPSTATUS_T_PR_REG */ + +/* Define if has lwpxstatus_t. */ +/* #undef HAVE_LWPXSTATUS_T */ + +/* Define to 1 if you have the `madvise' function. */ +#define HAVE_MADVISE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mprotect' function. */ +#define HAVE_MPROTECT 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define if has prpsinfo32_t. */ +/* #undef HAVE_PRPSINFO32_T */ + +/* Define if has prpsinfo32_t.pr_pid. */ +/* #undef HAVE_PRPSINFO32_T_PR_PID */ + +/* Define if has prpsinfo_t. */ +#define HAVE_PRPSINFO_T 1 + +/* Define if has prpsinfo_t.pr_pid. */ +/* #undef HAVE_PRPSINFO_T_PR_PID */ + +/* Define if has prstatus32_t. */ +/* #undef HAVE_PRSTATUS32_T */ + +/* Define if has prstatus32_t.pr_who. */ +/* #undef HAVE_PRSTATUS32_T_PR_WHO */ + +/* Define if has prstatus_t. */ +#define HAVE_PRSTATUS_T 1 + +/* Define if has prstatus_t.pr_who. */ +/* #undef HAVE_PRSTATUS_T_PR_WHO */ + +/* Define if has psinfo32_t. */ +/* #undef HAVE_PSINFO32_T */ + +/* Define if has psinfo32_t.pr_pid. */ +/* #undef HAVE_PSINFO32_T_PR_PID */ + +/* Define if has psinfo_t. */ +/* #undef HAVE_PSINFO_T */ + +/* Define if has psinfo_t.pr_pid. */ +/* #undef HAVE_PSINFO_T_PR_PID */ + +/* Define if has pstatus32_t. */ +/* #undef HAVE_PSTATUS32_T */ + +/* Define if has pstatus_t. */ +/* #undef HAVE_PSTATUS_T */ + +/* Define if has pxstatus_t. */ +/* #undef HAVE_PXSTATUS_T */ + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDDEF_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strtoull' function. */ +#define HAVE_STRTOULL 1 + +/* Define if struct core_dumpx has member c_impl */ +/* #undef HAVE_ST_C_IMPL */ + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PROCFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if has win32_pstatus_t. */ +/* #undef HAVE_WIN32_PSTATUS_T */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "bfd" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* The size of `char', as computed by sizeof. */ +/* #undef SIZEOF_CHAR */ + +/* The size of `int', as computed by sizeof. */ +/* #undef SIZEOF_INT */ + +/* The size of `long', as computed by sizeof. */ +/* #undef SIZEOF_LONG */ + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `short', as computed by sizeof. */ +/* #undef SIZEOF_SHORT */ + +/* The size of `void *', as computed by sizeof. */ +/* #undef SIZEOF_VOID_P */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and . */ +#define STRING_WITH_STRINGS 1 + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Name of host specific header file to include in trad-core.c. */ +/* #undef TRAD_HEADER */ + +/* Use b modifier when opening binary files? */ +/* #undef USE_BINARY_FOPEN */ + +/* Define if we should use leading underscore on 64 bit mingw targets */ +/* #undef USE_MINGW64_LEADING_UNDERSCORES */ + +/* Use mmap if it's available? */ +/* #undef USE_MMAP */ + +/* Define if we should default to creating read-only plt entries */ +/* #undef USE_SECUREPLT */ + +/* Define if we may generate symbols with ELF's STT_COMMON type */ +/* #undef USE_STT_COMMON */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version number of package */ +#define VERSION "2.22" + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ diff --git a/gnu/usr.bin/binutils222/libbinutils/Makefile b/gnu/usr.bin/binutils222/libbinutils/Makefile new file mode 100644 index 0000000000..c53978ad68 --- /dev/null +++ b/gnu/usr.bin/binutils222/libbinutils/Makefile @@ -0,0 +1,33 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils + +LIB= binutils + +SRCS+= bucomm.c \ + version.c \ + filemode.c \ + arparse.y \ + arlex.l \ + arsup.c \ + rename.c \ + binemul.c \ + emul_vanilla.c \ + rddbg.c \ + debug.c \ + stabs.c \ + ieee.c \ + rdcoff.c \ + wrstabs.c \ + dwarf.c \ + prdbg.c \ + unwind-ia64.c + +WARNS= 0 +CFLAGS+= -DTARGET=\"${TARGET_CANONICAL}\" +CFLAGS+= -Dbin_dummy_emulation=bin_vanilla_emulation +INTERNALLIB= true + +.include "Makefile.${TARGET_ARCH}" + +.include diff --git a/gnu/usr.bin/binutils222/libbinutils/Makefile.i386 b/gnu/usr.bin/binutils222/libbinutils/Makefile.i386 new file mode 100644 index 0000000000..3c405ef3aa --- /dev/null +++ b/gnu/usr.bin/binutils222/libbinutils/Makefile.i386 @@ -0,0 +1 @@ +TARGET_CANONICAL= i386-just-dragonfly diff --git a/gnu/usr.bin/binutils222/libbinutils/Makefile.x86_64 b/gnu/usr.bin/binutils222/libbinutils/Makefile.x86_64 new file mode 100644 index 0000000000..70b10d8182 --- /dev/null +++ b/gnu/usr.bin/binutils222/libbinutils/Makefile.x86_64 @@ -0,0 +1 @@ +TARGET_CANONICAL= x86_64-just-dragonfly diff --git a/gnu/usr.bin/binutils222/libbinutils/config.h b/gnu/usr.bin/binutils222/libbinutils/config.h new file mode 100644 index 0000000000..08865b1b96 --- /dev/null +++ b/gnu/usr.bin/binutils222/libbinutils/config.h @@ -0,0 +1,240 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.in by autoheader. */ + +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +/* #undef CRAY_STACKSEG_END */ + +/* Define to 1 if using `alloca.c'. */ +/* #undef C_ALLOCA */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Suffix used for executables, if any. */ +#define EXECUTABLE_SUFFIX "" + +/* Define to 1 if you have `alloca', as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +/* #undef HAVE_ALLOCA_H */ + +/* Define to 1 if you have the declaration of `environ', and to 0 if you + don't. */ +#define HAVE_DECL_ENVIRON 0 + +/* Define to 1 if you have the declaration of `fprintf', and to 0 if you + don't. */ +#define HAVE_DECL_FPRINTF 1 + +/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you + don't. */ +#define HAVE_DECL_GETC_UNLOCKED 1 + +/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. + */ +#define HAVE_DECL_GETENV 1 + +/* Is the prototype for getopt in in the expected format? */ +#define HAVE_DECL_GETOPT 1 + +/* Define to 1 if you have the declaration of `sbrk', and to 0 if you don't. + */ +#define HAVE_DECL_SBRK 1 + +/* Define to 1 if you have the declaration of `snprintf', and to 0 if you + don't. */ +#define HAVE_DECL_SNPRINTF 1 + +/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't. + */ +#define HAVE_DECL_STPCPY 1 + +/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't. + */ +#define HAVE_DECL_STRSTR 1 + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VSNPRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Does the platform use an executable suffix? */ +/* #undef HAVE_EXECUTABLE_SUFFIX */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `getc_unlocked' function. */ +#define HAVE_GETC_UNLOCKED 1 + +/* Does define struct utimbuf? */ +#define HAVE_GOOD_UTIME_H 1 + +/* Define if you have the iconv() function. */ +#define HAVE_ICONV 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mkdtemp' function. */ +#define HAVE_MKDTEMP 1 + +/* Define to 1 if you have the `mkstemp' function. */ +#define HAVE_MKSTEMP 1 + +/* Define to 1 if you have the `sbrk' function. */ +#define HAVE_SBRK 1 + +/* Define to 1 if you have the `setmode' function. */ +#define HAVE_SETMODE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strcoll' function. */ +#define HAVE_STRCOLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Is the type time_t defined in ? */ +#define HAVE_TIME_T_IN_TIME_H 1 + +/* Is the type time_t defined in ? */ +#define HAVE_TIME_T_IN_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define as const if the declaration of iconv() needs const. */ +#define ICONV_CONST + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "binutils" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +/* #undef STACK_DIRECTION */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Configured target name. */ +/* #define TARGET "x86_64-unknown-dragonfly2.13" */ + +/* Define to 1 if user symbol names have a leading underscore, 0 if not. */ +#define TARGET_PREPENDS_UNDERSCORE 0 + +/* Use b modifier when opening binary files? */ +/* #undef USE_BINARY_FOPEN */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version number of package */ +#define VERSION "2.22" + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#define YYTEXT_POINTER 1 + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ diff --git a/gnu/usr.bin/binutils222/libgold/Makefile b/gnu/usr.bin/binutils222/libgold/Makefile new file mode 100644 index 0000000000..e42bccb88c --- /dev/null +++ b/gnu/usr.bin/binutils222/libgold/Makefile @@ -0,0 +1,66 @@ +.include "../Makefile.gld" + +LIB= gold +WARNS= 1 +INTERNALLIB= true + +SRCS+= archive.cc \ + attributes.cc \ + binary.cc \ + common.cc \ + compressed_output.cc \ + copy-relocs.cc \ + cref.cc \ + defstd.cc \ + descriptors.cc \ + dirsearch.cc \ + dwarf_reader.cc \ + dynobj.cc \ + ehframe.cc \ + errors.cc \ + expression.cc \ + fileread.cc \ + gc.cc \ + gold-threads.cc \ + gold.cc \ + icf.cc \ + incremental.cc \ + int_encoding.cc \ + layout.cc \ + mapfile.cc \ + merge.cc \ + object.cc \ + options.cc \ + output.cc \ + parameters.cc \ + plugin.cc \ + readsyms.cc \ + reduced_debug_output.cc \ + reloc.cc \ + resolve.cc \ + script-sections.cc \ + script.cc \ + stringpool.cc \ + symtab.cc \ + target.cc \ + target-select.cc \ + timer.cc \ + version.cc \ + workqueue-threads.cc \ + workqueue.cc \ + yyscript.c \ + mremap.c + +# The next files aren't really part of libgold, but they are common to both +# ld.gold and incremental dump, so add them here to avoid building object +# files twice + +SRCS+= i386.cc \ + x86_64.cc \ + sparc.cc \ + powerpc.cc \ + arm.cc \ + arm-reloc-property.cc + + +.include diff --git a/gnu/usr.bin/binutils222/libgold/Makefile.i386 b/gnu/usr.bin/binutils222/libgold/Makefile.i386 new file mode 100644 index 0000000000..81bda252af --- /dev/null +++ b/gnu/usr.bin/binutils222/libgold/Makefile.i386 @@ -0,0 +1,7 @@ +GOLD_TARGET= i386 +GOLD_DEFAULT_MACHINE= EM_386 +GOLD_DEFAULT_SIZE= 32 + +GOLD_EXTRA_TARGET= +GOLD_EXTRA_MACHINE= +GOLD_EXTRA_SIZE= diff --git a/gnu/usr.bin/binutils222/libgold/Makefile.x86_64 b/gnu/usr.bin/binutils222/libgold/Makefile.x86_64 new file mode 100644 index 0000000000..04774f5ad4 --- /dev/null +++ b/gnu/usr.bin/binutils222/libgold/Makefile.x86_64 @@ -0,0 +1,7 @@ +GOLD_TARGET= x86_64 +GOLD_DEFAULT_MACHINE= EM_X86_64 +GOLD_DEFAULT_SIZE= 64 + +GOLD_EXTRA_TARGET= i386 +GOLD_EXTRA_MACHINE= EM_386 +GOLD_EXTRA_SIZE= 32 diff --git a/gnu/usr.bin/binutils222/libgold/config.h b/gnu/usr.bin/binutils222/libgold/config.h new file mode 100644 index 0000000000..2d6ba20ced --- /dev/null +++ b/gnu/usr.bin/binutils222/libgold/config.h @@ -0,0 +1,244 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Define to enable linker plugins */ +/* #undef ENABLE_PLUGINS */ + +/* Define to do multi-threaded linking */ +/* #undef ENABLE_THREADS */ + +/* Default big endian (true or false) */ +#define GOLD_DEFAULT_BIG_ENDIAN false + +/* Default machine code */ +/* #undef GOLD_DEFAULT_MACHINE */ + +/* Default OSABI code */ +#define GOLD_DEFAULT_OSABI ELFOSABI_NONE + +/* Default size (32 or 64) */ +/* #undef GOLD_DEFAULT_SIZE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BYTESWAP_H */ + +/* Define to 1 if you have the `chsize' function. */ +/* #undef HAVE_CHSIZE */ + +/* Define to 1 if you have the declaration of `asprintf', and to 0 if you + don't. */ +#define HAVE_DECL_ASPRINTF 1 + +/* Define to 1 if you have the declaration of `basename', and to 0 if you + don't. */ +#define HAVE_DECL_BASENAME 0 + +/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */ +#define HAVE_DECL_FFS 1 + +/* Define to 1 if you have the declaration of `memmem', and to 0 if you don't. + */ +#define HAVE_DECL_MEMMEM 1 + +/* Define to 1 if you have the declaration of `snprintf', and to 0 if you + don't. */ +#define HAVE_DECL_SNPRINTF 1 + +/* Define to 1 if you have the declaration of `strndup', and to 0 if you + don't. */ +#define HAVE_DECL_STRNDUP 1 + +/* Define to 1 if you have the declaration of `strverscmp', and to 0 if you + don't. */ +#define HAVE_DECL_STRVERSCMP 0 + +/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VASPRINTF 1 + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VSNPRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_EXT_HASH_MAP 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_EXT_HASH_SET 1 + +/* Define to 1 if you have the `ffsll' function. */ +#define HAVE_FFSLL 1 + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `mallinfo' function. */ +/* #undef HAVE_MALLINFO */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the mremap function with MREMAP_MAYMOVE support */ +/* #undef HAVE_MREMAP */ + +/* Define if compiler supports #pragma omp threadprivate */ +/* #undef HAVE_OMP_SUPPORT */ + +/* Define to 1 if you have the `posix_fallocate' function. */ +/* #undef HAVE_POSIX_FALLOCATE */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define if struct stat has a field st_mtim with timespec for mtime */ +#define HAVE_STAT_ST_MTIM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to support 32-bit big-endian targets */ +#define HAVE_TARGET_32_BIG 1 + +/* Define to support 32-bit little-endian targets */ +#define HAVE_TARGET_32_LITTLE 1 + +/* Define to support 64-bit big-endian targets */ +#define HAVE_TARGET_64_BIG 1 + +/* Define to support 64-bit little-endian targets */ +#define HAVE_TARGET_64_LITTLE 1 + +/* Define if attributes work on C++ templates */ +#define HAVE_TEMPLATE_ATTRIBUTES 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TR1_UNORDERED_MAP 1 + +/* Define if ::std::tr1::unordered_map::rehash is usable */ +#define HAVE_TR1_UNORDERED_MAP_REHASH 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TR1_UNORDERED_SET 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Name of package */ +#define PACKAGE "gold" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "gold" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "gold 0.1" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gold" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "0.1" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* System root for target files */ +#define TARGET_SYSTEM_ROOT "" + +/* Whether the system root can be relocated */ +#define TARGET_SYSTEM_ROOT_RELOCATABLE 0 + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version number of package */ +#define VERSION "0.1" + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ diff --git a/gnu/usr.bin/binutils222/libgold/yyscript.c b/gnu/usr.bin/binutils222/libgold/yyscript.c new file mode 100644 index 0000000000..fc84f17b5d --- /dev/null +++ b/gnu/usr.bin/binutils222/libgold/yyscript.c @@ -0,0 +1,3909 @@ +/* A Bison parser, made by GNU Bison 2.4.3. */ + +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2009, 2010 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.4.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + + + +/* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ +#line 26 "yyscript.y" + + +#include "config.h" + +#include +#include +#include +#include + +#include "script-c.h" + + + +/* Line 189 of yacc.c */ +#line 86 "yyscript.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 1 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + OREQ = 258, + ANDEQ = 259, + RSHIFTEQ = 260, + LSHIFTEQ = 261, + DIVEQ = 262, + MULTEQ = 263, + MINUSEQ = 264, + PLUSEQ = 265, + OROR = 266, + ANDAND = 267, + NE = 268, + EQ = 269, + GE = 270, + LE = 271, + RSHIFT = 272, + LSHIFT = 273, + UNARY = 274, + STRING = 275, + QUOTED_STRING = 276, + INTEGER = 277, + ABSOLUTE = 278, + ADDR = 279, + ALIGN_K = 280, + ALIGNOF = 281, + ASSERT_K = 282, + AS_NEEDED = 283, + AT = 284, + BIND = 285, + BLOCK = 286, + BYTE = 287, + CONSTANT = 288, + CONSTRUCTORS = 289, + COPY = 290, + CREATE_OBJECT_SYMBOLS = 291, + DATA_SEGMENT_ALIGN = 292, + DATA_SEGMENT_END = 293, + DATA_SEGMENT_RELRO_END = 294, + DEFINED = 295, + DSECT = 296, + ENTRY = 297, + EXCLUDE_FILE = 298, + EXTERN = 299, + FILL = 300, + FLOAT = 301, + FORCE_COMMON_ALLOCATION = 302, + GLOBAL = 303, + GROUP = 304, + HLL = 305, + INCLUDE = 306, + INHIBIT_COMMON_ALLOCATION = 307, + INFO = 308, + INPUT = 309, + KEEP = 310, + LEN = 311, + LENGTH = 312, + LOADADDR = 313, + LOCAL = 314, + LONG = 315, + MAP = 316, + MAX_K = 317, + MEMORY = 318, + MIN_K = 319, + NEXT = 320, + NOCROSSREFS = 321, + NOFLOAT = 322, + NOLOAD = 323, + ONLY_IF_RO = 324, + ONLY_IF_RW = 325, + ORG = 326, + ORIGIN = 327, + OUTPUT = 328, + OUTPUT_ARCH = 329, + OUTPUT_FORMAT = 330, + OVERLAY = 331, + PHDRS = 332, + PROVIDE = 333, + PROVIDE_HIDDEN = 334, + QUAD = 335, + SEARCH_DIR = 336, + SECTIONS = 337, + SEGMENT_START = 338, + SHORT = 339, + SIZEOF = 340, + SIZEOF_HEADERS = 341, + SORT_BY_ALIGNMENT = 342, + SORT_BY_NAME = 343, + SPECIAL = 344, + SQUAD = 345, + STARTUP = 346, + SUBALIGN = 347, + SYSLIB = 348, + TARGET_K = 349, + TRUNCATE = 350, + VERSIONK = 351, + OPTION = 352, + PARSING_LINKER_SCRIPT = 353, + PARSING_VERSION_SCRIPT = 354, + PARSING_DEFSYM = 355, + PARSING_DYNAMIC_LIST = 356 + }; +#endif +/* Tokens. */ +#define OREQ 258 +#define ANDEQ 259 +#define RSHIFTEQ 260 +#define LSHIFTEQ 261 +#define DIVEQ 262 +#define MULTEQ 263 +#define MINUSEQ 264 +#define PLUSEQ 265 +#define OROR 266 +#define ANDAND 267 +#define NE 268 +#define EQ 269 +#define GE 270 +#define LE 271 +#define RSHIFT 272 +#define LSHIFT 273 +#define UNARY 274 +#define STRING 275 +#define QUOTED_STRING 276 +#define INTEGER 277 +#define ABSOLUTE 278 +#define ADDR 279 +#define ALIGN_K 280 +#define ALIGNOF 281 +#define ASSERT_K 282 +#define AS_NEEDED 283 +#define AT 284 +#define BIND 285 +#define BLOCK 286 +#define BYTE 287 +#define CONSTANT 288 +#define CONSTRUCTORS 289 +#define COPY 290 +#define CREATE_OBJECT_SYMBOLS 291 +#define DATA_SEGMENT_ALIGN 292 +#define DATA_SEGMENT_END 293 +#define DATA_SEGMENT_RELRO_END 294 +#define DEFINED 295 +#define DSECT 296 +#define ENTRY 297 +#define EXCLUDE_FILE 298 +#define EXTERN 299 +#define FILL 300 +#define FLOAT 301 +#define FORCE_COMMON_ALLOCATION 302 +#define GLOBAL 303 +#define GROUP 304 +#define HLL 305 +#define INCLUDE 306 +#define INHIBIT_COMMON_ALLOCATION 307 +#define INFO 308 +#define INPUT 309 +#define KEEP 310 +#define LEN 311 +#define LENGTH 312 +#define LOADADDR 313 +#define LOCAL 314 +#define LONG 315 +#define MAP 316 +#define MAX_K 317 +#define MEMORY 318 +#define MIN_K 319 +#define NEXT 320 +#define NOCROSSREFS 321 +#define NOFLOAT 322 +#define NOLOAD 323 +#define ONLY_IF_RO 324 +#define ONLY_IF_RW 325 +#define ORG 326 +#define ORIGIN 327 +#define OUTPUT 328 +#define OUTPUT_ARCH 329 +#define OUTPUT_FORMAT 330 +#define OVERLAY 331 +#define PHDRS 332 +#define PROVIDE 333 +#define PROVIDE_HIDDEN 334 +#define QUAD 335 +#define SEARCH_DIR 336 +#define SECTIONS 337 +#define SEGMENT_START 338 +#define SHORT 339 +#define SIZEOF 340 +#define SIZEOF_HEADERS 341 +#define SORT_BY_ALIGNMENT 342 +#define SORT_BY_NAME 343 +#define SPECIAL 344 +#define SQUAD 345 +#define STARTUP 346 +#define SUBALIGN 347 +#define SYSLIB 348 +#define TARGET_K 349 +#define TRUNCATE 350 +#define VERSIONK 351 +#define OPTION 352 +#define PARSING_LINKER_SCRIPT 353 +#define PARSING_VERSION_SCRIPT 354 +#define PARSING_DEFSYM 355 +#define PARSING_DYNAMIC_LIST 356 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ + +/* Line 214 of yacc.c */ +#line 53 "yyscript.y" + + /* A string. */ + struct Parser_string string; + /* A number. */ + uint64_t integer; + /* An expression. */ + Expression_ptr expr; + /* An output section header. */ + struct Parser_output_section_header output_section_header; + /* An output section trailer. */ + struct Parser_output_section_trailer output_section_trailer; + /* A section constraint. */ + enum Section_constraint constraint; + /* A complete input section specification. */ + struct Input_section_spec input_section_spec; + /* A list of wildcard specifications, with exclusions. */ + struct Wildcard_sections wildcard_sections; + /* A single wildcard specification. */ + struct Wildcard_section wildcard_section; + /* A list of strings. */ + String_list_ptr string_list; + /* Information for a program header. */ + struct Phdr_info phdr_info; + /* Used for version scripts and within VERSION {}. */ + struct Version_dependency_list* deplist; + struct Version_expression_list* versyms; + struct Version_tree* versnode; + enum Script_section_type section_type; + + + +/* Line 214 of yacc.c */ +#line 356 "yyscript.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + + +/* Copy the second part of user declarations. */ + + +/* Line 264 of yacc.c */ +#line 368 "yyscript.c" + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) +#else +static int +YYID (yyi) + int yyi; +#endif +{ + return yyi; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 20 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 1253 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 125 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 71 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 232 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 523 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 356 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 121, 2, 2, 2, 31, 18, 2, + 115, 116, 29, 27, 119, 28, 2, 30, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 13, 120, + 21, 3, 22, 12, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 17, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 123, 2, + 2, 122, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 117, 16, 118, 124, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 4, 5, + 6, 7, 8, 9, 10, 11, 14, 15, 19, 20, + 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 6, 9, 12, 15, 18, 19, 24, + 26, 27, 33, 35, 40, 45, 50, 55, 64, 69, + 74, 75, 81, 86, 87, 93, 95, 97, 99, 104, + 105, 108, 110, 113, 117, 119, 123, 125, 128, 129, + 135, 138, 139, 141, 142, 150, 151, 152, 160, 162, + 166, 169, 174, 179, 185, 187, 189, 191, 193, 195, + 196, 201, 202, 207, 208, 213, 214, 216, 218, 220, + 226, 229, 230, 234, 235, 239, 240, 243, 244, 245, + 248, 251, 253, 258, 265, 270, 272, 277, 279, 281, + 283, 285, 287, 289, 291, 296, 298, 303, 305, 310, + 314, 316, 323, 328, 330, 335, 340, 344, 346, 348, + 350, 352, 357, 360, 367, 371, 372, 383, 386, 387, + 391, 396, 397, 399, 401, 403, 405, 407, 409, 412, + 413, 418, 420, 422, 423, 426, 429, 435, 441, 445, + 449, 453, 457, 461, 465, 469, 473, 477, 484, 491, + 492, 495, 499, 502, 505, 508, 511, 515, 519, 523, + 527, 531, 535, 539, 543, 547, 551, 555, 559, 563, + 567, 571, 575, 579, 583, 589, 591, 593, 600, 607, + 612, 614, 619, 624, 629, 634, 639, 644, 649, 654, + 659, 666, 671, 678, 685, 690, 697, 704, 708, 710, + 712, 715, 721, 723, 725, 728, 733, 739, 746, 748, + 751, 752, 755, 760, 765, 774, 776, 778, 782, 786, + 787, 795, 796, 806, 808, 812, 814, 816, 818, 820, + 822, 823, 825 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 126, 0, -1, 111, 127, -1, 112, 184, -1, 113, + 180, -1, 114, 181, -1, 127, 128, -1, -1, 57, + 115, 133, 116, -1, 60, -1, -1, 62, 129, 115, + 136, 116, -1, 65, -1, 67, 115, 136, 116, -1, + 76, 117, 167, 118, -1, 110, 115, 192, 116, -1, + 88, 115, 192, 116, -1, 88, 115, 192, 119, 192, + 119, 192, 116, -1, 90, 117, 172, 118, -1, 94, + 115, 192, 116, -1, -1, 95, 117, 130, 139, 118, + -1, 107, 115, 192, 116, -1, -1, 109, 117, 131, + 184, 118, -1, 166, -1, 132, -1, 120, -1, 87, + 115, 192, 116, -1, -1, 134, 135, -1, 192, -1, + 135, 192, -1, 135, 119, 192, -1, 137, -1, 136, + 195, 137, -1, 192, -1, 28, 33, -1, -1, 41, + 138, 115, 136, 116, -1, 139, 140, -1, -1, 166, + -1, -1, 192, 142, 141, 117, 156, 118, 151, -1, + -1, -1, 143, 145, 147, 148, 149, 144, 150, -1, + 13, -1, 115, 116, 13, -1, 179, 13, -1, 179, + 115, 116, 13, -1, 115, 146, 116, 13, -1, 179, + 115, 146, 116, 13, -1, 81, -1, 54, -1, 48, + -1, 66, -1, 89, -1, -1, 42, 115, 179, 116, + -1, -1, 38, 115, 179, 116, -1, -1, 105, 115, + 179, 116, -1, -1, 82, -1, 83, -1, 102, -1, + 152, 153, 154, 155, 195, -1, 22, 192, -1, -1, + 42, 22, 192, -1, -1, 154, 13, 192, -1, -1, + 3, 177, -1, -1, -1, 156, 157, -1, 176, 193, + -1, 159, -1, 158, 115, 177, 116, -1, 40, 115, + 177, 119, 192, 116, -1, 58, 115, 177, 116, -1, + 47, -1, 101, 115, 47, 116, -1, 120, -1, 93, + -1, 103, -1, 73, -1, 97, -1, 45, -1, 160, + -1, 68, 115, 160, 116, -1, 192, -1, 161, 115, + 162, 116, -1, 165, -1, 101, 115, 165, 116, -1, + 162, 195, 163, -1, 163, -1, 162, 195, 56, 115, + 164, 116, -1, 56, 115, 164, 116, -1, 165, -1, + 101, 115, 163, 116, -1, 100, 115, 163, 116, -1, + 164, 195, 165, -1, 165, -1, 192, -1, 29, -1, + 12, -1, 55, 115, 192, 116, -1, 176, 193, -1, + 40, 115, 177, 119, 192, 116, -1, 167, 195, 168, + -1, -1, 192, 169, 13, 170, 3, 177, 195, 171, + 3, 177, -1, 64, 192, -1, -1, 115, 192, 116, + -1, 115, 121, 192, 116, -1, -1, 85, -1, 84, + -1, 122, -1, 70, -1, 69, -1, 123, -1, 172, + 173, -1, -1, 192, 174, 175, 120, -1, 192, -1, + 35, -1, -1, 192, 175, -1, 90, 175, -1, 192, + 115, 35, 116, 175, -1, 42, 115, 177, 116, 175, + -1, 192, 3, 177, -1, 192, 11, 177, -1, 192, + 10, 177, -1, 192, 9, 177, -1, 192, 8, 177, + -1, 192, 7, 177, -1, 192, 6, 177, -1, 192, + 5, 177, -1, 192, 4, 177, -1, 91, 115, 192, + 3, 177, 116, -1, 92, 115, 192, 3, 177, 116, + -1, -1, 178, 179, -1, 115, 179, 116, -1, 28, + 179, -1, 121, 179, -1, 124, 179, -1, 27, 179, + -1, 179, 29, 179, -1, 179, 30, 179, -1, 179, + 31, 179, -1, 179, 27, 179, -1, 179, 28, 179, + -1, 179, 26, 179, -1, 179, 25, 179, -1, 179, + 20, 179, -1, 179, 19, 179, -1, 179, 24, 179, + -1, 179, 23, 179, -1, 179, 21, 179, -1, 179, + 22, 179, -1, 179, 18, 179, -1, 179, 17, 179, + -1, 179, 16, 179, -1, 179, 15, 179, -1, 179, + 14, 179, -1, 179, 12, 179, 13, 179, -1, 35, + -1, 192, -1, 75, 115, 179, 119, 179, 116, -1, + 77, 115, 179, 119, 179, 116, -1, 53, 115, 192, + 116, -1, 99, -1, 39, 115, 192, 116, -1, 98, + 115, 192, 116, -1, 37, 115, 192, 116, -1, 71, + 115, 192, 116, -1, 85, 115, 192, 116, -1, 70, + 115, 192, 116, -1, 46, 115, 192, 116, -1, 36, + 115, 179, 116, -1, 38, 115, 179, 116, -1, 38, + 115, 179, 119, 179, 116, -1, 44, 115, 179, 116, + -1, 50, 115, 179, 119, 179, 116, -1, 52, 115, + 179, 119, 179, 116, -1, 51, 115, 179, 116, -1, + 96, 115, 192, 119, 179, 116, -1, 40, 115, 179, + 119, 192, 116, -1, 192, 3, 177, -1, 182, -1, + 183, -1, 182, 183, -1, 117, 189, 120, 118, 120, + -1, 185, -1, 186, -1, 185, 186, -1, 117, 188, + 118, 120, -1, 192, 117, 188, 118, 120, -1, 192, + 117, 188, 118, 187, 120, -1, 192, -1, 187, 192, + -1, -1, 189, 120, -1, 61, 13, 189, 120, -1, + 72, 13, 189, 120, -1, 61, 13, 189, 120, 72, + 13, 189, 120, -1, 33, -1, 34, -1, 189, 120, + 33, -1, 189, 120, 34, -1, -1, 57, 192, 117, + 190, 189, 194, 118, -1, -1, 189, 120, 57, 192, + 117, 191, 189, 194, 118, -1, 57, -1, 189, 120, + 57, -1, 33, -1, 34, -1, 120, -1, 119, -1, + 120, -1, -1, 119, -1, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 231, 231, 232, 233, 234, 239, 240, 245, 246, + 249, 248, 252, 254, 255, 256, 258, 264, 271, 272, + 275, 274, 278, 281, 280, 284, 285, 286, 294, 302, + 302, 308, 310, 312, 318, 319, 324, 326, 329, 328, + 336, 337, 342, 344, 343, 352, 354, 352, 371, 376, + 381, 386, 391, 396, 405, 407, 412, 417, 422, 432, + 433, 440, 441, 448, 449, 456, 457, 459, 461, 467, + 476, 478, 483, 485, 490, 493, 499, 502, 507, 509, + 515, 516, 517, 519, 521, 523, 530, 531, 537, 539, + 541, 543, 545, 552, 554, 560, 567, 576, 581, 590, + 595, 600, 605, 614, 619, 638, 661, 663, 670, 672, + 677, 687, 689, 690, 696, 697, 702, 706, 708, 713, + 716, 719, 723, 725, 727, 731, 733, 735, 740, 741, + 746, 755, 757, 764, 765, 773, 778, 789, 798, 800, + 806, 812, 818, 824, 830, 836, 842, 848, 850, 856, + 856, 866, 868, 870, 872, 874, 876, 878, 880, 882, + 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, + 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, + 924, 926, 928, 930, 932, 934, 936, 938, 940, 942, + 944, 946, 948, 953, 958, 960, 968, 974, 984, 987, + 988, 992, 998, 1002, 1003, 1007, 1011, 1016, 1023, 1027, + 1035, 1036, 1038, 1040, 1042, 1051, 1056, 1061, 1066, 1073, + 1072, 1083, 1082, 1089, 1094, 1104, 1106, 1113, 1114, 1119, + 1120, 1125, 1126 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "'='", "OREQ", "ANDEQ", "RSHIFTEQ", + "LSHIFTEQ", "DIVEQ", "MULTEQ", "MINUSEQ", "PLUSEQ", "'?'", "':'", "OROR", + "ANDAND", "'|'", "'^'", "'&'", "NE", "EQ", "'<'", "'>'", "GE", "LE", + "RSHIFT", "LSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'", "UNARY", "STRING", + "QUOTED_STRING", "INTEGER", "ABSOLUTE", "ADDR", "ALIGN_K", "ALIGNOF", + "ASSERT_K", "AS_NEEDED", "AT", "BIND", "BLOCK", "BYTE", "CONSTANT", + "CONSTRUCTORS", "COPY", "CREATE_OBJECT_SYMBOLS", "DATA_SEGMENT_ALIGN", + "DATA_SEGMENT_END", "DATA_SEGMENT_RELRO_END", "DEFINED", "DSECT", + "ENTRY", "EXCLUDE_FILE", "EXTERN", "FILL", "FLOAT", + "FORCE_COMMON_ALLOCATION", "GLOBAL", "GROUP", "HLL", "INCLUDE", + "INHIBIT_COMMON_ALLOCATION", "INFO", "INPUT", "KEEP", "LEN", "LENGTH", + "LOADADDR", "LOCAL", "LONG", "MAP", "MAX_K", "MEMORY", "MIN_K", "NEXT", + "NOCROSSREFS", "NOFLOAT", "NOLOAD", "ONLY_IF_RO", "ONLY_IF_RW", "ORG", + "ORIGIN", "OUTPUT", "OUTPUT_ARCH", "OUTPUT_FORMAT", "OVERLAY", "PHDRS", + "PROVIDE", "PROVIDE_HIDDEN", "QUAD", "SEARCH_DIR", "SECTIONS", + "SEGMENT_START", "SHORT", "SIZEOF", "SIZEOF_HEADERS", + "SORT_BY_ALIGNMENT", "SORT_BY_NAME", "SPECIAL", "SQUAD", "STARTUP", + "SUBALIGN", "SYSLIB", "TARGET_K", "TRUNCATE", "VERSIONK", "OPTION", + "PARSING_LINKER_SCRIPT", "PARSING_VERSION_SCRIPT", "PARSING_DEFSYM", + "PARSING_DYNAMIC_LIST", "'('", "')'", "'{'", "'}'", "','", "';'", "'!'", + "'o'", "'l'", "'~'", "$accept", "top", "linker_script", "file_cmd", + "$@1", "$@2", "$@3", "ignore_cmd", "extern_name_list", "$@4", + "extern_name_list_body", "input_list", "input_list_element", "$@5", + "sections_block", "section_block_cmd", "$@6", "section_header", "$@7", + "$@8", "opt_address_and_section_type", "section_type", "opt_at", + "opt_align", "opt_subalign", "opt_constraint", "section_trailer", + "opt_memspec", "opt_at_memspec", "opt_phdr", "opt_fill", "section_cmds", + "section_cmd", "data_length", "input_section_spec", + "input_section_no_keep", "wildcard_file", "wildcard_sections", + "wildcard_section", "exclude_names", "wildcard_name", + "file_or_sections_cmd", "memory_defs", "memory_def", "memory_attr", + "memory_origin", "memory_length", "phdrs_defs", "phdr_def", "phdr_type", + "phdr_info", "assignment", "parse_exp", "$@9", "exp", "defsym_expr", + "dynamic_list_expr", "dynamic_list_nodes", "dynamic_list_node", + "version_script", "vers_nodes", "vers_node", "verdep", "vers_tag", + "vers_defns", "$@10", "$@11", "string", "end", "opt_semicolon", + "opt_comma", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 61, 258, 259, 260, 261, 262, 263, + 264, 265, 63, 58, 266, 267, 124, 94, 38, 268, + 269, 60, 62, 270, 271, 272, 273, 43, 45, 42, + 47, 37, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 40, 41, 123, 125, 44, + 59, 33, 111, 108, 126 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 125, 126, 126, 126, 126, 127, 127, 128, 128, + 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 130, 128, 128, 131, 128, 128, 128, 128, 132, 134, + 133, 135, 135, 135, 136, 136, 137, 137, 138, 137, + 139, 139, 140, 141, 140, 143, 144, 142, 145, 145, + 145, 145, 145, 145, 146, 146, 146, 146, 146, 147, + 147, 148, 148, 149, 149, 150, 150, 150, 150, 151, + 152, 152, 153, 153, 154, 154, 155, 155, 156, 156, + 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, + 158, 158, 158, 159, 159, 160, 160, 161, 161, 162, + 162, 162, 162, 163, 163, 163, 164, 164, 165, 165, + 165, 166, 166, 166, 167, 167, 168, 168, 168, 169, + 169, 169, 170, 170, 170, 171, 171, 171, 172, 172, + 173, 174, 174, 175, 175, 175, 175, 175, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 178, + 177, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 180, 181, 182, + 182, 183, 184, 185, 185, 186, 186, 186, 187, 187, + 188, 188, 188, 188, 188, 189, 189, 189, 189, 190, + 189, 191, 189, 189, 189, 192, 192, 193, 193, 194, + 194, 195, 195 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 2, 2, 2, 2, 2, 0, 4, 1, + 0, 5, 1, 4, 4, 4, 4, 8, 4, 4, + 0, 5, 4, 0, 5, 1, 1, 1, 4, 0, + 2, 1, 2, 3, 1, 3, 1, 2, 0, 5, + 2, 0, 1, 0, 7, 0, 0, 7, 1, 3, + 2, 4, 4, 5, 1, 1, 1, 1, 1, 0, + 4, 0, 4, 0, 4, 0, 1, 1, 1, 5, + 2, 0, 3, 0, 3, 0, 2, 0, 0, 2, + 2, 1, 4, 6, 4, 1, 4, 1, 1, 1, + 1, 1, 1, 1, 4, 1, 4, 1, 4, 3, + 1, 6, 4, 1, 4, 4, 3, 1, 1, 1, + 1, 4, 2, 6, 3, 0, 10, 2, 0, 3, + 4, 0, 1, 1, 1, 1, 1, 1, 2, 0, + 4, 1, 1, 0, 2, 2, 5, 5, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 6, 6, 0, + 2, 3, 2, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 5, 1, 1, 6, 6, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 6, 4, 6, 6, 4, 6, 6, 3, 1, 1, + 2, 5, 1, 1, 2, 4, 5, 6, 1, 2, + 0, 2, 4, 4, 8, 1, 1, 3, 3, 0, + 7, 0, 9, 1, 3, 1, 1, 1, 1, 1, + 0, 1, 0 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 0, 7, 0, 0, 0, 0, 2, 225, 226, 210, + 3, 202, 203, 0, 4, 0, 0, 5, 198, 199, + 1, 0, 0, 0, 9, 10, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 6, 26, 25, 0, 0, 215, 216, 223, 0, 0, + 0, 0, 204, 210, 149, 0, 200, 149, 0, 29, + 0, 0, 115, 0, 0, 129, 0, 0, 0, 20, + 0, 23, 0, 228, 227, 112, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 0, 0, 0, 0, 211, + 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, + 38, 232, 34, 36, 232, 0, 0, 0, 0, 0, + 0, 41, 0, 0, 0, 138, 146, 145, 144, 143, + 142, 141, 140, 139, 219, 0, 0, 205, 217, 218, + 224, 0, 0, 0, 175, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 180, 0, 0, 0, 150, 176, 0, + 0, 111, 8, 30, 31, 232, 37, 0, 13, 231, + 0, 14, 118, 28, 16, 0, 18, 128, 0, 149, + 149, 19, 0, 22, 0, 15, 0, 212, 213, 0, + 206, 0, 208, 155, 152, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 201, 0, 0, 32, 11, + 0, 35, 0, 114, 121, 0, 132, 133, 131, 0, + 0, 21, 40, 42, 45, 24, 230, 0, 221, 207, + 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 173, 172, 171, 170, 169, 164, 163, 167, 168, + 166, 165, 162, 161, 159, 160, 156, 157, 158, 113, + 33, 232, 117, 0, 0, 0, 0, 133, 0, 133, + 147, 148, 43, 0, 229, 0, 0, 0, 188, 183, + 189, 0, 181, 0, 191, 187, 0, 194, 0, 179, + 186, 184, 0, 0, 185, 0, 182, 0, 39, 0, + 0, 0, 0, 149, 135, 130, 0, 134, 0, 48, + 0, 59, 0, 220, 0, 230, 0, 0, 0, 0, + 0, 0, 0, 174, 0, 119, 123, 122, 124, 0, + 17, 0, 0, 78, 56, 55, 57, 54, 58, 0, + 0, 0, 61, 50, 0, 214, 0, 190, 196, 192, + 193, 177, 178, 195, 120, 149, 133, 133, 0, 49, + 0, 0, 0, 63, 0, 0, 222, 232, 137, 136, + 110, 109, 0, 92, 85, 0, 0, 90, 88, 91, + 0, 89, 71, 87, 79, 0, 81, 93, 0, 97, + 0, 95, 52, 0, 0, 0, 46, 51, 0, 0, + 149, 149, 0, 0, 0, 44, 73, 149, 0, 80, + 60, 0, 0, 65, 53, 126, 125, 127, 0, 0, + 0, 0, 0, 95, 0, 0, 108, 70, 0, 75, + 0, 0, 0, 0, 232, 100, 103, 62, 0, 66, + 67, 68, 47, 149, 0, 84, 0, 94, 86, 98, + 0, 77, 82, 0, 0, 0, 96, 0, 64, 116, + 0, 72, 149, 0, 232, 232, 107, 0, 0, 0, + 99, 83, 76, 74, 69, 102, 0, 105, 104, 0, + 106, 232, 101 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 5, 6, 40, 60, 111, 113, 41, 96, 97, + 163, 101, 102, 167, 182, 252, 348, 312, 313, 453, + 351, 380, 382, 403, 436, 482, 445, 446, 469, 491, + 504, 398, 424, 425, 426, 427, 428, 474, 475, 505, + 476, 42, 104, 243, 304, 369, 458, 107, 177, 247, + 308, 43, 91, 92, 213, 14, 17, 18, 19, 10, + 11, 12, 191, 50, 51, 186, 317, 158, 75, 315, + 170 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -438 +static const yytype_int16 yypact[] = +{ + 211, -438, 57, 251, -112, 13, 1113, -438, -438, 277, + -438, 57, -438, -99, -438, 17, 76, -438, -112, -438, + -438, -80, -78, -60, -438, -438, -438, -48, -42, -26, + -16, 38, 16, 44, 62, 89, 66, 99, 78, -438, + -438, -438, -438, 178, 951, -438, -438, 251, 205, 219, + -4, 121, -438, 277, -438, 123, -438, -438, 251, -438, + 119, 233, -438, 251, 251, -438, 251, 251, 251, -438, + 251, -438, 251, -438, -438, -438, -438, -438, -438, -438, + -438, -438, -438, -438, -438, 130, 76, 76, 132, 168, + 136, -438, 1073, 14, 141, 146, 149, 251, 233, 235, + -438, -70, -438, -438, 217, 159, -47, -18, 289, 297, + 186, -438, 196, 57, 234, -438, -438, -438, -438, -438, + -438, -438, -438, -438, -438, 207, 231, -438, -438, -438, + 251, -1, 1073, 1073, -438, 238, 240, 241, 242, 245, + 247, 248, 250, 253, 254, 256, 266, 268, 269, 273, + 274, 275, 276, -438, 1073, 1073, 1073, 977, -438, 246, + 251, -438, -438, -3, -438, 63, -438, 278, -438, -438, + 233, -438, 164, -438, -438, 251, -438, -438, 282, -438, + -438, -438, 181, -438, 279, -438, 76, 20, 168, 281, + -438, 10, -438, -438, -438, 1073, 251, 1073, 251, 1073, + 1073, 251, 1073, 1073, 1073, 251, 251, 251, 1073, 1073, + 251, 251, 251, 648, -438, -438, 1073, 1073, 1073, 1073, + 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, + 1073, 1073, 1073, 1073, 1073, -438, 283, 251, -438, -438, + 233, -438, 251, -438, 285, 290, -438, 129, -438, 286, + 292, -438, -438, -438, 951, -438, 293, 388, -438, -438, + -438, 668, 294, 436, 296, 504, 688, 298, 542, 716, + 562, 300, 303, 305, 582, 610, 306, 299, 307, -438, + 1222, 627, 520, 731, 450, 832, 481, 481, 349, 349, + 349, 349, 302, 302, 315, 315, -438, -438, -438, -438, + -438, 69, -438, -27, 411, 251, 310, 129, 309, 133, + -438, -438, -438, 243, 168, 308, 76, 76, -438, -438, + -438, 1073, -438, 251, -438, -438, 1073, -438, 1073, -438, + -438, -438, 1073, 1073, -438, 1073, -438, 1073, -438, 251, + 311, 127, 317, -438, -438, -438, 395, -438, 318, -438, + 1006, 389, 999, -438, 316, 293, 751, 321, 771, 791, + 819, 854, 874, 977, 322, -438, -438, -438, -438, 440, + -438, 323, 328, -438, -438, -438, -438, -438, -438, 432, + 333, 368, 447, -438, 106, 168, 369, -438, -438, -438, + -438, -438, -438, -438, -438, -438, 129, 129, 314, -438, + 473, 1073, 374, 385, 483, 378, -438, 379, -438, -438, + -438, -438, 382, -438, -438, 384, 398, -438, -438, -438, + 400, -438, 478, -438, -438, 438, -438, -438, 460, -438, + 178, 77, -438, 894, 1073, 480, -438, -438, 601, 114, + -438, -438, 5, 257, 251, -438, 573, -438, 7, -438, + -438, 922, 1073, 21, -438, -438, -438, -438, 613, 498, + 502, 505, 503, 506, 543, 604, -438, -438, 699, -438, + 606, 608, 609, 611, 101, -438, -438, -438, 957, -438, + -438, -438, -438, -438, 251, -438, 230, -438, -438, -438, + 251, 39, -438, 230, 64, 64, -438, 157, -438, -438, + 707, -438, -438, 251, 379, 108, -438, 708, 709, 612, + -438, -438, -438, -438, -438, -438, 230, -438, -438, 230, + -438, 110, -438 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -438, -438, -438, -438, -438, -438, -438, -438, -438, -438, + -438, -87, 555, -438, -438, -438, -438, -438, -438, -438, + -438, 442, -438, -438, -438, -438, -438, -438, -438, -438, + -438, -438, -438, -438, -438, 386, -438, -438, -437, 345, + -286, 645, -438, -438, -438, -438, -438, -438, -438, -438, + -295, 431, -55, -438, -82, -438, -438, -438, 812, 752, + -438, 915, -438, 875, -8, -438, -438, -2, 497, 574, + -101 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -109 +static const yytype_int16 yytable[] = +{ + 13, 15, 94, 172, 44, 16, 7, 8, 55, 13, + 157, 165, 344, 20, 347, 7, 8, 410, 53, 410, + 54, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 7, 8, 7, 8, 411, 57, 411, 58, 7, 8, + 7, 8, 502, 7, 8, 85, 168, 128, 129, 169, + 193, 194, 503, 128, 129, 59, 95, 507, 508, 103, + 510, 105, 106, 471, 108, 109, 110, 61, 112, 174, + 114, 130, 175, 214, 215, 62, 410, 130, 125, 126, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 63, + 7, 8, 257, 411, 339, 164, 103, 7, 8, 64, + 176, 408, 409, 479, 480, 178, 461, 472, 473, 45, + 46, 13, 429, 261, 88, 263, 237, 265, 266, 190, + 268, 269, 270, 481, 249, 250, 274, 275, 189, 192, + 259, 66, 159, 47, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 301, 374, 65, 429, 465, 236, 67, + 375, 238, 7, 8, 472, 473, 7, 8, 103, 410, + 244, 306, 376, 245, 9, 306, 248, 68, 256, 239, + 254, 70, 169, 455, 456, 338, 411, 377, 169, 260, + 7, 8, -108, 72, 262, 378, 264, 7, 8, 267, + 465, 128, 129, 271, 272, 273, 69, 506, 276, 277, + 278, 366, 367, 509, 7, 8, 71, 496, 86, 307, + 169, 21, 404, 307, 515, 130, 522, 169, 242, 169, + 520, 352, 87, 506, 98, 300, 22, 457, 103, 356, + 302, 89, 410, 93, 358, 309, 359, 124, 346, 368, + 360, 361, 127, 362, 131, 363, 349, 472, 473, 411, + 160, 99, 161, 7, 8, 162, 7, 8, 166, 410, + 132, 133, 32, 33, 100, 173, 7, 8, 134, 135, + 136, 137, 138, 139, 7, 8, 411, 140, 371, 141, + 7, 8, 179, 142, 143, 144, 145, 73, 74, 251, + 180, 340, 181, 342, 464, 309, 439, 309, 354, 355, + 45, 46, 183, 146, 147, 7, 8, 246, 148, 433, + 149, 357, 1, 2, 3, 4, 410, 187, 150, 230, + 231, 232, 233, 234, 47, 171, 169, 364, 48, 151, + 407, 152, 153, 411, 232, 233, 234, 7, 8, 49, + 185, 188, 451, 195, 412, 196, 197, 198, 350, 413, + 199, 414, 200, 201, 155, 202, 235, 156, 203, 204, + 478, 205, 415, 497, 228, 229, 230, 231, 232, 233, + 234, 206, 416, 207, 208, 459, 460, 417, 209, 210, + 211, 212, 470, 240, 309, 309, 431, 255, 258, 299, + 303, 316, 310, 514, 516, 32, 33, 418, 311, 305, + 319, 419, 322, 314, 325, 420, 329, 421, 335, 330, + 516, 331, 334, 336, 341, 343, 353, 365, 499, 345, + 372, 381, 422, 370, 423, 373, 385, 388, 394, 396, + 463, 466, 467, 395, 397, 399, 466, 512, 216, 400, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 500, 401, 466, 402, 432, 406, 501, 434, + 435, 466, 466, 466, 438, 466, 437, 440, 169, 441, + 444, 513, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 442, 466, 443, 216, 466, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 320, 447, 216, 321, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 216, 448, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 216, 452, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 454, 468, 483, 484, 485, 487, + 486, -108, 216, 323, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 488, + 216, 326, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 216, 328, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 216, 332, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 489, 490, 492, 493, 494, 241, 495, 519, 216, 333, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 216, 279, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 216, 318, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 216, 324, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 511, 517, 518, 405, 253, 462, 430, + 56, 216, 327, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 521, 184, 216, 387, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 216, 389, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 216, 390, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 52, 449, 90, 386, + 0, 0, 0, 0, 216, 391, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 0, 0, 0, 0, 0, 0, 216, + 392, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 216, + 393, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, + 450, 216, 383, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 0, 0, 132, 133, 0, 0, 0, 477, 7, + 8, 134, 135, 136, 137, 138, 139, 0, 0, 0, + 140, 0, 141, 0, 374, 0, 142, 143, 144, 145, + 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 376, 498, 0, 0, 146, 147, 0, 0, + 0, 148, 0, 149, 0, 0, 0, 377, 0, 0, + 0, 150, 0, 0, 0, 378, 0, 0, 0, 0, + 132, 133, 151, 0, 152, 153, 7, 8, 134, 135, + 136, 137, 138, 139, 384, 0, 0, 140, 0, 141, + 0, 154, 379, 142, 143, 144, 145, 155, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 146, 147, 0, 7, 8, 148, 0, + 149, 0, 0, 21, 0, 0, 0, 0, 150, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 151, + 23, 152, 153, 24, 0, 25, 0, 0, 26, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 154, 28, + 0, 0, 0, 0, 155, 0, 0, 156, 0, 0, + 29, 30, 0, 31, 32, 33, 0, 34, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36, 0, 37, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 216, 337, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234 +}; + +static const yytype_int16 yycheck[] = +{ + 2, 3, 57, 104, 6, 117, 33, 34, 16, 11, + 92, 98, 307, 0, 309, 33, 34, 12, 117, 12, + 3, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 33, 34, 33, 34, 29, 115, 29, 115, 33, 34, + 33, 34, 3, 33, 34, 47, 116, 33, 34, 119, + 132, 133, 13, 33, 34, 115, 58, 494, 495, 61, + 497, 63, 64, 56, 66, 67, 68, 115, 70, 116, + 72, 57, 119, 155, 156, 117, 12, 57, 86, 87, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 115, + 33, 34, 72, 29, 121, 97, 98, 33, 34, 115, + 118, 396, 397, 82, 83, 107, 101, 100, 101, 33, + 34, 113, 398, 195, 118, 197, 119, 199, 200, 120, + 202, 203, 204, 102, 179, 180, 208, 209, 130, 131, + 120, 115, 118, 57, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 240, 48, 117, 442, 443, 160, 115, + 54, 163, 33, 34, 100, 101, 33, 34, 170, 12, + 172, 42, 66, 175, 117, 42, 178, 115, 186, 116, + 182, 115, 119, 69, 70, 116, 29, 81, 119, 191, + 33, 34, 115, 115, 196, 89, 198, 33, 34, 201, + 486, 33, 34, 205, 206, 207, 117, 493, 210, 211, + 212, 84, 85, 56, 33, 34, 117, 116, 13, 90, + 119, 40, 116, 90, 116, 57, 116, 119, 64, 119, + 516, 313, 13, 519, 115, 237, 55, 123, 240, 321, + 242, 120, 12, 120, 326, 247, 328, 117, 115, 122, + 332, 333, 120, 335, 118, 337, 13, 100, 101, 29, + 119, 28, 116, 33, 34, 116, 33, 34, 33, 12, + 27, 28, 91, 92, 41, 116, 33, 34, 35, 36, + 37, 38, 39, 40, 33, 34, 29, 44, 343, 46, + 33, 34, 3, 50, 51, 52, 53, 119, 120, 118, + 3, 303, 116, 305, 47, 307, 407, 309, 316, 317, + 33, 34, 116, 70, 71, 33, 34, 35, 75, 401, + 77, 323, 111, 112, 113, 114, 12, 120, 85, 27, + 28, 29, 30, 31, 57, 118, 119, 339, 61, 96, + 395, 98, 99, 29, 29, 30, 31, 33, 34, 72, + 116, 120, 434, 115, 40, 115, 115, 115, 115, 45, + 115, 47, 115, 115, 121, 115, 120, 124, 115, 115, + 452, 115, 58, 474, 25, 26, 27, 28, 29, 30, + 31, 115, 68, 115, 115, 440, 441, 73, 115, 115, + 115, 115, 447, 115, 396, 397, 398, 118, 117, 116, + 115, 13, 116, 504, 505, 91, 92, 93, 116, 119, + 116, 97, 116, 120, 116, 101, 116, 103, 119, 116, + 521, 116, 116, 116, 13, 115, 118, 116, 483, 120, + 35, 42, 118, 116, 120, 117, 120, 116, 116, 116, + 442, 443, 444, 3, 116, 13, 448, 502, 12, 116, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 484, 115, 486, 38, 13, 118, 490, 115, + 105, 493, 494, 495, 116, 497, 13, 115, 119, 115, + 22, 503, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 115, 516, 115, 12, 519, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 116, 115, 12, 119, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 12, 115, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 12, 115, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 13, 42, 3, 119, 116, 116, + 115, 115, 12, 119, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 116, + 12, 119, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 12, 119, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 12, 119, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 116, 22, 116, 115, 115, 170, 115, 115, 12, 119, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 12, 116, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 12, 116, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 12, 116, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 116, 116, 116, 384, 182, 442, 398, + 18, 12, 116, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 519, 113, 12, 116, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 12, 116, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 12, 116, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 11, 430, 53, 355, + -1, -1, -1, -1, 12, 116, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 3, 4, 5, 6, 7, 8, + 9, 10, 11, -1, -1, -1, -1, -1, -1, 12, + 116, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 12, + 116, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, + 116, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, -1, -1, 27, 28, -1, -1, -1, 116, 33, + 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, + 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, + 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 66, 116, -1, -1, 70, 71, -1, -1, + -1, 75, -1, 77, -1, -1, -1, 81, -1, -1, + -1, 85, -1, -1, -1, 89, -1, -1, -1, -1, + 27, 28, 96, -1, 98, 99, 33, 34, 35, 36, + 37, 38, 39, 40, 115, -1, -1, 44, -1, 46, + -1, 115, 116, 50, 51, 52, 53, 121, -1, -1, + 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, 71, -1, 33, 34, 75, -1, + 77, -1, -1, 40, -1, -1, -1, -1, 85, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 55, 96, + 57, 98, 99, 60, -1, 62, -1, -1, 65, -1, + 67, -1, -1, -1, -1, -1, -1, -1, 115, 76, + -1, -1, -1, -1, 121, -1, -1, 124, -1, -1, + 87, 88, -1, 90, 91, 92, -1, 94, 95, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 107, -1, 109, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 120, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 111, 112, 113, 114, 126, 127, 33, 34, 117, + 184, 185, 186, 192, 180, 192, 117, 181, 182, 183, + 0, 40, 55, 57, 60, 62, 65, 67, 76, 87, + 88, 90, 91, 92, 94, 95, 107, 109, 110, 120, + 128, 132, 166, 176, 192, 33, 34, 57, 61, 72, + 188, 189, 186, 117, 3, 189, 183, 115, 115, 115, + 129, 115, 117, 115, 115, 117, 115, 115, 115, 117, + 115, 117, 115, 119, 120, 193, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 192, 13, 13, 118, 120, + 188, 177, 178, 120, 177, 192, 133, 134, 115, 28, + 41, 136, 137, 192, 167, 192, 192, 172, 192, 192, + 192, 130, 192, 131, 192, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 117, 189, 189, 120, 33, 34, + 57, 118, 27, 28, 35, 36, 37, 38, 39, 40, + 44, 46, 50, 51, 52, 53, 70, 71, 75, 77, + 85, 96, 98, 99, 115, 121, 124, 179, 192, 118, + 119, 116, 116, 135, 192, 136, 33, 138, 116, 119, + 195, 118, 195, 116, 116, 119, 118, 173, 192, 3, + 3, 116, 139, 116, 184, 116, 190, 120, 120, 192, + 120, 187, 192, 179, 179, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 179, 179, 179, 12, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 120, 192, 119, 192, 116, + 115, 137, 64, 168, 192, 192, 35, 174, 192, 177, + 177, 118, 140, 166, 192, 118, 189, 72, 117, 120, + 192, 179, 192, 179, 192, 179, 179, 192, 179, 179, + 179, 192, 192, 192, 179, 179, 192, 192, 192, 116, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 116, + 192, 136, 192, 115, 169, 119, 42, 90, 175, 192, + 116, 116, 142, 143, 120, 194, 13, 191, 116, 116, + 116, 119, 116, 119, 116, 116, 119, 116, 119, 116, + 116, 116, 119, 119, 116, 119, 116, 13, 116, 121, + 192, 13, 192, 115, 175, 120, 115, 175, 141, 13, + 115, 145, 179, 118, 189, 189, 179, 192, 179, 179, + 179, 179, 179, 179, 192, 116, 84, 85, 122, 170, + 116, 177, 35, 117, 48, 54, 66, 81, 89, 116, + 146, 42, 147, 13, 115, 120, 194, 116, 116, 116, + 116, 116, 116, 116, 116, 3, 116, 116, 156, 13, + 116, 115, 38, 148, 116, 146, 118, 177, 175, 175, + 12, 29, 40, 45, 47, 58, 68, 73, 93, 97, + 101, 103, 118, 120, 157, 158, 159, 160, 161, 165, + 176, 192, 13, 179, 115, 105, 149, 13, 116, 195, + 115, 115, 115, 115, 22, 151, 152, 115, 115, 193, + 116, 179, 115, 144, 13, 69, 70, 123, 171, 177, + 177, 101, 160, 192, 47, 165, 192, 192, 42, 153, + 177, 56, 100, 101, 162, 163, 165, 116, 179, 82, + 83, 102, 150, 3, 119, 116, 115, 116, 116, 116, + 22, 154, 116, 115, 115, 115, 116, 195, 116, 177, + 192, 192, 3, 13, 155, 164, 165, 163, 163, 56, + 163, 116, 177, 192, 195, 116, 195, 116, 116, 115, + 165, 164, 116 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ + +#define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (closure, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval, closure) +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, closure); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, void* closure) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep, closure) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + void* closure; +#endif +{ + if (!yyvaluep) + return; + YYUSE (closure); +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, void* closure) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep, closure) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + void* closure; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep, closure); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule, void* closure) +#else +static void +yy_reduce_print (yyvsp, yyrule, closure) + YYSTYPE *yyvsp; + int yyrule; + void* closure; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , closure); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule, closure); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } +} +#endif /* YYERROR_VERBOSE */ + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void* closure) +#else +static void +yydestruct (yymsg, yytype, yyvaluep, closure) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; + void* closure; +#endif +{ + YYUSE (yyvaluep); + YYUSE (closure); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + +/* Prevent warnings from -Wmissing-prototypes. */ +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void* closure); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + + + +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void* closure) +#else +int +yyparse (closure) + void* closure; +#endif +#endif +{ +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; + + /* Number of syntax errors so far. */ + int yynerrs; + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + yyssp = yyss; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + *++yyvsp = yylval; + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 9: + +/* Line 1464 of yacc.c */ +#line 247 "yyscript.y" + { script_set_common_allocation(closure, 1); } + break; + + case 10: + +/* Line 1464 of yacc.c */ +#line 249 "yyscript.y" + { script_start_group(closure); } + break; + + case 11: + +/* Line 1464 of yacc.c */ +#line 251 "yyscript.y" + { script_end_group(closure); } + break; + + case 12: + +/* Line 1464 of yacc.c */ +#line 253 "yyscript.y" + { script_set_common_allocation(closure, 0); } + break; + + case 15: + +/* Line 1464 of yacc.c */ +#line 257 "yyscript.y" + { script_parse_option(closure, (yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 16: + +/* Line 1464 of yacc.c */ +#line 259 "yyscript.y" + { + if (!script_check_output_format(closure, (yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length, + NULL, 0, NULL, 0)) + YYABORT; + } + break; + + case 17: + +/* Line 1464 of yacc.c */ +#line 265 "yyscript.y" + { + if (!script_check_output_format(closure, (yyvsp[(3) - (8)].string).value, (yyvsp[(3) - (8)].string).length, + (yyvsp[(5) - (8)].string).value, (yyvsp[(5) - (8)].string).length, + (yyvsp[(7) - (8)].string).value, (yyvsp[(7) - (8)].string).length)) + YYABORT; + } + break; + + case 19: + +/* Line 1464 of yacc.c */ +#line 273 "yyscript.y" + { script_add_search_dir(closure, (yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 20: + +/* Line 1464 of yacc.c */ +#line 275 "yyscript.y" + { script_start_sections(closure); } + break; + + case 21: + +/* Line 1464 of yacc.c */ +#line 277 "yyscript.y" + { script_finish_sections(closure); } + break; + + case 22: + +/* Line 1464 of yacc.c */ +#line 279 "yyscript.y" + { script_set_target(closure, (yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 23: + +/* Line 1464 of yacc.c */ +#line 281 "yyscript.y" + { script_push_lex_into_version_mode(closure); } + break; + + case 24: + +/* Line 1464 of yacc.c */ +#line 283 "yyscript.y" + { script_pop_lex_mode(closure); } + break; + + case 29: + +/* Line 1464 of yacc.c */ +#line 302 "yyscript.y" + { script_push_lex_into_expression_mode(closure); } + break; + + case 30: + +/* Line 1464 of yacc.c */ +#line 304 "yyscript.y" + { script_pop_lex_mode(closure); } + break; + + case 31: + +/* Line 1464 of yacc.c */ +#line 309 "yyscript.y" + { script_add_extern(closure, (yyvsp[(1) - (1)].string).value, (yyvsp[(1) - (1)].string).length); } + break; + + case 32: + +/* Line 1464 of yacc.c */ +#line 311 "yyscript.y" + { script_add_extern(closure, (yyvsp[(2) - (2)].string).value, (yyvsp[(2) - (2)].string).length); } + break; + + case 33: + +/* Line 1464 of yacc.c */ +#line 313 "yyscript.y" + { script_add_extern(closure, (yyvsp[(3) - (3)].string).value, (yyvsp[(3) - (3)].string).length); } + break; + + case 36: + +/* Line 1464 of yacc.c */ +#line 325 "yyscript.y" + { script_add_file(closure, (yyvsp[(1) - (1)].string).value, (yyvsp[(1) - (1)].string).length); } + break; + + case 37: + +/* Line 1464 of yacc.c */ +#line 327 "yyscript.y" + { script_add_library(closure, (yyvsp[(2) - (2)].string).value, (yyvsp[(2) - (2)].string).length); } + break; + + case 38: + +/* Line 1464 of yacc.c */ +#line 329 "yyscript.y" + { script_start_as_needed(closure); } + break; + + case 39: + +/* Line 1464 of yacc.c */ +#line 331 "yyscript.y" + { script_end_as_needed(closure); } + break; + + case 43: + +/* Line 1464 of yacc.c */ +#line 344 "yyscript.y" + { script_start_output_section(closure, (yyvsp[(1) - (2)].string).value, (yyvsp[(1) - (2)].string).length, &(yyvsp[(2) - (2)].output_section_header)); } + break; + + case 44: + +/* Line 1464 of yacc.c */ +#line 346 "yyscript.y" + { script_finish_output_section(closure, &(yyvsp[(7) - (7)].output_section_trailer)); } + break; + + case 45: + +/* Line 1464 of yacc.c */ +#line 352 "yyscript.y" + { script_push_lex_into_expression_mode(closure); } + break; + + case 46: + +/* Line 1464 of yacc.c */ +#line 354 "yyscript.y" + { script_pop_lex_mode(closure); } + break; + + case 47: + +/* Line 1464 of yacc.c */ +#line 356 "yyscript.y" + { + (yyval.output_section_header).address = (yyvsp[(2) - (7)].output_section_header).address; + (yyval.output_section_header).section_type = (yyvsp[(2) - (7)].output_section_header).section_type; + (yyval.output_section_header).load_address = (yyvsp[(3) - (7)].expr); + (yyval.output_section_header).align = (yyvsp[(4) - (7)].expr); + (yyval.output_section_header).subalign = (yyvsp[(5) - (7)].expr); + (yyval.output_section_header).constraint = (yyvsp[(7) - (7)].constraint); + } + break; + + case 48: + +/* Line 1464 of yacc.c */ +#line 372 "yyscript.y" + { + (yyval.output_section_header).address = NULL; + (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; + } + break; + + case 49: + +/* Line 1464 of yacc.c */ +#line 377 "yyscript.y" + { + (yyval.output_section_header).address = NULL; + (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; + } + break; + + case 50: + +/* Line 1464 of yacc.c */ +#line 382 "yyscript.y" + { + (yyval.output_section_header).address = (yyvsp[(1) - (2)].expr); + (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; + } + break; + + case 51: + +/* Line 1464 of yacc.c */ +#line 387 "yyscript.y" + { + (yyval.output_section_header).address = (yyvsp[(1) - (4)].expr); + (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; + } + break; + + case 52: + +/* Line 1464 of yacc.c */ +#line 392 "yyscript.y" + { + (yyval.output_section_header).address = NULL; + (yyval.output_section_header).section_type = (yyvsp[(2) - (4)].section_type); + } + break; + + case 53: + +/* Line 1464 of yacc.c */ +#line 397 "yyscript.y" + { + (yyval.output_section_header).address = (yyvsp[(1) - (5)].expr); + (yyval.output_section_header).section_type = (yyvsp[(3) - (5)].section_type); + } + break; + + case 54: + +/* Line 1464 of yacc.c */ +#line 406 "yyscript.y" + { (yyval.section_type) = SCRIPT_SECTION_TYPE_NOLOAD; } + break; + + case 55: + +/* Line 1464 of yacc.c */ +#line 408 "yyscript.y" + { + yyerror(closure, "DSECT section type is unsupported"); + (yyval.section_type) = SCRIPT_SECTION_TYPE_DSECT; + } + break; + + case 56: + +/* Line 1464 of yacc.c */ +#line 413 "yyscript.y" + { + yyerror(closure, "COPY section type is unsupported"); + (yyval.section_type) = SCRIPT_SECTION_TYPE_COPY; + } + break; + + case 57: + +/* Line 1464 of yacc.c */ +#line 418 "yyscript.y" + { + yyerror(closure, "INFO section type is unsupported"); + (yyval.section_type) = SCRIPT_SECTION_TYPE_INFO; + } + break; + + case 58: + +/* Line 1464 of yacc.c */ +#line 423 "yyscript.y" + { + yyerror(closure, "OVERLAY section type is unsupported"); + (yyval.section_type) = SCRIPT_SECTION_TYPE_OVERLAY; + } + break; + + case 59: + +/* Line 1464 of yacc.c */ +#line 432 "yyscript.y" + { (yyval.expr) = NULL; } + break; + + case 60: + +/* Line 1464 of yacc.c */ +#line 434 "yyscript.y" + { (yyval.expr) = (yyvsp[(3) - (4)].expr); } + break; + + case 61: + +/* Line 1464 of yacc.c */ +#line 440 "yyscript.y" + { (yyval.expr) = NULL; } + break; + + case 62: + +/* Line 1464 of yacc.c */ +#line 442 "yyscript.y" + { (yyval.expr) = (yyvsp[(3) - (4)].expr); } + break; + + case 63: + +/* Line 1464 of yacc.c */ +#line 448 "yyscript.y" + { (yyval.expr) = NULL; } + break; + + case 64: + +/* Line 1464 of yacc.c */ +#line 450 "yyscript.y" + { (yyval.expr) = (yyvsp[(3) - (4)].expr); } + break; + + case 65: + +/* Line 1464 of yacc.c */ +#line 456 "yyscript.y" + { (yyval.constraint) = CONSTRAINT_NONE; } + break; + + case 66: + +/* Line 1464 of yacc.c */ +#line 458 "yyscript.y" + { (yyval.constraint) = CONSTRAINT_ONLY_IF_RO; } + break; + + case 67: + +/* Line 1464 of yacc.c */ +#line 460 "yyscript.y" + { (yyval.constraint) = CONSTRAINT_ONLY_IF_RW; } + break; + + case 68: + +/* Line 1464 of yacc.c */ +#line 462 "yyscript.y" + { (yyval.constraint) = CONSTRAINT_SPECIAL; } + break; + + case 69: + +/* Line 1464 of yacc.c */ +#line 468 "yyscript.y" + { + (yyval.output_section_trailer).fill = (yyvsp[(4) - (5)].expr); + (yyval.output_section_trailer).phdrs = (yyvsp[(3) - (5)].string_list); + } + break; + + case 70: + +/* Line 1464 of yacc.c */ +#line 477 "yyscript.y" + { script_set_section_region(closure, (yyvsp[(2) - (2)].string).value, (yyvsp[(2) - (2)].string).length, 1); } + break; + + case 72: + +/* Line 1464 of yacc.c */ +#line 484 "yyscript.y" + { script_set_section_region(closure, (yyvsp[(3) - (3)].string).value, (yyvsp[(3) - (3)].string).length, 0); } + break; + + case 74: + +/* Line 1464 of yacc.c */ +#line 491 "yyscript.y" + { (yyval.string_list) = script_string_list_push_back((yyvsp[(1) - (3)].string_list), (yyvsp[(3) - (3)].string).value, (yyvsp[(3) - (3)].string).length); } + break; + + case 75: + +/* Line 1464 of yacc.c */ +#line 493 "yyscript.y" + { (yyval.string_list) = NULL; } + break; + + case 76: + +/* Line 1464 of yacc.c */ +#line 500 "yyscript.y" + { (yyval.expr) = (yyvsp[(2) - (2)].expr); } + break; + + case 77: + +/* Line 1464 of yacc.c */ +#line 502 "yyscript.y" + { (yyval.expr) = NULL; } + break; + + case 82: + +/* Line 1464 of yacc.c */ +#line 518 "yyscript.y" + { script_add_data(closure, (yyvsp[(1) - (4)].integer), (yyvsp[(3) - (4)].expr)); } + break; + + case 83: + +/* Line 1464 of yacc.c */ +#line 520 "yyscript.y" + { script_add_assertion(closure, (yyvsp[(3) - (6)].expr), (yyvsp[(5) - (6)].string).value, (yyvsp[(5) - (6)].string).length); } + break; + + case 84: + +/* Line 1464 of yacc.c */ +#line 522 "yyscript.y" + { script_add_fill(closure, (yyvsp[(3) - (4)].expr)); } + break; + + case 85: + +/* Line 1464 of yacc.c */ +#line 524 "yyscript.y" + { + /* The GNU linker uses CONSTRUCTORS for the a.out object + file format. It does nothing when using ELF. Since + some ELF linker scripts use it although it does + nothing, we accept it and ignore it. */ + } + break; + + case 88: + +/* Line 1464 of yacc.c */ +#line 538 "yyscript.y" + { (yyval.integer) = QUAD; } + break; + + case 89: + +/* Line 1464 of yacc.c */ +#line 540 "yyscript.y" + { (yyval.integer) = SQUAD; } + break; + + case 90: + +/* Line 1464 of yacc.c */ +#line 542 "yyscript.y" + { (yyval.integer) = LONG; } + break; + + case 91: + +/* Line 1464 of yacc.c */ +#line 544 "yyscript.y" + { (yyval.integer) = SHORT; } + break; + + case 92: + +/* Line 1464 of yacc.c */ +#line 546 "yyscript.y" + { (yyval.integer) = BYTE; } + break; + + case 93: + +/* Line 1464 of yacc.c */ +#line 553 "yyscript.y" + { script_add_input_section(closure, &(yyvsp[(1) - (1)].input_section_spec), 0); } + break; + + case 94: + +/* Line 1464 of yacc.c */ +#line 555 "yyscript.y" + { script_add_input_section(closure, &(yyvsp[(3) - (4)].input_section_spec), 1); } + break; + + case 95: + +/* Line 1464 of yacc.c */ +#line 561 "yyscript.y" + { + (yyval.input_section_spec).file.name = (yyvsp[(1) - (1)].string); + (yyval.input_section_spec).file.sort = SORT_WILDCARD_NONE; + (yyval.input_section_spec).input_sections.sections = NULL; + (yyval.input_section_spec).input_sections.exclude = NULL; + } + break; + + case 96: + +/* Line 1464 of yacc.c */ +#line 568 "yyscript.y" + { + (yyval.input_section_spec).file = (yyvsp[(1) - (4)].wildcard_section); + (yyval.input_section_spec).input_sections = (yyvsp[(3) - (4)].wildcard_sections); + } + break; + + case 97: + +/* Line 1464 of yacc.c */ +#line 577 "yyscript.y" + { + (yyval.wildcard_section).name = (yyvsp[(1) - (1)].string); + (yyval.wildcard_section).sort = SORT_WILDCARD_NONE; + } + break; + + case 98: + +/* Line 1464 of yacc.c */ +#line 582 "yyscript.y" + { + (yyval.wildcard_section).name = (yyvsp[(3) - (4)].string); + (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME; + } + break; + + case 99: + +/* Line 1464 of yacc.c */ +#line 591 "yyscript.y" + { + (yyval.wildcard_sections).sections = script_string_sort_list_add((yyvsp[(1) - (3)].wildcard_sections).sections, &(yyvsp[(3) - (3)].wildcard_section)); + (yyval.wildcard_sections).exclude = (yyvsp[(1) - (3)].wildcard_sections).exclude; + } + break; + + case 100: + +/* Line 1464 of yacc.c */ +#line 596 "yyscript.y" + { + (yyval.wildcard_sections).sections = script_new_string_sort_list(&(yyvsp[(1) - (1)].wildcard_section)); + (yyval.wildcard_sections).exclude = NULL; + } + break; + + case 101: + +/* Line 1464 of yacc.c */ +#line 601 "yyscript.y" + { + (yyval.wildcard_sections).sections = (yyvsp[(1) - (6)].wildcard_sections).sections; + (yyval.wildcard_sections).exclude = script_string_list_append((yyvsp[(1) - (6)].wildcard_sections).exclude, (yyvsp[(5) - (6)].string_list)); + } + break; + + case 102: + +/* Line 1464 of yacc.c */ +#line 606 "yyscript.y" + { + (yyval.wildcard_sections).sections = NULL; + (yyval.wildcard_sections).exclude = (yyvsp[(3) - (4)].string_list); + } + break; + + case 103: + +/* Line 1464 of yacc.c */ +#line 615 "yyscript.y" + { + (yyval.wildcard_section).name = (yyvsp[(1) - (1)].string); + (yyval.wildcard_section).sort = SORT_WILDCARD_NONE; + } + break; + + case 104: + +/* Line 1464 of yacc.c */ +#line 620 "yyscript.y" + { + (yyval.wildcard_section).name = (yyvsp[(3) - (4)].wildcard_section).name; + switch ((yyvsp[(3) - (4)].wildcard_section).sort) + { + case SORT_WILDCARD_NONE: + (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME; + break; + case SORT_WILDCARD_BY_NAME: + case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT: + break; + case SORT_WILDCARD_BY_ALIGNMENT: + case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME: + (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME_BY_ALIGNMENT; + break; + default: + abort(); + } + } + break; + + case 105: + +/* Line 1464 of yacc.c */ +#line 639 "yyscript.y" + { + (yyval.wildcard_section).name = (yyvsp[(3) - (4)].wildcard_section).name; + switch ((yyvsp[(3) - (4)].wildcard_section).sort) + { + case SORT_WILDCARD_NONE: + (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT; + break; + case SORT_WILDCARD_BY_ALIGNMENT: + case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME: + break; + case SORT_WILDCARD_BY_NAME: + case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT: + (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT_BY_NAME; + break; + default: + abort(); + } + } + break; + + case 106: + +/* Line 1464 of yacc.c */ +#line 662 "yyscript.y" + { (yyval.string_list) = script_string_list_push_back((yyvsp[(1) - (3)].string_list), (yyvsp[(3) - (3)].string).value, (yyvsp[(3) - (3)].string).length); } + break; + + case 107: + +/* Line 1464 of yacc.c */ +#line 664 "yyscript.y" + { (yyval.string_list) = script_new_string_list((yyvsp[(1) - (1)].string).value, (yyvsp[(1) - (1)].string).length); } + break; + + case 108: + +/* Line 1464 of yacc.c */ +#line 671 "yyscript.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); } + break; + + case 109: + +/* Line 1464 of yacc.c */ +#line 673 "yyscript.y" + { + (yyval.string).value = "*"; + (yyval.string).length = 1; + } + break; + + case 110: + +/* Line 1464 of yacc.c */ +#line 678 "yyscript.y" + { + (yyval.string).value = "?"; + (yyval.string).length = 1; + } + break; + + case 111: + +/* Line 1464 of yacc.c */ +#line 688 "yyscript.y" + { script_set_entry(closure, (yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 113: + +/* Line 1464 of yacc.c */ +#line 691 "yyscript.y" + { script_add_assertion(closure, (yyvsp[(3) - (6)].expr), (yyvsp[(5) - (6)].string).value, (yyvsp[(5) - (6)].string).length); } + break; + + case 116: + +/* Line 1464 of yacc.c */ +#line 703 "yyscript.y" + { script_add_memory(closure, (yyvsp[(1) - (10)].string).value, (yyvsp[(1) - (10)].string).length, (yyvsp[(2) - (10)].integer), (yyvsp[(6) - (10)].expr), (yyvsp[(10) - (10)].expr)); } + break; + + case 117: + +/* Line 1464 of yacc.c */ +#line 707 "yyscript.y" + { script_include_directive(closure, (yyvsp[(2) - (2)].string).value, (yyvsp[(2) - (2)].string).length); } + break; + + case 119: + +/* Line 1464 of yacc.c */ +#line 714 "yyscript.y" + { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[(2) - (3)].string).value, (yyvsp[(2) - (3)].string).length, 0); } + break; + + case 120: + +/* Line 1464 of yacc.c */ +#line 717 "yyscript.y" + { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length, 1); } + break; + + case 121: + +/* Line 1464 of yacc.c */ +#line 719 "yyscript.y" + { (yyval.integer) = 0; } + break; + + case 130: + +/* Line 1464 of yacc.c */ +#line 747 "yyscript.y" + { script_add_phdr(closure, (yyvsp[(1) - (4)].string).value, (yyvsp[(1) - (4)].string).length, (yyvsp[(2) - (4)].integer), &(yyvsp[(3) - (4)].phdr_info)); } + break; + + case 131: + +/* Line 1464 of yacc.c */ +#line 756 "yyscript.y" + { (yyval.integer) = script_phdr_string_to_type(closure, (yyvsp[(1) - (1)].string).value, (yyvsp[(1) - (1)].string).length); } + break; + + case 132: + +/* Line 1464 of yacc.c */ +#line 758 "yyscript.y" + { (yyval.integer) = (yyvsp[(1) - (1)].integer); } + break; + + case 133: + +/* Line 1464 of yacc.c */ +#line 764 "yyscript.y" + { memset(&(yyval.phdr_info), 0, sizeof(struct Phdr_info)); } + break; + + case 134: + +/* Line 1464 of yacc.c */ +#line 766 "yyscript.y" + { + (yyval.phdr_info) = (yyvsp[(2) - (2)].phdr_info); + if ((yyvsp[(1) - (2)].string).length == 7 && strncmp((yyvsp[(1) - (2)].string).value, "FILEHDR", 7) == 0) + (yyval.phdr_info).includes_filehdr = 1; + else + yyerror(closure, "PHDRS syntax error"); + } + break; + + case 135: + +/* Line 1464 of yacc.c */ +#line 774 "yyscript.y" + { + (yyval.phdr_info) = (yyvsp[(2) - (2)].phdr_info); + (yyval.phdr_info).includes_phdrs = 1; + } + break; + + case 136: + +/* Line 1464 of yacc.c */ +#line 779 "yyscript.y" + { + (yyval.phdr_info) = (yyvsp[(5) - (5)].phdr_info); + if ((yyvsp[(1) - (5)].string).length == 5 && strncmp((yyvsp[(1) - (5)].string).value, "FLAGS", 5) == 0) + { + (yyval.phdr_info).is_flags_valid = 1; + (yyval.phdr_info).flags = (yyvsp[(3) - (5)].integer); + } + else + yyerror(closure, "PHDRS syntax error"); + } + break; + + case 137: + +/* Line 1464 of yacc.c */ +#line 790 "yyscript.y" + { + (yyval.phdr_info) = (yyvsp[(5) - (5)].phdr_info); + (yyval.phdr_info).load_address = (yyvsp[(3) - (5)].expr); + } + break; + + case 138: + +/* Line 1464 of yacc.c */ +#line 799 "yyscript.y" + { script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, (yyvsp[(3) - (3)].expr), 0, 0); } + break; + + case 139: + +/* Line 1464 of yacc.c */ +#line 801 "yyscript.y" + { + Expression_ptr s = script_exp_string((yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length); + Expression_ptr e = script_exp_binary_add(s, (yyvsp[(3) - (3)].expr)); + script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, e, 0, 0); + } + break; + + case 140: + +/* Line 1464 of yacc.c */ +#line 807 "yyscript.y" + { + Expression_ptr s = script_exp_string((yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length); + Expression_ptr e = script_exp_binary_sub(s, (yyvsp[(3) - (3)].expr)); + script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, e, 0, 0); + } + break; + + case 141: + +/* Line 1464 of yacc.c */ +#line 813 "yyscript.y" + { + Expression_ptr s = script_exp_string((yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length); + Expression_ptr e = script_exp_binary_mult(s, (yyvsp[(3) - (3)].expr)); + script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, e, 0, 0); + } + break; + + case 142: + +/* Line 1464 of yacc.c */ +#line 819 "yyscript.y" + { + Expression_ptr s = script_exp_string((yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length); + Expression_ptr e = script_exp_binary_div(s, (yyvsp[(3) - (3)].expr)); + script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, e, 0, 0); + } + break; + + case 143: + +/* Line 1464 of yacc.c */ +#line 825 "yyscript.y" + { + Expression_ptr s = script_exp_string((yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length); + Expression_ptr e = script_exp_binary_lshift(s, (yyvsp[(3) - (3)].expr)); + script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, e, 0, 0); + } + break; + + case 144: + +/* Line 1464 of yacc.c */ +#line 831 "yyscript.y" + { + Expression_ptr s = script_exp_string((yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length); + Expression_ptr e = script_exp_binary_rshift(s, (yyvsp[(3) - (3)].expr)); + script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, e, 0, 0); + } + break; + + case 145: + +/* Line 1464 of yacc.c */ +#line 837 "yyscript.y" + { + Expression_ptr s = script_exp_string((yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length); + Expression_ptr e = script_exp_binary_bitwise_and(s, (yyvsp[(3) - (3)].expr)); + script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, e, 0, 0); + } + break; + + case 146: + +/* Line 1464 of yacc.c */ +#line 843 "yyscript.y" + { + Expression_ptr s = script_exp_string((yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length); + Expression_ptr e = script_exp_binary_bitwise_or(s, (yyvsp[(3) - (3)].expr)); + script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, e, 0, 0); + } + break; + + case 147: + +/* Line 1464 of yacc.c */ +#line 849 "yyscript.y" + { script_set_symbol(closure, (yyvsp[(3) - (6)].string).value, (yyvsp[(3) - (6)].string).length, (yyvsp[(5) - (6)].expr), 1, 0); } + break; + + case 148: + +/* Line 1464 of yacc.c */ +#line 851 "yyscript.y" + { script_set_symbol(closure, (yyvsp[(3) - (6)].string).value, (yyvsp[(3) - (6)].string).length, (yyvsp[(5) - (6)].expr), 1, 1); } + break; + + case 149: + +/* Line 1464 of yacc.c */ +#line 856 "yyscript.y" + { script_push_lex_into_expression_mode(closure); } + break; + + case 150: + +/* Line 1464 of yacc.c */ +#line 858 "yyscript.y" + { + script_pop_lex_mode(closure); + (yyval.expr) = (yyvsp[(2) - (2)].expr); + } + break; + + case 151: + +/* Line 1464 of yacc.c */ +#line 867 "yyscript.y" + { (yyval.expr) = (yyvsp[(2) - (3)].expr); } + break; + + case 152: + +/* Line 1464 of yacc.c */ +#line 869 "yyscript.y" + { (yyval.expr) = script_exp_unary_minus((yyvsp[(2) - (2)].expr)); } + break; + + case 153: + +/* Line 1464 of yacc.c */ +#line 871 "yyscript.y" + { (yyval.expr) = script_exp_unary_logical_not((yyvsp[(2) - (2)].expr)); } + break; + + case 154: + +/* Line 1464 of yacc.c */ +#line 873 "yyscript.y" + { (yyval.expr) = script_exp_unary_bitwise_not((yyvsp[(2) - (2)].expr)); } + break; + + case 155: + +/* Line 1464 of yacc.c */ +#line 875 "yyscript.y" + { (yyval.expr) = (yyvsp[(2) - (2)].expr); } + break; + + case 156: + +/* Line 1464 of yacc.c */ +#line 877 "yyscript.y" + { (yyval.expr) = script_exp_binary_mult((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 157: + +/* Line 1464 of yacc.c */ +#line 879 "yyscript.y" + { (yyval.expr) = script_exp_binary_div((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 158: + +/* Line 1464 of yacc.c */ +#line 881 "yyscript.y" + { (yyval.expr) = script_exp_binary_mod((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 159: + +/* Line 1464 of yacc.c */ +#line 883 "yyscript.y" + { (yyval.expr) = script_exp_binary_add((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 160: + +/* Line 1464 of yacc.c */ +#line 885 "yyscript.y" + { (yyval.expr) = script_exp_binary_sub((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 161: + +/* Line 1464 of yacc.c */ +#line 887 "yyscript.y" + { (yyval.expr) = script_exp_binary_lshift((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 162: + +/* Line 1464 of yacc.c */ +#line 889 "yyscript.y" + { (yyval.expr) = script_exp_binary_rshift((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 163: + +/* Line 1464 of yacc.c */ +#line 891 "yyscript.y" + { (yyval.expr) = script_exp_binary_eq((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 164: + +/* Line 1464 of yacc.c */ +#line 893 "yyscript.y" + { (yyval.expr) = script_exp_binary_ne((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 165: + +/* Line 1464 of yacc.c */ +#line 895 "yyscript.y" + { (yyval.expr) = script_exp_binary_le((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 166: + +/* Line 1464 of yacc.c */ +#line 897 "yyscript.y" + { (yyval.expr) = script_exp_binary_ge((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 167: + +/* Line 1464 of yacc.c */ +#line 899 "yyscript.y" + { (yyval.expr) = script_exp_binary_lt((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 168: + +/* Line 1464 of yacc.c */ +#line 901 "yyscript.y" + { (yyval.expr) = script_exp_binary_gt((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 169: + +/* Line 1464 of yacc.c */ +#line 903 "yyscript.y" + { (yyval.expr) = script_exp_binary_bitwise_and((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 170: + +/* Line 1464 of yacc.c */ +#line 905 "yyscript.y" + { (yyval.expr) = script_exp_binary_bitwise_xor((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 171: + +/* Line 1464 of yacc.c */ +#line 907 "yyscript.y" + { (yyval.expr) = script_exp_binary_bitwise_or((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 172: + +/* Line 1464 of yacc.c */ +#line 909 "yyscript.y" + { (yyval.expr) = script_exp_binary_logical_and((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 173: + +/* Line 1464 of yacc.c */ +#line 911 "yyscript.y" + { (yyval.expr) = script_exp_binary_logical_or((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } + break; + + case 174: + +/* Line 1464 of yacc.c */ +#line 913 "yyscript.y" + { (yyval.expr) = script_exp_trinary_cond((yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); } + break; + + case 175: + +/* Line 1464 of yacc.c */ +#line 915 "yyscript.y" + { (yyval.expr) = script_exp_integer((yyvsp[(1) - (1)].integer)); } + break; + + case 176: + +/* Line 1464 of yacc.c */ +#line 917 "yyscript.y" + { (yyval.expr) = script_symbol(closure, (yyvsp[(1) - (1)].string).value, (yyvsp[(1) - (1)].string).length); } + break; + + case 177: + +/* Line 1464 of yacc.c */ +#line 919 "yyscript.y" + { (yyval.expr) = script_exp_function_max((yyvsp[(3) - (6)].expr), (yyvsp[(5) - (6)].expr)); } + break; + + case 178: + +/* Line 1464 of yacc.c */ +#line 921 "yyscript.y" + { (yyval.expr) = script_exp_function_min((yyvsp[(3) - (6)].expr), (yyvsp[(5) - (6)].expr)); } + break; + + case 179: + +/* Line 1464 of yacc.c */ +#line 923 "yyscript.y" + { (yyval.expr) = script_exp_function_defined((yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 180: + +/* Line 1464 of yacc.c */ +#line 925 "yyscript.y" + { (yyval.expr) = script_exp_function_sizeof_headers(); } + break; + + case 181: + +/* Line 1464 of yacc.c */ +#line 927 "yyscript.y" + { (yyval.expr) = script_exp_function_alignof((yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 182: + +/* Line 1464 of yacc.c */ +#line 929 "yyscript.y" + { (yyval.expr) = script_exp_function_sizeof((yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 183: + +/* Line 1464 of yacc.c */ +#line 931 "yyscript.y" + { (yyval.expr) = script_exp_function_addr((yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 184: + +/* Line 1464 of yacc.c */ +#line 933 "yyscript.y" + { (yyval.expr) = script_exp_function_loadaddr((yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 185: + +/* Line 1464 of yacc.c */ +#line 935 "yyscript.y" + { (yyval.expr) = script_exp_function_origin(closure, (yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 186: + +/* Line 1464 of yacc.c */ +#line 937 "yyscript.y" + { (yyval.expr) = script_exp_function_length(closure, (yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 187: + +/* Line 1464 of yacc.c */ +#line 939 "yyscript.y" + { (yyval.expr) = script_exp_function_constant((yyvsp[(3) - (4)].string).value, (yyvsp[(3) - (4)].string).length); } + break; + + case 188: + +/* Line 1464 of yacc.c */ +#line 941 "yyscript.y" + { (yyval.expr) = script_exp_function_absolute((yyvsp[(3) - (4)].expr)); } + break; + + case 189: + +/* Line 1464 of yacc.c */ +#line 943 "yyscript.y" + { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[(3) - (4)].expr)); } + break; + + case 190: + +/* Line 1464 of yacc.c */ +#line 945 "yyscript.y" + { (yyval.expr) = script_exp_function_align((yyvsp[(3) - (6)].expr), (yyvsp[(5) - (6)].expr)); } + break; + + case 191: + +/* Line 1464 of yacc.c */ +#line 947 "yyscript.y" + { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[(3) - (4)].expr)); } + break; + + case 192: + +/* Line 1464 of yacc.c */ +#line 949 "yyscript.y" + { + script_data_segment_align(closure); + (yyval.expr) = script_exp_function_data_segment_align((yyvsp[(3) - (6)].expr), (yyvsp[(5) - (6)].expr)); + } + break; + + case 193: + +/* Line 1464 of yacc.c */ +#line 954 "yyscript.y" + { + script_data_segment_relro_end(closure); + (yyval.expr) = script_exp_function_data_segment_relro_end((yyvsp[(3) - (6)].expr), (yyvsp[(5) - (6)].expr)); + } + break; + + case 194: + +/* Line 1464 of yacc.c */ +#line 959 "yyscript.y" + { (yyval.expr) = script_exp_function_data_segment_end((yyvsp[(3) - (4)].expr)); } + break; + + case 195: + +/* Line 1464 of yacc.c */ +#line 961 "yyscript.y" + { + (yyval.expr) = script_exp_function_segment_start((yyvsp[(3) - (6)].string).value, (yyvsp[(3) - (6)].string).length, (yyvsp[(5) - (6)].expr)); + /* We need to take note of any SEGMENT_START expressions + because they change the behaviour of -Ttext, -Tdata and + -Tbss options. */ + script_saw_segment_start_expression(closure); + } + break; + + case 196: + +/* Line 1464 of yacc.c */ +#line 969 "yyscript.y" + { (yyval.expr) = script_exp_function_assert((yyvsp[(3) - (6)].expr), (yyvsp[(5) - (6)].string).value, (yyvsp[(5) - (6)].string).length); } + break; + + case 197: + +/* Line 1464 of yacc.c */ +#line 975 "yyscript.y" + { script_set_symbol(closure, (yyvsp[(1) - (3)].string).value, (yyvsp[(1) - (3)].string).length, (yyvsp[(3) - (3)].expr), 0, 0); } + break; + + case 201: + +/* Line 1464 of yacc.c */ +#line 993 "yyscript.y" + { script_new_vers_node (closure, NULL, (yyvsp[(2) - (5)].versyms)); } + break; + + case 205: + +/* Line 1464 of yacc.c */ +#line 1008 "yyscript.y" + { + script_register_vers_node (closure, NULL, 0, (yyvsp[(2) - (4)].versnode), NULL); + } + break; + + case 206: + +/* Line 1464 of yacc.c */ +#line 1012 "yyscript.y" + { + script_register_vers_node (closure, (yyvsp[(1) - (5)].string).value, (yyvsp[(1) - (5)].string).length, (yyvsp[(3) - (5)].versnode), + NULL); + } + break; + + case 207: + +/* Line 1464 of yacc.c */ +#line 1017 "yyscript.y" + { + script_register_vers_node (closure, (yyvsp[(1) - (6)].string).value, (yyvsp[(1) - (6)].string).length, (yyvsp[(3) - (6)].versnode), (yyvsp[(5) - (6)].deplist)); + } + break; + + case 208: + +/* Line 1464 of yacc.c */ +#line 1024 "yyscript.y" + { + (yyval.deplist) = script_add_vers_depend (closure, NULL, (yyvsp[(1) - (1)].string).value, (yyvsp[(1) - (1)].string).length); + } + break; + + case 209: + +/* Line 1464 of yacc.c */ +#line 1028 "yyscript.y" + { + (yyval.deplist) = script_add_vers_depend (closure, (yyvsp[(1) - (2)].deplist), (yyvsp[(2) - (2)].string).value, (yyvsp[(2) - (2)].string).length); + } + break; + + case 210: + +/* Line 1464 of yacc.c */ +#line 1035 "yyscript.y" + { (yyval.versnode) = script_new_vers_node (closure, NULL, NULL); } + break; + + case 211: + +/* Line 1464 of yacc.c */ +#line 1037 "yyscript.y" + { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[(1) - (2)].versyms), NULL); } + break; + + case 212: + +/* Line 1464 of yacc.c */ +#line 1039 "yyscript.y" + { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[(3) - (4)].versyms), NULL); } + break; + + case 213: + +/* Line 1464 of yacc.c */ +#line 1041 "yyscript.y" + { (yyval.versnode) = script_new_vers_node (closure, NULL, (yyvsp[(3) - (4)].versyms)); } + break; + + case 214: + +/* Line 1464 of yacc.c */ +#line 1043 "yyscript.y" + { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[(3) - (8)].versyms), (yyvsp[(7) - (8)].versyms)); } + break; + + case 215: + +/* Line 1464 of yacc.c */ +#line 1052 "yyscript.y" + { + (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[(1) - (1)].string).value, + (yyvsp[(1) - (1)].string).length, 0); + } + break; + + case 216: + +/* Line 1464 of yacc.c */ +#line 1057 "yyscript.y" + { + (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[(1) - (1)].string).value, + (yyvsp[(1) - (1)].string).length, 1); + } + break; + + case 217: + +/* Line 1464 of yacc.c */ +#line 1062 "yyscript.y" + { + (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].string).value, + (yyvsp[(3) - (3)].string).length, 0); + } + break; + + case 218: + +/* Line 1464 of yacc.c */ +#line 1067 "yyscript.y" + { + (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].string).value, + (yyvsp[(3) - (3)].string).length, 1); + } + break; + + case 219: + +/* Line 1464 of yacc.c */ +#line 1073 "yyscript.y" + { version_script_push_lang (closure, (yyvsp[(2) - (3)].string).value, (yyvsp[(2) - (3)].string).length); } + break; + + case 220: + +/* Line 1464 of yacc.c */ +#line 1075 "yyscript.y" + { + (yyval.versyms) = (yyvsp[(5) - (7)].versyms); + version_script_pop_lang(closure); + } + break; + + case 221: + +/* Line 1464 of yacc.c */ +#line 1083 "yyscript.y" + { version_script_push_lang (closure, (yyvsp[(4) - (5)].string).value, (yyvsp[(4) - (5)].string).length); } + break; + + case 222: + +/* Line 1464 of yacc.c */ +#line 1085 "yyscript.y" + { + (yyval.versyms) = script_merge_expressions ((yyvsp[(1) - (9)].versyms), (yyvsp[(7) - (9)].versyms)); + version_script_pop_lang(closure); + } + break; + + case 223: + +/* Line 1464 of yacc.c */ +#line 1090 "yyscript.y" + { + (yyval.versyms) = script_new_vers_pattern (closure, NULL, "extern", + sizeof("extern") - 1, 1); + } + break; + + case 224: + +/* Line 1464 of yacc.c */ +#line 1095 "yyscript.y" + { + (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[(1) - (3)].versyms), "extern", + sizeof("extern") - 1, 1); + } + break; + + case 225: + +/* Line 1464 of yacc.c */ +#line 1105 "yyscript.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); } + break; + + case 226: + +/* Line 1464 of yacc.c */ +#line 1107 "yyscript.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); } + break; + + + +/* Line 1464 of yacc.c */ +#line 3696 "yyscript.c" + default: break; + } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (closure, YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (closure, yymsg); + } + else + { + yyerror (closure, YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval, closure); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp, closure); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined(yyoverflow) || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (closure, YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, closure); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp, closure); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); +} + + + +/* Line 1684 of yacc.c */ +#line 1129 "yyscript.y" + + diff --git a/gnu/usr.bin/binutils222/libgold/yyscript.h b/gnu/usr.bin/binutils222/libgold/yyscript.h new file mode 100644 index 0000000000..15a40a102d --- /dev/null +++ b/gnu/usr.bin/binutils222/libgold/yyscript.h @@ -0,0 +1,293 @@ +/* A Bison parser, made by GNU Bison 2.4.3. */ + +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2009, 2010 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + OREQ = 258, + ANDEQ = 259, + RSHIFTEQ = 260, + LSHIFTEQ = 261, + DIVEQ = 262, + MULTEQ = 263, + MINUSEQ = 264, + PLUSEQ = 265, + OROR = 266, + ANDAND = 267, + NE = 268, + EQ = 269, + GE = 270, + LE = 271, + RSHIFT = 272, + LSHIFT = 273, + UNARY = 274, + STRING = 275, + QUOTED_STRING = 276, + INTEGER = 277, + ABSOLUTE = 278, + ADDR = 279, + ALIGN_K = 280, + ALIGNOF = 281, + ASSERT_K = 282, + AS_NEEDED = 283, + AT = 284, + BIND = 285, + BLOCK = 286, + BYTE = 287, + CONSTANT = 288, + CONSTRUCTORS = 289, + COPY = 290, + CREATE_OBJECT_SYMBOLS = 291, + DATA_SEGMENT_ALIGN = 292, + DATA_SEGMENT_END = 293, + DATA_SEGMENT_RELRO_END = 294, + DEFINED = 295, + DSECT = 296, + ENTRY = 297, + EXCLUDE_FILE = 298, + EXTERN = 299, + FILL = 300, + FLOAT = 301, + FORCE_COMMON_ALLOCATION = 302, + GLOBAL = 303, + GROUP = 304, + HLL = 305, + INCLUDE = 306, + INHIBIT_COMMON_ALLOCATION = 307, + INFO = 308, + INPUT = 309, + KEEP = 310, + LEN = 311, + LENGTH = 312, + LOADADDR = 313, + LOCAL = 314, + LONG = 315, + MAP = 316, + MAX_K = 317, + MEMORY = 318, + MIN_K = 319, + NEXT = 320, + NOCROSSREFS = 321, + NOFLOAT = 322, + NOLOAD = 323, + ONLY_IF_RO = 324, + ONLY_IF_RW = 325, + ORG = 326, + ORIGIN = 327, + OUTPUT = 328, + OUTPUT_ARCH = 329, + OUTPUT_FORMAT = 330, + OVERLAY = 331, + PHDRS = 332, + PROVIDE = 333, + PROVIDE_HIDDEN = 334, + QUAD = 335, + SEARCH_DIR = 336, + SECTIONS = 337, + SEGMENT_START = 338, + SHORT = 339, + SIZEOF = 340, + SIZEOF_HEADERS = 341, + SORT_BY_ALIGNMENT = 342, + SORT_BY_NAME = 343, + SPECIAL = 344, + SQUAD = 345, + STARTUP = 346, + SUBALIGN = 347, + SYSLIB = 348, + TARGET_K = 349, + TRUNCATE = 350, + VERSIONK = 351, + OPTION = 352, + PARSING_LINKER_SCRIPT = 353, + PARSING_VERSION_SCRIPT = 354, + PARSING_DEFSYM = 355, + PARSING_DYNAMIC_LIST = 356 + }; +#endif +/* Tokens. */ +#define OREQ 258 +#define ANDEQ 259 +#define RSHIFTEQ 260 +#define LSHIFTEQ 261 +#define DIVEQ 262 +#define MULTEQ 263 +#define MINUSEQ 264 +#define PLUSEQ 265 +#define OROR 266 +#define ANDAND 267 +#define NE 268 +#define EQ 269 +#define GE 270 +#define LE 271 +#define RSHIFT 272 +#define LSHIFT 273 +#define UNARY 274 +#define STRING 275 +#define QUOTED_STRING 276 +#define INTEGER 277 +#define ABSOLUTE 278 +#define ADDR 279 +#define ALIGN_K 280 +#define ALIGNOF 281 +#define ASSERT_K 282 +#define AS_NEEDED 283 +#define AT 284 +#define BIND 285 +#define BLOCK 286 +#define BYTE 287 +#define CONSTANT 288 +#define CONSTRUCTORS 289 +#define COPY 290 +#define CREATE_OBJECT_SYMBOLS 291 +#define DATA_SEGMENT_ALIGN 292 +#define DATA_SEGMENT_END 293 +#define DATA_SEGMENT_RELRO_END 294 +#define DEFINED 295 +#define DSECT 296 +#define ENTRY 297 +#define EXCLUDE_FILE 298 +#define EXTERN 299 +#define FILL 300 +#define FLOAT 301 +#define FORCE_COMMON_ALLOCATION 302 +#define GLOBAL 303 +#define GROUP 304 +#define HLL 305 +#define INCLUDE 306 +#define INHIBIT_COMMON_ALLOCATION 307 +#define INFO 308 +#define INPUT 309 +#define KEEP 310 +#define LEN 311 +#define LENGTH 312 +#define LOADADDR 313 +#define LOCAL 314 +#define LONG 315 +#define MAP 316 +#define MAX_K 317 +#define MEMORY 318 +#define MIN_K 319 +#define NEXT 320 +#define NOCROSSREFS 321 +#define NOFLOAT 322 +#define NOLOAD 323 +#define ONLY_IF_RO 324 +#define ONLY_IF_RW 325 +#define ORG 326 +#define ORIGIN 327 +#define OUTPUT 328 +#define OUTPUT_ARCH 329 +#define OUTPUT_FORMAT 330 +#define OVERLAY 331 +#define PHDRS 332 +#define PROVIDE 333 +#define PROVIDE_HIDDEN 334 +#define QUAD 335 +#define SEARCH_DIR 336 +#define SECTIONS 337 +#define SEGMENT_START 338 +#define SHORT 339 +#define SIZEOF 340 +#define SIZEOF_HEADERS 341 +#define SORT_BY_ALIGNMENT 342 +#define SORT_BY_NAME 343 +#define SPECIAL 344 +#define SQUAD 345 +#define STARTUP 346 +#define SUBALIGN 347 +#define SYSLIB 348 +#define TARGET_K 349 +#define TRUNCATE 350 +#define VERSIONK 351 +#define OPTION 352 +#define PARSING_LINKER_SCRIPT 353 +#define PARSING_VERSION_SCRIPT 354 +#define PARSING_DEFSYM 355 +#define PARSING_DYNAMIC_LIST 356 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ + +/* Line 1685 of yacc.c */ +#line 53 "yyscript.y" + + /* A string. */ + struct Parser_string string; + /* A number. */ + uint64_t integer; + /* An expression. */ + Expression_ptr expr; + /* An output section header. */ + struct Parser_output_section_header output_section_header; + /* An output section trailer. */ + struct Parser_output_section_trailer output_section_trailer; + /* A section constraint. */ + enum Section_constraint constraint; + /* A complete input section specification. */ + struct Input_section_spec input_section_spec; + /* A list of wildcard specifications, with exclusions. */ + struct Wildcard_sections wildcard_sections; + /* A single wildcard specification. */ + struct Wildcard_section wildcard_section; + /* A list of strings. */ + String_list_ptr string_list; + /* Information for a program header. */ + struct Phdr_info phdr_info; + /* Used for version scripts and within VERSION {}. */ + struct Version_dependency_list* deplist; + struct Version_expression_list* versyms; + struct Version_tree* versnode; + enum Script_section_type section_type; + + + +/* Line 1685 of yacc.c */ +#line 285 "yyscript.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + + + + diff --git a/gnu/usr.bin/binutils222/libiberty/Makefile b/gnu/usr.bin/binutils222/libiberty/Makefile new file mode 100644 index 0000000000..1fe6d85551 --- /dev/null +++ b/gnu/usr.bin/binutils222/libiberty/Makefile @@ -0,0 +1,50 @@ +.include "../Makefile.inc0" + +.PATH: ${SRCDIR}/libiberty + +LIB= iberty +SRCS= argv.c \ + choose-temp.c \ + concat.c \ + cp-demangle.c \ + cp-demint.c \ + cplus-dem.c \ + crc32.c \ + dyn-string.c \ + filename_cmp.c \ + floatformat.c \ + getopt.c \ + getopt1.c \ + getpwd.c \ + getruntime.c \ + hashtab.c \ + hex.c \ + lbasename.c \ + lrealpath.c \ + make-relative-prefix.c \ + make-temp-file.c \ + md5.c \ + mempcpy.c \ + objalloc.c \ + obstack.c \ + safe-ctype.c \ + setproctitle.c \ + sha1.c \ + simple-object.c \ + simple-object-coff.c \ + simple-object-elf.c \ + simple-object-mach-o.c \ + stack-limit.c \ + stpcpy.c \ + unlink-if-ordinary.c \ + xatexit.c \ + xexit.c \ + xmalloc.c \ + xstrdup.c \ + xstrerror.c \ + xstrndup.c +WARNS= 1 +CFLAGS+= -DHAVE_CONFIG_H +INTERNALLIB= true + +.include diff --git a/gnu/usr.bin/binutils222/libiberty/config.h b/gnu/usr.bin/binutils222/libiberty/config.h new file mode 100644 index 0000000000..7526eb2f2f --- /dev/null +++ b/gnu/usr.bin/binutils222/libiberty/config.h @@ -0,0 +1,497 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +/* #undef CRAY_STACKSEG_END */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ALLOCA_H */ + +/* Define to 1 if you have the `asprintf' function. */ +#define HAVE_ASPRINTF 1 + +/* Define to 1 if you have the `atexit' function. */ +#define HAVE_ATEXIT 1 + +/* Define to 1 if you have the `basename' function. */ +#define HAVE_BASENAME 1 + +/* Define to 1 if you have the `bcmp' function. */ +#define HAVE_BCMP 1 + +/* Define to 1 if you have the `bcopy' function. */ +#define HAVE_BCOPY 1 + +/* Define to 1 if you have the `bsearch' function. */ +#define HAVE_BSEARCH 1 + +/* Define to 1 if you have the `bzero' function. */ +#define HAVE_BZERO 1 + +/* Define to 1 if you have the `calloc' function. */ +#define HAVE_CALLOC 1 + +/* Define to 1 if you have the `canonicalize_file_name' function. */ +/* #undef HAVE_CANONICALIZE_FILE_NAME */ + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the declaration of `asprintf', and to 0 if you + don't. */ +#define HAVE_DECL_ASPRINTF 1 + +/* Define to 1 if you have the declaration of `basename(char *)', and to 0 if + you don't. */ +#define HAVE_DECL_BASENAME 0 + +/* Define to 1 if you have the declaration of `calloc', and to 0 if you don't. + */ +#define HAVE_DECL_CALLOC 1 + +/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */ +#define HAVE_DECL_FFS 1 + +/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. + */ +#define HAVE_DECL_GETENV 1 + +/* Define to 1 if you have the declaration of `getopt', and to 0 if you don't. + */ +#define HAVE_DECL_GETOPT 1 + +/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't. + */ +#define HAVE_DECL_MALLOC 1 + +/* Define to 1 if you have the declaration of `realloc', and to 0 if you + don't. */ +#define HAVE_DECL_REALLOC 1 + +/* Define to 1 if you have the declaration of `sbrk', and to 0 if you don't. + */ +#define HAVE_DECL_SBRK 1 + +/* Define to 1 if you have the declaration of `snprintf', and to 0 if you + don't. */ +#define HAVE_DECL_SNPRINTF 1 + +/* Define to 1 if you have the declaration of `strverscmp', and to 0 if you + don't. */ +#define HAVE_DECL_STRVERSCMP 0 + +/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VASPRINTF 1 + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VSNPRINTF 1 + +/* Define to 1 if you have the `dup3' function. */ +/* #undef HAVE_DUP3 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `ffs' function. */ +#define HAVE_FFS 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `getcwd' function. */ +#define HAVE_GETCWD 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getrlimit' function. */ +#define HAVE_GETRLIMIT 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define to 1 if you have the `getsysinfo' function. */ +/* #undef HAVE_GETSYSINFO */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the `index' function. */ +#define HAVE_INDEX 1 + +/* Define to 1 if you have the `insque' function. */ +#define HAVE_INSQUE 1 + +/* Define to 1 if the system has the type `intptr_t'. */ +#define HAVE_INTPTR_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACHINE_HAL_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MALLOC_H */ + +/* Define to 1 if you have the `memchr' function. */ +#define HAVE_MEMCHR 1 + +/* Define to 1 if you have the `memcmp' function. */ +#define HAVE_MEMCMP 1 + +/* Define to 1 if you have the `memcpy' function. */ +#define HAVE_MEMCPY 1 + +/* Define to 1 if you have the `memmem' function. */ +#define HAVE_MEMMEM 1 + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the `mkstemps' function. */ +#define HAVE_MKSTEMPS 1 + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `on_exit' function. */ +/* #undef HAVE_ON_EXIT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `psignal' function. */ +#define HAVE_PSIGNAL 1 + +/* Define to 1 if you have the `pstat_getdynamic' function. */ +/* #undef HAVE_PSTAT_GETDYNAMIC */ + +/* Define to 1 if you have the `pstat_getstatic' function. */ +/* #undef HAVE_PSTAT_GETSTATIC */ + +/* Define to 1 if you have the `putenv' function. */ +#define HAVE_PUTENV 1 + +/* Define to 1 if you have the `random' function. */ +#define HAVE_RANDOM 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define to 1 if you have the `rename' function. */ +#define HAVE_RENAME 1 + +/* Define to 1 if you have the `rindex' function. */ +#define HAVE_RINDEX 1 + +/* Define to 1 if you have the `sbrk' function. */ +#define HAVE_SBRK 1 + +/* Define to 1 if you have the `setenv' function. */ +#define HAVE_SETENV 1 + +/* Define to 1 if you have the `setproctitle' function. */ +#define HAVE_SETPROCTITLE 1 + +/* Define to 1 if you have the `setrlimit' function. */ +#define HAVE_SETRLIMIT 1 + +/* Define to 1 if you have the `sigsetmask' function. */ +#define HAVE_SIGSETMASK 1 + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* Define to 1 if you have the `spawnve' function. */ +/* #undef HAVE_SPAWNVE */ + +/* Define to 1 if you have the `spawnvpe' function. */ +/* #undef HAVE_SPAWNVPE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STDIO_EXT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `stpcpy' function. */ +#define HAVE_STPCPY 1 + +/* Define to 1 if you have the `stpncpy' function. */ +/* #undef HAVE_STPNCPY */ + +/* Define to 1 if you have the `strcasecmp' function. */ +#define HAVE_STRCASECMP 1 + +/* Define to 1 if you have the `strchr' function. */ +#define HAVE_STRCHR 1 + +/* Define to 1 if you have the `strdup' function. */ +#define HAVE_STRDUP 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strncasecmp' function. */ +#define HAVE_STRNCASECMP 1 + +/* Define to 1 if you have the `strndup' function. */ +#define HAVE_STRNDUP 1 + +/* Define to 1 if you have the `strrchr' function. */ +#define HAVE_STRRCHR 1 + +/* Define to 1 if you have the `strsignal' function. */ +#define HAVE_STRSIGNAL 1 + +/* Define to 1 if you have the `strstr' function. */ +#define HAVE_STRSTR 1 + +/* Define to 1 if you have the `strtod' function. */ +#define HAVE_STRTOD 1 + +/* Define to 1 if you have the `strtol' function. */ +#define HAVE_STRTOL 1 + +/* Define to 1 if you have the `strtoul' function. */ +#define HAVE_STRTOUL 1 + +/* Define to 1 if you have the `strverscmp' function. */ +/* #undef HAVE_STRVERSCMP */ + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the `sysctl' function. */ +#define HAVE_SYSCTL 1 + +/* Define to 1 if you have the `sysmp' function. */ +/* #undef HAVE_SYSMP */ + +/* Define if you have the sys_errlist variable. */ +#define HAVE_SYS_ERRLIST 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define if you have the sys_nerr variable. */ +#define HAVE_SYS_NERR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PRCTL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PSTAT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define if you have the sys_siglist variable. */ +#define HAVE_SYS_SIGLIST 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSMP_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSTEMCFG_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TABLE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the `table' function. */ +/* #undef HAVE_TABLE */ + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TIME_H 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define if you have the \`uintptr_t' type. */ +#define HAVE_UINTPTR_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vasprintf' function. */ +#define HAVE_VASPRINTF 1 + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VFORK_H */ + +/* Define to 1 if you have the `vfprintf' function. */ +#define HAVE_VFPRINTF 1 + +/* Define to 1 if you have the `vprintf' function. */ +#define HAVE_VPRINTF 1 + +/* Define to 1 if you have the `vsprintf' function. */ +#define HAVE_VSPRINTF 1 + +/* Define to 1 if you have the `wait3' function. */ +#define HAVE_WAIT3 1 + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define to 1 if `fork' works. */ +#define HAVE_WORKING_FORK 1 + +/* Define to 1 if `vfork' works. */ +#define HAVE_WORKING_VFORK 1 + +/* Define to 1 if you have the `_doprnt' function. */ +/* #undef HAVE__DOPRNT */ + +/* Define if you have the _system_configuration variable. */ +/* #undef HAVE__SYSTEM_CONFIGURATION */ + +/* Define to 1 if you have the `__fsetlocking' function. */ +/* #undef HAVE___FSETLOCKING */ + +/* Define if canonicalize_file_name is not declared in system header files. */ +#define NEED_DECLARATION_CANONICALIZE_FILE_NAME 1 + +/* Define if errno must be declared even when is included. */ +/* #undef NEED_DECLARATION_ERRNO */ + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* Define if you know the direction of stack growth for your system; otherwise + it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows + toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +#define STACK_DIRECTION -1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Define to an unsigned 64-bit type available in the compiler. */ +#define UNSIGNED_64BIT_TYPE uint64_t + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the type of a signed integer type wide enough to hold a pointer, + if such a type exists, and if the system does not define it. */ +/* #undef intptr_t */ + +/* Define to `int' if does not define. */ +/* #undef pid_t */ + +/* Define to `int' if does not define. */ +/* #undef ssize_t */ + +/* Define to the type of an unsigned integer type wide enough to hold a + pointer, if such a type exists, and if the system does not define it. */ +/* #undef uintptr_t */ + +/* Define as `fork' if `vfork' does not work. */ +/* #undef vfork */ diff --git a/gnu/usr.bin/binutils222/libopcodes/Makefile b/gnu/usr.bin/binutils222/libopcodes/Makefile new file mode 100644 index 0000000000..fbf29d8649 --- /dev/null +++ b/gnu/usr.bin/binutils222/libopcodes/Makefile @@ -0,0 +1,15 @@ +.include "../Makefile.inc0" + +LIB= opcodes +INTERNALLIB= true + +CONTRIBDIR= ${SRCDIR}/opcodes +.PATH: ${CONTRIBDIR} + +CFLAGS+= -I${SRCDIR}/include -I${.CURDIR} -I${.CURDIR}/../libbfd -I${.OBJDIR}/../libbfd + +SRCS= dis-buf.c dis-init.c disassemble.c + +.include "Makefile.${MACHINE_ARCH}" + +.include diff --git a/gnu/usr.bin/binutils222/libopcodes/Makefile.i386 b/gnu/usr.bin/binutils222/libopcodes/Makefile.i386 new file mode 100644 index 0000000000..a1621b106b --- /dev/null +++ b/gnu/usr.bin/binutils222/libopcodes/Makefile.i386 @@ -0,0 +1,2 @@ +SRCS+= i386-dis.c i386-opc.c +CFLAGS+= -DARCH_i386 diff --git a/gnu/usr.bin/binutils222/libopcodes/Makefile.x86_64 b/gnu/usr.bin/binutils222/libopcodes/Makefile.x86_64 new file mode 100644 index 0000000000..a1621b106b --- /dev/null +++ b/gnu/usr.bin/binutils222/libopcodes/Makefile.x86_64 @@ -0,0 +1,2 @@ +SRCS+= i386-dis.c i386-opc.c +CFLAGS+= -DARCH_i386 diff --git a/gnu/usr.bin/binutils222/libopcodes/config.h b/gnu/usr.bin/binutils222/libopcodes/config.h new file mode 100644 index 0000000000..b8d46db1e1 --- /dev/null +++ b/gnu/usr.bin/binutils222/libopcodes/config.h @@ -0,0 +1,110 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Define to 1 if you have the declaration of `basename', and to 0 if you + don't. */ +#define HAVE_DECL_BASENAME 0 + +/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't. + */ +#define HAVE_DECL_STPCPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "opcodes" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version number of package */ +#define VERSION "2.22" + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ diff --git a/gnu/usr.bin/binutils222/nm/Makefile b/gnu/usr.bin/binutils222/nm/Makefile new file mode 100644 index 0000000000..9f43414129 --- /dev/null +++ b/gnu/usr.bin/binutils222/nm/Makefile @@ -0,0 +1,15 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= nm +MAN= nm222.1 +MLINKS+=nm222.1 nm.1 +WARNS= 2 + +nm222.1: ${SRCDIR}/binutils/doc/nm.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= nm222.1 + +.include diff --git a/gnu/usr.bin/binutils222/objcopy/Makefile b/gnu/usr.bin/binutils222/objcopy/Makefile new file mode 100644 index 0000000000..a81fd995b1 --- /dev/null +++ b/gnu/usr.bin/binutils222/objcopy/Makefile @@ -0,0 +1,16 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= objcopy +SRCS= not-strip.c objcopy.c +MAN= objcopy222.1 +MLINKS+=objcopy222.1 objcopy.1 +WARNS= 1 + +objcopy222.1: ${SRCDIR}/binutils/doc/objcopy.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= objcopy222.1 + +.include diff --git a/gnu/usr.bin/binutils222/objdump/Makefile b/gnu/usr.bin/binutils222/objdump/Makefile new file mode 100644 index 0000000000..9524d3a4f5 --- /dev/null +++ b/gnu/usr.bin/binutils222/objdump/Makefile @@ -0,0 +1,21 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= objdump +SRCS= elfcomm.c objdump.c +MAN= objdump222.1 +MLINKS+=objdump222.1 objdump.1 +WARNS= 1 + +CFLAGS+= -DOBJDUMP_PRIVATE_VECTORS="" + +DPADD+= ${.OBJDIR}/../libopcodes/libopcodes.a +LDADD+= ${.OBJDIR}/../libopcodes/libopcodes.a + +objdump222.1: ${SRCDIR}/binutils/doc/objdump.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= objdump222.1 + +.include diff --git a/gnu/usr.bin/binutils222/ranlib/Makefile b/gnu/usr.bin/binutils222/ranlib/Makefile new file mode 100644 index 0000000000..90cd25e6bf --- /dev/null +++ b/gnu/usr.bin/binutils222/ranlib/Makefile @@ -0,0 +1,17 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= ranlib +SRCS= ar.c is-ranlib.c +MAN= ranlib222.1 +MLINKS+=ranlib222.1 ranlib.1 + +NOSHARED?= yes + +ranlib222.1: ${SRCDIR}/binutils/doc/ranlib.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= ranlib222.1 + +.include diff --git a/gnu/usr.bin/binutils222/readelf/Makefile b/gnu/usr.bin/binutils222/readelf/Makefile new file mode 100644 index 0000000000..bc18e948a3 --- /dev/null +++ b/gnu/usr.bin/binutils222/readelf/Makefile @@ -0,0 +1,16 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= readelf +SRCS= readelf.c unwind-ia64.c dwarf.c elfcomm.c +MAN= readelf222.1 +MLINKS+=readelf222.1 readelf.1 +WARNS= 1 + +readelf222.1: ${SRCDIR}/binutils/doc/readelf.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= readelf222.1 + +.include diff --git a/gnu/usr.bin/binutils222/size/Makefile b/gnu/usr.bin/binutils222/size/Makefile new file mode 100644 index 0000000000..de92b950b9 --- /dev/null +++ b/gnu/usr.bin/binutils222/size/Makefile @@ -0,0 +1,15 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= size +MAN= size222.1 +MLINKS+=size222.1 size.1 +WARNS= 2 + +size222.1: ${SRCDIR}/binutils/doc/size.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= size222.1 + +.include diff --git a/gnu/usr.bin/binutils222/strings/Makefile b/gnu/usr.bin/binutils222/strings/Makefile new file mode 100644 index 0000000000..958ed71a8f --- /dev/null +++ b/gnu/usr.bin/binutils222/strings/Makefile @@ -0,0 +1,15 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= strings +MAN= strings222.1 +MLINKS+=strings222.1 strings.1 +WARNS= 2 + +strings222.1: ${SRCDIR}/binutils/doc/strings.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= strings222.1 + +.include diff --git a/gnu/usr.bin/binutils222/strip/Makefile b/gnu/usr.bin/binutils222/strip/Makefile new file mode 100644 index 0000000000..20264e89c4 --- /dev/null +++ b/gnu/usr.bin/binutils222/strip/Makefile @@ -0,0 +1,32 @@ +.include "../Makefile.bu" + +.PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc + +PROG= strip +SRCS= objcopy.c is-strip.c +MAN= strip222.1 +MLINKS+=strip222.1 strip.1 +WARNS= 1 + +CLEANFILES+= maybe_stripped + +all: maybe_stripped + +maybe_stripped: strip + cp strip maybe_stripped +.if defined(STRIP) +.if ${STRIP:M-s} != "" + -strip maybe_stripped +.endif +.endif + +strip222.1: ${SRCDIR}/binutils/doc/strip.1 + cp ${.ALLSRC} ${.TARGET} + +CLEANFILES+= strip222.1 + +realinstall: + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ + maybe_stripped ${DESTDIR}${BINDIR}/strip + +.include