Import binutils 2.10.1.

This commit is contained in:
tv 2001-01-30 18:32:08 +00:00
parent f62a886eb7
commit 8a46e5b0f4
115 changed files with 23708 additions and 3138 deletions

View File

@ -37,9 +37,7 @@ infodir=${prefix}/info
mandir=${prefix}/man
gxx_include_dir=${includedir}/g++
tooldir = $(exec_prefix)/$(target_alias)
build_tooldir = $(exec_prefix)/$(target_alias)
tooldir = $(exec_prefix)/$(target)
program_transform_name =
@ -61,7 +59,7 @@ GDB_NLM_DEPS =
SHELL = /bin/sh
# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a
# cygwin32 host.
# cygwin host.
INSTALL_PROGRAM_ARGS =
INSTALL = $(SHELL) $$s/install-sh -c
@ -86,6 +84,7 @@ HOST_PREFIX_1 = loser-
CFLAGS = -g
CXXFLAGS = -g -O2
LDFLAGS =
LIBCFLAGS = $(CFLAGS)
CFLAGS_FOR_TARGET = $(CFLAGS)
LDFLAGS_FOR_TARGET =
@ -98,9 +97,9 @@ CHILL_LIB = -lchill
CXX = c++
# Use -O2 to stress test the compiler.
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates -fexceptions
CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates -fexceptions
RANLIB = ranlib
@ -111,8 +110,7 @@ NM = nm
LD = ld
# Not plain GZIP, since gzip looks there for extra command-line options.
GZIPPROG = gzip
BZIPPROG = bzip2
# These values are substituted by configure.
DEFAULT_YACC = yacc
@ -169,7 +167,9 @@ OTHERS =
# This is set by the configure script to the list of directories which
# should be built using the target tools.
TARGET_CONFIGDIRS = libiberty libgloss newlib libio librx libstdc++ libg++ winsup opcodes libstub cygmon libf2c libchill libobjc
TARGET_CONFIGDIRS = libiberty libgloss $(SPECIAL_LIBS) newlib libio librx libstdc++ libg++ winsup opcodes bsp libstub cygmon
# Target libraries are put under this directory:
# Changed by configure to $(target_alias) if cross.
@ -213,13 +213,16 @@ INSTALL_TARGET_CROSS = installdirs \
CC_FOR_TARGET = ` \
if [ -f $$r/gcc/xgcc ] ; then \
if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
if [ -f $$r/$(TARGET_SUBDIR)/winsup/Makefile ] ; then \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$$r/$(TARGET_SUBDIR)/newlib/ -B$(build_tooldir)/bin/ -L$$r/$(TARGET_SUBDIR)/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
else \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
fi; \
case "$(target_canonical)" in \
i[3456]86-*-cygwin*) \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$$r/$(TARGET_SUBDIR)/newlib/ -L$$r/$(TARGET_SUBDIR)/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/winsup/include -idirafter $$s/newlib/libc/include -idirafter $$s/newlib/libc/sys/cygwin -idirafter $$s/newlib/libc/sys/cygwin32 -nostdinc; \
;; \
*) \
echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
;; \
esac \
else \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/; \
echo $$r/gcc/xgcc -B$$r/gcc/; \
fi; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
@ -233,11 +236,11 @@ CC_FOR_TARGET = ` \
# variable is passed down to the gcc Makefile, where it is used to
# build libgcc2.a. We define it here so that it can itself be
# overridden on the command line.
GCC_FOR_TARGET = $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/ -I$(build_tooldir)/include
GCC_FOR_TARGET = $$r/gcc/xgcc -B$$r/gcc/
CHILL_FOR_TARGET = ` \
if [ -f $$r/gcc/xgcc ] ; then \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/ -L$$r/gcc/ch/runtime/; \
echo $$r/gcc/xgcc -B$$r/gcc/ -L$$r/gcc/ch/runtime/; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
echo $(CC); \
@ -249,13 +252,16 @@ CHILL_FOR_TARGET = ` \
CXX_FOR_TARGET = ` \
if [ -f $$r/gcc/xgcc ] ; then \
if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
if [ -f $$r/$(TARGET_SUBDIR)/winsup/Makefile ] ; then \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$$r/$(TARGET_SUBDIR)/newlib/ -B$(build_tooldir)/bin/ -L$$r/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
else \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
fi; \
case "$(target_canonical)" in \
i[3456]86-*-cygwin*) \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$$r/$(TARGET_SUBDIR)/newlib/ -L$$r/$(TARGET_SUBDIR)/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/winsup/include -idirafter $$s/newlib/libc/include -idirafter $$s/newlib/libc/sys/cygwin -idirafter $$s/newlib/libc/sys/cygwin32 -nostdinc; \
;; \
*) \
echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
;; \
esac \
else \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/; \
echo $$r/gcc/xgcc -B$$r/gcc/; \
fi; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
@ -416,7 +422,6 @@ BASE_FLAGS_TO_PASS = \
"sharedstatedir=$(sharedstatedir)" \
"sysconfdir=$(sysconfdir)" \
"tooldir=$(tooldir)" \
"build_tooldir=$(build_tooldir)" \
"gxx_include_dir=$(gxx_include_dir)" \
"gcc_version=$(gcc_version)" \
"gcc_version_trigger=$(gcc_version_trigger)" \
@ -543,6 +548,7 @@ ALL_MODULES = \
all-ld \
all-libgui \
all-libiberty \
all-libtool \
all-m4 \
all-make \
all-mmalloc \
@ -558,9 +564,9 @@ ALL_MODULES = \
all-send-pr \
all-shellutils \
all-sim \
all-snavigator \
all-tar \
all-tcl \
all-tcl8.1 \
all-texinfo \
all-textutils \
all-tgas \
@ -629,7 +635,6 @@ CROSS_CHECK_MODULES = \
check-sed \
check-send-pr \
check-shellutils \
check-snaviagor \
check-sim \
check-tar \
check-tcl \
@ -686,6 +691,7 @@ INSTALL_MODULES = \
install-intl \
install-ispell \
install-tcl \
install-tcl8.1 \
install-itcl \
install-ld \
install-libgui \
@ -704,9 +710,7 @@ INSTALL_MODULES = \
install-send-pr \
install-shellutils \
install-sim \
install-snavigator \
install-tar \
install-texinfo \
install-textutils \
install-tgas \
install-time \
@ -726,6 +730,7 @@ ALL_X11_MODULES = \
all-guile \
all-tclX \
all-tk \
all-tk8.1 \
all-tix
# This is a list of the check targets for all of the modules which are
@ -751,6 +756,7 @@ INSTALL_X11_MODULES = \
install-gash \
install-tclX \
install-tk \
install-tk8.1 \
install-tix
# This is a list of the targets for all of the modules which are compiled
@ -761,19 +767,14 @@ ALL_TARGET_MODULES = \
all-target-librx \
all-target-libg++ \
all-target-newlib \
all-target-libf2c \
all-target-libchill \
all-target-libobjc \
all-target-libtermcap \
all-target-winsup \
all-target-libgloss \
all-target-libiberty \
all-target-gperf \
all-target-examples \
all-target-libstub \
all-target-libjava \
all-target-zlib \
all-target-boehm-gc \
all-target-qthreads \
all-target-bsp \
all-target-cygmon
# This is a list of the configure targets for all of the modules which
@ -784,19 +785,14 @@ CONFIGURE_TARGET_MODULES = \
configure-target-librx \
configure-target-libg++ \
configure-target-newlib \
configure-target-libf2c \
configure-target-libchill \
configure-target-libobjc \
configure-target-libtermcap \
configure-target-winsup \
configure-target-libgloss \
configure-target-libiberty \
configure-target-gperf \
configure-target-examples \
configure-target-libstub \
configure-target-libjava \
configure-target-zlib \
configure-target-boehm-gc \
configure-target-qthreads \
configure-target-bsp \
configure-target-cygmon
# This is a list of the check targets for all of the modules which are
@ -806,15 +802,8 @@ CHECK_TARGET_MODULES = \
check-target-libstdc++ \
check-target-libg++ \
check-target-newlib \
check-target-libf2c \
check-target-libchill \
check-target-libobjc \
check-target-winsup \
check-target-libiberty \
check-target-libjava \
check-target-zlib \
check-target-boehm-gc \
check-target-qthreads \
check-target-gperf
# This is a list of the install targets for all of the modules which are
@ -824,17 +813,11 @@ INSTALL_TARGET_MODULES = \
install-target-libstdc++ \
install-target-libg++ \
install-target-newlib \
install-target-libf2c \
install-target-libchill \
install-target-libobjc \
install-target-libtermcap \
install-target-winsup \
install-target-libgloss \
install-target-libiberty \
install-target-bsp \
install-target-libjava \
install-target-zlib \
install-target-boehm-gc \
install-target-qthreads \
install-target-gperf
# This is a list of the targets for which we can do a clean-{target}.
@ -892,7 +875,6 @@ CLEAN_MODULES = \
clean-send-pr \
clean-shellutils \
clean-sim \
clean-snavigator \
clean-tar \
clean-tcl \
clean-texinfo \
@ -903,7 +885,6 @@ CLEAN_MODULES = \
clean-wdiff \
clean-zip
# All of the target modules that can be cleaned
CLEAN_TARGET_MODULES = \
clean-target-libio \
@ -911,19 +892,13 @@ CLEAN_TARGET_MODULES = \
clean-target-librx \
clean-target-libg++ \
clean-target-newlib \
clean-target-libf2c \
clean-target-libchill \
clean-target-libobjc \
clean-target-winsup \
clean-target-libgloss \
clean-target-libiberty \
clean-target-gperf \
clean-target-examples \
clean-target-libstub \
clean-target-libjava \
clean-target-zlib \
clean-target-boehm-gc \
clean-target-qthreads \
clean-target-bsp \
clean-target-cygmon
# All of the x11 modules that can be cleaned
@ -938,10 +913,6 @@ CLEAN_X11_MODULES = \
clean-tk \
clean-tix
# The first rule in the file had better be this one. Don't put any above it.
all: all.normal
.PHONY: all
# The target built for a native build.
.PHONY: all.normal
all.normal: \
@ -1183,6 +1154,7 @@ gcc-no-fixedincludes:
mv gcc/tmp-include gcc/include 2>/dev/null; \
else true; fi
# This rule is used to build the modules which use FLAGS_TO_PASS. To
# build a target all-X means to cd to X and make all.
#
@ -1561,13 +1533,13 @@ all-bash:
all-bfd: all-libiberty all-intl
all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl
all-bison: all-texinfo
configure-target-boehm-gc: configure-target-newlib configure-target-qthreads
all-target-boehm-gc: configure-target-boehm-gc
configure-target-bsp: $(ALL_GCC)
all-target-bsp: configure-target-bsp all-gcc all-binutils all-target-newlib
all-byacc:
all-bzip2:
all-cvssrc:
configure-target-cygmon: $(ALL_GCC)
all-target-cygmon: configure-target-cygmon all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio all-target-libstub
all-target-cygmon: configure-target-cygmon all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio all-target-libstub all-target-bsp
all-db:
all-dejagnu: all-tcl all-expect all-tk
all-diff: all-libiberty
@ -1594,7 +1566,6 @@ all-gnuserv:
configure-target-gperf: $(ALL_GCC)
all-target-gperf: configure-target-gperf all-target-libiberty all-target-libstdc++
all-gprof: all-libiberty all-bfd all-opcodes all-intl
all-grep: all-libiberty
all-grez: all-libiberty all-bfd all-opcodes
all-gui: all-gdb all-libproc all-target-librx
all-guile:
@ -1604,7 +1575,7 @@ all-indent:
all-inet: all-tcl all-send-pr all-perl
all-intl:
all-ispell: all-emacs19
all-itcl: all-tcl all-tk
all-itcl: all-tcl all-tk all-tcl8.1 all-tk8.1
all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl
configure-target-libg++: $(ALL_GCC) configure-target-librx
all-target-libg++: configure-target-libg++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio all-target-librx all-target-libstdc++
@ -1612,11 +1583,9 @@ configure-target-libgloss: $(ALL_GCC)
all-target-libgloss: configure-target-libgloss configure-target-newlib
configure-target-libio: $(ALL_GCC)
all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libiberty all-target-newlib
check-target-libio: all-target-libstdc++
all-libgui: all-tcl all-tk all-itcl
check-target-libio:
all-libgui: all-tcl all-tk all-tcl8.1 all-tk8.1 all-itcl
all-libiberty:
configure-target-libjava: $(ALL_GCC) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-newlib
all-target-libjava: configure-target-libjava all-gcc all-zip all-target-newlib all-target-zlib all-target-boehm-gc all-target-qthreads
configure-target-librx: $(ALL_GCC) configure-target-newlib
all-target-librx: configure-target-librx
configure-target-libstdc++: $(ALL_GCC)
@ -1624,20 +1593,17 @@ all-target-libstdc++: configure-target-libstdc++ all-gas all-ld all-gcc all-targ
configure-target-libstub: $(ALL_GCC)
all-target-libstub: configure-target-libstub
all-libtool:
all-target-libf2c: configure-target-libf2c all-gas all-ld all-gcc all-target-libiberty all-target-newlib
all-target-libchill: configure-target-libchill all-gas all-ld all-gcc all-target-libiberty all-target-newlib
all-target-libobjc: configure-target-libobjc all-gas all-ld all-gcc all-target-libiberty all-target-newlib
all-m4: all-libiberty
all-make: all-libiberty
all-mmalloc:
configure-target-newlib: $(ALL_GCC)
configure-target-libtermcap: $(ALL_GCC)
all-target-newlib: configure-target-newlib all-binutils all-gas all-gcc
all-target-libtermcap: configure-target-libtermcap all-binutils all-gas all-gcc
all-opcodes: all-bfd all-libiberty
all-patch: all-libiberty
all-perl:
all-prms: all-libiberty
configure-target-qthreads: configure-target-newlib
all-target-qthreads: configure-target-qthreads
all-rcs:
all-readline:
all-recode: all-libiberty
@ -1645,28 +1611,27 @@ all-sed: all-libiberty
all-send-pr: all-prms
all-shellutils:
all-sim: all-libiberty all-bfd all-opcodes all-readline
all-snavigator: all-tcl all-tk all-itcl all-db all-grep all-libgui
all-tar: all-libiberty
all-tcl:
all-tcl8.1:
all-tclX: all-tcl all-tk
all-tk: all-tcl
all-tk8.1: all-tcl8.1
all-texinfo: all-libiberty
all-textutils:
all-tgas: all-libiberty all-bfd all-opcodes
all-time:
all-tix: all-tcl all-tk
all-tix: all-tcl all-tk all-tcl8.1 all-tk8.1
all-wdiff:
all-target-winsup: all-target-newlib all-target-libiberty all-target-libio configure-target-winsup
all-target-winsup: all-target-newlib all-target-libiberty all-target-libtermcap configure-target-winsup
configure-target-winsup: configure-target-newlib
all-uudecode: all-libiberty
all-zip:
configure-target-zlib: $(ALL_GCC)
all-target-zlib: configure-target-zlib
configure-target-libiberty: $(ALL_GCC)
all-target-libiberty: configure-target-libiberty all-gcc all-ld all-target-newlib
all-target: $(ALL_TARGET_MODULES)
install-target: $(INSTALL_TARGET_MODULES)
install-gdb: install-tcl install-tk install-itcl install-tix install-libgui
### other supporting targets
MAKEDIRS= \
@ -1718,7 +1683,8 @@ DEVO_SUPPORT= README Makefile.in configure configure.in \
# ChangeLog omitted because it may refer to files which are not in this
# distribution (perhaps it would be better to include it anyway).
ETC_SUPPORT= Makefile.in configure configure.in standards.texi \
make-stds.texi standards.info*
make-stds.texi standards.info* configure.texi configure.info* \
configbuild.* configdev.*
# When you use `make setup-dirs' or `make taz' you should always redefine
# this macro.
@ -1726,9 +1692,8 @@ SUPPORT_FILES = list-of-support-files-for-tool-in-question
.PHONY: taz
taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) \
texinfo/texinfo.tex texinfo/gpl.texinfo texinfo/lgpl.texinfo
# Take out texinfo from a few places
taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
# Take out texinfo from a few places.
sed -e '/^all\.normal: /s/\all-texinfo //' \
-e '/^ install-texinfo /d' \
<Makefile.in >tmp
@ -1772,8 +1737,6 @@ taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) \
#
mkdir proto-toplev/texinfo
ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/
ln -s ../../texinfo/gpl.texinfo proto-toplev/texinfo/
ln -s ../../texinfo/lgpl.texinfo proto-toplev/texinfo/
if test -r texinfo/util/tex3patch ; then \
mkdir proto-toplev/texinfo/util && \
ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util ; \
@ -1784,56 +1747,84 @@ taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) \
else \
ver=`sed <$(TOOL)/Makefile.in -n 's/^VERSION *= *//p'`; \
fi; \
$(MAKE) -f Makefile.in do-tar-gz TOOL=$(TOOL) VER=$$ver
if test x"$(PACKAGE)" = x; then \
package="$(TOOL)"; \
else \
package="$(PACKAGE)"; \
fi; \
$(MAKE) -f Makefile.in do-tar-bz2 TOOL=$(TOOL) VER=$$ver PACKAGE=$$package
do-tar-gz:
echo "==> Making $(TOOL)-$(VER).tar.gz"
-rm -f $(TOOL)-$(VER)
ln -s proto-toplev $(TOOL)-$(VER)
tar cfh $(TOOL)-$(VER).tar $(TOOL)-$(VER)
$(GZIPPROG) -v -9 $(TOOL)-$(VER).tar
do-tar-bz2:
echo "==> Making $(PACKAGE)-$(VER).tar.bz2"
-rm -f $(PACKAGE)-$(VER)
ln -s proto-toplev $(PACKAGE)-$(VER)
tar cfh $(PACKAGE)-$(VER).tar $(PACKAGE)-$(VER)
$(BZIPPROG) -v -9 $(PACKAGE)-$(VER).tar
TEXINFO_SUPPORT= texinfo/texinfo.tex texinfo/gpl.texinfo texinfo/lgpl.texinfo
TEXINFO_SUPPORT= texinfo/texinfo.tex
DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT)
.PHONY: gas.tar.gz
GAS_SUPPORT_DIRS= bfd include libiberty opcodes intl setup.com makefile.vms
gas.tar.gz: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas
.PHONY: gas.tar.bz2
GAS_SUPPORT_DIRS= bfd include libiberty opcodes intl setup.com makefile.vms mkdep
gas.tar.bz2: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas
$(MAKE) -f Makefile.in taz TOOL=gas \
SUPPORT_FILES="$(GAS_SUPPORT_DIRS)"
# The FSF "binutils" release includes gprof and ld.
.PHONY: binutils.tar.gz
BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof intl setup.com makefile.vms
binutils.tar.gz: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils
.PHONY: binutils.tar.bz2
BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof intl setup.com makefile.vms mkdep
binutils.tar.bz2: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils
$(MAKE) -f Makefile.in taz TOOL=binutils \
SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS) makeall.bat configure.bat"
SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS)"
.PHONY: gas+binutils.tar.gz
.PHONY: gas+binutils.tar.bz2
GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof
gas+binutils.tar.gz: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas
gas+binutils.tar.bz2: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas
$(MAKE) -f Makefile.in taz TOOL=gas \
SUPPORT_FILES="$(GASB_SUPPORT_DIRS) makeall.bat configure.bat"
SUPPORT_FILES="$(GASB_SUPPORT_DIRS)"
.PHONY: libg++.tar.gz
.PHONY: libg++.tar.bz2
LIBGXX_SUPPORT_DIRS=include libstdc++ libio librx libiberty
libg++.tar.gz: $(DIST_SUPPORT) libg++
libg++.tar.bz2: $(DIST_SUPPORT) libg++
$(MAKE) -f Makefile.in taz TOOL=libg++ \
SUPPORT_FILES="$(LIBGXX_SUPPORT_DIRS)"
GNATS_SUPPORT_DIRS=include libiberty send-pr
gnats.tar.gz: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats
gnats.tar.bz2: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats
$(MAKE) -f Makefile.in taz TOOL=gnats \
SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)"
.PHONY: gdb.tar.gz
.PHONY: gdb.tar.bz2
GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline sim utils intl
GDBTK_SUPPORT_DIRS= `if [ -d tcl -a -d tk ] ; then echo tcl tk ; fi`
gdb.tar.gz: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
gdb.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
$(MAKE) -f Makefile.in taz TOOL=gdb \
SUPPORT_FILES="$(GDB_SUPPORT_DIRS) $(GDBTK_SUPPORT_DIRS)"
SUPPORT_FILES="$(GDB_SUPPORT_DIRS)"
.PHONY: newlib.tar.gz
.PHONY: dejagnu.tar.bz2
DEJAGNU_SUPPORT_DIRS= tcl expect libiberty
dejagnu.tar.bz2: $(DIST_SUPPORT) $(DEJAGNU_SUPPORT_DIRS) dejagnu
$(MAKE) -f Makefile.in taz TOOL=dejagnu \
SUPPORT_FILES="$(DEJAGNU_SUPPORT_DIRS)"
.PHONY: gdb+dejagnu.tar.bz2
GDBD_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl expect dejagnu
gdb+dejagnu.tar.bz2: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb
$(MAKE) -f Makefile.in taz TOOL=gdb PACKAGE=gdb+dejagnu \
SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)"
.PHONY: insight.tar.bz2
INSIGHT_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl tk itcl tix libgui
insight.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
$(MAKE) -f Makefile.in taz TOOL=gdb PACKAGE=insight \
SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)"
.PHONY: insight+dejagnu.tar.bz2
INSIGHTD_SUPPORT_DIRS= $(INSIGHT_SUPPORT_DIRS) expect dejagnu
insight+dejagnu.tar.bz2: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb
$(MAKE) -f Makefile.in taz TOOL=gdb PACKAGE="insight+dejagnu" \
SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)"
.PHONY: newlib.tar.bz2
NEWLIB_SUPPORT_DIRS=libgloss
# taz configures for the sun4 target which won't configure newlib.
# We need newlib configured so that the .info files are made.
@ -1846,7 +1837,7 @@ NEWLIB_SUPPORT_DIRS=libgloss
# the make distclean. For now punt on the issue of shipping newlib info files
# with newlib net releases and wait for a day when some native target (sun4?)
# supports newlib (if only minimally).
newlib.tar.gz: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib
newlib.tar.bz2: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib
$(MAKE) -f Makefile.in taz TOOL=newlib \
SUPPORT_FILES="$(NEWLIB_SUPPORT_DIRS)" \
DEVO_SUPPORT="$(DEVO_SUPPORT) COPYING.NEWLIB" newlib

View File

@ -3,10 +3,40 @@
This directory contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation.
If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README; if with a libg++ release,
see libg++/README, etc. That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.
Check the INSTALL directory for detailed configuration and installation
instructions.
It is now possible to automatically configure and build a variety of
tools with one command. To build all of the tools contained herein,
run the ``configure'' script here, e.g.:
./configure
make
To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
make install
(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''. You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)
If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make. For example (assuming sh/bash/ksh):
CC=gcc ./configure
make
A similar example using csh:
setenv CC gcc
./configure
make
Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc. See the file COPYING or

View File

@ -1,3 +1,147 @@
2000-11-07 Alan Modra <alan@linuxcare.com.au>
* coff-h8300.c (special): Adjust reloc address.
From mainline 2000-04-03 Kazu Hirata <kazu@hxi.com>
* coff-h8300.c (h8300_reloc16_extra_cases): Add bsr:16 -> bsr:8 to
the R_PCRWORD_B case.
2000-11-05 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Always permit
BFDs containing no sections to be merged, regardless of their flags.
2000-11-04 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_relocate_section): Suppress error message
if a relocation for an undefined symbol also results in an
overflow.
2000-10-31 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Only handle
EF_SOFT_FLOAT if it is defined.
From 2000-05-23 H.J. Lu <hjl@gnu.org>
* elf32-ppc.c (ppc_elf_relocate_section): Fix a typo.
2000-10-27 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_copy_private_bfd_data): Don't refuse
attempts to mix PIC code with non-PIC, just mark the output as
being position dependent.
(elf32_arm_merge_private_bfd_data): Likewise. Print an error
message for EF_SOFT_FLOAT mismatches. Display diagnostics for
all mismatches, not just the first one.
2000-10-23 Philip Blundell <pb@futuretv.com>
From 2000-05-23 H.J. Lu <hjl@gnu.org>
* elf64-alpha.c (elf64_alpha_relocate_section): Check
h->root.other not h->other.
* elf32-mips.c (mips_elf_calculate_relocation): Likewise.
2000-10-23 Philip Blundell <pb@futuretv.com>
* elf32-arm.h (elf32_arm_finish_dynamic_symbol): Undo previous
accidental checkin.
2000-10-22 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_finish_dynamic_symbol): Don't make
PLT entries that could serve as a definition for a weak symbol.
From 2000-06-05 H.J. Lu <hjl@gnu.org>
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Don't flag
an error when seeing an undefined symbol with hidden/internal
attribute. It is handled in *_relocate_section ().
From 2000-05-23 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_relocate_section): Don't allow the
undefined symbol with the non-default visibility attributes.
* elf-hppa.h (elf_hppa_relocate_section): Likewise.
* elf32-arm.h (elf32_arm_relocate_section): Likewise.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-mips.c (mips_elf_calculate_relocation): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
2000-10-16 Geoffrey Keating <geoffk@cygnus.com>
From 2000-10-14 Geoffrey Keating <geoffk@cygnus.com>
* elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Don't make PLT
entries that could serve as a definition for a weak symbol.
2000-10-15 Philip Blundell <philb@gnu.org>
From 2000-09-08 Nick Clifton <nickc@redhat.com>
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Do not
initialise flags in output bfd if the input bfd is the default
architecture with the default flags.
From 2000-09-03 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_relocate_section): Don't try to relocate
references to undefined symbols in debugging sections.
From 2000-05-30 H.J. Lu <hjl@gnu.org>
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Clear the
visibility bits if the symbol is undefined. Correctly handle
weak undefined symbols with hidden and internal attributes.
* elflink.h (elf_link_add_object_symbols): Always turn the
symbol into local if it has the hidden or internal attribute.
From 2000-05-22 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_output_extsym): Clear the visibility
field for symbols not defined locally.
From 2000-05-03 Martin v. Löwis <loewis@informatik.hu-berlin.de>
* elflink.h (elf_link_add_object_symbols): Reset dynindx for
hidden and internal symbols.
(elf_fix_symbol_flags): Clear NEEDS_PLT for symbols with
visibility.
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Do not
assign a PLT or GOT entry to symbols with hidden and
internal visibility.
2000-10-16 Philip Blundell <pb@futuretv.com>
* configure.in: Set version to 2.10.1.
* configure: Regenerate.
2000-09-24 H.J. Lu <hjl@gnu.org>
From 2000-04-20 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_relocate_section): Restrict 1998-12-10
patch to symbols defined by a shared object.
2000-09-06 Philip Blundell <philb@gnu.org>
Merge from mainline:
2000-05-31 Ulrich Drepper <drepper@redhat.com>
* elf.c (_bfd_elf_slurp_version_tables): Correct reading of version
definitions. We must not assume they are sorted in the file
according to their index numbers.
2000-09-06 Philip Blundell <philb@gnu.org>
* config.bfd (arm*-*-uclinux*): New target.
(armeb-*-elf, arm*b-*-linux-gnu*): Likewise.
2000-08-22 Doug Kwan <dkwan@transmeta.com>
* coff-w65.c (CREATE_LITTLE_COFF_TARGET): Fix typo.
* coffcode.h (coff_set_flags): Add detection of w65 architecture.
2000-04-14 Matthew Green <mrg@cygnus.com>
* config.bfd: Add NetBSD/sparc64 support.
2000-05-31 Mark Kettenis <kettenis@gnu.org>
Add support for FreeBSD/Alpha.

View File

@ -192,18 +192,18 @@ h8300_coff_link_hash_table_create (abfd)
return &ret->root.root;
}
/* special handling for H8/300 relocs.
/* Special handling for H8/300 relocs.
We only come here for pcrel stuff and return normally if not an -r link.
When doing -r, we can't do any arithmetic for the pcrel stuff, because
the code in reloc.c assumes that we can manipulate the targets of
the pcrel branches. This isn't so, since the H8/300 can do relaxing,
which means that the gap after the instruction may not be enough to
contain the offset required for the branch, so we have to use the only
the addend until the final link */
contain the offset required for the branch, so we have to use only
the addend until the final link. */
static bfd_reloc_status_type
special (abfd, reloc_entry, symbol, data, input_section, output_bfd,
error_message)
error_message)
bfd *abfd ATTRIBUTE_UNUSED;
arelent *reloc_entry ATTRIBUTE_UNUSED;
asymbol *symbol ATTRIBUTE_UNUSED;
@ -215,6 +215,8 @@ special (abfd, reloc_entry, symbol, data, input_section, output_bfd,
if (output_bfd == (bfd *) NULL)
return bfd_reloc_continue;
/* Adjust the reloc address to that in the output section. */
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;
}
@ -902,6 +904,11 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
bfd_put_8 (abfd, tmp, data + dst_address - 2);
break;
case 0x5c:
/* bsr:16 -> bsr:8 */
bfd_put_8 (abfd, 0x55, data + dst_address - 2);
break;
default:
abort ();
}

View File

@ -401,4 +401,4 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
bfd_coff_reloc16_get_relocated_section_contents
#define coff_bfd_relax_section bfd_coff_reloc16_relax_section
CREATE_LITTLE_COFF_TARGET_VEC (w65_vec, "coff-w95", BFD_IS_RELAXABLE, 0, '_', NULL)
CREATE_LITTLE_COFF_TARGET_VEC (w65_vec, "coff-w65", BFD_IS_RELAXABLE, 0, '_', NULL)

View File

@ -1079,7 +1079,8 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
relocation = 0;
}
/* Allow undefined symbols in shared libraries. */
else if (info->shared && !info->no_undefined)
else if (info->shared && !info->no_undefined
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
{
if (info->symbolic)
(*info->callbacks->undefined_symbol)

View File

@ -1756,7 +1756,14 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
(!info->symbolic && h->dynindx != -1)
|| (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
)
&& ((input_section->flags & SEC_ALLOC) != 0)
&& ((input_section->flags & SEC_ALLOC) != 0
/* DWARF will emit R_ARM_ABS32 relocations in its
sections against symbols defined externally
in shared libraries. We can't do anything
with them here. */
|| ((input_section->flags & SEC_DEBUGGING) != 0
&& (h->elf_link_hash_flags
& ELF_LINK_HASH_DEF_DYNAMIC) != 0))
)
relocation_needed = 0;
break;
@ -1800,14 +1807,17 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
else if (info->shared && !info->symbolic && !info->no_undefined)
else if (info->shared && !info->symbolic
&& !info->no_undefined
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
relocation = 0;
else
{
if (!((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd,
input_section, rel->r_offset,
(!info->shared || info->no_undefined))))
(!info->shared || info->no_undefined
|| ELF_ST_VISIBILITY (h->other)))))
return false;
relocation = 0;
}
@ -1836,10 +1846,15 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
switch (r)
{
case bfd_reloc_overflow:
if (!((*info->callbacks->reloc_overflow)
(info, name, howto->name, (bfd_vma) 0,
input_bfd, input_section, rel->r_offset)))
return false;
/* If the overflowing reloc was to an undefined symbol,
we have already printed one error message and there
is no point complaining again. */
if ((! h ||
h->root.type != bfd_link_hash_undefined)
&& (!((*info->callbacks->reloc_overflow)
(info, name, howto->name, (bfd_vma) 0,
input_bfd, input_section, rel->r_offset))))
return false;
break;
case bfd_reloc_undefined:
@ -1923,10 +1938,6 @@ elf32_arm_copy_private_bfd_data (ibfd, obfd)
if (elf_flags_init (obfd) && in_flags != out_flags)
{
/* Cannot mix PIC and non-PIC code. */
if ((in_flags & EF_PIC) != (out_flags & EF_PIC))
return false;
/* Cannot mix APCS26 and APCS32 code. */
if ((in_flags & EF_APCS_26) != (out_flags & EF_APCS_26))
return false;
@ -1946,6 +1957,10 @@ Warning: Clearing the interwork flag in %s because non-interworking code in %s h
in_flags &= ~EF_INTERWORK;
}
/* Likewise for PIC, though don't warn for this case. */
if ((in_flags & EF_PIC) != (out_flags & EF_PIC))
in_flags &= ~EF_PIC;
}
elf_elfheader (obfd)->e_flags = in_flags;
@ -1963,6 +1978,9 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
{
flagword out_flags;
flagword in_flags;
boolean flags_compatible = true;
boolean null_input_bfd = true;
asection *sec;
if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
@ -1994,13 +2012,14 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
if (!elf_flags_init (obfd))
{
/* If the input is the default architecture then do not
bother setting the flags for the output architecture,
instead allow future merges to do this. If no future
merges ever set these flags then they will retain their
unitialised values, which surprise surprise, correspond
/* If the input is the default architecture and had the default
flags then do not bother setting the flags for the output
architecture, instead allow future merges to do this. If no
future merges ever set these flags then they will retain their
uninitialised values, which surprise surprise, correspond
to the default values. */
if (bfd_get_arch_info (ibfd)->the_default)
if (bfd_get_arch_info (ibfd)->the_default
&& elf_elfheader (ibfd)->e_flags == 0)
return true;
elf_flags_init (obfd) = true;
@ -2013,48 +2032,77 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
return true;
}
/* Check flag compatibility. */
/* Identical flags must be compatible. */
if (in_flags == out_flags)
return true;
/* Complain about various flag mismatches. */
/* Check to see if the input BFD actually contains any sections.
If not, its flags may not have been initialised either, but it cannot
actually cause any incompatibility. */
for (sec = ibfd->sections; sec != NULL; sec = sec->next)
{
/* Ignore synthetic glue sections. */
if (strcmp (sec->name, ".glue_7")
&& strcmp (sec->name, ".glue_7t"))
{
null_input_bfd = false;
break;
}
}
if (null_input_bfd)
return true;
/* If any of the input BFDs is non-PIC, the output is also position
dependent. */
if (!(in_flags & EF_PIC))
elf_elfheader (obfd)->e_flags &= ~EF_PIC;
/* Complain about various flag mismatches. */
if ((in_flags & EF_APCS_26) != (out_flags & EF_APCS_26))
_bfd_error_handler (_ ("\
{
_bfd_error_handler (_ ("\
Error: %s compiled for APCS-%d, whereas %s is compiled for APCS-%d"),
bfd_get_filename (ibfd),
in_flags & EF_APCS_26 ? 26 : 32,
bfd_get_filename (obfd),
out_flags & EF_APCS_26 ? 26 : 32);
flags_compatible = false;
}
if ((in_flags & EF_APCS_FLOAT) != (out_flags & EF_APCS_FLOAT))
_bfd_error_handler (_ ("\
{
_bfd_error_handler (_ ("\
Error: %s passes floats in %s registers, whereas %s passes them in %s registers"),
bfd_get_filename (ibfd),
in_flags & EF_APCS_FLOAT ? _ ("float") : _ ("integer"),
bfd_get_filename (obfd),
out_flags & EF_APCS_26 ? _ ("float") : _ ("integer"));
flags_compatible = false;
}
if ((in_flags & EF_PIC) != (out_flags & EF_PIC))
_bfd_error_handler (_ ("\
Error: %s is compiled as position %s code, whereas %s is not"),
bfd_get_filename (ibfd),
in_flags & EF_PIC ? _ ("independent") : _ ("dependent"),
bfd_get_filename (obfd));
/* Interworking mismatch is only a warning. */
if ((in_flags & EF_INTERWORK) != (out_flags & EF_INTERWORK))
#ifdef EF_SOFT_FLOAT
if ((in_flags & EF_SOFT_FLOAT) != (out_flags & EF_SOFT_FLOAT))
{
_bfd_error_handler (_ ("\
Error: %s uses %s floating point, whereas %s uses %s floating point"),
bfd_get_filename (ibfd),
in_flags & EF_SOFT_FLOAT ? _("soft") : _("hard"),
bfd_get_filename (obfd),
out_flags & EF_SOFT_FLOAT ? _("soft") : _("hard"));
flags_compatible = false;
}
#endif
/* Interworking mismatch is only a warning. */
if ((in_flags & EF_INTERWORK) != (out_flags & EF_INTERWORK))
_bfd_error_handler (_ ("\
Warning: %s %s interworking, whereas %s %s"),
bfd_get_filename (ibfd),
in_flags & EF_INTERWORK ? _ ("supports") : _ ("does not support"),
bfd_get_filename (obfd),
out_flags & EF_INTERWORK ? _ ("does not") : _ ("does"));
return true;
}
return false;
return flags_compatible;
}
/* Display the flags field */

View File

@ -1291,7 +1291,9 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
sections against symbols defined externally
in shared libraries. We can't do anything
with them here. */
|| (input_section->flags & SEC_DEBUGGING) != 0)))
|| ((input_section->flags & SEC_DEBUGGING) != 0
&& (h->elf_link_hash_flags
& ELF_LINK_HASH_DEF_DYNAMIC) != 0))))
{
/* In these cases, we don't need the relocation
value. We check specially because in some
@ -1313,14 +1315,17 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
else if (info->shared && !info->symbolic && !info->no_undefined)
else if (info->shared && !info->symbolic
&& !info->no_undefined
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
relocation = 0;
else
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd,
input_section, rel->r_offset,
(!info->shared || info->no_undefined))))
(!info->shared || info->no_undefined
|| ELF_ST_VISIBILITY (h->other)))))
return false;
relocation = 0;
}

View File

@ -1479,14 +1479,17 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
else if (info->shared && !info->symbolic && !info->no_undefined)
else if (info->shared && !info->symbolic
&& !info->no_undefined
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
relocation = 0;
else
{
if (!(info->callbacks->undefined_symbol
(info, h->root.root.string, input_bfd,
input_section, rel->r_offset,
(!info->shared || info->no_undefined))))
(!info->shared || info->no_undefined
|| ELF_ST_VISIBILITY (h->other)))))
return false;
relocation = 0;
}

View File

@ -532,7 +532,8 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
else if (info->shared)
else if (info->shared
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
relocation = 0;
else
{

View File

@ -5930,7 +5930,8 @@ mips_elf_calculate_relocation (abfd,
and check to see if they exist by looking at their
addresses. */
symbol = 0;
else if (info->shared && !info->symbolic && !info->no_undefined)
else if (info->shared && !info->symbolic && !info->no_undefined
&& ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT)
symbol = 0;
else if (strcmp (h->root.root.root.string, "_DYNAMIC_LINK") == 0)
{
@ -5948,7 +5949,8 @@ mips_elf_calculate_relocation (abfd,
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.root.string, input_bfd,
input_section, relocation->r_offset,
(!info->shared || info->no_undefined))))
(!info->shared || info->no_undefined
|| ELF_ST_VISIBILITY (h->root.other)))))
return bfd_reloc_undefined;
symbol = 0;
}

View File

@ -2687,6 +2687,13 @@ ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
/* Mark the symbol as undefined, rather than as defined in
the .plt section. Leave the value alone. */
sym->st_shndx = SHN_UNDEF;
/* If the symbol is weak, we do need to clear the value.
Otherwise, the PLT entry would provide a definition for
the symbol even if the symbol wasn't defined anywhere,
and so the symbol would never be NULL. */
if ((h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR_NONWEAK)
== 0)
sym->st_value = 0;
}
}
@ -3101,7 +3108,9 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
else if (info->shared && !info->symbolic && !info->no_undefined)
else if (info->shared && !info->symbolic
&& !info->no_undefined
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
relocation = 0;
else
{
@ -3111,7 +3120,8 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
input_section,
rel->r_offset,
(!info->shared
|| info->no_undefined)))
|| info->no_undefined
|| ELF_ST_VISIBILITY (h->other))))
return false;
relocation = 0;
}

View File

@ -1213,14 +1213,17 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
else if (info->shared && !info->symbolic && !info->no_undefined)
else if (info->shared && !info->symbolic
&& !info->no_undefined
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
relocation = 0;
else
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd,
input_section, rel->r_offset,
(!info->shared || info->no_undefined))))
(!info->shared || info->no_undefined
|| ELF_ST_VISIBILITY (h->other)))))
return false;
relocation = 0;
}

View File

@ -2049,14 +2049,17 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
else if (info->shared && !info->symbolic && !info->no_undefined)
else if (info->shared && !info->symbolic
&& !info->no_undefined
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
relocation = 0;
else
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd,
input_section, rel->r_offset,
(!info->shared || info->no_undefined))))
(!info->shared || info->no_undefined
|| ELF_ST_VISIBILITY (h->other)))))
return false;
relocation = 0;
}

View File

@ -226,20 +226,13 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
{
case STV_INTERNAL:
case STV_HIDDEN:
/* This symbol must be defined in the shared object or
executable. */
if (h->root.type == bfd_link_hash_undefined)
if (h->root.type != bfd_link_hash_undefined
&& h->root.type != bfd_link_hash_undefweak)
{
bfd * abfd = h->root.u.undef.abfd;
const char * name = h->root.root.string;
(*info->callbacks->undefined_symbol)
(info, name, abfd, bfd_und_section_ptr, 0, true);
h->elf_link_hash_flags |= ELF_LINK_FORCED_LOCAL;
return true;
}
h->elf_link_hash_flags |= ELF_LINK_FORCED_LOCAL;
break;
default:
break;
}

View File

@ -1,3 +1,99 @@
2000-11-01 Philip Blundell <philb@gnu.org>
From 2000-06-15 H.J. Lu <hjl@gnu.org>
* dyn-string.c: Removed. Not needed with dyn-string.c in
libiberty.
* dyn-string.h: Likewise.
* Makefile.am: Remove references to dyn-string.c and
dyn-string.h. Rebuild dependency.
* Makefile.in: Rebuild.
2000-10-16 Philip Blundell <pb@futuretv.com>
* configure.in: Set version number to 2.10.1.
* configure: Regenerate.
2000-10-14 Philip Blundell <philb@gnu.org>
* config.sub, config.guess: Update from mainline sources.
From 2000-09-07 H.J. Lu <hjl@gnu.org>
* configure.in (AC_ISC_POSIX): Put after AC_CANONICAL_SYSTEM.
* configure: Rebuild.
From 2000-08-17 Nick Clifton <nickc@redhat.com>
* readelf.c (display_debug_pubnames): Only issue warning
message once. Terminate message with a new line.
(display_debug_aranges): Only display version 2 debug info.
From 2000-07-19 H.J. Lu <hjl@gnu.org>
* readelf.c (get_dynamic_type): Change "AUXILARY" to
"AUXILIARY".
(process_dynamic_segment): Print out strings for DT_CONFIG,
DT_DEPAUDIT, DT_AUDIT and DT_RUNPATH.
From 2000-07-19 H.J. Lu <hjl@gnu.org>
* readelf.c (process_dynamic_segment): Change DF_1_NODEPLIB
to DF_1_NODEFLIB.
From 2000-07-19 H.J. Lu <hjl@gnu.org>
* readelf.c (get_dynamic_type): Fix DT_CHECKSUM.
From 2000-07-19 H.J. Lu <hjl@gnu.org>
* readelf.c (get_dynamic_type): Change DT_FEATURE_1 to
DT_FEATURE.
(process_dynamic_segment): Likewise.
* readelf.c (get_dynamic_type): Handle DT_CONFIG, DT_DEPAUDIT,
DT_AUDIT, DT_PLTPAD, DT_MOVETAB and DT_CHECKSUM.
(process_dynamic_segment): Handle DTF_1_CONFEXP, DF_1_NODEPLIB,
DF_1_NODUMP and DF_1_CONLFAT.
From 2000-07-01 Alexander Aganichev <AAganichev@hypercom.com>
* stabs.c (parse_stab_type): Divide size in bits by 8 as binutils
struct debug_type stores size in bytes.
From 2000-08-17 Christopher C. Chimelis <chris@debian.org>
* objdump.c (LONGEST_ARCH): Set to sizeof("powerpc:common").
From 2000-07-11 Mark Kettenis <kettenis@gnu.org>
* objdump.c (usage): Make output of `objdump --help' more
consistent with the rest of the GNU world. Add a line describing
the purpose of the program.
From 2000-06-24 Nick Clifton <nickc@cygnus.com>
* objdump.c (usage): Fix description of --stabs switch.
From 2000-07-18 Nick Clifton <nickc@cygnus.com>
* binutils.texi (readelf): Fix spelling typo.
From 2000-07-19 Mark Kettenis <kettenis@gnu.org>
* nm.c (usage): Change output of `nm --help' to include a
description of the purpose of the program and a detailed
description of the accepted options.
2000-09-05 Todd Vierling <tv@wasabisystems.com>
From 2000-08-14 Todd Vierling <tv@wasabisystems.com>
* objcopy.c (strip_main): Silently accept -d as an alias for -g
for compatability with old BSD systems.
2000-09-04 Todd Vierling <tv@wasabisystems.com>
* strip.1: Fix stray '\' in -o formatting.
2000-05-30 Alan Modra <alan@linuxcare.com.au>
* objdump.c (display_target_list): Use bfd_close_all_done, not

View File

@ -74,7 +74,7 @@ MKDEP = gcc -MM
INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl -DLOCALEDIR="\"$(prefix)/share/locale\""
HFILES = arsup.h bucomm.h budbg.h coffgrok.h debug.h nlmconv.h dlltool.h \
windres.h winduni.h dyn-string.h
windres.h winduni.h
GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h
@ -84,7 +84,7 @@ CFILES = addr2line.c ar.c arsup.c bucomm.c coffdump.c coffgrok.c debug.c \
objcopy.c objdump.c prdbg.c rdcoff.c rddbg.c size.c srconv.c \
stabs.c strings.c sysdump.c version.c wrstabs.c \
windres.c resrc.c rescoff.c resbin.c winduni.c readelf.c \
resres.c dyn-string.c dllwrap.c rename.c
resres.c dllwrap.c rename.c
GENERATED_CFILES = \
underscore.c arparse.c arlex.c sysroff.c sysinfo.c syslex.c \
@ -242,7 +242,7 @@ sysinfo.h: sysinfo.c
srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
dlltool_SOURCES = dlltool.c defparse.y deflex.l dyn-string.c $(BULIBS)
dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
dlltool.o:dlltool.c
@ -267,7 +267,7 @@ windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
winduni.c resres.c $(BULIBS)
windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
dllwrap_SOURCES = dllwrap.c dyn-string.c version.c
dllwrap_SOURCES = dllwrap.c version.c
dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS)
@ -391,7 +391,7 @@ debug.o: debug.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/libiberty.h debug.h
dlltool.o: dlltool.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/libiberty.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
$(INCDIR)/fopen-same.h $(INCDIR)/demangle.h dyn-string.h \
$(INCDIR)/fopen-same.h $(INCDIR)/demangle.h $(INCDIR)/dyn-string.h \
dlltool.h
filemode.o: filemode.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
@ -484,11 +484,9 @@ readelf.o: readelf.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
$(INCDIR)/libiberty.h windres.h winduni.h
dyn-string.o: dyn-string.c config.h $(INCDIR)/ansidecl.h \
dyn-string.h
dllwrap.o: dllwrap.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/libiberty.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
$(INCDIR)/fopen-same.h dyn-string.h
$(INCDIR)/fopen-same.h $(INCDIR)/dyn-string.h
rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
underscore.o: underscore.c

View File

@ -151,8 +151,7 @@ DLLWRAP_PROG = dllwrap
SRCONV_PROG = srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT)
man_MANS = ar.1 nm.1 objdump.1 ranlib.1 size.1 strings.1 strip.1 objcopy.1 \
addr2line.1 nlmconv.1 $(DEMANGLER_NAME).1
man_MANS = ar.1 nm.1 objdump.1 ranlib.1 size.1 strings.1 strip.1 objcopy.1 addr2line.1 nlmconv.1 $(DEMANGLER_NAME).1
PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
@ -174,24 +173,15 @@ MKDEP = gcc -MM
INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl -DLOCALEDIR="\"$(prefix)/share/locale\""
HFILES = arsup.h bucomm.h budbg.h coffgrok.h debug.h nlmconv.h dlltool.h \
windres.h winduni.h dyn-string.h
HFILES = arsup.h bucomm.h budbg.h coffgrok.h debug.h nlmconv.h dlltool.h windres.h winduni.h
GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h
CFILES = addr2line.c ar.c arsup.c bucomm.c coffdump.c coffgrok.c debug.c \
dlltool.c filemode.c ieee.c is-ranlib.c is-strip.c maybe-ranlib.c \
maybe-strip.c nlmconv.c nm.c not-ranlib.c not-strip.c \
objcopy.c objdump.c prdbg.c rdcoff.c rddbg.c size.c srconv.c \
stabs.c strings.c sysdump.c version.c wrstabs.c \
windres.c resrc.c rescoff.c resbin.c winduni.c readelf.c \
resres.c dyn-string.c dllwrap.c rename.c
CFILES = addr2line.c ar.c arsup.c bucomm.c coffdump.c coffgrok.c debug.c dlltool.c filemode.c ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c nlmconv.c nm.c not-ranlib.c not-strip.c objcopy.c objdump.c prdbg.c rdcoff.c rddbg.c size.c srconv.c stabs.c strings.c sysdump.c version.c wrstabs.c windres.c resrc.c rescoff.c resbin.c winduni.c readelf.c resres.c dllwrap.c rename.c
GENERATED_CFILES = \
underscore.c arparse.c arlex.c sysroff.c sysinfo.c syslex.c \
defparse.c deflex.c nlmheader.c rcparse.c rclex.c
GENERATED_CFILES = underscore.c arparse.c arlex.c sysroff.c sysinfo.c syslex.c defparse.c deflex.c nlmheader.c rcparse.c rclex.c
DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
@ -208,29 +198,12 @@ LIBIBERTY = ../libiberty/libiberty.a
POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
EXPECT = `if [ -f $$r/../expect/expect ] ; then \
echo $$r/../expect/expect ; \
else echo expect ; fi`
EXPECT = `if [ -f $$r/../expect/expect ] ; then echo $$r/../expect/expect ; else echo expect ; fi`
RUNTEST = `if [ -f ${srcdir}/../dejagnu/runtest ] ; then \
echo ${srcdir}/../dejagnu/runtest ; \
else echo runtest ; fi`
RUNTEST = `if [ -f ${srcdir}/../dejagnu/runtest ] ; then echo ${srcdir}/../dejagnu/runtest ; else echo runtest ; fi`
CC_FOR_TARGET = ` \
if [ -f $$r/../gcc/xgcc ] ; then \
if [ -f $$r/../newlib/Makefile ] ; then \
echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
else \
echo $$r/../gcc/xgcc -B$$r/../gcc/; \
fi; \
else \
if [ "@host@" = "@target@" ] ; then \
echo $(CC); \
else \
echo gcc | sed '$(transform)'; \
fi; \
fi`
CC_FOR_TARGET = ` if [ -f $$r/../gcc/xgcc ] ; then if [ -f $$r/../newlib/Makefile ] ; then echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; else echo $$r/../gcc/xgcc -B$$r/../gcc/; fi; else if [ "@host@" = "@target@" ] ; then echo $(CC); else echo gcc | sed '$(transform)'; fi; fi`
info_TEXINFOS = binutils.texi
@ -266,7 +239,7 @@ addr2line_SOURCES = addr2line.c $(BULIBS)
srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
dlltool_SOURCES = dlltool.c defparse.y deflex.l dyn-string.c $(BULIBS)
dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
coffdump_SOURCES = coffdump.c coffgrok.c $(BULIBS)
@ -275,26 +248,22 @@ sysdump_SOURCES = sysdump.c $(BULIBS)
nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS)
windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
winduni.c resres.c $(BULIBS)
windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l winduni.c resres.c $(BULIBS)
windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
dllwrap_SOURCES = dllwrap.c dyn-string.c version.c
dllwrap_SOURCES = dllwrap.c version.c
dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS)
DISTSTUFF = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
DISTSTUFF = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h \
site.exp site.bak
DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h site.exp site.bak
MAINTAINERCLEANFILES = config.texi
MOSTLYCLEANFILES = sysinfo $(DEMANGLER_NAME).1 binutils.log binutils.sum \
abcdefgh*
MOSTLYCLEANFILES = sysinfo $(DEMANGLER_NAME).1 binutils.log binutils.sum abcdefgh*
CLEANFILES = dep.sed DEP DEP1 DEP2
@ -330,15 +299,15 @@ coffdump_OBJECTS = coffdump.o coffgrok.o bucomm.o version.o filemode.o
coffdump_LDADD = $(LDADD)
coffdump_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
coffdump_LDFLAGS =
dlltool_OBJECTS = dlltool.o defparse.o deflex.o dyn-string.o bucomm.o \
version.o filemode.o
dlltool_OBJECTS = dlltool.o defparse.o deflex.o bucomm.o version.o \
filemode.o
dlltool_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
dlltool_LDFLAGS =
windres_OBJECTS = windres.o resrc.o rescoff.o resbin.o rcparse.o \
rclex.o winduni.o resres.o bucomm.o version.o filemode.o
windres_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a
windres_LDFLAGS =
dllwrap_OBJECTS = dllwrap.o dyn-string.o version.o
dllwrap_OBJECTS = dllwrap.o version.o
dllwrap_DEPENDENCIES = ../libiberty/libiberty.a
dllwrap_LDFLAGS =
size_OBJECTS = size.o bucomm.o version.o filemode.o
@ -1247,7 +1216,7 @@ debug.o: debug.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/libiberty.h debug.h
dlltool.o: dlltool.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/libiberty.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
$(INCDIR)/fopen-same.h $(INCDIR)/demangle.h dyn-string.h \
$(INCDIR)/fopen-same.h $(INCDIR)/demangle.h $(INCDIR)/dyn-string.h \
dlltool.h
filemode.o: filemode.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
@ -1340,11 +1309,9 @@ readelf.o: readelf.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
$(INCDIR)/libiberty.h windres.h winduni.h
dyn-string.o: dyn-string.c config.h $(INCDIR)/ansidecl.h \
dyn-string.h
dllwrap.o: dllwrap.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
$(INCDIR)/libiberty.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
$(INCDIR)/fopen-same.h dyn-string.h
$(INCDIR)/fopen-same.h $(INCDIR)/dyn-string.h
rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
underscore.o: underscore.c

View File

@ -39,36 +39,36 @@ versions.

Indirect:
binutils.info-1: 1845
binutils.info-2: 49760
binutils.info-3: 96951
binutils.info-2: 49762
binutils.info-3: 96952

Tag Table:
(Indirect)
Node: Top1845
Node: ar3094
Node: ar cmdline5268
Node: ar scripts13107
Node: nm18786
Node: objcopy25756
Node: objdump38583
Node: ranlib49011
Node: size49760
Node: strings52491
Node: strip54316
Node: c++filt57281
Ref: c++filt-Footnote-160138
Node: addr2line60244
Node: nlmconv62650
Node: windres65254
Node: dlltool70306
Node: readelf79647
Node: Selecting The Target System82798
Node: Target Selection83815
Node: Architecture Selection86516
Node: Linker Emulation Selection87747
Node: Reporting Bugs88625
Node: Bug Criteria89376
Node: Bug Reporting89922
Node: Index96951
Node: ar3096
Node: ar cmdline5270
Node: ar scripts13109
Node: nm18788
Node: objcopy25758
Node: objdump38585
Node: ranlib49013
Node: size49762
Node: strings52493
Node: strip54318
Node: c++filt57283
Ref: c++filt-Footnote-160140
Node: addr2line60246
Node: nlmconv62652
Node: windres65256
Node: dlltool70308
Node: readelf79649
Node: Selecting The Target System82799
Node: Target Selection83816
Node: Architecture Selection86517
Node: Linker Emulation Selection87748
Node: Reporting Bugs88626
Node: Bug Criteria89377
Node: Bug Reporting89923
Node: Index96952

End Tag Table

View File

@ -43,7 +43,7 @@ Introduction
************
This brief manual contains preliminary documentation for the GNU
binary utilities (collectively version 2.10):
binary utilities (collectively version 2.10.1):
* Menu:

View File

@ -968,8 +968,8 @@ equivalent. At least one option besides `-v' or `-H' must be given.
`-D'
`--use-dynamic'
When displaying symbols, this option makes `readelf' use the
symblol table in the file's dynamic section, rather than the one
in the symbols section.
symbol table in the file's dynamic section, rather than the one in
the symbols section.
`-x <number>'
`--hex-dump=<number>'

View File

@ -2530,7 +2530,7 @@ exist.
@item -D
@itemx --use-dynamic
When displaying symbols, this option makes @code{readelf} use the
symblol table in the file's dynamic section, rather than the one in the
symbol table in the file's dynamic section, rather than the one in the
symbols section.
@item -x <number>

View File

@ -1 +1 @@
@set VERSION 2.10
@set VERSION 2.10.1

File diff suppressed because it is too large Load Diff

View File

@ -4,8 +4,9 @@ AC_PREREQ(2.13)
AC_INIT(ar.c)
AC_CANONICAL_SYSTEM
AC_ISC_POSIX
AM_INIT_AUTOMAKE(binutils, 2.10)
AM_INIT_AUTOMAKE(binutils, 2.10.1)
AM_PROG_LIBTOOL

View File

@ -291,19 +291,38 @@ usage (stream, status)
FILE *stream;
int status;
{
fprintf (stream, _("\
Usage: %s [-aABCDglnopPrsuvV] [-t radix] [--radix=radix] [--target=bfdname]\n\
[--debug-syms] [--extern-only] [--print-armap] [--print-file-name]\n\
[--numeric-sort] [--no-sort] [--reverse-sort] [--size-sort]\n\
[--undefined-only] [--portability] [-f {bsd,sysv,posix}]\n\
[--format={bsd,sysv,posix}] [--demangle] [--no-demangle] [--dynamic]\n\
[--defined-only] [--line-numbers]\n\
[--version] [--help]\n\
[file...]\n"),
program_name);
fprintf (stream, _("Usage: %s [OPTION]... [FILE]...\n"), program_name);
fprintf (stream, _("List symbols from FILEs (a.out by default).\n"));
fprintf (stream, _("\n\
-a, --debug-syms Display debugger-only symbols\n\
-A, --print-file-name Print name of the input file before every symbol\n\
-B Same as --format=bsd\n\
-C, --demangle Decode low-level symbol names into user-level names\n\
--no-demangle Do not demangle low-level symbol names\n\
-D, --dynamic Display dynamic symbols instead of normal symbols\n\
--defined-only Display only defined symbols\n\
-e (ignored)\n\
-f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n\
`sysv' or `posix'. The default is `bsd'\n\
-g, --extern-only Display only external symbols\n\
-h, --help Display this information\n\
-l, --line-numbers Use debugging information to find a filename and\n\
line number for each symbol\n\
-n, --numeric-sort Sort symbols numerically by address\n\
-o Same as -A\n\
-p, --no-sort Do not sort the symbols\n\
-P, --portability Same as --format=posix\n\
-r, --reverse-sort Reverse the sense of the sort\n\
-s, --print-armap Include index for symbols from archive members\n\
--size-sort Sort symbols by size\n\
-t, --radix=RADIX Use RADIX for printing symbol values\n\
--target=BFDNAME Specify the target object format as BFDNAME\n\
-u, --undefined-only Display only undefined symbols\n\
-V, --version Display this program's version number\n\
\n"));
list_supported_targets (program_name, stream);
if (status == 0)
fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
fprintf (stream, _("Report bugs to %s.\n"), REPORT_BUGS_TO);
exit (status);
}

View File

@ -1063,15 +1063,21 @@ get_dynamic_type (type)
case DT_PREINIT_ARRAY: return "PREINIT_ARRAY";
case DT_PREINIT_ARRAYSZ: return "PREINIT_ARRAYSZ";
case DT_CHECKSUM: return "CHECKSUM";
case DT_PLTPADSZ: return "PLTPADSZ";
case DT_MOVEENT: return "MOVEENT";
case DT_MOVESZ: return "MOVESZ";
case DT_FEATURE_1: return "FEATURE_1";
case DT_FEATURE: return "FEATURE";
case DT_POSFLAG_1: return "POSFLAG_1";
case DT_SYMINSZ: return "SYMINSZ";
case DT_SYMINENT: return "SYMINENT"; /* aka VALRNGHI */
case DT_ADDRRNGLO: return "ADDRRNGLO";
case DT_CONFIG: return "CONFIG";
case DT_DEPAUDIT: return "DEPAUDIT";
case DT_AUDIT: return "AUDIT";
case DT_PLTPAD: return "PLTPAD";
case DT_MOVETAB: return "MOVETAB";
case DT_SYMINFO: return "SYMINFO"; /* aka ADDRRNGHI */
case DT_VERSYM: return "VERSYM";
@ -1084,7 +1090,7 @@ get_dynamic_type (type)
case DT_VERNEED: return "VERNEED";
case DT_VERNEEDNUM: return "VERNEEDNUM";
case DT_AUXILIARY: return "AUXILARY";
case DT_AUXILIARY: return "AUXILIARY";
case DT_USED: return "USED";
case DT_FILTER: return "FILTER";
@ -3202,12 +3208,33 @@ process_dynamic_segment (file)
case DT_AUXILIARY:
case DT_FILTER:
case DT_CONFIG:
case DT_DEPAUDIT:
case DT_AUDIT:
if (do_dynamic)
{
if (entry->d_tag == DT_AUXILIARY)
printf (_("Auxiliary library"));
else
printf (_("Filter library"));
switch (entry->d_tag)
{
case DT_AUXILIARY:
printf (_("Auxiliary library"));
break;
case DT_FILTER:
printf (_("Filter library"));
break;
case DT_CONFIG:
printf (_("Configuration file"));
break;
case DT_DEPAUDIT:
printf (_("Dependency audit library"));
break;
case DT_AUDIT:
printf (_("Audit library"));
break;
}
if (dynamic_strings)
printf (": [%s]\n", dynamic_strings + entry->d_un.d_val);
@ -3220,7 +3247,7 @@ process_dynamic_segment (file)
}
break;
case DT_FEATURE_1:
case DT_FEATURE:
if (do_dynamic)
{
printf (_("Flags:"));
@ -3234,6 +3261,11 @@ process_dynamic_segment (file)
printf (" PARINIT");
val ^= DTF_1_PARINIT;
}
if (val & DTF_1_CONFEXP)
{
printf (" CONFEXP");
val ^= DTF_1_CONFEXP;
}
if (val != 0)
printf (" %lx", val);
puts ("");
@ -3331,6 +3363,21 @@ process_dynamic_segment (file)
printf (" INTERPOSE");
val ^= DF_1_INTERPOSE;
}
if (val & DF_1_NODEFLIB)
{
printf (" NODEFLIB");
val ^= DF_1_NODEFLIB;
}
if (val & DF_1_NODUMP)
{
printf (" NODUMP");
val ^= DF_1_NODUMP;
}
if (val & DF_1_CONLFAT)
{
printf (" CONLFAT");
val ^= DF_1_CONLFAT;
}
if (val != 0)
printf (" %lx", val);
puts ("");
@ -3359,6 +3406,7 @@ process_dynamic_segment (file)
case DT_DEBUG :
case DT_TEXTREL :
case DT_JMPREL :
case DT_RUNPATH :
dynamic_info[entry->d_tag] = entry->d_un.d_val;
if (do_dynamic)
@ -3389,6 +3437,10 @@ process_dynamic_segment (file)
printf (_("Library rpath: [%s]"), name);
break;
case DT_RUNPATH:
printf (_("Library runpath: [%s]"), name);
break;
default:
print_vma (entry->d_un.d_val, PREFIX_HEX);
break;
@ -5039,7 +5091,14 @@ display_debug_pubnames (section, start, file)
if (pubnames.pn_version != 2)
{
warn (_("Only DWARF 2 pubnames are currently supported"));
static int warned = 0;
if (! warned)
{
warn (_("Only DWARF 2 pubnames are currently supported\n"));
warned = 1;
}
continue;
}
@ -6357,6 +6416,12 @@ display_debug_aranges (section, start, file)
arange.ar_pointer_size = BYTE_GET (external->ar_pointer_size);
arange.ar_segment_size = BYTE_GET (external->ar_segment_size);
if (arange.ar_version != 2)
{
warn (_("Only DWARF 2 aranges are currently supported.\n"));
break;
}
printf (_(" Length: %ld\n"), arange.ar_length);
printf (_(" Version: %d\n"), arange.ar_version);
printf (_(" Offset into .debug_info: %lx\n"), arange.ar_info_offset);

View File

@ -1261,6 +1261,7 @@ parse_stab_type (dhandle, info, typename, pp, slotp)
{
case 's':
size = atoi (attr + 1);
size /= 8; /* Size is in bits. We store it in bytes. */
if (size <= 0)
size = -1;
break;

View File

@ -72,14 +72,16 @@
# We have to handle being invoked by both Cygnus configure and Autoconf.
#
# Cygnus configure incoming variables:
# srcdir, subdir, target, arguments
# srcdir, subdir, host, arguments
#
# Autoconf incoming variables:
# srcdir, target, ac_configure_args
# srcdir, host, ac_configure_args
#
# We *could* figure srcdir and target out, but we'd have to do work that
# We *could* figure srcdir and host out, but we'd have to do work that
# our caller has already done to figure them out and requiring these two
# seems reasonable.
# Note that `host' in this case is GCC's `target'. Target libraries are
# configured for a particular host.
if [ -n "${ac_configure_args}" ]; then
Makefile=${ac_file-Makefile}
@ -204,7 +206,10 @@ for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
fi
done
case "${target}" in
# Target libraries are configured for the host they run on, so we check
# $host here, not $target.
case "${host}" in
arc-*-elf*)
if [ x$enable_biendian != xyes ]
then
@ -218,6 +223,64 @@ arc-*-elf*)
done
fi
;;
arm-*-*)
if [ x"$enable_fpu" = xno ]
then
old_multidirs=${multidirs}
multidirs=""
for x in ${old_multidirs}; do
case "${x}" in
*fpu*) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x"$enable_26bit" = xno ]
then
old_multidirs=${multidirs}
multidirs=""
for x in ${old_multidirs}; do
case "${x}" in
*26bit*) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x"$enable_underscore" = xno ]
then
old_multidirs=${multidirs}
multidirs=""
for x in ${old_multidirs}; do
case "${x}" in
*under*) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x"$enable_interwork" = xno ]
then
old_multidirs=${multidirs}
multidirs=""
for x in ${old_multidirs}; do
case "${x}" in
*interwork*) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_biendian = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*le* ) : ;;
*be* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
m68*-*-*)
if [ x$enable_softfloat = xno ]
then
@ -299,28 +362,6 @@ mips*-*-*)
esac
done
fi
case " $multidirs " in
*" mabi=64 "*)
# We will not be able to create libraries with -mabi=64 if
# we cannot even link a trivial program. It usually
# indicates the 64bit libraries are missing.
if echo 'main() {}' > conftest.c &&
${CC-gcc} -mabi=64 conftest.c -o conftest; then
:
else
echo Could not link program with -mabi=64, disabling it.
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*mabi=64* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
rm -f conftest.c conftest
;;
esac
;;
powerpc*-*-* | rs6000*-*-*)
if [ x$enable_softfloat = xno ]

View File

@ -1,18 +1,28 @@
Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
2000-02-23 Linas Vepstas <linas@linas.org>
* gcc-2.95.2 Released.
* mh-i370pic: New file.
* mt-i370pic: New file.
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
2000-02-22 Nick Clifton <nickc@cygnus.com>
* gcc-2.95.1 Released.
* config/mt-wince: new file: Makefile fragment for WinCE targets.
Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
2000-01-06 Geoff Keating <geoffk@cygnus.com>
* gcc-2.95 Released.
* mh-aix43: Delete, move to mt-aix43.
* mt-aix43: New file.
Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
1999-04-07 Michael Meissner <meissner@cygnus.com>
* gcc-2.95 Released.
* mt-d30v: New file, pass -g -Os -Wa,-C as default options.
1999-02-08 Syd Polk <spolk@cygnus.com>
* acinclude.m4: Added macros to find itcl files.
Export TCL_CFLAGS from tclConfig.sh.
Export TCL_LIB_FULL_PATH, TK_LIB_FULL_PATH, ITCL_LIB_FULL_PATH,
ITK_LIB_FULL_PATH, and TIX_LIB_FULL_PATH
Replace TIX macros with better ones from snavigator.
Tue Feb 2 22:51:21 1999 Philip Blundell <philb@gnu.org>
@ -35,6 +45,16 @@ Mon Nov 2 15:15:33 1998 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: delete
* mh-cygwin: was mh-cygwin32
1998-10-26 Syd Polk <spolk@cygnus.com>
* acinclude.m4: TCLHDIR and TKHDIR need to be run through
cygpath for Microsoft builds.
1998-10-20 Syd Polk <spolk@cygnus.com>
* acinclude.m4: Re-exported TCL_LIBS and TCL_LD_SEARCH_FLAGS
because itcl needs them.
Mon Aug 31 17:50:53 1998 David Edelsohn <edelsohn@mhpcc.edu>
* mh-aix43 (NM_FOR_TARGET): Add -X32_64 as well.
@ -47,6 +67,10 @@ Mon Aug 10 00:15:47 1998 HJ Lu (hjl@gnu.org)
* mt-linux (CXXFLAGS_FOR_TARGET): Add -D_GNU_SOURCE.
1998-05-29 Rob Savoye <rob@chinadoll.cygnus.com>
* acinclude.m4: New collection of generic autoconf macros.
Wed Apr 22 12:24:28 1998 Michael Meissner <meissner@cygnus.com>
* mt-ospace: New file, support using -Os instead of -O2 to compile

1994
gnu/dist/toolchain/config/acinclude.m4 vendored Executable file

File diff suppressed because it is too large Load Diff

1
gnu/dist/toolchain/config/mh-i370pic vendored Normal file
View File

@ -0,0 +1 @@
PICFLAG=-fPIC

View File

@ -1,19 +1,3 @@
Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.2 Released.
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95 Released.
Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95 Released.
Tue Nov 26 12:34:12 1996 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Fix some comments.

4
gnu/dist/toolchain/config/mt-aix43 vendored Normal file
View File

@ -0,0 +1,4 @@
# AIX 4.3 and above requires -X32_64 flag to all ar and nm commands
# to handle both 32-bit and 64-bit objects.
AR_FOR_TARGET=ar -X32_64
NM_FOR_TARGET=nm -X32_64

4
gnu/dist/toolchain/config/mt-d30v vendored Normal file
View File

@ -0,0 +1,4 @@
# Build libraries optimizing for space, not speed.
# Turn off warnings about symbols named the same as registers
CFLAGS_FOR_TARGET = -g -Os -Wa,-C
CXXFLAGS_FOR_TARGET = -g -Os -Wa,-C

1
gnu/dist/toolchain/config/mt-i370pic vendored Normal file
View File

@ -0,0 +1 @@
PICFLAG_FOR_TARGET=-fPIC

10
gnu/dist/toolchain/config/mt-wince vendored Normal file
View File

@ -0,0 +1,10 @@
# For Windows CE, we need to build the program that converts, copies,
# and renames the platform SDK files into gcc directories.
EXTRA_TARGET_HOST_ALL_MODULES:=$(EXTRA_TARGET_HOST_ALL_MODULES) all-utils
EXTRA_TARGET_HOST_INSTALL_MODULES:=$(EXTRA_TARGET_HOST_INSTALL_MODULES) install-utils
all-utils : all-libiberty
install-utils : all-libiberty

View File

@ -3,7 +3,7 @@
### WARNING: this file contains embedded tabs. Do not run untabify on this file.
# Configuration script
# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 1997
# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
@ -86,7 +86,7 @@ subdirs=
target_alias=NOTARGET
target_makefile_frag=
undefs=NOUNDEFS
version="$Revision: 1.22 $"
version="$Revision: 1.5 $"
x11=default
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
@ -576,6 +576,7 @@ case "${srcdir}" in
fi
esac
# default exec_prefix
case "${exec_prefixoption}" in
"") exec_prefix="\$(prefix)" ;;
@ -586,12 +587,12 @@ esac
# the gcc version number changes.
if [ "${with_gcc_version_trigger+set}" = set ]; then
gcc_version_trigger="$with_gcc_version_trigger"
gcc_version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${with_gcc_version_trigger}`
gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
else
# If gcc's sources are available, define the trigger file.
if [ -f ${topsrcdir}/gcc/version.c ] ; then
gcc_version_trigger=${topsrcdir}/gcc/version.c
gcc_version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${gcc_version_trigger}`
gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
case "$arguments" in
*--with-gcc-version-trigger=$gcc_version_trigger* )
;;
@ -654,8 +655,8 @@ case "${TMPDIR}" in
*) ;;
esac
# keep this filename short for &%*%$*# 14 char file names
tmpfile=${TMPDIR}/cONf$$
# keep this filename short for &%*%$*# 14 char file names and 8+3 file names
tmpfile=${TMPDIR}/cNf$$
# Note that under many versions of sh a trap handler for 0 will *override* any
# exit status you explicitly specify! At this point, the only non-error exit
# is at the end of the script; these actions are duplicated there, minus
@ -901,6 +902,9 @@ do
test -n "$DEFAULT_LEX" && break
done
# BINUTILS LOCAL: This is included in the default CFLAGS when using gcc.
warn_cflags="-W -Wall"
if [ "${build}" != "${host}" ]; then
# If we are doing a Canadian Cross, in which the host and build systems
# are not the same, we set reasonable default values for the tools.
@ -934,7 +938,7 @@ t loop
AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as}
BISON=${BISON-bison}
CC=${CC-${host_alias}-gcc}
CFLAGS=${CFLAGS-"-g -O2"}
CFLAGS=${CFLAGS-"-g -O2 ${warn_cflags}"}
CXX=${CXX-${host_alias}-c++}
CXXFLAGS=${CXXFLAGS-"-g -O2"}
CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
@ -1014,10 +1018,10 @@ else
CC="gcc"
echo 'void f(){}' > conftest.c
if test -z "`${CC} -g -c conftest.c 2>&1`"; then
CFLAGS=${CFLAGS-"-g -O2"}
CFLAGS=${CFLAGS-"-g -O2 ${warn_cflags}"}
CXXFLAGS=${CXXFLAGS-"-g -O2"}
else
CFLAGS=${CFLAGS-"-O2"}
CFLAGS=${CFLAGS-"-O2 ${warn_cflags}"}
CXXFLAGS=${CXXFLAGS-"-O2"}
fi
rm -f conftest*
@ -1034,10 +1038,10 @@ else
*gcc)
echo 'void f(){}' > conftest.c
if test -z "`${CC} -g -c conftest.c 2>&1`"; then
CFLAGS=${CFLAGS-"-g -O2"}
CFLAGS=${CFLAGS-"-g -O2 ${warn_cflags}"}
CXXFLAGS=${CXXFLAGS-"-g -O2"}
else
CFLAGS=${CFLAGS-"-O2"}
CFLAGS=${CFLAGS-"-O2 ${warn_cflags}"}
CXXFLAGS=${CXXFLAGS-"-O2"}
fi
rm -f conftest*
@ -1062,14 +1066,12 @@ case "$host" in
enable_gdbtk=no ;;
*msdosdjgpp*)
enable_gdbtk=no ;;
*cygwin32*)
enable_gdbtk=no ;;
esac
# FIXME: This should be in configure.in, not configure
# Determine whether gdb needs tk/tcl or not.
if [ "$enable_gdbtk" != "no" ]; then
GDB_TK="all-tcl all-tk all-itcl all-tix"
GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui"
else
GDB_TK=""
fi
@ -1403,18 +1405,19 @@ EOF
s%^CXXFLAGS[ ]*=.*$%CXXFLAGS = ${CXXFLAGS}%
}" \
-e "s|^SHELL[ ]*=.*$|SHELL = ${config_shell}|" \
-e "s:^GDB_TK[ ]*=.*$:GDB_TK = ${GDB_TK}:" \
-e "s|^srcdir[ ]*=.*$|srcdir = ${makesrcdir}|" \
-e "s/ //" \
-e "s:^program_prefix[ ]*=.*$:program_prefix = ${program_prefix}:" \
-e "s:^program_suffix[ ]*=.*$:program_suffix = ${program_suffix}:" \
-e "s:^program_transform_name[ ]*=.*$:program_transform_name = ${program_transform_name}:" \
-e "s|^tooldir[ ]*=.*$|tooldir = ${tooldir}|" \
-e "s|^build_tooldir[ ]*=.*$|build_tooldir = ${tooldir}|" \
-e "s:^DEFAULT_YACC[ ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \
-e "s:^DEFAULT_LEX[ ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \
-e "s:^DEFAULT_M4[ ]*=.*$:DEFAULT_M4 = ${DEFAULT_M4}:" \
${subdir}/Makefile.tem >> ${Makefile}
sed -e "s:^GDB_TK[ ]*=.*$:GDB_TK = ${GDB_TK}:" ${Makefile} >${Makefile}.tem
mv -f ${Makefile}.tem ${Makefile}
# If this is a Canadian Cross, preset the values of many more
# tools.

View File

@ -14,7 +14,7 @@
## For more information on these two systems, check out the documentation
## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998, 1999 Free Software Foundation, Inc.
# Copyright (C) 1992-99, 2000 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -41,7 +41,7 @@
# these libraries are used by various programs built for the host environment
#
host_libs="intl mmalloc libiberty opcodes bfd readline gash db tcl tk tclX itcl tix libgui"
host_libs="intl mmalloc libiberty opcodes bfd readline gash db tcl tk tcl8.1 tk8.1 tclX itcl tix libgui"
if [ "${enable_gdbgui}" = "yes" ] ; then
host_libs="${host_libs} libgui"
@ -50,8 +50,7 @@ fi
# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
# know that we are building the simulator.
host_tools="texinfo byacc flex bison binutils ld gas gcc sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool ispell grep diff rcs cvssrc fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils snavigator libtool gettext zip"
host_tools="byacc flex bison binutils ld gas gcc sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool ispell grep diff rcs cvssrc fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils snavigator libtool gettext zip"
# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
@ -62,14 +61,7 @@ target_libs="target-libiberty \
target-libio \
target-librx \
target-libstdc++ \
target-libg++ \
target-libf2c \
target-libchill \
target-libjava \
target-zlib \
target-boehm-gc \
target-qthreads \
target-libobjc"
target-libg++"
# these tools are built using the target libs, and are intended to run only
# in the target environment
@ -195,7 +187,7 @@ case "${host}" in
i[3456]86-*-msdosdjgpp*)
host_makefile_frag="${host_makefile_frag} config/mh-djgpp"
;;
*-cygwin32*)
*-cygwin*)
host_makefile_frag="${host_makefile_frag} config/mh-cygwin"
;;
*-mingw32*)
@ -231,9 +223,6 @@ case "${host}" in
*-*-lynxos*)
host_makefile_frag="${host_makefile_frag} config/mh-lynxos"
;;
*-*-aix4.[3456789]* | *-*-aix[56789].*)
host_makefile_frag="${host_makefile_frag} config/mh-aix43"
;;
*-*-sysv4*)
host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
;;
@ -293,12 +282,15 @@ if [ x${shared} = xyes ]; then
hppa*-*-*)
host_makefile_frag="${host_makefile_frag} config/mh-papic"
;;
i[3456]86-*-cygwin32*)
# We don't want -fPIC on cygwin32.
i[3456]86-*-cygwin*)
# We don't want -fPIC on Cygwin.
;;
i[3456]86-*-*)
host_makefile_frag="${host_makefile_frag} config/mh-x86pic"
;;
i370-*-*)
host_makefile_frag="${host_makefile_frag} config/mh-i370pic"
;;
sparc64-*-*)
host_makefile_frag="${host_makefile_frag} config/mh-sparcpic"
;;
@ -337,9 +329,15 @@ case "${target}" in
powerpc-*-netware*)
target_makefile_frag="${target_makefile_frag} config/mt-netware"
;;
*-*-linux-gnu)
*-*-linux-gnu*)
target_makefile_frag="${target_makefile_frag} config/mt-linux"
;;
*-*-aix4.[3456789]* | *-*-aix[56789].*)
target_makefile_frag="${target_makefile_frag} config/mt-aix43"
;;
mips*-*-pe | sh*-*-pe | *arm-wince-pe)
target_makefile_frag="${target_makefile_frag} config/mt-wince"
;;
esac
# If --enable-target-optspace always use -Os instead of -O2 to build
@ -349,7 +347,10 @@ case "${enable_target_optspace}:${target}" in
yes:*)
target_makefile_frag="${target_makefile_frag} config/mt-ospace"
;;
:m32r-*)
:d30v-*)
target_makefile_frag="${target_makefile_frag} config/mt-d30v"
;;
:m32r-* | :d10v-* | :fr30-*)
target_makefile_frag="${target_makefile_frag} config/mt-ospace"
;;
no:* | :*)
@ -508,8 +509,8 @@ case "${host}" in
configdirs="$configdirs dosrel" ;;
i[3456]86-*-mingw32*)
configdirs="$configdirs dosrel" ;;
*-cygwin32*)
configdirs="$configdirs dosrel" ;;
*-cygwin*)
configdirs="$configdirs libtermcap dosrel" ;;
esac
# Remove more programs from consideration, based on the host or
@ -527,16 +528,13 @@ case "${host}" in
;;
i[3456]86-*-mingw32*)
# noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv"
noconfigdirs="expect dejagnu cvs autoconf automake send-pr gprof rcs guile perl texinfo apache inet libtool"
noconfigdirs="expect dejagnu cvs autoconf automake send-pr rcs guile perl texinfo apache inet libtool"
;;
*-*-cygwin32)
noconfigdirs="autoconf automake send-pr gprof rcs guile perl apache inet"
;;
*-*-windows*)
# This is only used to build WinGDB...
# note that powerpc-eabi depends on sim configured before gdb.
configdirs="bfd libiberty opcodes readline sim gdb"
target_configdirs=
i[3456]86-*-beos*)
noconfigdirs="$noconfigdirs tk itcl tix libgui gdb"
;;
*-*-cygwin*)
noconfigdirs="autoconf automake send-pr rcs guile perl texinfo apache inet"
;;
*-*-netbsd*)
noconfigdirs="rcs"
@ -576,6 +574,21 @@ case "${target}" in
# newlib is not 64 bit ready
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
noconfigdirs="$noconfigdirs target-libjava target-libffi target-zlib"
noconfigdirs="$noconfigdirs target-boehm-gc target-qthreads target-examples"
noconfigdirs="$noconfigdirs target-librx target-libiberty texinfo send-pr"
noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim"
noconfigdirs="$noconfigdirs expect dejagnu"
# the C++ libraries don't build on top of CE's C libraries
noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio"
skipdirs="$skipdirs target-newlib"
case "${host}" in
*-*-cygwin*) ;; # keep gdb and readline
*) noconfigdirs="$noconfigdirs gdb readline target-libio target-libstdc++ target-libg++"
;;
esac
;;
arc-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
@ -584,18 +597,18 @@ case "${target}" in
;;
arm-*-coff*)
noconfigdirs="$noconfigdirs target-libgloss"
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
;;
arm-*-elf*)
noconfigdirs="$noconfigdirs target-libgloss"
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
;;
arm-*-oabi*)
noconfigdirs="$noconfigdirs target-libgloss"
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
fi
;;
c4x-*-*)
noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
@ -603,19 +616,48 @@ case "${target}" in
thumb-*-coff)
noconfigdirs="$noconfigdirs target-libgloss"
;;
thumb-*-elf)
noconfigdirs="$noconfigdirs target-libgloss"
;;
thumb-*-oabi)
noconfigdirs="$noconfigdirs target-libgloss"
;;
strongarm-*-elf)
noconfigdirs="$noconfigdirs target-libgloss"
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
;;
strongarm-*-coff)
noconfigdirs="$noconfigdirs target-libgloss"
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
;;
thumb-*-pe)
noconfigdirs="$noconfigdirs target-libgloss"
;;
arm-*-riscix*)
noconfigdirs="$noconfigdirs ld target-libgloss"
;;
d10v-*-*)
noconfigdirs="$noconfigdirs target-librx target-libg++ target-libstdc++ target-libio target-libgloss"
noconfigdirs="$noconfigdirs target-librx target-libg++ target-libstdc++ target-libio"
;;
d30v-*-*)
;;
fr30-*-elf*)
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
fi
;;
h8300*-*-* | \
h8500-*-*)
noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
;;
hppa*-*-*elf* | \
hppa*-*-linux-gnu* | \
hppa*-*-lites*)
# Do configure ld/binutils/gas for this case.
# Do configure ld/binutils/gas for the above cases.
;;
hppa*-*-*)
# HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
@ -627,14 +669,15 @@ case "${target}" in
esac
noconfigdirs="$noconfigdirs ld shellutils"
;;
i[3456]86-*-coff | i[3456]86-*-elf)
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-libstub target-cygmon"
fi
;;
i[3456]86-*-go32* | i[3456]-*-msdosdjgpp*)
# but don't build gdb
noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
;;
*-*-linux*)
# linux has rx in libc
skipdirs="$skipdirs target-librx"
;;
i[3456]86-*-mingw32*)
target_configdirs="$target_configdirs target-mingw"
noconfigdirs="$noconfigdirs expect target-libgloss"
@ -646,15 +689,15 @@ case "${target}" in
;;
esac
;;
*-*-cygwin32*)
target_configdirs="$target_configdirs target-winsup"
noconfigdirs="$noconfigdirs target-gperf target-libgloss"
*-*-cygwin*)
target_configdirs="$target_configdirs target-libtermcap target-winsup"
noconfigdirs="$noconfigdirs target-libgloss"
# always build newlib.
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
# Can't build gdb for cygwin32 if not native.
# Can't build gdb for Cygwin if not native.
case "${host}" in
*-*-cygwin32*) ;; # keep gdb tcl tk expect etc.
*-*-cygwin*) ;; # keep gdb tcl tk expect etc.
*) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui db snavigator gnuserv"
;;
esac
@ -671,10 +714,7 @@ case "${target}" in
noconfigdirs="$noconfigdirs gprof target-libgloss"
;;
i[3456]86-*-solaris2*)
# The linker does static linking correctly, but the Solaris C library
# has bugs such that some important functions won't work when statically
# linked. (See man pages for getpwuid, for example.)
noconfigdirs="$noconfigdirs ld target-libgloss"
noconfigdirs="$noconfigdirs target-libgloss"
;;
i[3456]86-*-sysv4*)
# The SYSV4 C compiler doesn't handle Emacs correctly
@ -685,6 +725,19 @@ case "${target}" in
# but that's okay since emacs doesn't work anyway
noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss"
;;
i[3456]86-*-beos*)
noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
;;
m68k-*-elf*)
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
;;
m68k-*-coff*)
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
;;
mn10200-*-*)
noconfigdirs="$noconfigdirs"
if [ x${is_cross_compiler} != xno ] ; then
@ -694,13 +747,16 @@ case "${target}" in
mn10300-*-*)
noconfigdirs="$noconfigdirs"
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-libstub target-cygmon"
target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
fi
;;
powerpc-*-aix*)
# copied from rs6000-*-* entry
noconfigdirs="$noconfigdirs gprof cvssrc target-libgloss"
# This is needed until gcc and ld are fixed to work together.
# The configure and build of ld are currently disabled because
# GNU ld is known to be broken for AIX 4.2 and 4.3 (at least)
# The symptom is that GDBtk 4.18 fails at startup with a segfault
# if linked by GNU ld, but not if linked by the native ld.
noconfigdirs="$noconfigdirs gprof cvssrc target-libgloss ld"
use_gnu_ld=no
;;
powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
@ -713,14 +769,22 @@ case "${target}" in
powerpcle-*-solaris*)
noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db snavigator gnuserv"
;;
powerpc-*-eabi)
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
fi
;;
rs6000-*-lynxos*)
# The CVS server code doesn't work on the RS/6000
# Newlib makes problems for libg++ in crosses.
noconfigdirs="$noconfigdirs target-newlib gprof cvssrc"
;;
rs6000-*-aix*)
noconfigdirs="$noconfigdirs gprof"
# This is needed until gcc and ld are fixed to work together.
# The configure and build of ld are currently disabled because
# GNU ld is known to be broken for AIX 4.2 and 4.3 (at least)
# The symptom is that GDBtk 4.18 fails at startup with a segfault
# if linked by GNU ld, but not if linked by the native ld.
noconfigdirs="$noconfigdirs gprof ld"
use_gnu_ld=no
;;
rs6000-*-*)
@ -735,9 +799,14 @@ case "${target}" in
noconfigdirs="$noconfigdirs ld gprof emacs target-libgloss"
;;
mips*-*-irix6*)
# The GNU assembler and linker do not support IRIX 6.
# The GNU assembler does not support IRIX 6.
# emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
noconfigdirs="$noconfigdirs ld gas gprof emacs target-libgloss"
noconfigdirs="$noconfigdirs gas gprof emacs target-libgloss"
;;
mips*-*-linux*)
noconfigdirs="$noconfigdirs gprof"
# linux has rx in libc
skipdirs="$skipdirs target-librx"
;;
mips*-dec-bsd*)
noconfigdirs="$noconfigdirs gprof target-libgloss"
@ -747,7 +816,7 @@ case "${target}" in
;;
mipstx39-*-*)
noconfigdirs="$noconfigdirs gprof" # same as generic mips
target_configdirs="${target_configdirs} target-libstub target-cygmon"
target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
;;
mips*-*-*)
noconfigdirs="$noconfigdirs gprof"
@ -774,9 +843,9 @@ case "${target}" in
target_configdirs="${target_configdirs} target-libstub target-cygmon"
fi
;;
sparclite-*-aout*)
sparclite-*-*)
if [ x${is_cross_compiler} != xno ] ; then
target_configdirs="${target_configdirs} target-libstub target-cygmon"
target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
fi
;;
sparc-*-sunos4*)
@ -792,12 +861,22 @@ case "${target}" in
v850-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
v850e-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
v850ea-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
vax-*-vms)
noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss"
;;
vax-*-*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-linux*)
# linux has rx in libc
skipdirs="$skipdirs target-librx"
;;
*-*-lynxos*)
# Newlib makes problems for libg++ in crosses.
noconfigdirs="$noconfigdirs target-newlib target-libgloss"

View File

@ -31,8 +31,14 @@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
MAKEINFO = `if [ -f ../texinfo/makeinfo/makeinfo ]; \
then echo ../texinfo/makeinfo/makeinfo; \
else echo makeinfo; fi`
TEXI2DVI = `if [ -f ../texinfo/util/texi2dvi ]; \
then echo ../texinfo/util/texi2dvi; \
else echo texi2dvi; fi`
TEXI2HTML = texi2html
DVIPS = dvips
# Where to find texinfo.tex to format documentation with TeX.
TEXIDIR = $(srcdir)/../texinfo
@ -40,8 +46,8 @@ TEXIDIR = $(srcdir)/../texinfo
#### Host, target, and site specific Makefile fragments come in here.
###
INFOFILES = standards.info
DVIFILES = standards.dvi
INFOFILES = standards.info configure.info
DVIFILES = standards.dvi configure.dvi
all:
@ -49,15 +55,42 @@ install:
uninstall:
info: $(INFOFILES)
install-info: info
if test ! -f standards.info ; then cd $(srcdir); fi; \
for i in standards.info*; do \
$(INSTALL_DATA) $$i $(infodir)/$$i; \
info:
for f in $(INFOFILES); do \
if test -f $(srcdir)/`echo $$f | sed -e 's/.info$$/.texi/'`; then \
if $(MAKE) "MAKEINFO=$(MAKEINFO)" $$f; then \
true; \
else \
exit 1; \
fi; \
fi; \
done
dvi: $(DVIFILES)
install-info: info
$(SHELL) $(srcdir)/../mkinstalldirs $(infodir)
if test ! -f standards.info; then cd $(srcdir); fi; \
if test -f standards.info; then \
for i in standards.info*; do \
$(INSTALL_DATA) $$i $(infodir)/$$i; \
done; \
fi
if test ! -f configure.info; then cd $(srcdir); fi; \
if test -f configure.info; then \
for i in configure.info*; do \
$(INSTALL_DATA) $$i $(infodir)/$$i; \
done; \
fi
dvi:
for f in $(DVIFILES); do \
if test -f $(srcdir)/`echo $$f | sed -e 's/.dvi$$/.texi/'`; then \
if $(MAKE) "TEXI2DVI=$(TEXI2DVI)" $$f; then \
true; \
else \
exit 1; \
fi; \
fi; \
done
standards.info: $(srcdir)/standards.texi $(srcdir)/make-stds.texi
$(MAKEINFO) --no-split -I$(srcdir) -o standards.info $(srcdir)/standards.texi
@ -65,10 +98,45 @@ standards.info: $(srcdir)/standards.texi $(srcdir)/make-stds.texi
standards.dvi: $(srcdir)/standards.texi
TEXINPUTS=$(TEXIDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/standards.texi
standards.ps: standards.dvi
$(DVIPS) standards.dvi -o standards.ps
# makeinfo requires images to be in the current directory.
configure.info: $(srcdir)/configure.texi $(srcdir)/configdev.tin $(srcdir)/configbuild.tin
rm -f configdev.txt configbuild.txt
cp $(srcdir)/configdev.tin configdev.txt
cp $(srcdir)/configbuild.tin configbuild.txt
$(MAKEINFO) -I$(srcdir) -o configure.info $(srcdir)/configure.texi
rm -f configdev.txt configbuild.txt
# texi2dvi wants both the .txt and the .eps files.
configure.dvi: $(srcdir)/configure.texi $(srcdir)/configdev.tin $(srcdir)/configbuild.tin $(srcdir)/configdev.ein $(srcdir)/configbuild.ein
rm -f configdev.txt configbuild.txt
cp $(srcdir)/configdev.tin configdev.txt
cp $(srcdir)/configbuild.tin configbuild.txt
rm -f configdev.eps configbuild.eps
cp $(srcdir)/configdev.ein configdev.eps
cp $(srcdir)/configbuild.ein configbuild.eps
TEXINPUTS=$(TEXIDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/configure.texi
rm -f configdev.txt configbuild.txt
rm -f configdev.eps configbuild.eps
# dvips requires images to be in the current directory
configure.ps: configure.dvi $(srcdir)/configdev.ein $(srcdir)/configbuild.ein
rm -f configdev.eps configbuild.eps
cp $(srcdir)/configdev.ein configdev.eps
cp $(srcdir)/configbuild.ein configbuild.eps
$(DVIPS) configure.dvi -o configure.ps
rm -f configdev.eps configbuild.eps
configure.html: $(srcdir)/configure.texi
$(TEXI2HTML) -split_chapter $(srcdir)/configure.texi
clean:
rm -f *.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.log
rm -f *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs
rm -f configdev.txt configbuild.txt configdev.eps configbuild.eps
rm -f configdev.jpg configbuild.jpg
mostlyclean: clean

149
gnu/dist/toolchain/etc/configbuild.ein vendored Normal file
View File

@ -0,0 +1,149 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: configbuild.fig
%%Creator: fig2dev Version 3.1 Patchlevel 1
%%CreationDate: Fri Jun 12 20:13:16 1998
%%For: ian@tito.cygnus.com (Ian Lance Taylor)
%%Orientation: Portrait
%%BoundingBox: 0 0 322 173
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
-62.0 226.0 translate
1 -1 scale
/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog
$F2psBegin
10 setmiterlimit
0.06000 0.06000 sc
7.500 slw
% Polyline
n 1050 900 m 2100 900 l 2100 1425 l 1050 1425 l clp gs col-1 s gr
% Polyline
n 1500 1425 m 1500 2100 l gs col-1 s gr
n 1530.00 1980.00 m 1500.00 2100.00 l 1470.00 1980.00 l 1500.50 1980.50 l 1530.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 1500 2625 m 1500 3300 l gs col-1 s gr
n 1530.00 3180.00 m 1500.00 3300.00 l 1470.00 3180.00 l 1500.50 3180.50 l 1530.00 3180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 2925 900 m 3825 900 l 3825 1425 l 2925 1425 l clp gs col-1 s gr
% Polyline
n 1155 2100 m 1050 2100 1050 2520 105 arcto 4 {pop} repeat 1050 2625 2220 2625 105 arcto 4 {pop} repeat 2325 2625 2325 2205 105 arcto 4 {pop} repeat 2325 2100 1155 2100 105 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 2850 2100 m 4125 2100 l 4125 2625 l 2850 2625 l clp gs col-1 s gr
% Polyline
n 3375 1425 m 3375 2100 l gs col-1 s gr
n 3405.00 1980.00 m 3375.00 2100.00 l 3345.00 1980.00 l 3375.50 1980.50 l 3405.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 5100 900 m 6300 900 l 6300 1350 l 5100 1350 l clp gs col-1 s gr
% Polyline
n 5625 1350 m 5625 2100 l gs col-1 s gr
n 5655.00 1980.00 m 5625.00 2100.00 l 5595.00 1980.00 l 5625.50 1980.50 l 5655.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 5205 2100 m 5100 2100 5100 2520 105 arcto 4 {pop} repeat 5100 2625 6270 2625 105 arcto 4 {pop} repeat 6375 2625 6375 2205 105 arcto 4 {pop} repeat 6375 2100 5205 2100 105 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 5625 2625 m 5625 3300 l gs col-1 s gr
n 5655.00 3180.00 m 5625.00 3300.00 l 5595.00 3180.00 l 5625.50 3180.50 l 5655.00 3180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 5100 3300 m 6225 3300 l 6225 3750 l 5100 3750 l clp gs col-1 s gr
% Polyline
[1 50.0] 50.000000 setdash
n 2850 2400 m 2325 2400 l gs col-1 s gr [] 0 setdash
n 2445.00 2430.00 m 2325.00 2400.00 l 2445.00 2370.00 l 2445.50 2400.50 l 2445.00 2430.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
[1 50.0] 50.000000 setdash
n 4125 2400 m 5100 2400 l gs col-1 s gr [] 0 setdash
n 4980.00 2370.00 m 5100.00 2400.00 l 4980.00 2430.00 l 4980.50 2400.50 l 4980.00 2370.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 1050 3300 m 1950 3300 l 1950 3750 l 1050 3750 l clp gs col-1 s gr
/Times-Roman findfont 180.00 scalefont setfont
1200 1200 m
gs 1 -1 sc (config.in) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
3000 1200 m
gs 1 -1 sc (configure) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
3000 2400 m
gs 1 -1 sc (config.status) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
1200 2400 m
gs 1 -1 sc (config.status) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
1200 3600 m
gs 1 -1 sc (config.h) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
5250 1200 m
gs 1 -1 sc (Makefile.in) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
5250 2400 m
gs 1 -1 sc (config.status) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
5250 3600 m
gs 1 -1 sc (Makefile) col-1 show gr
$F2psEnd
restore

50
gnu/dist/toolchain/etc/configbuild.fig vendored Normal file
View File

@ -0,0 +1,50 @@
#FIG 3.1
Portrait
Center
Inches
1200 2
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
1050 900 2100 900 2100 1425 1050 1425 1050 900
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
1500 1425 1500 2100
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
1500 2625 1500 3300
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
2925 900 3825 900 3825 1425 2925 1425 2925 900
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
2325 2625 2325 2100 1050 2100 1050 2625 2325 2625
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
2850 2100 4125 2100 4125 2625 2850 2625 2850 2100
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
3375 1425 3375 2100
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
5100 900 6300 900 6300 1350 5100 1350 5100 900
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
5625 1350 5625 2100
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
6375 2625 6375 2100 5100 2100 5100 2625 6375 2625
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
5625 2625 5625 3300
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
5100 3300 6225 3300 6225 3750 5100 3750 5100 3300
2 1 2 1 -1 7 0 0 -1 3.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
2850 2400 2325 2400
2 1 2 1 -1 7 0 0 -1 3.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4125 2400 5100 2400
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
1050 3300 1950 3300 1950 3750 1050 3750 1050 3300
4 0 -1 0 0 0 12 0.0000000 4 180 645 1200 1200 config.in\001
4 0 -1 0 0 0 12 0.0000000 4 180 705 3000 1200 configure\001
4 0 -1 0 0 0 12 0.0000000 4 180 990 3000 2400 config.status\001
4 0 -1 0 0 0 12 0.0000000 4 180 990 1200 2400 config.status\001
4 0 -1 0 0 0 12 0.0000000 4 180 600 1200 3600 config.h\001
4 0 -1 0 0 0 12 0.0000000 4 135 855 5250 1200 Makefile.in\001
4 0 -1 0 0 0 12 0.0000000 4 180 990 5250 2400 config.status\001
4 0 -1 0 0 0 12 0.0000000 4 135 675 5250 3600 Makefile\001

BIN
gnu/dist/toolchain/etc/configbuild.jin vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,9 @@
config.in *configure* Makefile.in
| | |
| v |
| config.status |
| | |
*config.status*<======+==========>*config.status*
| |
v v
config.h Makefile

185
gnu/dist/toolchain/etc/configdev.ein vendored Normal file
View File

@ -0,0 +1,185 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: configdev.fig
%%Creator: fig2dev Version 3.1 Patchlevel 1
%%CreationDate: Mon Jun 15 17:35:19 1998
%%For: ian@tito.cygnus.com (Ian Lance Taylor)
%%Orientation: Portrait
%%BoundingBox: 0 0 344 317
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
-62.0 370.0 translate
1 -1 scale
/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog
$F2psBegin
10 setmiterlimit
0.06000 0.06000 sc
7.500 slw
% Polyline
n 1050 900 m 2100 900 l 2100 1425 l 1050 1425 l clp gs col-1 s gr
% Polyline
n 2925 900 m 3975 900 l 3975 1425 l 2925 1425 l clp gs col-1 s gr
% Polyline
n 5550 900 m 6750 900 l 6750 1350 l 5550 1350 l clp gs col-1 s gr
% Polyline
n 3750 1800 m 5025 1800 l 5025 2250 l 3750 2250 l clp gs col-1 s gr
% Polyline
n 1155 2100 m 1050 2100 1050 2520 105 arcto 4 {pop} repeat 1050 2625 2070 2625 105 arcto 4 {pop} repeat 2175 2625 2175 2205 105 arcto 4 {pop} repeat 2175 2100 1155 2100 105 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 5550 3300 m 6675 3300 l 6675 3750 l 5550 3750 l clp gs col-1 s gr
% Polyline
n 5655 2100 m 5550 2100 5550 2520 105 arcto 4 {pop} repeat 5550 2625 6495 2625 105 arcto 4 {pop} repeat 6600 2625 6600 2205 105 arcto 4 {pop} repeat 6600 2100 5655 2100 105 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 3750 3600 m 4875 3600 l 4875 4050 l 3750 4050 l clp gs col-1 s gr
% Polyline
n 3855 2700 m 3750 2700 3750 3045 105 arcto 4 {pop} repeat 3750 3150 4545 3150 105 arcto 4 {pop} repeat 4650 3150 4650 2805 105 arcto 4 {pop} repeat 4650 2700 3855 2700 105 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 2850 5700 m 3750 5700 l 3750 6150 l 2850 6150 l clp gs col-1 s gr
% Polyline
n 3030 4800 m 2925 4800 2925 5145 105 arcto 4 {pop} repeat 2925 5250 3645 5250 105 arcto 4 {pop} repeat 3750 5250 3750 4905 105 arcto 4 {pop} repeat 3750 4800 3030 4800 105 arcto 4 {pop} repeat clp gs col-1 s gr
% Polyline
n 1500 1425 m 1500 2100 l gs col-1 s gr
n 1530.00 1980.00 m 1500.00 2100.00 l 1470.00 1980.00 l 1500.50 1980.50 l 1530.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 3300 1425 m 3300 4800 l gs col-1 s gr
n 3330.00 4680.00 m 3300.00 4800.00 l 3270.00 4680.00 l 3300.50 4680.50 l 3330.00 4680.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 3300 1575 m 1875 1575 l 1875 2100 l gs col-1 s gr
n 1905.00 1980.00 m 1875.00 2100.00 l 1845.00 1980.00 l 1875.50 1980.50 l 1905.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 3300 1575 m 5700 1575 l 5700 2100 l gs col-1 s gr
n 5730.00 1980.00 m 5700.00 2100.00 l 5670.00 1980.00 l 5700.50 1980.50 l 5730.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 6225 1350 m 6225 2100 l gs col-1 s gr
n 6255.00 1980.00 m 6225.00 2100.00 l 6195.00 1980.00 l 6225.50 1980.50 l 6255.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 6075 2625 m 6075 3300 l gs col-1 s gr
n 6105.00 3180.00 m 6075.00 3300.00 l 6045.00 3180.00 l 6075.50 3180.50 l 6105.00 3180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 4200 2250 m 4200 2700 l gs col-1 s gr
n 4230.00 2580.00 m 4200.00 2700.00 l 4170.00 2580.00 l 4200.50 2580.50 l 4230.00 2580.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 4200 3150 m 4200 3600 l gs col-1 s gr
n 4230.00 3480.00 m 4200.00 3600.00 l 4170.00 3480.00 l 4200.50 3480.50 l 4230.00 3480.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 4200 4050 m 4200 4500 l 3675 4500 l 3675 4800 l gs col-1 s gr
n 3705.00 4680.00 m 3675.00 4800.00 l 3645.00 4680.00 l 3675.50 4680.50 l 3705.00 4680.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 3375 5250 m 3375 5700 l gs col-1 s gr
n 3405.00 5580.00 m 3375.00 5700.00 l 3345.00 5580.00 l 3375.50 5580.50 l 3405.00 5580.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 3300 2925 m 3750 2925 l gs col-1 s gr
n 3630.00 2895.00 m 3750.00 2925.00 l 3630.00 2955.00 l 3630.50 2925.50 l 3630.00 2895.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 1500 2625 m 1500 3300 l gs col-1 s gr
n 1530.00 3180.00 m 1500.00 3300.00 l 1470.00 3180.00 l 1500.50 3180.50 l 1530.00 3180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 1050 3300 m 2100 3300 l 2100 3750 l 1050 3750 l clp gs col-1 s gr
% Polyline
n 4875 3825 m 5250 3825 l 5250 2400 l 5550 2400 l gs col-1 s gr
n 5430.00 2370.00 m 5550.00 2400.00 l 5430.00 2430.00 l 5430.50 2400.50 l 5430.00 2370.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
/Times-Roman findfont 180.00 scalefont setfont
1200 1200 m
gs 1 -1 sc (acconfig.h) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
3000 1200 m
gs 1 -1 sc (configure.in) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
5700 1200 m
gs 1 -1 sc (Makefile.am) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
3900 2100 m
gs 1 -1 sc (acinclude.m4) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
1200 2400 m
gs 1 -1 sc (autoheader) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
1200 3600 m
gs 1 -1 sc (config.in) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
5700 3600 m
gs 1 -1 sc (Makefile.in) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
5700 2400 m
gs 1 -1 sc (automake) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
3900 3900 m
gs 1 -1 sc (aclocal.m4) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
3900 3000 m
gs 1 -1 sc (aclocal) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
3000 6000 m
gs 1 -1 sc (configure) col-1 show gr
/Times-Roman findfont 180.00 scalefont setfont
3000 5100 m
gs 1 -1 sc (autoconf) col-1 show gr
$F2psEnd
restore

80
gnu/dist/toolchain/etc/configdev.fig vendored Normal file
View File

@ -0,0 +1,80 @@
#FIG 3.1
Portrait
Center
Inches
1200 2
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
1050 900 2100 900 2100 1425 1050 1425 1050 900
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
2925 900 3975 900 3975 1425 2925 1425 2925 900
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
5550 900 6750 900 6750 1350 5550 1350 5550 900
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
3750 1800 5025 1800 5025 2250 3750 2250 3750 1800
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
2175 2625 2175 2100 1050 2100 1050 2625 2175 2625
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
5550 3300 6675 3300 6675 3750 5550 3750 5550 3300
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
6600 2625 6600 2100 5550 2100 5550 2625 6600 2625
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
3750 3600 4875 3600 4875 4050 3750 4050 3750 3600
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
4650 3150 4650 2700 3750 2700 3750 3150 4650 3150
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
2850 5700 3750 5700 3750 6150 2850 6150 2850 5700
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
3750 5250 3750 4800 2925 4800 2925 5250 3750 5250
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
1500 1425 1500 2100
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
3300 1425 3300 4800
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 3
1 1 1.00 60.00 120.00
3300 1575 1875 1575 1875 2100
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 3
1 1 1.00 60.00 120.00
3300 1575 5700 1575 5700 2100
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
6225 1350 6225 2100
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
6075 2625 6075 3300
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4200 2250 4200 2700
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4200 3150 4200 3600
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
4200 4050 4200 4500 3675 4500 3675 4800
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
3375 5250 3375 5700
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
3300 2925 3750 2925
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
1500 2625 1500 3300
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
1050 3300 2100 3300 2100 3750 1050 3750 1050 3300
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
4875 3825 5250 3825 5250 2400 5550 2400
4 0 -1 0 0 0 12 0.0000000 4 180 780 1200 1200 acconfig.h\001
4 0 -1 0 0 0 12 0.0000000 4 180 885 3000 1200 configure.in\001
4 0 -1 0 0 0 12 0.0000000 4 135 945 5700 1200 Makefile.am\001
4 0 -1 0 0 0 12 0.0000000 4 135 990 3900 2100 acinclude.m4\001
4 0 -1 0 0 0 12 0.0000000 4 135 840 1200 2400 autoheader\001
4 0 -1 0 0 0 12 0.0000000 4 180 645 1200 3600 config.in\001
4 0 -1 0 0 0 12 0.0000000 4 135 855 5700 3600 Makefile.in\001
4 0 -1 0 0 0 12 0.0000000 4 135 735 5700 2400 automake\001
4 0 -1 0 0 0 12 0.0000000 4 135 810 3900 3900 aclocal.m4\001
4 0 -1 0 0 0 12 0.0000000 4 135 540 3900 3000 aclocal\001
4 0 -1 0 0 0 12 0.0000000 4 180 705 3000 6000 configure\001
4 0 -1 0 0 0 12 0.0000000 4 135 660 3000 5100 autoconf\001

BIN
gnu/dist/toolchain/etc/configdev.jin vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

17
gnu/dist/toolchain/etc/configdev.tin vendored Normal file
View File

@ -0,0 +1,17 @@
acconfig.h configure.in Makefile.am
| | |
| --------------+---------------------- |
| | | | |
v v | acinclude.m4 | |
*autoheader* | | v v
| | v --->*automake*
v |--->*aclocal* | |
config.in | | | v
| v | Makefile.in
| aclocal.m4---
| |
v v
*autoconf*
|
v
configure

View File

@ -546,11 +546,12 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
echo "configure:554: checking for a BSD compatible install" >&5
echo "configure:555: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -562,12 +563,13 @@ else
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
if test -f $ac_dir/$ac_prog; then
if test $ac_prog = install &&
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
# OSF/1 installbsd also uses dspmsg, but is usable.
:
else
ac_cv_path_install="$ac_dir/$ac_prog -c"
@ -711,6 +713,7 @@ do
done
ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
@ -743,7 +746,6 @@ s%@includedir@%$includedir%g
s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
s%@INSTALL@%$INSTALL%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
@ -822,6 +824,10 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
case "$ac_given_INSTALL" in
[/$]*) INSTALL="$ac_given_INSTALL" ;;
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
esac
echo creating "$ac_file"
rm -f "$ac_file"
@ -837,6 +843,7 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
s%@configure_input@%$configure_input%g
s%@srcdir@%$srcdir%g
s%@top_srcdir@%$top_srcdir%g
s%@INSTALL@%$INSTALL%g
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
fi; done
rm -f conftest.s*

View File

@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.12.1)
AC_PREREQ(2.5)
AC_INIT(Makefile.in)
EGCS_PROG_INSTALL
AC_PROG_INSTALL
AC_OUTPUT(Makefile)

95
gnu/dist/toolchain/etc/configure.info vendored Normal file
View File

@ -0,0 +1,95 @@
This is configure.info, produced by makeinfo version 4.0 from
./configure.texi.
INFO-DIR-SECTION GNU admin
START-INFO-DIR-ENTRY
* configure: (configure). The GNU configure and build system
END-INFO-DIR-ENTRY
This file documents the GNU configure and build system.
Copyright (C) 1998 Cygnus Solutions.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Foundation.

Indirect:
configure.info-1: 971
configure.info-2: 48782
configure.info-3: 98073

Tag Table:
(Indirect)
Node: Top971
Node: Introduction1502
Node: Goals2583
Node: Tools3302
Node: History4291
Node: Building7284
Node: Getting Started10374
Node: Write configure.in10886
Node: Write Makefile.am18132
Node: Write acconfig.h21290
Node: Generate files22827
Node: Getting Started Example24788
Node: Getting Started Example 125538
Node: Getting Started Example 227475
Node: Getting Started Example 330591
Node: Generate Files in Example32961
Node: Files34042
Node: Developer Files34653
Node: Developer Files Picture35028
Node: Written Developer Files36320
Node: Generated Developer Files38863
Node: Build Files41998
Node: Build Files Picture42654
Node: Build Files Description43409
Node: Support Files45406
Node: Configuration Names48283
Node: Configuration Name Definition48782
Node: Using Configuration Names51100
Node: Cross Compilation Tools53067
Node: Cross Compilation Concepts53757
Node: Host and Target54719
Node: Using the Host Type56215
Node: Specifying the Target57559
Node: Using the Target Type58343
Node: Cross Tools in the Cygnus Tree61769
Node: Host and Target Libraries62821
Node: Target Library Configure Scripts66561
Node: Make Targets in Cygnus Tree69644
Node: Target libiberty70983
Node: Canadian Cross72361
Node: Canadian Cross Example73201
Node: Canadian Cross Concepts74315
Node: Build Cross Host Tools75822
Node: Build and Host Options76769
Node: CCross not in Cygnus Tree78550
Node: CCross in Cygnus Tree79523
Node: Standard Cygnus CCross79939
Node: Cross Cygnus CCross81294
Node: Supporting Canadian Cross84085
Node: CCross in Configure84695
Node: CCross in Make87852
Node: Cygnus Configure89446
Node: Cygnus Configure Basics90280
Node: Cygnus Configure in C++ Libraries94954
Node: Multilibs95956
Node: Multilibs in gcc97000
Node: Multilibs in Target Libraries98073
Node: FAQ102257
Node: Index106353

End Tag Table

1313
gnu/dist/toolchain/etc/configure.info-1 vendored Normal file

File diff suppressed because it is too large Load Diff

1137
gnu/dist/toolchain/etc/configure.info-2 vendored Normal file

File diff suppressed because it is too large Load Diff

285
gnu/dist/toolchain/etc/configure.info-3 vendored Normal file
View File

@ -0,0 +1,285 @@
This is configure.info, produced by makeinfo version 4.0 from
./configure.texi.
INFO-DIR-SECTION GNU admin
START-INFO-DIR-ENTRY
* configure: (configure). The GNU configure and build system
END-INFO-DIR-ENTRY
This file documents the GNU configure and build system.
Copyright (C) 1998 Cygnus Solutions.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Foundation.

File: configure.info, Node: Multilibs in Target Libraries, Prev: Multilibs in gcc, Up: Multilibs
Multilibs in Target Libraries
=============================
The target libraries in the Cygnus tree are automatically built with
multilibs. That means that each library is built multiple times.
This default is set in the top level `configure.in' file, by adding
`--enable-multilib' to the list of arguments passed to configure when
it is run for the target libraries (*note Host and Target Libraries::).
Each target library uses the shell script `config-ml.in', written by
Doug Evans, to prepare to build target libraries. This shell script is
invoked after the `Makefile' has been created by the `configure'
script. If multilibs are not enabled, it does nothing, otherwise it
modifies the `Makefile' to support multilibs.
The `config-ml.in' script makes one copy of the `Makefile' for each
multilib in the appropriate subdirectory. When configuring in the
source directory (which is not recommended), it will build a symlink
tree of the sources in each subdirectory.
The `config-ml.in' script sets several variables in the various
`Makefile's. The `Makefile.in' must have definitions for these
variables already; `config-ml.in' simply changes the existing values.
The `Makefile' should use default values for these variables which will
do the right thing in the subdirectories.
`MULTISRCTOP'
`config-ml.in' will set this to a sequence of `../' strings, where
the number of strings is the number of multilib levels in the
source tree. The default value should be the empty string.
`MULTIBUILDTOP'
`config-ml.in' will set this to a sequence of `../' strings, where
the number of strings is number of multilib levels in the object
directory. The default value should be the empty string. This
will differ from `MULTISRCTOP' when configuring in the source tree
(which is not recommended).
`MULTIDIRS'
In the top level `Makefile' only, `config-ml.in' will set this to
the list of multilib subdirectories. The default value should be
the empty string.
`MULTISUBDIR'
`config-ml.in' will set this to the installed subdirectory name to
use for this subdirectory, with a leading `/'. The default value
shold be the empty string.
`MULTIDO'
`MULTICLEAN'
In the top level `Makefile' only, `config-ml.in' will set these
variables to commands to use when doing a recursive make. These
variables should both default to the string `true', so that by
default nothing happens.
All references to the parent of the source directory should use the
variable `MULTISRCTOP'. Instead of writing `$(srcdir)/..', you must
write `$(srcdir)/$(MULTISRCTOP)..'.
Similarly, references to the parent of the object directory should
use the variable `MULTIBUILDTOP'.
In the installation target, the libraries should be installed in the
subdirectory `MULTISUBDIR'. Instead of installing
`$(libdir)/libfoo.a', install `$(libdir)$(MULTISUBDIR)/libfoo.a'.
The `config-ml.in' script also modifies the top level `Makefile' to
add `multi-do' and `multi-clean' targets which are used when building
multilibs.
The default target of the `Makefile' should include the following
command:
@$(MULTIDO) $(FLAGS_TO_PASS) DO=all multi-do
This assumes that `$(FLAGS_TO_PASS)' is defined as a set of variables
to pass to a recursive invocation of `make'. This will build all the
multilibs. Note that the default value of `MULTIDO' is `true', so by
default this command will do nothing. It will only do something in the
top level `Makefile' if multilibs were enabled.
The `install' target of the `Makefile' should include the following
command:
@$(MULTIDO) $(FLAGS_TO_PASS) DO=install multi-do
In general, any operation, other than clean, which should be
performed on all the multilibs should use a `$(MULTIDO)' line, setting
the variable `DO' to the target of each recursive call to `make'.
The `clean' targets (`clean', `mostlyclean', etc.) should use
`$(MULTICLEAN)'. For example, the `clean' target should do this:
@$(MULTICLEAN) DO=clean multi-clean

File: configure.info, Node: FAQ, Next: Index, Prev: Multilibs, Up: Top
Frequently Asked Questions
**************************
Which do I run first, `autoconf' or `automake'?
Except when you first add autoconf or automake support to a
package, you shouldn't run either by hand. Instead, configure
with the `--enable-maintainer-mode' option, and let `make' take
care of it.
`autoconf' says something about undefined macros.
This means that you have macros in your `configure.in' which are
not defined by `autoconf'. You may be using an old version of
`autoconf'; try building and installing a newer one. Make sure the
newly installled `autoconf' is first on your `PATH'. Also, see
the next question.
My `configure' script has stuff like `CY_GNU_GETTEXT' in it.
This means that you have macros in your `configure.in' which should
be defined in your `aclocal.m4' file, but aren't. This usually
means that `aclocal' was not able to appropriate definitions of the
macros. Make sure that you have installed all the packages you
need. In particular, make sure that you have installed libtool
(this is where `AM_PROG_LIBTOOL' is defined) and gettext (this is
where `CY_GNU_GETTEXT' is defined, at least in the Cygnus version
of gettext).
My `Makefile' has `@' characters in it.
This may mean that you tried to use an autoconf substitution in
your `Makefile.in' without adding the appropriate `AC_SUBST' call
to your `configure' script. Or it may just mean that you need to
rebuild `Makefile' in your build directory. To rebuild `Makefile'
from `Makefile.in', run the shell script `config.status' with no
arguments. If you need to force `configure' to run again, first
run `config.status --recheck'. These runs are normally done
automatically by `Makefile' targets, but if your `Makefile' has
gotten messed up you'll need to help them along.
Why do I have to run both `config.status --recheck' and `config.status'?
Normally, you don't; they will be run automatically by `Makefile'
targets. If you do need to run them, use `config.status --recheck'
to run the `configure' script again with the same arguments as the
first time you ran it. Use `config.status' (with no arguments) to
regenerate all files (`Makefile', `config.h', etc.) based on the
results of the configure script. The two cases are separate
because it isn't always necessary to regenerate all the files
after running `config.status --recheck'. The `Makefile' targets
generated by automake will use the environment variables
`CONFIG_FILES' and `CONFIG_HEADERS' to only regenerate files as
they are needed.
What is the Cygnus tree?
The Cygnus tree is used for various packages including gdb, the GNU
binutils, and egcs. It is also, of course, used for Cygnus
releases. It is the build system which was developed at Cygnus,
using the Cygnus configure script. It permits building many
different packages with a single configure and make. The
configure scripts in the tree are being converted to autoconf, but
the general build structure remains intact.
Why do I have to keep rebuilding and reinstalling the tools?
I know, it's a pain. Unfortunately, there are bugs in the tools
themselves which need to be fixed, and each time that happens
everybody who uses the tools need to reinstall new versions of
them. I don't know if there is going to be a clever fix until the
tools stabilize.
Why not just have a Cygnus tree `make' target to update the tools?
The tools unfortunately need to be installed before they can be
used. That means that they must be built using an appropriate
prefix, and it seems unwise to assume that every configuration
uses an appropriate prefix. It might be possible to make them
work in place, or it might be possible to install them in some
subdirectory; so far these approaches have not been implemented.

File: configure.info, Node: Index, Prev: FAQ, Up: Top
Index
*****
* Menu:
* --build option: Build and Host Options.
* --host option: Build and Host Options.
* --target option: Specifying the Target.
* _GNU_SOURCE: Write configure.in.
* AC_CANONICAL_HOST: Using the Host Type.
* AC_CANONICAL_SYSTEM: Using the Target Type.
* AC_CONFIG_HEADER: Write configure.in.
* AC_EXEEXT: Write configure.in.
* AC_INIT: Write configure.in.
* AC_OUTPUT: Write configure.in.
* AC_PREREQ: Write configure.in.
* AC_PROG_CC: Write configure.in.
* AC_PROG_CXX: Write configure.in.
* acconfig.h: Written Developer Files.
* acconfig.h, writing: Write acconfig.h.
* acinclude.m4: Written Developer Files.
* aclocal.m4: Generated Developer Files.
* AM_CONFIG_HEADER: Write configure.in.
* AM_DISABLE_SHARED: Write configure.in.
* AM_EXEEXT: Write configure.in.
* AM_INIT_AUTOMAKE: Write configure.in.
* AM_MAINTAINER_MODE: Write configure.in.
* AM_PROG_LIBTOOL: Write configure.in.
* AM_PROG_LIBTOOL in configure: FAQ.
* build option: Build and Host Options.
* building with a cross compiler: Canadian Cross.
* canadian cross: Canadian Cross.
* canadian cross in configure: CCross in Configure.
* canadian cross in cygnus tree: CCross in Cygnus Tree.
* canadian cross in makefile: CCross in Make.
* canadian cross, configuring: Build and Host Options.
* canonical system names: Configuration Names.
* config.cache: Build Files Description.
* config.h: Build Files Description.
* config.h.in: Generated Developer Files.
* config.in: Generated Developer Files.
* config.status: Build Files Description.
* config.status --recheck: FAQ.
* configuration names: Configuration Names.
* configuration triplets: Configuration Names.
* configure: Generated Developer Files.
* configure build system: Build and Host Options.
* configure host: Build and Host Options.
* configure target: Specifying the Target.
* configure.in: Written Developer Files.
* configure.in, writing: Write configure.in.
* configuring a canadian cross: Build and Host Options.
* cross compiler: Cross Compilation Concepts.
* cross compiler, building with: Canadian Cross.
* cross tools: Cross Compilation Tools.
* CY_GNU_GETTEXT in configure: FAQ.
* cygnus configure: Cygnus Configure.
* goals: Goals.
* history: History.
* host names: Configuration Names.
* host option: Build and Host Options.
* host system: Host and Target.
* host triplets: Configuration Names.
* HOST_CC: CCross in Make.
* libg++ configure: Cygnus Configure in C++ Libraries.
* libio configure: Cygnus Configure in C++ Libraries.
* libstdc++ configure: Cygnus Configure in C++ Libraries.
* Makefile: Build Files Description.
* Makefile, garbage characters: FAQ.
* Makefile.am: Written Developer Files.
* Makefile.am, writing: Write Makefile.am.
* Makefile.in: Generated Developer Files.
* multilibs: Multilibs.
* stamp-h: Build Files Description.
* stamp-h.in: Generated Developer Files.
* system names: Configuration Names.
* system types: Configuration Names.
* target option: Specifying the Target.
* target system: Host and Target.
* triplets: Configuration Names.
* undefined macros: FAQ.

2644
gnu/dist/toolchain/etc/configure.texi vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -79,7 +79,7 @@ foo.1 : foo.man sedscript
@noindent
will fail when the build directory is not the source directory, because
@file{foo.man} and @file{sedscript} are in the source directory.
@file{foo.man} and @file{sedscript} are in the the source directory.
When using GNU @code{make}, relying on @samp{VPATH} to find the source
file will work in the case where there is a single dependency file,
@ -745,7 +745,7 @@ The easiest way to do this is to create a subdirectory appropriately
named, use @code{ln} or @code{cp} to install the proper files in it, and
then @code{tar} that subdirectory.
Compress the tar file with @code{gzip}. For example, the actual
Compress the tar file file with @code{gzip}. For example, the actual
distribution file for GCC version 1.40 is called @file{gcc-1.40.tar.gz}.
The @code{dist} target should explicitly depend on all non-source files

3833
gnu/dist/toolchain/etc/standards.info vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2593,7 +2593,7 @@ also contain this information. If the manual is changing more
frequently than or independent of the program, also state a version
number for the manual in both of these places.
Each program documented in the manual should have a node named
Each program documented in the manual should should have a node named
@samp{@var{program} Invocation} or @samp{Invoking @var{program}}. This
node (together with its subnodes, if any) should describe the program's
command line arguments and how to run it (the sort of information people

View File

@ -1,3 +1,40 @@
2000-11-02 Theo Honohan <th@futuretv.com>
* config/tc-arm.c (do_msr): Improve error message.
2000-11-01 Philip Blundell <philb@gnu.org>
From 2000-08-01 Nick Clifton <nickc@cygnus.com>
* config/tc-arm.c (do_mrs): Fix skip of 'cpsr_all' flag.
2000-10-16 Philip Blundell <pb@futuretv.com>
* configure.in: Set version number to 2.10.1.
* configure: Regenerate.
2000-10-14 Philip Blundell <philb@gnu.org>
From 2000-06-17 Mark Elbrecht <snowball3@bigfoot.com>
* config/obj-coff.c (obj_coff_weak): Typo fix: Change BFD_ASSEMLER
to BFD_ASSEMBLER.
2000-09-08 Philip Blundell <philb@gnu.org>
* config/tc-arm.c (md_apply_fix3): Correct handling of ADRL when
offset is negative.
2000-08-30 Matthew Jacob <mjacob@feral.com>
* config/tc-alpha.c (md_undefined_symbol): Properly understand that
$at is the integer register $r28, vs. both $r28 and the floating
point register $f28.
2000-04-14 Matthew Green <mrg@cygnus.com>
* configure.in: Add NetBSD/sparc ELF and NetBSD/sparc64 support.
* configure: Regenerate.
2000-06-09 Nick Clifton <nickc@cygnus.com>
* config/tc-arm.c (cons_fix_new_arm): Assign correct reloc value

View File

@ -213,7 +213,7 @@ obj_coff_weak (ignore)
*input_line_pointer = c;
SKIP_WHITESPACE ();
#ifdef BFD_ASSEMLER
#ifdef BFD_ASSEMBLER
S_SET_WEAK (symbolP);
#endif

View File

@ -25,319 +25,319 @@ versions.

Indirect:
as.info-1: 866
as.info-2: 50538
as.info-3: 100405
as.info-4: 149817
as.info-5: 198317
as.info-6: 244878
as.info-7: 294771
as.info-8: 315443
as.info-2: 50540
as.info-3: 100407
as.info-4: 149819
as.info-5: 198319
as.info-6: 244880
as.info-7: 294773
as.info-8: 315445

Tag Table:
(Indirect)
Node: Top866
Node: Overview1538
Node: Manual13605
Node: GNU Assembler14544
Node: Object Formats15710
Node: Command Line16157
Node: Input Files17239
Node: Object19218
Node: Errors20165
Node: Invoking21355
Node: a23201
Node: D24535
Node: f24755
Node: I25258
Node: K25797
Node: L26096
Node: M26922
Node: MD31312
Node: o31731
Node: R32179
Node: statistics33195
Node: traditional-format33595
Node: v34061
Node: W34329
Node: Z35229
Node: Syntax35744
Node: Preprocessing36334
Node: Whitespace37894
Node: Comments38284
Node: Symbol Intro40304
Node: Statements40987
Node: Constants42901
Node: Characters43527
Node: Strings44020
Node: Chars46173
Node: Numbers46914
Node: Integers47445
Node: Bignums48088
Node: Flonums48431
Node: Sections50164
Node: Secs Background50538
Node: Ld Sections55564
Node: As Sections57958
Node: Sub-Sections58863
Node: bss61862
Node: Symbols62807
Node: Labels63454
Node: Setting Symbols64180
Node: Symbol Names64545
Node: Dot67507
Node: Symbol Attributes67949
Node: Symbol Value68681
Node: Symbol Type69717
Node: a.out Symbols70096
Node: Symbol Desc70346
Node: Symbol Other70628
Node: COFF Symbols70784
Node: SOM Symbols71413
Node: Expressions71846
Node: Empty Exprs72594
Node: Integer Exprs72936
Node: Arguments73326
Node: Operators74423
Node: Prefix Ops74749
Node: Infix Ops75068
Node: Pseudo Ops76560
Node: Abort80777
Node: ABORT81178
Node: Align81440
Node: Ascii83629
Node: Asciz83930
Node: Balign84170
Node: Byte86028
Node: Comm86261
Node: Data87620
Node: Def87930
Node: Desc88298
Node: Dim88791
Node: Double89182
Node: Eject89513
Node: Else89681
Node: Elseif89971
Node: End90255
Node: Endef90463
Node: Endfunc90786
Node: Endif90954
Node: Equ91207
Node: Equiv91510
Node: Err91906
Node: Exitm92209
Node: Extern92369
Node: Fail92623
Node: File93061
Node: Fill93670
Node: Float94627
Node: Func94961
Node: Global95541
Node: hword96283
Node: Ident96604
Node: If96904
Node: Include99496
Node: Int100036
Node: Irp100405
Node: Irpc101199
Node: Lcomm102018
Node: Lflags102759
Node: Line102946
Node: Linkonce103969
Node: Ln105189
Node: MRI105337
Node: List105664
Node: Long106267
Node: Macro106437
Node: Nolist108821
Node: Octa109237
Node: Org109563
Node: P2align110838
Node: Print112754
Node: Psize112971
Node: Purgem113644
Node: Quad113851
Node: Rept114292
Node: Sbttl114698
Node: Scl115056
Node: Section115552
Node: Set117953
Node: Short118505
Node: Single118818
Node: Size119155
Node: Sleb128119550
Node: Skip119865
Node: Space120180
Node: Stab121065
Node: String123060
Node: Struct123479
Node: Symver124191
Node: Tag125776
Node: Text126284
Node: Title126596
Node: Type126968
Node: Val127344
Node: Uleb128127705
Node: Visibility128027
Node: Word129070
Node: Deprecated130906
Node: Machine Dependencies131131
Node: ARC-Dependent133009
Node: ARC-Opts133323
Node: ARC-Float134057
Node: ARC-Directives134355
Node: AMD29K-Dependent134748
Node: AMD29K Options135129
Node: AMD29K Syntax135303
Node: AMD29K-Macros135567
Node: AMD29K-Chars135818
Node: AMD29K-Regs136081
Node: AMD29K Floating Point137345
Node: AMD29K Directives137551
Node: AMD29K Opcodes138959
Node: ARM-Dependent139295
Node: ARM Options139669
Node: ARM Syntax142169
Node: ARM-Chars142389
Node: ARM-Regs142941
Node: ARM Floating Point143113
Node: ARM Directives143303
Node: ARM Opcodes145309
Node: D10V-Dependent147362
Node: D10V-Opts147704
Node: D10V-Syntax148337
Node: D10V-Size148857
Node: D10V-Subs149817
Node: D10V-Chars150839
Node: D10V-Regs152425
Node: D10V-Addressing153456
Node: D10V-Word154129
Node: D10V-Float154630
Node: D10V-Opcodes154932
Node: D30V-Dependent155316
Node: D30V-Opts155661
Node: D30V-Syntax156327
Node: D30V-Size156850
Node: D30V-Subs157808
Node: D30V-Chars158830
Node: D30V-Guarded161115
Node: D30V-Regs161783
Node: D30V-Addressing162909
Node: D30V-Float163564
Node: D30V-Opcodes163866
Node: H8/300-Dependent164250
Node: H8/300 Options164654
Node: H8/300 Syntax164835
Node: H8/300-Chars165122
Node: H8/300-Regs165406
Node: H8/300-Addressing166310
Node: H8/300 Floating Point167336
Node: H8/300 Directives167652
Node: H8/300 Opcodes168172
Node: H8/500-Dependent176525
Node: H8/500 Options176929
Node: H8/500 Syntax177110
Node: H8/500-Chars177397
Node: H8/500-Regs177688
Node: H8/500-Addressing178444
Node: H8/500 Floating Point179061
Node: H8/500 Directives179377
Node: H8/500 Opcodes179696
Node: HPPA-Dependent184809
Node: HPPA Notes185234
Node: HPPA Options185981
Node: HPPA Syntax186165
Node: HPPA Floating Point187424
Node: HPPA Directives187619
Node: HPPA Opcodes194210
Node: ESA/390-Dependent194458
Node: ESA/390 Notes194908
Node: ESA/390 Options195688
Node: ESA/390 Syntax195887
Node: ESA/390 Floating Point198048
Node: ESA/390 Directives198317
Node: ESA/390 Opcodes201594
Node: i386-Dependent201845
Node: i386-Options202653
Node: i386-Syntax202797
Node: i386-Mnemonics204910
Node: i386-Regs207052
Node: i386-Prefixes208195
Node: i386-Memory210283
Node: i386-jumps212592
Node: i386-Float213682
Node: i386-SIMD215500
Node: i386-16bit216598
Node: i386-Bugs218561
Node: i386-Notes219301
Node: i960-Dependent220141
Node: Options-i960220533
Node: Floating Point-i960224414
Node: Directives-i960224671
Node: Opcodes for i960226691
Node: callj-i960227297
Node: Compare-and-branch-i960227772
Node: M68K-Dependent229661
Node: M68K-Opts230115
Node: M68K-Syntax235063
Node: M68K-Moto-Syntax236891
Node: M68K-Float239469
Node: M68K-Directives239978
Node: M68K-opcodes240573
Node: M68K-Branch240785
Node: M68K-Chars243600
Node: MIPS-Dependent243998
Node: MIPS Opts244878
Node: MIPS Object248908
Node: MIPS Stabs250463
Node: MIPS ISA251174
Node: MIPS autoextend252282
Node: MIPS insn252993
Node: MIPS option stack253479
Node: PJ-Dependent254192
Node: PJ Options254405
Node: SH-Dependent254672
Node: SH Options255052
Node: SH Syntax255217
Node: SH-Chars255476
Node: SH-Regs255755
Node: SH-Addressing256354
Node: SH Floating Point257248
Node: SH Directives257544
Node: SH Opcodes257900
Node: Sparc-Dependent262147
Node: Sparc-Opts262519
Node: Sparc-Aligned-Data264765
Node: Sparc-Float265609
Node: Sparc-Directives265799
Node: Z8000-Dependent267748
Node: Z8000 Options268707
Node: Z8000 Syntax268882
Node: Z8000-Chars269158
Node: Z8000-Regs269376
Node: Z8000-Addressing270166
Node: Z8000 Directives271109
Node: Z8000 Opcodes272707
Node: Vax-Dependent282643
Node: VAX-Opts283150
Node: VAX-float286874
Node: VAX-directives287495
Node: VAX-opcodes288344
Node: VAX-branch288722
Node: VAX-operands291218
Node: VAX-no291970
Node: V850-Dependent292196
Node: V850 Options292582
Node: V850 Syntax294395
Node: V850-Chars294621
Node: V850-Regs294771
Node: V850 Floating Point296308
Node: V850 Directives296503
Node: V850 Opcodes297403
Node: Reporting Bugs302688
Node: Bug Criteria303411
Node: Bug Reporting304171
Node: Acknowledgements310740
Ref: Acknowledgements-Footnote-1315417
Node: Index315443
Node: Overview1540
Node: Manual13607
Node: GNU Assembler14546
Node: Object Formats15712
Node: Command Line16159
Node: Input Files17241
Node: Object19220
Node: Errors20167
Node: Invoking21357
Node: a23203
Node: D24537
Node: f24757
Node: I25260
Node: K25799
Node: L26098
Node: M26924
Node: MD31314
Node: o31733
Node: R32181
Node: statistics33197
Node: traditional-format33597
Node: v34063
Node: W34331
Node: Z35231
Node: Syntax35746
Node: Preprocessing36336
Node: Whitespace37896
Node: Comments38286
Node: Symbol Intro40306
Node: Statements40989
Node: Constants42903
Node: Characters43529
Node: Strings44022
Node: Chars46175
Node: Numbers46916
Node: Integers47447
Node: Bignums48090
Node: Flonums48433
Node: Sections50166
Node: Secs Background50540
Node: Ld Sections55566
Node: As Sections57960
Node: Sub-Sections58865
Node: bss61864
Node: Symbols62809
Node: Labels63456
Node: Setting Symbols64182
Node: Symbol Names64547
Node: Dot67509
Node: Symbol Attributes67951
Node: Symbol Value68683
Node: Symbol Type69719
Node: a.out Symbols70098
Node: Symbol Desc70348
Node: Symbol Other70630
Node: COFF Symbols70786
Node: SOM Symbols71415
Node: Expressions71848
Node: Empty Exprs72596
Node: Integer Exprs72938
Node: Arguments73328
Node: Operators74425
Node: Prefix Ops74751
Node: Infix Ops75070
Node: Pseudo Ops76562
Node: Abort80779
Node: ABORT81180
Node: Align81442
Node: Ascii83631
Node: Asciz83932
Node: Balign84172
Node: Byte86030
Node: Comm86263
Node: Data87622
Node: Def87932
Node: Desc88300
Node: Dim88793
Node: Double89184
Node: Eject89515
Node: Else89683
Node: Elseif89973
Node: End90257
Node: Endef90465
Node: Endfunc90788
Node: Endif90956
Node: Equ91209
Node: Equiv91512
Node: Err91908
Node: Exitm92211
Node: Extern92371
Node: Fail92625
Node: File93063
Node: Fill93672
Node: Float94629
Node: Func94963
Node: Global95543
Node: hword96285
Node: Ident96606
Node: If96906
Node: Include99498
Node: Int100038
Node: Irp100407
Node: Irpc101201
Node: Lcomm102020
Node: Lflags102761
Node: Line102948
Node: Linkonce103971
Node: Ln105191
Node: MRI105339
Node: List105666
Node: Long106269
Node: Macro106439
Node: Nolist108823
Node: Octa109239
Node: Org109565
Node: P2align110840
Node: Print112756
Node: Psize112973
Node: Purgem113646
Node: Quad113853
Node: Rept114294
Node: Sbttl114700
Node: Scl115058
Node: Section115554
Node: Set117955
Node: Short118507
Node: Single118820
Node: Size119157
Node: Sleb128119552
Node: Skip119867
Node: Space120182
Node: Stab121067
Node: String123062
Node: Struct123481
Node: Symver124193
Node: Tag125778
Node: Text126286
Node: Title126598
Node: Type126970
Node: Val127346
Node: Uleb128127707
Node: Visibility128029
Node: Word129072
Node: Deprecated130908
Node: Machine Dependencies131133
Node: ARC-Dependent133011
Node: ARC-Opts133325
Node: ARC-Float134059
Node: ARC-Directives134357
Node: AMD29K-Dependent134750
Node: AMD29K Options135131
Node: AMD29K Syntax135305
Node: AMD29K-Macros135569
Node: AMD29K-Chars135820
Node: AMD29K-Regs136083
Node: AMD29K Floating Point137347
Node: AMD29K Directives137553
Node: AMD29K Opcodes138961
Node: ARM-Dependent139297
Node: ARM Options139671
Node: ARM Syntax142171
Node: ARM-Chars142391
Node: ARM-Regs142943
Node: ARM Floating Point143115
Node: ARM Directives143305
Node: ARM Opcodes145311
Node: D10V-Dependent147364
Node: D10V-Opts147706
Node: D10V-Syntax148339
Node: D10V-Size148859
Node: D10V-Subs149819
Node: D10V-Chars150841
Node: D10V-Regs152427
Node: D10V-Addressing153458
Node: D10V-Word154131
Node: D10V-Float154632
Node: D10V-Opcodes154934
Node: D30V-Dependent155318
Node: D30V-Opts155663
Node: D30V-Syntax156329
Node: D30V-Size156852
Node: D30V-Subs157810
Node: D30V-Chars158832
Node: D30V-Guarded161117
Node: D30V-Regs161785
Node: D30V-Addressing162911
Node: D30V-Float163566
Node: D30V-Opcodes163868
Node: H8/300-Dependent164252
Node: H8/300 Options164656
Node: H8/300 Syntax164837
Node: H8/300-Chars165124
Node: H8/300-Regs165408
Node: H8/300-Addressing166312
Node: H8/300 Floating Point167338
Node: H8/300 Directives167654
Node: H8/300 Opcodes168174
Node: H8/500-Dependent176527
Node: H8/500 Options176931
Node: H8/500 Syntax177112
Node: H8/500-Chars177399
Node: H8/500-Regs177690
Node: H8/500-Addressing178446
Node: H8/500 Floating Point179063
Node: H8/500 Directives179379
Node: H8/500 Opcodes179698
Node: HPPA-Dependent184811
Node: HPPA Notes185236
Node: HPPA Options185983
Node: HPPA Syntax186167
Node: HPPA Floating Point187426
Node: HPPA Directives187621
Node: HPPA Opcodes194212
Node: ESA/390-Dependent194460
Node: ESA/390 Notes194910
Node: ESA/390 Options195690
Node: ESA/390 Syntax195889
Node: ESA/390 Floating Point198050
Node: ESA/390 Directives198319
Node: ESA/390 Opcodes201596
Node: i386-Dependent201847
Node: i386-Options202655
Node: i386-Syntax202799
Node: i386-Mnemonics204912
Node: i386-Regs207054
Node: i386-Prefixes208197
Node: i386-Memory210285
Node: i386-jumps212594
Node: i386-Float213684
Node: i386-SIMD215502
Node: i386-16bit216600
Node: i386-Bugs218563
Node: i386-Notes219303
Node: i960-Dependent220143
Node: Options-i960220535
Node: Floating Point-i960224416
Node: Directives-i960224673
Node: Opcodes for i960226693
Node: callj-i960227299
Node: Compare-and-branch-i960227774
Node: M68K-Dependent229663
Node: M68K-Opts230117
Node: M68K-Syntax235065
Node: M68K-Moto-Syntax236893
Node: M68K-Float239471
Node: M68K-Directives239980
Node: M68K-opcodes240575
Node: M68K-Branch240787
Node: M68K-Chars243602
Node: MIPS-Dependent244000
Node: MIPS Opts244880
Node: MIPS Object248910
Node: MIPS Stabs250465
Node: MIPS ISA251176
Node: MIPS autoextend252284
Node: MIPS insn252995
Node: MIPS option stack253481
Node: PJ-Dependent254194
Node: PJ Options254407
Node: SH-Dependent254674
Node: SH Options255054
Node: SH Syntax255219
Node: SH-Chars255478
Node: SH-Regs255757
Node: SH-Addressing256356
Node: SH Floating Point257250
Node: SH Directives257546
Node: SH Opcodes257902
Node: Sparc-Dependent262149
Node: Sparc-Opts262521
Node: Sparc-Aligned-Data264767
Node: Sparc-Float265611
Node: Sparc-Directives265801
Node: Z8000-Dependent267750
Node: Z8000 Options268709
Node: Z8000 Syntax268884
Node: Z8000-Chars269160
Node: Z8000-Regs269378
Node: Z8000-Addressing270168
Node: Z8000 Directives271111
Node: Z8000 Opcodes272709
Node: Vax-Dependent282645
Node: VAX-Opts283152
Node: VAX-float286876
Node: VAX-directives287497
Node: VAX-opcodes288346
Node: VAX-branch288724
Node: VAX-operands291220
Node: VAX-no291972
Node: V850-Dependent292198
Node: V850 Options292584
Node: V850 Syntax294397
Node: V850-Chars294623
Node: V850-Regs294773
Node: V850 Floating Point296310
Node: V850 Directives296505
Node: V850 Opcodes297405
Node: Reporting Bugs302690
Node: Bug Criteria303413
Node: Bug Reporting304173
Node: Acknowledgements310742
Ref: Acknowledgements-Footnote-1315419
Node: Index315445

End Tag Table

View File

@ -28,7 +28,7 @@ File: as.info, Node: Top, Next: Overview, Up: (dir)
Using as
********
This file is a user guide to the GNU assembler `as' version 2.10.
This file is a user guide to the GNU assembler `as' version 2.10.1.
* Menu:

View File

@ -1 +1 @@
@set VERSION 2.10
@set VERSION 2.10.1

View File

@ -1,3 +1,8 @@
2000-10-16 Philip Blundell <pb@futuretv.com>
* configure.in: Set version number to 2.10.1.
* configure: Regenerate.
2000-06-07 Philippe De Muyter <phdm@macqel.be>
* source.c: Remove direct inclusion of sys/stat.h.

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ AC_INIT(gprof.c)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE(gprof, 2.10)
AM_INIT_AUTOMAKE(gprof, 2.10.1)
AM_PROG_LIBTOOL

View File

@ -1,3 +1,7 @@
2000-10-23 Philip Blundell <pb@futuretv.com>
* demangle.h, dyn-string.h: Update from trunk version.
2000-05-26 Eli Zaretskii <eliz@is.elta.co.il>
* filenames.h: New file.

View File

@ -24,21 +24,23 @@
/* Options passed to cplus_demangle (in 2nd parameter). */
#define DMGL_NO_OPTS 0 /* For readability... */
#define DMGL_PARAMS (1 << 0) /* Include function args */
#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
#define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */
#define DMGL_NO_OPTS 0 /* For readability... */
#define DMGL_PARAMS (1 << 0) /* Include function args */
#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
#define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */
#define DMGL_AUTO (1 << 8)
#define DMGL_GNU (1 << 9)
#define DMGL_LUCID (1 << 10)
#define DMGL_ARM (1 << 11)
#define DMGL_HP (1 << 12) /* For the HP aCC compiler; same as ARM
except for template arguments, etc. */
#define DMGL_EDG (1 << 13)
#define DMGL_AUTO (1 << 8)
#define DMGL_GNU (1 << 9)
#define DMGL_LUCID (1 << 10)
#define DMGL_ARM (1 << 11)
#define DMGL_HP (1 << 12) /* For the HP aCC compiler;
same as ARM except for
template arguments, etc. */
#define DMGL_EDG (1 << 13)
#define DMGL_GNU_NEW_ABI (1 << 14)
/* If none of these are set, use 'current_demangling_style' as the default. */
#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG)
#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_NEW_ABI)
/* Enumeration of possible demangling styles.
@ -56,17 +58,19 @@ extern enum demangling_styles
lucid_demangling = DMGL_LUCID,
arm_demangling = DMGL_ARM,
hp_demangling = DMGL_HP,
edg_demangling = DMGL_EDG
edg_demangling = DMGL_EDG,
gnu_new_abi_demangling = DMGL_GNU_NEW_ABI
} current_demangling_style;
/* Define string names for the various demangling styles. */
#define AUTO_DEMANGLING_STYLE_STRING "auto"
#define GNU_DEMANGLING_STYLE_STRING "gnu"
#define LUCID_DEMANGLING_STYLE_STRING "lucid"
#define ARM_DEMANGLING_STYLE_STRING "arm"
#define HP_DEMANGLING_STYLE_STRING "hp"
#define EDG_DEMANGLING_STYLE_STRING "edg"
#define AUTO_DEMANGLING_STYLE_STRING "auto"
#define GNU_DEMANGLING_STYLE_STRING "gnu"
#define LUCID_DEMANGLING_STYLE_STRING "lucid"
#define ARM_DEMANGLING_STYLE_STRING "arm"
#define HP_DEMANGLING_STYLE_STRING "hp"
#define EDG_DEMANGLING_STYLE_STRING "edg"
#define GNU_NEW_ABI_DEMANGLING_STYLE_STRING "gnu-new-abi"
/* Some macros to test what demangling style is active. */
@ -77,6 +81,17 @@ extern enum demangling_styles
#define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM)
#define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP)
#define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG)
#define GNU_NEW_ABI_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU_NEW_ABI)
/* Provide information about the available demangle styles. This code is
pulled from gdb into libiberty because it is useful to binutils also. */
extern struct demangler_engine
{
const char *demangling_style_name;
enum demangling_styles demangling_style;
const char *demangling_style_doc;
} libiberty_demanglers[];
extern char *
cplus_demangle PARAMS ((const char *mangled, int options));
@ -92,4 +107,14 @@ cplus_mangle_opname PARAMS ((const char *opname, int options));
extern void
set_cplus_marker_for_demangling PARAMS ((int ch));
extern enum demangling_styles
cplus_demangle_set_style PARAMS ((enum demangling_styles style));
extern enum demangling_styles
cplus_demangle_name_to_style PARAMS ((const char *name));
/* New-ABI demangling entry point, defined in cp-demangle.c. */
extern char*
cplus_demangle_new_abi PARAMS ((const char* mangled));
#endif /* DEMANGLE_H */

92
gnu/dist/toolchain/include/dyn-string.h vendored Normal file
View File

@ -0,0 +1,92 @@
/* An abstract string datatype.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
Contributed by Mark Mitchell (mark@markmitchell.com).
This file is part of GNU CC.
GNU CC 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 2, or (at your option)
any later version.
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
typedef struct dyn_string
{
int allocated; /* The amount of space allocated for the string. */
int length; /* The actual length of the string. */
char *s; /* The string itself, NUL-terminated. */
}* dyn_string_t;
/* The length STR, in bytes, not including the terminating NUL. */
#define dyn_string_length(STR) \
((STR)->length)
/* The NTBS in which the contents of STR are stored. */
#define dyn_string_buf(STR) \
((STR)->s)
/* Compare DS1 to DS2 with strcmp. */
#define dyn_string_compare(DS1, DS2) \
(strcmp ((DS1)->s, (DS2)->s))
/* dyn_string functions are used in the demangling implementation
included in the G++ runtime library. To prevent collisions with
names in user programs, the functions that are used in the
demangler are given implementation-reserved names. */
#ifdef IN_LIBGCC2
#define dyn_string_init __cxa_dyn_string_init
#define dyn_string_new __cxa_dyn_string_new
#define dyn_string_delete __cxa_dyn_string_delete
#define dyn_string_release __cxa_dyn_string_release
#define dyn_string_resize __cxa_dyn_string_resize
#define dyn_string_clear __cxa_dyn_string_clear
#define dyn_string_copy __cxa_dyn_string_copy
#define dyn_string_copy_cstr __cxa_dyn_string_copy_cstr
#define dyn_string_prepend __cxa_dyn_string_prepend
#define dyn_string_prepend_cstr __cxa_dyn_string_prepend_cstr
#define dyn_string_insert __cxa_dyn_string_insert
#define dyn_string_insert_cstr __cxa_dyn_string_insert_cstr
#define dyn_string_insert_char __cxa_dyn_string_insert_char
#define dyn_string_append __cxa_dyn_string_append
#define dyn_string_append_cstr __cxa_dyn_string_append_cstr
#define dyn_string_append_char __cxa_dyn_string_append_char
#define dyn_string_substring __cxa_dyn_string_substring
#define dyn_string_eq __cxa_dyn_string_eq
#endif /* IN_LIBGCC2 */
extern int dyn_string_init PARAMS ((struct dyn_string *, int));
extern dyn_string_t dyn_string_new PARAMS ((int));
extern void dyn_string_delete PARAMS ((dyn_string_t));
extern char *dyn_string_release PARAMS ((dyn_string_t));
extern dyn_string_t dyn_string_resize PARAMS ((dyn_string_t, int));
extern void dyn_string_clear PARAMS ((dyn_string_t));
extern int dyn_string_copy PARAMS ((dyn_string_t, dyn_string_t));
extern int dyn_string_copy_cstr PARAMS ((dyn_string_t, const char *));
extern int dyn_string_prepend PARAMS ((dyn_string_t, dyn_string_t));
extern int dyn_string_prepend_cstr PARAMS ((dyn_string_t, const char *));
extern int dyn_string_insert PARAMS ((dyn_string_t, int,
dyn_string_t));
extern int dyn_string_insert_cstr PARAMS ((dyn_string_t, int,
const char *));
extern int dyn_string_insert_char PARAMS ((dyn_string_t, int, int));
extern int dyn_string_append PARAMS ((dyn_string_t, dyn_string_t));
extern int dyn_string_append_cstr PARAMS ((dyn_string_t, const char *));
extern int dyn_string_append_char PARAMS ((dyn_string_t, int));
extern int dyn_string_substring PARAMS ((dyn_string_t,
dyn_string_t, int, int));
extern int dyn_string_eq PARAMS ((dyn_string_t, dyn_string_t));

View File

@ -1,3 +1,32 @@
2000-10-14 Philip Blundell <philb@gnu.org>
From 2000-07-19 H.J. Lu <hjl@gnu.org>
* common.h (DF_1_NODEFLIB): Renamed from DF_1_NODEPLIB.
From 2000-07-19 H.J. Lu <hjl@gnu.org>
* common.h (DT_CHECKSUM): Set to 0x6ffffdf8.
(DTF_1_CONFEXP): It is 0x00000002 as suspected.
From 2000-07-19 H.J. Lu <hjl@gnu.org>
* common.h (DT_FEATURE): Renamed from DT_FEATURE_1.
(DT_CONFIG): New. From Solaris 8.
(DT_DEPAUDIT): Likewise.
(DT_AUDIT): Likewise.
(DT_PLTPAD): Likewise.
(DT_MOVETAB): Likewise.
(DF_1_NODEPLIB): Likewise.
(DF_1_NODUMP): Likewise.
(DF_1_CONLFAT): Likewise.
(DT_CHECKSUM): Likewise. FIXME. Check the value on Solaris 8.
(DTF_1_CONFEXP): Likewise.
From 2000-07-18 H.J. Lu <hjl@gnu.org>
* common.h (DT_FLAGS_1): Renamed from DT_1_FLAGS.
2000-05-02 H.J. Lu <hjl@gnu.org>
* common.h (ELFOSABI_NONE): Renamed from ELFOSABI_SYSV.

View File

@ -444,16 +444,22 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
OS specific values. This is a deliberate special case and we
maintain it for backwards compatability. */
#define DT_VALRNGLO 0x6ffffd00
#define DT_CHECKSUM 0x6ffffdf8
#define DT_PLTPADSZ 0x6ffffdf9
#define DT_MOVEENT 0x6ffffdfa
#define DT_MOVESZ 0x6ffffdfb
#define DT_FEATURE_1 0x6ffffdfc
#define DT_FEATURE 0x6ffffdfc
#define DT_POSFLAG_1 0x6ffffdfd
#define DT_SYMINSZ 0x6ffffdfe
#define DT_SYMINENT 0x6ffffdff
#define DT_VALRNGHI 0x6ffffdff
#define DT_ADDRRNGLO 0x6ffffe00
#define DT_CONFIG 0x6ffffefa
#define DT_DEPAUDIT 0x6ffffefb
#define DT_AUDIT 0x6ffffefc
#define DT_PLTPAD 0x6ffffefd
#define DT_MOVETAB 0x6ffffefe
#define DT_SYMINFO 0x6ffffeff
#define DT_ADDRRNGHI 0x6ffffeff
@ -478,14 +484,22 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define DT_USED 0x7ffffffe
#define DT_FILTER 0x7fffffff
/* Values used in DT_FEATURE_1 .dynamic entry. */
/* Values used in DT_FEATURE .dynamic entry. */
#define DTF_1_PARINIT 0x00000001
/* From
http://docs.sun.com:80/ab2/coll.45.13/LLM/@Ab2PageView/21165?Ab2Lang=C&Ab2Enc=iso-8859-1
DTF_1_CONFEXP is the same as DTF_1_PARINIT. It is a typo. The value
defined here is the same as the one in <sys/link.h> on Solaris 8. */
#define DTF_1_CONFEXP 0x00000002
/* Flag values used in the DT_POSFLAG_1 .dynamic entry. */
#define DF_P1_LAZYLOAD 0x00000001
#define DF_P1_GROUPPERM 0x00000002
/* Flag value in in the DT_1_FLAGS .dynamic entry. */
/* Flag value in in the DT_FLAGS_1 .dynamic entry. */
#define DF_1_NOW 0x00000001
#define DF_1_GLOBAL 0x00000002
#define DF_1_GROUP 0x00000004
@ -497,6 +511,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define DF_1_DIRECT 0x00000100
#define DF_1_TRANS 0x00000200
#define DF_1_INTERPOSE 0x00000400
#define DF_1_NODEFLIB 0x00000800
#define DF_1_NODUMP 0x00001000
#define DF_1_CONLFAT 0x00002000
/* Flag values for the DT_FLAGS entry. */
#define DF_ORIGIN (1 << 0)

View File

@ -1,3 +1,105 @@
2000-11-06 Alan Modra <alan@linuxcare.com.au>
Merge most place_orphan changes from mainline.
2000-09-07 Alan Modra <alan@linuxcare.com.au>
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Fix
broken list handling. Create __start_SECNAME and __stop_SECNAME
when no place-holder. Add some comments. Test both SEC_CODE and
SEC_READONLY for hold_text to prevent .rodata orphan poisoning.
Handle case where no output section statement created.
2000-09-06 Alan Modra <alan@linuxcare.com.au>
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
try shuffling sections when the orphan happens to be the place
holder. Keep count of unique section names generated so we speed
the search for a new name.
2000-04-25 Alan Modra <alan@linuxcare.com.au>
* emultempl/elf32.em (gld${EMULATION_NAME}_place_section): Delete.
(output_rel_find): New function.
(hold_section, hold_use): Delete.
(hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
hold_interp): Make local to place_orphan.
(gld${EMULATION_NAME}_place_orphan): Use lang_output_section_find
rather than place_section to find possible previous use of orphan.
Similarly find the place-holder output sections. Use returned
value from lang_enter_output_section_statement rather than calling
lang_output_section_statement_lookup.
* ldlang.c (lang_enter_output_section_statement): Return output
section statement.
* ldlang.h (lang_enter_output_section_statement): Change
declaration too.
* ldlang.h (lang_output_section_statement): Export it.
* ldlang.c (lang_output_section_statement): Ditto.
2000-04-18 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Call
lang_leave_output_section_statement () after calling
lang_enter_output_section_statement ().
2000-04-18 Alan Modra <alan@linuxcare.com.au>
* emultempl/elf32.em (struct orphan_save): Add section field.
(gld${EMULATION_NAME}_place_orphan): Use above to keep sections in
better order, and place first orphan section as we did before the
2000-04-12 patch. Ignore ~SEC_ALLOC sections when choosing place.
Don't call make_bfd_section here, let wild_doit do the job for us.
Don't build a statement list when we'll only throw it away.
2000-04-14 Alan Modra <alan@linuxcare.com.au>
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Process
~SEC_ALLOC sections too. Init start address of debug sections.
2000-04-12 Alan Modra <alan@linuxcare.com.au>
* emultempl/elf32.em (struct orphan_save): New.
(hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
hold_interp): Make them struct orphan_save.
(gld${EMULATION_NAME}_place_section): Modify for new hold_*.
(gld${EMULATION_NAME}_place_orphan): Add new orphan sections to
the end of the relevant section list. Also add associated section
statements to the end of any previous orphan statements.
2000-11-05 Alan Modra <alan@linuxcare.com.au>
* ldlex.l (yy_create_string_buffer): Init yy_is_our_buffer,
yy_is_interactive, yy_at_bol, and yy_fill_buffer.
* ldlex.c: Regenerate.
* Makefile.am (DISTCLEANFILES): Add stringify.sed.
* Makefile.in: Regenerate.
2000-10-16 Philip Blundell <pb@futuretv.com>
* configure.in: Set version number to 2.10.1.
* configure: Regenerate.
2000-10-12 Peter Jeremy <peter.jeremy@alcatel.com.au>
From 2000-08-08 Peter Jeremy <peter.jeremy@alcatel.com.au>
* emultempl/elf32.em (_after_close): Refer to -rpath not --rpath
in error message.
2000-04-14 Matthew Green <mrg@cygnus.com>
* configure.tgt: Add NetBSD/sparc ELF, and NetBSD/sparc64 support.
2000-06-07 Michael Sokolov <msokolov@ivan.Harhan.ORG>
* emultempl/mipsecoff.em (gld{EMULATION_NAME}_after_open): Require all
input objects to be ECOFF.
(check_sections): einfo takes %B, not %P, to print a BFD name.
2000-07-31 Rodney Brown <RodneyBrown@pmsc.com>
* configure.tgt: Select targ_emul=elf_i386 for Unixware 7
(i586-sco-sysv5uw7.1.0).
2000-06-18 Alan Modra <alan@linuxcare.com.au>
* NEWS: Update list of targets supporting --gc-sections.
* scripttempl/elf.sc: KEEP .eh_frame contents.
* scripttempl/elfd30v.sc: Same here.
2000-05-22 David O'Brien <obrien@FreeBSD.org>
* configure.tgt: Recognize alpha-*-freebsd*.
@ -38,6 +140,10 @@
* ld.h: Correctly check GCC version.
2000-04-21 Richard Henderson <rth@cygnus.com>
* scripttempl/elfd30v.sc: Place .gcc_except_table.
2000-04-19 Alan Modra <alan@linuxcare.com.au>
* ld.texinfo (Simple Example): Remove extraneous paragraph.

View File

@ -2,9 +2,14 @@
Changes in version 2.10:
* Added AT> to the linker script language to allow load-time allocation of
sections into regions.
* Added garbage collection of unused sections, enabled by --gc-sections.
It does require a bit of backend support; currently implemented are
ppc-elf, mips-elf, and mn10300-elf. Others will ignore the option.
avr-elf, d10v-elf, fr30-elf, i386-elf, m32r-elf, m68k-elf, mcore-elf,
mips-elf, mn10300-elf, ppc-elf, sh-elf, sparc-elf, and v850-elf.
Others will ignore the option.
* Added SORT to the linker script language to permit sorting sections by file
name or section name.

View File

@ -803,7 +803,7 @@ fi
PACKAGE=ld
VERSION=2.10
VERSION=2.10.1
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
@ -2133,7 +2133,7 @@ for ac_kw in inline __inline__ __inline; do
#include "confdefs.h"
int main() {
} $ac_kw foo() {
} int $ac_kw foo() {
; return 0; }
EOF
if { (eval echo configure:2140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
@ -2239,7 +2239,7 @@ else
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
void *p = alloca(2 * sizeof(int));
; return 0; }
EOF
if { (eval echo configure:2246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
@ -2592,12 +2592,15 @@ else
#include <sys/types.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <stdlib.h>
#include <sys/stat.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
# ifdef HAVE_UNISTD_H
# include <unistd.h>
# endif
/* Assume that all systems that can run configure have sys/param.h. */
# ifndef HAVE_SYS_PARAM_H
@ -2652,7 +2655,7 @@ main()
/*
* First, make a file with some known garbage in it.
*/
data = malloc(pagesize);
data = (char*)malloc(pagesize);
if (!data)
exit(1);
for (i = 0; i < pagesize; ++i)
@ -2673,7 +2676,7 @@ main()
fd = open("conftestmmap", O_RDWR);
if (fd < 0)
exit(1);
data2 = malloc(2 * pagesize);
data2 = (char*)malloc(2 * pagesize);
if (!data2)
exit(1);
data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
@ -2691,7 +2694,7 @@ main()
*/
for (i = 0; i < pagesize; ++i)
*(data2 + i) = *(data2 + i) + 1;
data3 = malloc(pagesize);
data3 = (char*)malloc(pagesize);
if (!data3)
exit(1);
if (read(fd, data3, pagesize) != pagesize)
@ -2705,7 +2708,7 @@ main()
}
EOF
if { (eval echo configure:2709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:2712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@ -2733,17 +2736,17 @@ unistd.h values.h sys/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:2737: checking for $ac_hdr" >&5
echo "configure:2740: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2742 "configure"
#line 2745 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:2747: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:2750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -2773,12 +2776,12 @@ done
__argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:2777: checking for $ac_func" >&5
echo "configure:2780: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2782 "configure"
#line 2785 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -2801,7 +2804,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:2805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -2830,12 +2833,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:2834: checking for $ac_func" >&5
echo "configure:2837: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2839 "configure"
#line 2842 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -2858,7 +2861,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:2862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -2892,19 +2895,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
echo "configure:2896: checking for LC_MESSAGES" >&5
echo "configure:2899: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2901 "configure"
#line 2904 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
if { (eval echo configure:2908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@ -2925,7 +2928,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
echo "configure:2929: checking whether NLS is requested" >&5
echo "configure:2932: checking whether NLS is requested" >&5
# Check whether --enable-nls or --disable-nls was given.
if test "${enable_nls+set}" = set; then
enableval="$enable_nls"
@ -2945,7 +2948,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
echo "configure:2949: checking whether included gettext is requested" >&5
echo "configure:2952: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@ -2964,17 +2967,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
echo "configure:2968: checking for libintl.h" >&5
echo "configure:2971: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2973 "configure"
#line 2976 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:2978: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:2981: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -2991,19 +2994,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
echo "configure:2995: checking for gettext in libc" >&5
echo "configure:2998: checking for gettext in libc" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3000 "configure"
#line 3003 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
if { (eval echo configure:3007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libc=yes
else
@ -3019,7 +3022,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
if test "$gt_cv_func_gettext_libc" != "yes"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
echo "configure:3023: checking for bindtextdomain in -lintl" >&5
echo "configure:3026: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -3027,7 +3030,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 3031 "configure"
#line 3034 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -3038,7 +3041,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
if { (eval echo configure:3042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -3054,19 +3057,19 @@ fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
echo "configure:3058: checking for gettext in libintl" >&5
echo "configure:3061: checking for gettext in libintl" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3063 "configure"
#line 3066 "configure"
#include "confdefs.h"
int main() {
return (int) gettext ("")
; return 0; }
EOF
if { (eval echo configure:3070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libintl=yes
else
@ -3094,7 +3097,7 @@ EOF
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3098: checking for $ac_word" >&5
echo "configure:3101: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3128,12 +3131,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3132: checking for $ac_func" >&5
echo "configure:3135: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3137 "configure"
#line 3140 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3156,7 +3159,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3183,7 +3186,7 @@ done
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3187: checking for $ac_word" >&5
echo "configure:3190: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3219,7 +3222,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3223: checking for $ac_word" >&5
echo "configure:3226: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3251,7 +3254,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
#line 3255 "configure"
#line 3258 "configure"
#include "confdefs.h"
int main() {
@ -3259,7 +3262,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
if { (eval echo configure:3263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@ -3291,7 +3294,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3295: checking for $ac_word" >&5
echo "configure:3298: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3325,7 +3328,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3329: checking for $ac_word" >&5
echo "configure:3332: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3361,7 +3364,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3365: checking for $ac_word" >&5
echo "configure:3368: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3451,7 +3454,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
echo "configure:3455: checking for catalogs to be installed" >&5
echo "configure:3458: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@ -3479,17 +3482,17 @@ echo "configure:3455: checking for catalogs to be installed" >&5
if test "$CATOBJEXT" = ".cat"; then
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
echo "configure:3483: checking for linux/version.h" >&5
echo "configure:3486: checking for linux/version.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3488 "configure"
#line 3491 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3493: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3496: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -3552,12 +3555,12 @@ fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
echo "configure:3556: checking for Cygwin environment" >&5
echo "configure:3559: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3561 "configure"
#line 3564 "configure"
#include "confdefs.h"
int main() {
@ -3568,7 +3571,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
if { (eval echo configure:3572: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3575: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@ -3585,19 +3588,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
echo "configure:3589: checking for mingw32 environment" >&5
echo "configure:3592: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3594 "configure"
#line 3597 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
if { (eval echo configure:3601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@ -3616,7 +3619,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
echo "configure:3620: checking for executable suffix" >&5
echo "configure:3623: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3626,7 +3629,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
if { (eval echo configure:3630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
if { (eval echo configure:3633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj) ;;
@ -3652,7 +3655,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3656: checking for $ac_word" >&5
echo "configure:3659: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3688,7 +3691,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3692: checking for $ac_word" >&5
echo "configure:3695: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3721,7 +3724,7 @@ test -n "$LEX" || LEX=""$missing_dir/missing flex""
# Extract the first word of "flex", so it can be a program name with args.
set dummy flex; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3725: checking for $ac_word" >&5
echo "configure:3728: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3755,7 +3758,7 @@ then
*) ac_lib=l ;;
esac
echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
echo "configure:3759: checking for yywrap in -l$ac_lib" >&5
echo "configure:3762: checking for yywrap in -l$ac_lib" >&5
ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -3763,7 +3766,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$ac_lib $LIBS"
cat > conftest.$ac_ext <<EOF
#line 3767 "configure"
#line 3770 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -3774,7 +3777,7 @@ int main() {
yywrap()
; return 0; }
EOF
if { (eval echo configure:3778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -3797,7 +3800,7 @@ fi
fi
echo $ac_n "checking lex output file root""... $ac_c" 1>&6
echo "configure:3801: checking lex output file root" >&5
echo "configure:3804: checking lex output file root" >&5
if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3818,7 +3821,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
echo "configure:3822: checking whether yytext is a pointer" >&5
echo "configure:3825: checking whether yytext is a pointer" >&5
if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3830,14 +3833,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
ac_save_LIBS="$LIBS"
LIBS="$LIBS $LEXLIB"
cat > conftest.$ac_ext <<EOF
#line 3834 "configure"
#line 3837 "configure"
#include "confdefs.h"
`cat $LEX_OUTPUT_ROOT.c`
int main() {
; return 0; }
EOF
if { (eval echo configure:3841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_prog_lex_yytext_pointer=yes
else
@ -3860,7 +3863,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
echo "configure:3864: checking whether to enable maintainer-specific portions of Makefiles" >&5
echo "configure:3867: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"
@ -3894,17 +3897,17 @@ for ac_hdr in string.h strings.h stdlib.h unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3898: checking for $ac_hdr" >&5
echo "configure:3901: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3903 "configure"
#line 3906 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3908: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3911: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -3933,12 +3936,12 @@ done
for ac_func in sbrk
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3937: checking for $ac_func" >&5
echo "configure:3940: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3942 "configure"
#line 3945 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3961,7 +3964,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3990,12 +3993,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
echo "configure:3994: checking for $ac_hdr that defines DIR" >&5
echo "configure:3997: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3999 "configure"
#line 4002 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@ -4003,7 +4006,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
if { (eval echo configure:4007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4010: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@ -4028,7 +4031,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
echo "configure:4032: checking for opendir in -ldir" >&5
echo "configure:4035: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -4036,7 +4039,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4040 "configure"
#line 4043 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -4047,7 +4050,7 @@ int main() {
opendir()
; return 0; }
EOF
if { (eval echo configure:4051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -4069,7 +4072,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
echo "configure:4073: checking for opendir in -lx" >&5
echo "configure:4076: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -4077,7 +4080,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4081 "configure"
#line 4084 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -4088,7 +4091,7 @@ int main() {
opendir()
; return 0; }
EOF
if { (eval echo configure:4092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -4121,12 +4124,12 @@ EOF
esac
echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
echo "configure:4125: checking whether strstr must be declared" >&5
echo "configure:4128: checking whether strstr must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4130 "configure"
#line 4133 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4147,7 +4150,7 @@ int main() {
char *(*pfn) = (char *(*)) strstr
; return 0; }
EOF
if { (eval echo configure:4151: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4154: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_strstr=no
else
@ -4168,12 +4171,12 @@ EOF
fi
echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6
echo "configure:4172: checking whether free must be declared" >&5
echo "configure:4175: checking whether free must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4177 "configure"
#line 4180 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4194,7 +4197,7 @@ int main() {
char *(*pfn) = (char *(*)) free
; return 0; }
EOF
if { (eval echo configure:4198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_free=no
else
@ -4215,12 +4218,12 @@ EOF
fi
echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6
echo "configure:4219: checking whether sbrk must be declared" >&5
echo "configure:4222: checking whether sbrk must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4224 "configure"
#line 4227 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4241,7 +4244,7 @@ int main() {
char *(*pfn) = (char *(*)) sbrk
; return 0; }
EOF
if { (eval echo configure:4245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_sbrk=no
else
@ -4262,12 +4265,12 @@ EOF
fi
echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6
echo "configure:4266: checking whether getenv must be declared" >&5
echo "configure:4269: checking whether getenv must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4271 "configure"
#line 4274 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4288,7 +4291,7 @@ int main() {
char *(*pfn) = (char *(*)) getenv
; return 0; }
EOF
if { (eval echo configure:4292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4295: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_getenv=no
else
@ -4309,12 +4312,12 @@ EOF
fi
echo $ac_n "checking whether environ must be declared""... $ac_c" 1>&6
echo "configure:4313: checking whether environ must be declared" >&5
echo "configure:4316: checking whether environ must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_environ'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4318 "configure"
#line 4321 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4335,7 +4338,7 @@ int main() {
char *(*pfn) = (char *(*)) environ
; return 0; }
EOF
if { (eval echo configure:4339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_environ=no
else
@ -4363,19 +4366,19 @@ fi
# constants, while still supporting pre-ANSI compilers which do not
# support string concatenation.
echo $ac_n "checking whether ANSI C string concatenation works""... $ac_c" 1>&6
echo "configure:4367: checking whether ANSI C string concatenation works" >&5
echo "configure:4370: checking whether ANSI C string concatenation works" >&5
if eval "test \"`echo '$''{'ld_cv_string_concatenation'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4372 "configure"
#line 4375 "configure"
#include "confdefs.h"
int main() {
char *a = "a" "a";
; return 0; }
EOF
if { (eval echo configure:4379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ld_cv_string_concatenation=yes
else

View File

@ -5,7 +5,7 @@ AC_INIT(ldmain.c)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE(ld, 2.10)
AM_INIT_AUTOMAKE(ld, 2.10.1)
AM_PROG_LIBTOOL

View File

@ -7,7 +7,7 @@ cat >e${EMULATION_NAME}.c <<EOF
/* This file is is generated by a shell script. DO NOT EDIT! */
/* ${ELFSIZE} bit ELF emulation code for ${EMULATION_NAME}
Copyright (C) 1991, 93, 94, 95, 96, 97, 98, 1999
Copyright (C) 1991, 93, 94, 95, 96, 97, 98, 99, 2000
Free Software Foundation, Inc.
Written by Steve Chamberlain <sac@cygnus.com>
ELF support by Ian Lance Taylor <ian@cygnus.com>
@ -63,10 +63,9 @@ static void gld${EMULATION_NAME}_before_allocation PARAMS ((void));
static void gld${EMULATION_NAME}_find_statement_assignment
PARAMS ((lang_statement_union_type *));
static void gld${EMULATION_NAME}_find_exp_assignment PARAMS ((etree_type *));
static lang_output_section_statement_type *output_rel_find PARAMS ((void));
static boolean gld${EMULATION_NAME}_place_orphan
PARAMS ((lang_input_statement_type *, asection *));
static void gld${EMULATION_NAME}_place_section
PARAMS ((lang_statement_union_type *));
static char *gld${EMULATION_NAME}_get_script PARAMS ((int *isfile));
static void
@ -376,7 +375,7 @@ cat >>e${EMULATION_NAME}.c <<EOF
if (force < 2)
continue;
einfo ("%P: warning: %s, needed by %B, not found (try using --rpath)\n",
einfo ("%P: warning: %s, needed by %B, not found (try using -rpath or -rpath-link)\n",
l->name, l->by);
}
}
@ -862,58 +861,83 @@ gld${EMULATION_NAME}_find_exp_assignment (exp)
}
}
/* A variant of lang_output_section_find. Used by place_orphan. */
static lang_output_section_statement_type *
output_rel_find ()
{
lang_statement_union_type *u;
lang_output_section_statement_type *lookup;
for (u = lang_output_section_statement.head;
u != (lang_statement_union_type *) NULL;
u = lookup->next)
{
lookup = &u->output_section_statement;
if (strncmp (".rel", lookup->name, 4) == 0
&& lookup->bfd_section != NULL
&& (lookup->bfd_section->flags & SEC_ALLOC) != 0)
{
return lookup;
}
}
return (lang_output_section_statement_type *) NULL;
}
/* Place an orphan section. We use this to put random SHF_ALLOC
sections in the right segment. */
static asection *hold_section;
static lang_output_section_statement_type *hold_use;
static lang_output_section_statement_type *hold_text;
static lang_output_section_statement_type *hold_rodata;
static lang_output_section_statement_type *hold_data;
static lang_output_section_statement_type *hold_bss;
static lang_output_section_statement_type *hold_rel;
static lang_output_section_statement_type *hold_interp;
struct orphan_save {
lang_output_section_statement_type *os;
asection **section;
lang_statement_union_type **stmt;
};
/*ARGSUSED*/
static boolean
gld${EMULATION_NAME}_place_orphan (file, s)
lang_input_statement_type *file;
asection *s;
{
lang_output_section_statement_type *place;
asection *snew, **pps;
static struct orphan_save hold_text;
static struct orphan_save hold_rodata;
static struct orphan_save hold_data;
static struct orphan_save hold_bss;
static struct orphan_save hold_rel;
static struct orphan_save hold_interp;
struct orphan_save *place;
lang_statement_list_type *old;
lang_statement_list_type add;
etree_type *address;
const char *secname, *ps;
const char *secname;
const char *outsecname;
const char *ps = NULL;
lang_output_section_statement_type *os;
if ((s->flags & SEC_ALLOC) == 0)
return false;
secname = bfd_get_section_name (s->owner, s);
/* Look through the script to see where to place this section. */
hold_section = s;
hold_use = NULL;
lang_for_each_statement (gld${EMULATION_NAME}_place_section);
/* Look through the script to see where to place this section. */
os = lang_output_section_find (secname);
if (hold_use != NULL)
if (os != NULL
&& os->bfd_section != NULL
&& ((s->flags ^ os->bfd_section->flags) & (SEC_LOAD | SEC_ALLOC)) == 0)
{
/* We have already placed a section with this name. */
wild_doit (&hold_use->children, s, hold_use, file);
wild_doit (&os->children, s, os, file);
return true;
}
secname = bfd_get_section_name (s->owner, s);
if (hold_text.os == NULL)
hold_text.os = lang_output_section_find (".text");
/* If this is a final link, then always put .gnu.warning.SYMBOL
sections into the .text section to get them out of the way. */
if (! link_info.shared
&& ! link_info.relocateable
&& strncmp (secname, ".gnu.warning.", sizeof ".gnu.warning." - 1) == 0
&& hold_text != NULL)
&& hold_text.os != NULL)
{
wild_doit (&hold_text->children, s, hold_text, file);
wild_doit (&hold_text.os->children, s, hold_text.os, file);
return true;
}
@ -922,31 +946,37 @@ gld${EMULATION_NAME}_place_orphan (file, s)
right after the .interp section, so that the PT_NOTE segment is
stored right after the program headers where the OS can read it
in the first page. */
place = NULL;
#define HAVE_SECTION(hold, name) \
(hold.os != NULL || (hold.os = lang_output_section_find (name)) != NULL)
if (s->flags & SEC_EXCLUDE)
return false;
place = NULL;
if ((s->flags & SEC_ALLOC) == 0)
;
else if ((s->flags & SEC_LOAD) != 0
&& strncmp (secname, ".note", 4) == 0
&& hold_interp != NULL)
place = hold_interp;
&& strncmp (secname, ".note", 4) == 0
&& HAVE_SECTION (hold_interp, ".interp"))
place = &hold_interp;
else if ((s->flags & SEC_HAS_CONTENTS) == 0
&& hold_bss != NULL)
place = hold_bss;
&& HAVE_SECTION (hold_bss, ".bss"))
place = &hold_bss;
else if ((s->flags & SEC_READONLY) == 0
&& hold_data != NULL)
place = hold_data;
&& HAVE_SECTION (hold_data, ".data"))
place = &hold_data;
else if (strncmp (secname, ".rel", 4) == 0
&& hold_rel != NULL)
place = hold_rel;
else if ((s->flags & SEC_CODE) == 0
&& (s->flags & SEC_READONLY) != 0
&& hold_rodata != NULL)
place = hold_rodata;
else if ((s->flags & SEC_READONLY) != 0
&& hold_text != NULL)
place = hold_text;
if (place == NULL)
return false;
&& (hold_rel.os != NULL
|| (hold_rel.os = output_rel_find ()) != NULL))
place = &hold_rel;
else if ((s->flags & (SEC_CODE | SEC_READONLY)) == SEC_READONLY
&& HAVE_SECTION (hold_rodata, ".rodata"))
place = &hold_rodata;
else if ((s->flags & (SEC_CODE | SEC_READONLY)) == (SEC_CODE | SEC_READONLY)
&& hold_text.os != NULL)
place = &hold_text;
#undef HAVE_SECTION
/* Choose a unique name for the section. This will be needed if the
same section name appears in the input file with different
@ -972,115 +1002,144 @@ gld${EMULATION_NAME}_place_orphan (file, s)
outsecname = newname;
}
/* Create the section in the output file, and put it in the right
place. This shuffling is to make the output file look neater. */
snew = bfd_make_section (output_bfd, outsecname);
if (snew == NULL)
einfo ("%P%F: output format %s cannot represent section called %s\n",
output_bfd->xvec->name, outsecname);
if (place->bfd_section != NULL)
{
for (pps = &output_bfd->sections; *pps != snew; pps = &(*pps)->next)
;
*pps = snew->next;
snew->next = place->bfd_section->next;
place->bfd_section->next = snew;
}
/* Start building a list of statements for this section. */
/* Start building a list of statements for this section.
First save the current statement pointer. */
old = stat_ptr;
stat_ptr = &add;
lang_list_init (stat_ptr);
/* If the name of the section is representable in C, then create
symbols to mark the start and the end of the section. */
for (ps = outsecname; *ps != '\0'; ps++)
if (! isalnum ((unsigned char) *ps) && *ps != '_')
break;
if (*ps == '\0' && config.build_constructors)
/* If we have found an appropriate place for the output section
statements for this orphan, add them to our own private list,
inserting them later into the global statement list. */
if (place != NULL)
{
char *symname;
symname = (char *) xmalloc (ps - outsecname + sizeof "__start_");
sprintf (symname, "__start_%s", outsecname);
lang_add_assignment (exp_assop ('=', symname,
exp_unop (ALIGN_K,
exp_intop ((bfd_vma) 1
<< s->alignment_power))));
stat_ptr = &add;
lang_list_init (stat_ptr);
}
if (! link_info.relocateable)
address = NULL;
else
if (config.build_constructors)
{
/* If the name of the section is representable in C, then create
symbols to mark the start and the end of the section. */
for (ps = outsecname; *ps != '\0'; ps++)
if (! isalnum ((unsigned char) *ps) && *ps != '_')
break;
if (*ps == '\0')
{
char *symname;
etree_type *e_align;
symname = (char *) xmalloc (ps - outsecname + sizeof "__start_");
sprintf (symname, "__start_%s", outsecname);
e_align = exp_unop (ALIGN_K,
exp_intop ((bfd_vma) 1 << s->alignment_power));
lang_add_assignment (exp_assop ('=', symname, e_align));
}
}
if (link_info.relocateable || (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0)
address = exp_intop ((bfd_vma) 0);
else
address = NULL;
lang_enter_output_section_statement (outsecname, address, 0,
(bfd_vma) 0,
(etree_type *) NULL,
(etree_type *) NULL,
(etree_type *) NULL);
os = lang_enter_output_section_statement (outsecname, address, 0,
(bfd_vma) 0,
(etree_type *) NULL,
(etree_type *) NULL,
(etree_type *) NULL);
os = lang_output_section_statement_lookup (outsecname);
wild_doit (&os->children, s, os, file);
lang_leave_output_section_statement
((bfd_vma) 0, "*default*", (struct lang_output_section_phdr_list *) NULL,
"*default*");
stat_ptr = &add;
((bfd_vma) 0, "*default*",
(struct lang_output_section_phdr_list *) NULL, "*default*");
if (*ps == '\0' && config.build_constructors)
if (config.build_constructors && *ps == '\0')
{
char *symname;
/* lang_leave_ouput_section_statement resets stat_ptr. Put
stat_ptr back where we want it. */
if (place != NULL)
stat_ptr = &add;
symname = (char *) xmalloc (ps - outsecname + sizeof "__stop_");
sprintf (symname, "__stop_%s", outsecname);
lang_add_assignment (exp_assop ('=', symname,
exp_nameop (NAME, ".")));
}
/* Now stick the new statement list right after PLACE. */
*add.tail = place->header.next;
place->header.next = add.head;
/* Restore the global list pointer. */
stat_ptr = old;
if (place != NULL)
{
asection *snew, **pps;
snew = os->bfd_section;
if (place->section != NULL
|| (place->os->bfd_section != NULL
&& place->os->bfd_section != snew))
{
/* Shuffle the section to make the output file look neater.
This is really only cosmetic. */
if (place->section == NULL)
{
#if 0
/* Finding the end of the list is a little tricky. We
make a wild stab at it by comparing section flags. */
flagword first_flags = place->os->bfd_section->flags;
for (pps = &place->os->bfd_section->next;
*pps != NULL && (*pps)->flags == first_flags;
pps = &(*pps)->next)
;
place->section = pps;
#else
/* Put orphans after the first section on the list. */
place->section = &place->os->bfd_section->next;
#endif
}
/* Unlink the section. */
for (pps = &output_bfd->sections; *pps != snew; pps = &(*pps)->next)
;
*pps = snew->next;
/* Now tack it on to the "place->os" section list. */
snew->next = *place->section;
*place->section = snew;
}
place->section = &snew->next; /* Save the end of this list. */
if (add.head != NULL)
{
/* We try to put the output statements in some sort of
reasonable order here, because they determine the final
load addresses of the orphan sections. */
if (place->stmt == NULL)
{
/* Put the new statement list right at the head. */
*add.tail = place->os->header.next;
place->os->header.next = add.head;
}
else
{
/* Put it after the last orphan statement we added. */
*add.tail = *place->stmt;
*place->stmt = add.head;
}
/* Fix the global list pointer if we happened to tack our
new list at the tail. */
if (*old->tail == add.head)
old->tail = add.tail;
/* Save the end of this list. */
place->stmt = add.tail;
}
}
return true;
}
static void
gld${EMULATION_NAME}_place_section (s)
lang_statement_union_type *s;
{
lang_output_section_statement_type *os;
if (s->header.type != lang_output_section_statement_enum)
return;
os = &s->output_section_statement;
if (strcmp (os->name, hold_section->name) == 0
&& os->bfd_section != NULL
&& ((hold_section->flags & (SEC_LOAD | SEC_ALLOC))
== (os->bfd_section->flags & (SEC_LOAD | SEC_ALLOC))))
hold_use = os;
if (strcmp (os->name, ".text") == 0)
hold_text = os;
else if (strcmp (os->name, ".rodata") == 0)
hold_rodata = os;
else if (strcmp (os->name, ".data") == 0)
hold_data = os;
else if (strcmp (os->name, ".bss") == 0)
hold_bss = os;
else if (hold_rel == NULL
&& os->bfd_section != NULL
&& (os->bfd_section->flags & SEC_ALLOC) != 0
&& strncmp (os->name, ".rel", 4) == 0)
hold_rel = os;
else if (strcmp (os->name, ".interp") == 0)
hold_interp = os;
}
static char *
gld${EMULATION_NAME}_get_script(isfile)
int *isfile;

View File

@ -69,6 +69,11 @@ gld${EMULATION_NAME}_after_open ()
{
asection *datasec;
/* As first-order business, make sure that each input BFD is ECOFF. It
better be, as we are directly calling an ECOFF backend function. */
if (bfd_get_flavour (abfd) != bfd_target_ecoff_flavour)
einfo ("%F%B: all input objects must be ECOFF for --embedded-relocs\n");
datasec = bfd_get_section_by_name (abfd, ".sdata");
/* Note that we assume that the reloc_count field has already
@ -113,7 +118,7 @@ check_sections (abfd, sec, sdatasec)
if ((bfd_get_section_flags (abfd, sec) & SEC_CODE) == 0
&& sec != (asection *) sdatasec
&& sec->reloc_count != 0)
einfo ("%P%X: section %s has relocs; can not use --embedded-relocs\n",
einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n",
abfd, bfd_get_section_name (abfd, sec));
}

View File

@ -4,7 +4,7 @@ START-INFO-DIR-ENTRY
* Ld: (ld). The GNU linker.
END-INFO-DIR-ENTRY
This file documents the GNU linker LD version 2.10.
This file documents the GNU linker LD version 2.10.1.
Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free
Software Foundation, Inc.
@ -24,74 +24,74 @@ versions.

Indirect:
ld.info-1: 880
ld.info-2: 50060
ld.info-3: 98401
ld.info-4: 146817
ld.info-1: 882
ld.info-2: 50064
ld.info-3: 98405
ld.info-4: 146821

Tag Table:
(Indirect)
Node: Top880
Node: Overview1397
Node: Invocation2510
Node: Options2917
Node: Environment50060
Node: Scripts51815
Node: Basic Script Concepts53548
Node: Script Format56250
Node: Simple Example57108
Node: Simple Commands60198
Node: Entry Point60644
Node: File Commands61394
Node: Format Commands64447
Node: Miscellaneous Commands66403
Node: Assignments68394
Node: Simple Assignments68726
Node: PROVIDE70422
Node: SECTIONS71595
Node: Output Section Description73481
Node: Output Section Name74466
Node: Output Section Address75333
Node: Input Section76967
Node: Input Section Basics77759
Node: Input Section Wildcards80027
Node: Input Section Common82834
Node: Input Section Keep84303
Node: Input Section Example84772
Node: Output Section Data85729
Node: Output Section Keywords88174
Node: Output Section Discarding91606
Node: Output Section Attributes92551
Node: Output Section Type93385
Node: Output Section LMA94526
Node: Output Section Region96630
Node: Output Section Phdr97043
Node: Output Section Fill97694
Node: Overlay Description98401
Node: MEMORY102640
Node: PHDRS106717
Node: VERSION111756
Node: Expressions117834
Node: Constants118668
Node: Symbols119224
Node: Location Counter119956
Node: Operators122261
Node: Evaluation123172
Node: Expression Section124526
Node: Builtin Functions126002
Node: Implicit Linker Scripts131004
Node: Machine Dependent131772
Node: H8/300132226
Node: i960133022
Node: ARM134702
Node: BFD135837
Node: BFD outline137291
Node: BFD information loss138576
Node: Canonical format141084
Node: Reporting Bugs145430
Node: Bug Criteria146123
Node: Bug Reporting146817
Node: MRI153578
Node: Index158177
Node: Top882
Node: Overview1401
Node: Invocation2514
Node: Options2921
Node: Environment50064
Node: Scripts51819
Node: Basic Script Concepts53552
Node: Script Format56254
Node: Simple Example57112
Node: Simple Commands60202
Node: Entry Point60648
Node: File Commands61398
Node: Format Commands64451
Node: Miscellaneous Commands66407
Node: Assignments68398
Node: Simple Assignments68730
Node: PROVIDE70426
Node: SECTIONS71599
Node: Output Section Description73485
Node: Output Section Name74470
Node: Output Section Address75337
Node: Input Section76971
Node: Input Section Basics77763
Node: Input Section Wildcards80031
Node: Input Section Common82838
Node: Input Section Keep84307
Node: Input Section Example84776
Node: Output Section Data85733
Node: Output Section Keywords88178
Node: Output Section Discarding91610
Node: Output Section Attributes92555
Node: Output Section Type93389
Node: Output Section LMA94530
Node: Output Section Region96634
Node: Output Section Phdr97047
Node: Output Section Fill97698
Node: Overlay Description98405
Node: MEMORY102644
Node: PHDRS106721
Node: VERSION111760
Node: Expressions117838
Node: Constants118672
Node: Symbols119228
Node: Location Counter119960
Node: Operators122265
Node: Evaluation123176
Node: Expression Section124530
Node: Builtin Functions126006
Node: Implicit Linker Scripts131008
Node: Machine Dependent131776
Node: H8/300132230
Node: i960133026
Node: ARM134706
Node: BFD135841
Node: BFD outline137295
Node: BFD information loss138580
Node: Canonical format141088
Node: Reporting Bugs145434
Node: Bug Criteria146127
Node: Bug Reporting146821
Node: MRI153582
Node: Index158181

End Tag Table

View File

@ -4,7 +4,7 @@ START-INFO-DIR-ENTRY
* Ld: (ld). The GNU linker.
END-INFO-DIR-ENTRY
This file documents the GNU linker LD version 2.10.
This file documents the GNU linker LD version 2.10.1.
Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free
Software Foundation, Inc.
@ -28,7 +28,7 @@ File: ld.info, Node: Top, Next: Overview, Up: (dir)
Using ld
********
This file documents the GNU linker ld version 2.10.
This file documents the GNU linker ld version 2.10.1.
* Menu:

View File

@ -4,7 +4,7 @@ START-INFO-DIR-ENTRY
* Ld: (ld). The GNU linker.
END-INFO-DIR-ENTRY
This file documents the GNU linker LD version 2.10.
This file documents the GNU linker LD version 2.10.1.
Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free
Software Foundation, Inc.

View File

@ -4,7 +4,7 @@ START-INFO-DIR-ENTRY
* Ld: (ld). The GNU linker.
END-INFO-DIR-ENTRY
This file documents the GNU linker LD version 2.10.
This file documents the GNU linker LD version 2.10.1.
Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free
Software Foundation, Inc.

View File

@ -4,7 +4,7 @@ START-INFO-DIR-ENTRY
* Ld: (ld). The GNU linker.
END-INFO-DIR-ENTRY
This file documents the GNU linker LD version 2.10.
This file documents the GNU linker LD version 2.10.1.
Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free
Software Foundation, Inc.

View File

@ -58,7 +58,6 @@ static lang_output_section_statement_type *default_common_section;
static boolean map_option_f;
static bfd_vma print_dot;
static lang_input_statement_type *first_file;
static lang_statement_list_type lang_output_section_statement;
static CONST char *current_target;
static CONST char *output_target;
static lang_statement_list_type statement_list;
@ -166,6 +165,7 @@ static char * get_first_input_target PARAMS ((void));
/* EXPORTS */
lang_output_section_statement_type *abs_output_section;
lang_statement_list_type lang_output_section_statement;
lang_statement_list_type *stat_ptr = &statement_list;
lang_statement_list_type file_chain = { NULL, NULL };
const char *entry_symbol = NULL;
@ -3813,7 +3813,7 @@ topower (x)
return 0;
}
void
lang_output_section_statement_type *
lang_enter_output_section_statement (output_section_statement_name,
address_exp, sectype, block_value,
align, subalign, ebase)
@ -3861,6 +3861,7 @@ lang_enter_output_section_statement (output_section_statement_name,
"section alignment", 0));
os->load_base = ebase;
return os;
}

View File

@ -371,6 +371,7 @@ struct lang_nocrossrefs
extern struct lang_nocrossrefs *nocrossref_list;
extern lang_output_section_statement_type *abs_output_section;
extern lang_statement_list_type lang_output_section_statement;
extern boolean lang_has_input_file;
extern etree_type *base;
extern lang_statement_list_type *stat_ptr;
@ -388,7 +389,7 @@ extern void lang_map PARAMS ((void));
extern void lang_set_flags PARAMS ((lang_memory_region_type *, const char *,
int));
extern void lang_add_output PARAMS ((const char *, int from_script));
extern void lang_enter_output_section_statement
extern lang_output_section_statement_type *lang_enter_output_section_statement
PARAMS ((const char *output_section_statement_name,
etree_type * address_exp,
enum section_type sectype,

View File

@ -479,6 +479,11 @@ yy_create_string_buffer (string, size)
b->yy_n_chars = size+1;
b->yy_buf_pos = &b->yy_ch_buf[1];
b->yy_is_our_buffer = 1;
b->yy_is_interactive = 0;
b->yy_at_bol = 1;
b->yy_fill_buffer = 0;
/* flex 2.4.7 changed the interface. FIXME: We should not be using
a flex internal interface in the first place! */
#ifdef YY_BUFFER_NEW

View File

@ -1 +1 @@
@set VERSION 2.10
@set VERSION 2.10.1

View File

@ -234,7 +234,7 @@ SECTIONS
${CONSTRUCTING+SORT(CONSTRUCTORS)}
}
.data1 ${RELOCATING-0} : { *(.data1) }
.eh_frame : { *(.eh_frame) }
.eh_frame : { KEEP (*(.eh_frame)) }
.gcc_except_table : { *(.gcc_except_table) }
${WRITABLE_RODATA+${RODATA}}
${RELOCATING+${OTHER_READWRITE_SECTIONS}}
@ -242,7 +242,7 @@ SECTIONS
${RELOCATING+${DTOR}}
${DATA_PLT+${PLT}}
${RELOCATING+${OTHER_GOT_SYMBOLS}}
.got ${RELOCATING-0} : { *(.got.plt) *(.got) }
.got ${RELOCATING-0} : { *(.got.plt) *(.got) }
${TEXT_DYNAMIC-${DYNAMIC}}
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so

View File

@ -121,7 +121,8 @@ SECTIONS
.rodata ${RELOCATING-0} : { *(.rodata) } ${RELOCATING+ > ${DATA_MEMORY}}
/* C++ exception support. */
.eh_frame ${RELOCATING-0} : { *(.eh_frame) } ${RELOCATING+ > ${DATA_MEMORY}}
.eh_frame ${RELOCATING-0} : { KEEP (*(.eh_frame)) } ${RELOCATING+ > ${DATA_MEMORY}}
.gcc_except_table ${RELOCATING-0} : { *(.gcc_except_table) } ${RELOCATING+ > ${DATA_MEMORY}}
${RELOCATING+${CTOR}}
${RELOCATING+${DTOR}}
@ -213,7 +214,3 @@ SECTIONS
PROVIDE (__stack = ${STACK_START_ADDR});
}
EOF

View File

@ -1,3 +1,12 @@
2000-11-06 Alan Modra <alan@linuxcare.com.au>
* ld-elfvsb/main.c (PROTECTED_CHECK): Include stdio.h.
(main): Prune unused args.
2000-10-17 Philip Blundell <pb@futuretv.com>
* lib/ld-lib.exp, ld-elfvsb: Update from trunk version.
2000-04-12 Alan Modra <alan@linuxcare.com.au>
* ld-selective/selective.exp (test4): Delete incorrect foo__1B test.

View File

@ -0,0 +1,168 @@
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x100000;
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.text :
{
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
}
.rela.text :
{
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
}
.rel.data :
{
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
}
.rela.data :
{
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
}
.rel.rodata :
{
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
}
.rela.rodata :
{
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
}
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { KEEP (*(.init)) }
.plt : { *(.plt) }
.text :
{
*(.text)
*(.text.*)
*(.stub)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
}
_etext = .;
PROVIDE (etext = .);
.fini : { KEEP (*(.fini)) } =0x9090
.rodata :
{
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r*)
}
.rodata1 : { *(.rodata1) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = ALIGN(0x1000) + (. & (0x1000 - 1));
.data :
{
*(.data)
*(.data.*)
*(.gnu.linkonce.d*)
SORT(CONSTRUCTORS)
}
.data1 : { *(.data1) }
.ctors :
{
/* gcc uses crtbegin.o to find the start of the constructors, so
we make sure it is first. Because this is a wildcard, it
doesn't matter if the user does not actually link against
crtbegin.o; the linker won't look for a file to match a
wildcard. The wildcard also means that it doesn't matter which
directory crtbegin.o is in. */
KEEP (*crtbegin.o(.ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
}
.dtors :
{
KEEP (*crtbegin.o(.dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
}
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata : { *(.sdata) *(.sdata.*) }
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
.sbss : { *(.sbss) *(.scommon) }
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections. */
. = ALIGN(32 / 8);
}
. = ALIGN(32 / 8);
_end = . ;
PROVIDE (end = .);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
}

View File

@ -0,0 +1,22 @@
mainvar == 1
overriddenvar == 2
shlibvar1 == 3
shlib_mainvar () == 1
shlib_overriddenvar () == 2
shlib_shlibvar1 () == 3
shlib_shlibvar2 () == 4
shlib_shlibcall () == 5
shlib_shlibcall2 () == 8
shlib_maincall () == 6
main_called () == 6
shlib_checkfunptr1 (shlib_shlibvar1) == 1
shlib_checkfunptr2 (main_called) == 1
shlib_getfunptr1 () == shlib_shlibvar1
shlib_getfunptr2 () == main_called
shlib_check () == 1
visibility_check () == 1
visibility_checkfunptr () == 1
main_visibility_check () == 1
visibility_checkvar () == 1
visibility_checkvarptr () == 1
main_visibility_checkvar () == 1

View File

@ -0,0 +1,359 @@
# Expect script for ld-visibility tests
# Copyright (C) 2000 Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Written by Ian Lance Taylor (ian@cygnus.com)
# and H.J. Lu (hjl@gnu.org)
#
# Make sure that ld can generate ELF shared libraries with visibility.
# This test can only be run if ld generates native executables.
if ![isnative] then {return}
# This test can only be run on a couple of ELF platforms.
# Square bracket expressions seem to confuse istarget.
if { ![istarget i386-*-linux*] \
&& ![istarget i486-*-linux*] \
&& ![istarget i586-*-linux*] \
&& ![istarget i686-*-linux*] \
&& ![istarget m68k-*-linux*] \
&& ![istarget powerpc-*-linux*] \
&& ![istarget sparc*-*-linux*] } {
return
}
if { [istarget *-*-linux*aout*] \
|| [istarget *-*-linux*oldld*] } {
return
}
set tmpdir tmpdir
set SHCFLAG ""
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
# AIX shared libraries do not seem to support useful features,
# like overriding the shared library function or letting the
# shared library refer to objects defined in the main program. We
# avoid testing those features.
set SHCFLAG "-DXCOFF_TEST"
# The AIX 3.2.5 loader appears to randomly fail when loading
# shared libraries from NSF mounted partitions, so we avoid any
# potential problems by using a local directory.
catch {exec /bin/sh -c "echo $$"} pid
set tmpdir /usr/tmp/ld.$pid
catch "exec mkdir $tmpdir" exec_status
# On AIX, we need to explicitly export the symbols the shared
# library is going to provide, and need.
set file [open $tmpdir/xcoff.exp w]
puts $file shlibvar1
puts $file shlibvar2
puts $file shlib_shlibvar1
puts $file shlib_shlibvar2
puts $file shlib_shlibcall
puts $file shlib_shlibcalled
puts $file shlib_checkfunptr1
puts $file shlib_getfunptr1
puts $file shlib_check
close $file
}
set support_protected "no"
if [istarget *-*-linux*] {
if [ld_compile "$CC -g $CFLAGS -DPROTECTED_CHECK" $srcdir/$subdir/main.c $tmpdir/main.o] {
if [ld_link $ld $tmpdir/main "$tmpdir/main.o"] {
catch "exec $tmpdir/main" support_protected
}
}
}
# The test procedure.
proc visibility_test { visibility progname testname main sh1 sh2 dat args } {
global ld
global srcdir
global subdir
global exec_output
global link_output
global host_triplet
global tmpdir
if [llength $args] { set shldflags [lindex $args 0] } else { set shldflags "" }
# Build the shared library.
# On AIX, we need to use an export file.
set shared -shared
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
set shared "-bM:SRE -bE:$tmpdir/xcoff.exp"
}
if {![ld_simple_link $ld $tmpdir/$progname.so "$shared $shldflags $tmpdir/$sh1 $tmpdir/$sh2"]} {
if { [ string match $visibility "hidden_undef" ]
&& [regexp ".*/sh1.c.*: undefined reference to \`visibility\'" $link_output]
&& [regexp ".*/sh1.c.*: undefined reference to \`visibility_var\'" $link_output] } {
pass "$testname"
} else { if { [ string match $visibility "protected_undef" ]
&& [regexp ".*/sh1.c.*: undefined reference to \`visibility\'" $link_output]
&& [regexp ".*/sh1.c.*: undefined reference to \`visibility_var\'" $link_output] } {
pass "$testname"
} else {
fail "$testname"
}}
return
}
# Link against the shared library. Use -rpath so that the
# dynamic linker can locate the shared library at runtime.
# On AIX, we must include /lib in -rpath, as otherwise the loader
# can not find -lc.
set rpath $tmpdir
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
set rpath /lib:$tmpdir
}
if ![ld_link $ld $tmpdir/$progname "-rpath $rpath $tmpdir/$main $tmpdir/$progname.so"] {
if { [ string match $visibility "hidden" ]
&& [regexp ".*/main.c.*: undefined reference to \`visibility\'" $link_output]
&& [regexp ".*/main.c.*: undefined reference to \`visibility_var\'" $link_output] } {
pass "$testname"
} else { if { [ string match $visibility "hidden_undef_def" ]
&& [regexp ".*/main.c.*: undefined reference to \`visibility\'" $link_output]
&& [regexp ".*/main.c.*: undefined reference to \`visibility_var\'" $link_output] } {
pass "$testname"
} else {
fail "$testname"
}}
return
}
if { [ string match $visibility "hidden" ]
|| [ string match $visibility "hidden_undef" ]
|| [ string match $visibility "protected_undef" ] } {
fail "$testname"
}
# Run the resulting program
send_log "$tmpdir/$progname >$tmpdir/$progname.out\n"
verbose "$tmpdir/$progname >$tmpdir/$progname.out"
catch "exec $tmpdir/$progname >$tmpdir/$progname.out" exec_output
if ![string match "" $exec_output] then {
send_log "$exec_output\n"
verbose "$exec_output"
fail "$testname"
return
}
send_log "diff $tmpdir/$progname.out $srcdir/$subdir/$dat.dat\n"
verbose "diff $tmpdir/$progname.out $srcdir/$subdir/$dat.dat"
catch "exec diff $tmpdir/$progname.out $srcdir/$subdir/$dat.dat" exec_output
set exec_output [prune_warnings $exec_output]
if {![string match "" $exec_output]} then {
send_log "$exec_output\n"
verbose "$exec_output"
fail "$testname"
return
}
pass "$testname"
}
proc visibility_run {visibility} {
global CC
global CFLAGS
global SHCFLAG
global srcdir
global subdir
global tmpdir
global picflag
global target_triplet
global support_protected
if [ string match $visibility "hidden" ] {
set VSBCFLAG "-DHIDDEN_TEST"
} else { if [ string match $visibility "hidden_normal" ] {
set VSBCFLAG "-DHIDDEN_NORMAL_TEST"
} else { if [ string match $visibility "hidden_undef" ] {
set VSBCFLAG "-DHIDDEN_UNDEF_TEST"
} else { if [ string match $visibility "hidden_undef_def" ] {
set VSBCFLAG "-DHIDDEN_UNDEF_TEST -DDSO_DEFINE_TEST"
} else { if [ string match $visibility "hidden_weak" ] {
set VSBCFLAG "-DHIDDEN_WEAK_TEST"
} else { if [ string match $visibility "protected" ] {
set VSBCFLAG "-DPROTECTED_TEST"
} else { if [ string match $visibility "protected_undef" ] {
set VSBCFLAG "-DPROTECTED_UNDEF_TEST"
} else { if [ string match $visibility "protected_undef_def" ] {
set VSBCFLAG "-DPROTECTED_UNDEF_TEST -DDSO_DEFINE_TEST"
} else { if [ string match $visibility "protected_weak" ] {
set VSBCFLAG "-DPROTECTED_WEAK_TEST"
} else {
set VSBCFLAG ""
}}}}}}}}}
# Compile the main program.
if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
unresolved "visibility ($visibility) (non PIC)"
unresolved "visibility ($visibility)"
} else {
# The shared library is composed of two files. First compile them
# without using -fpic. That should work on an ELF system,
# although it will be less efficient because the dynamic linker
# will need to do more relocation work. However, note that not
# using -fpic will cause some of the tests to return different
# results.
if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
|| ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
unresolved "visibility ($visibility) (non PIC)"
} else { if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
visibility_test $visibility vnp "visibility ($visibility) (nonPIC)" mainnp.o sh1np.o sh2np.o xcoff
} else {
# SunOS non PIC shared libraries don't permit some cases of
# overriding.
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
if [ string match $support_protected "no" ] {
setup_xfail $target_triplet
}
} else {
setup_xfail "*-*-sunos4*"
}
visibility_test $visibility vnp "visibility ($visibility) (non PIC)" mainnp.o sh1np.o sh2np.o elfvsb
# Test ELF shared library relocations with a non-zero load
# address for the library. Near as I can tell, the R_*_RELATIVE
# relocations for various targets are broken in the case where
# the load address is not zero (which is the default).
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
if [ string match $support_protected "no" ] {
setup_xfail $target_triplet
}
} else {
setup_xfail "*-*-sunos4*"
setup_xfail "*-*-linux*libc1"
}
visibility_test $visibility vnp "visibility ($visibility) (non PIC, load offset)" \
mainnp.o sh1np.o sh2np.o elfvsb \
"-T $srcdir/$subdir/elf-offset.ld"
} }
# Now compile the code using -fpic.
if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
|| ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
unresolved "visibility ($visibility)"
} else {
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
if [ string match $support_protected "no" ] {
setup_xfail $target_triplet
}
}
# SunOS can not compare function pointers correctly
if [istarget "*-*-sunos4*"] {
visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o sun4
} else { if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o xcoff
} else {
visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o elfvsb
} }
}
}
# Now do the same tests again, but this time compile main.c PIC.
if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
unresolved "visibility ($visibility) (PIC main, non PIC so)"
unresolved "visibility ($visibility) (PIC main)"
} else {
if { [file exists $tmpdir/sh1np.o ] && [ file exists $tmpdir/sh2np.o ] } {
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
visibility_test $visibility vmpnp "visibility ($visibility) (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o xcoff
} else {
# SunOS non PIC shared libraries don't permit some cases of
# overriding.
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
if [ string match $support_protected "no" ] {
setup_xfail $target_triplet
}
} else {
setup_xfail "*-*-sunos4*"
}
visibility_test $visibility vmpnp "visibility ($visibility) (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o elfvsb
}
} else {
unresolved "visibility (PIC main, non PIC so)"
}
if { [file exists $tmpdir/sh1p.o ] && [ file exists $tmpdir/sh2p.o ] } {
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
if [ string match $support_protected "no" ] {
setup_xfail $target_triplet
}
}
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o xcoff
} else {
visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o elfvsb
}
} else {
unresolved "visibility ($visibility) (PIC main)"
}
}
}
if [istarget mips*-*-*] {
set picflag ""
} else {
# Unfortunately, the gcc argument is -fpic and the cc argument is
# -KPIC. We have to try both.
set picflag "-fpic"
send_log "$CC $picflag\n"
verbose "$CC $picflag"
catch "exec $CC $picflag" exec_output
send_log "$exec_output\n"
verbose "--" "$exec_output"
if { [string match "*illegal option*" $exec_output] \
|| [string match "*option ignored*" $exec_output] \
|| [string match "*unrecognized option*" $exec_output] \
|| [string match "*passed to ld*" $exec_output] } {
if [istarget *-*-sunos4*] {
set picflag "-pic"
} else {
set picflag "-KPIC"
}
}
}
verbose "Using $picflag to compile PIC code"
visibility_run hidden
visibility_run hidden_normal
visibility_run hidden_undef
visibility_run hidden_undef_def
visibility_run hidden_weak
visibility_run protected
visibility_run protected_undef
visibility_run protected_undef_def
visibility_run protected_weak
visibility_run normal
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
# Remove the temporary directory.
catch "exec rm -rf $tmpdir" exec_status
}

View File

@ -0,0 +1,178 @@
#ifdef PROTECTED_CHECK
#include <features.h>
#include <stdio.h>
int
main (void)
{
#if defined (__GLIBC__) && (__GLIBC__ > 2 \
|| (__GLIBC__ == 2 \
&& __GLIBC_MINOR__ >= 2))
puts ("yes");
#else
puts ("no");
#endif
return 0;
}
#else
/* This is the main program for the shared library test. */
#include <stdio.h>
int mainvar = 1;
int overriddenvar = 2;
extern int shlibvar1;
extern int shlib_mainvar ();
extern int shlib_overriddenvar ();
extern int shlib_shlibvar1 ();
extern int shlib_shlibvar2 ();
extern int shlib_shlibcall ();
extern int shlib_maincall ();
extern int shlib_checkfunptr1 ();
extern int shlib_checkfunptr2 ();
extern int (*shlib_getfunptr1 ()) ();
extern int (*shlib_getfunptr2 ()) ();
extern int shlib_check ();
extern int shlib_shlibcall2 ();
extern int visibility_check ();
extern int visibility_checkfunptr ();
extern void *visibility_funptr ();
extern int visibility_checkvar ();
extern int visibility_checkvarptr ();
extern int visibility_varval ();
extern void *visibility_varptr ();
#ifdef HIDDEN_WEAK_TEST
#define WEAK_TEST
#endif
#ifdef PROTECTED_WEAK_TEST
#define WEAK_TEST
#endif
#ifdef PROTECTED_UNDEF_TEST
#define PROTECTED_TEST
#endif
#ifndef WEAK_TEST
extern int visibility ();
extern int visibility_var;
#endif
#if !defined (HIDDEN_TEST) && defined (PROTECTED_TEST)
int
visibility ()
{
return 1;
}
static int
main_visibility_check ()
{
return visibility_funptr () != visibility;
}
int visibility_var = 1;
static int
main_visibility_checkvar ()
{
return visibility_varval () != visibility_var
&& visibility_varptr () != &visibility_var;
}
#else
static int
main_visibility_check ()
{
#ifdef WEAK_TEST
return visibility_funptr () == NULL;
#else
return visibility_funptr () == visibility;
#endif
}
static int
main_visibility_checkvar ()
{
#ifdef WEAK_TEST
return visibility_varval () == 0
&& visibility_varptr () == NULL;
#else
return visibility_varval () == visibility_var
&& visibility_varptr () == &visibility_var;
#endif
}
#endif
/* This function is called by the shared library. */
int
main_called ()
{
return 6;
}
/* This function overrides a function in the shared library. */
int
shlib_overriddencall2 ()
{
return 8;
}
int
main ()
{
int (*p) ();
printf ("mainvar == %d\n", mainvar);
printf ("overriddenvar == %d\n", overriddenvar);
printf ("shlibvar1 == %d\n", shlibvar1);
#ifndef XCOFF_TEST
printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
#endif
printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
#ifndef XCOFF_TEST
printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ());
printf ("shlib_maincall () == %d\n", shlib_maincall ());
#endif
printf ("main_called () == %d\n", main_called ());
printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n",
shlib_checkfunptr1 (shlib_shlibvar1));
#ifndef XCOFF_TEST
printf ("shlib_checkfunptr2 (main_called) == %d\n",
shlib_checkfunptr2 (main_called));
#endif
p = shlib_getfunptr1 ();
printf ("shlib_getfunptr1 () ");
if (p == shlib_shlibvar1)
printf ("==");
else
printf ("!=");
printf (" shlib_shlibvar1\n");
#ifndef XCOFF_TEST
p = shlib_getfunptr2 ();
printf ("shlib_getfunptr2 () ");
if (p == main_called)
printf ("==");
else
printf ("!=");
printf (" main_called\n");
#endif
printf ("shlib_check () == %d\n", shlib_check ());
printf ("visibility_check () == %d\n", visibility_check ());
printf ("visibility_checkfunptr () == %d\n",
visibility_checkfunptr ());
printf ("main_visibility_check () == %d\n", main_visibility_check ());
printf ("visibility_checkvar () == %d\n", visibility_checkvar ());
printf ("visibility_checkvarptr () == %d\n",
visibility_checkvarptr ());
printf ("main_visibility_checkvar () == %d\n",
main_visibility_checkvar ());
return 0;
}
#endif

View File

@ -0,0 +1,324 @@
#ifndef NULL
#define NULL ((void *) 0)
#endif
/* This is part of the shared library ld test. This file becomes part
of a shared library. */
/* This variable is supplied by the main program. */
#ifndef XCOFF_TEST
extern int mainvar;
#endif
/* This variable is defined in the shared library, and overridden by
the main program. */
#ifndef XCOFF_TEST
int overriddenvar = -1;
#endif
/* This variable is defined in the shared library. */
int shlibvar1 = 3;
/* This variable is defined by another object in the shared library. */
extern int shlibvar2;
/* These functions return the values of the above variables as seen in
the shared library. */
#ifndef XCOFF_TEST
int
shlib_mainvar ()
{
return mainvar;
}
#endif
#ifndef XCOFF_TEST
int
shlib_overriddenvar ()
{
return overriddenvar;
}
#endif
int
shlib_shlibvar1 ()
{
return shlibvar1;
}
int
shlib_shlibvar2 ()
{
return shlibvar2;
}
/* This function calls a function defined by another object in the
shared library. */
extern int shlib_shlibcalled ();
int
shlib_shlibcall ()
{
return shlib_shlibcalled ();
}
#ifndef XCOFF_TEST
/* This function calls a function defined in this object in the shared
library. The main program will override the called function. */
extern int shlib_overriddencall2 ();
int
shlib_shlibcall2 ()
{
return shlib_overriddencall2 ();
}
int
shlib_overriddencall2 ()
{
return 7;
}
#endif
/* This function calls a function defined by the main program. */
#ifndef XCOFF_TEST
extern int main_called ();
int
shlib_maincall ()
{
return main_called ();
}
#endif
/* This function is passed a function pointer to shlib_mainvar. It
confirms that the pointer compares equally. */
int
shlib_checkfunptr1 (p)
int (*p) ();
{
return p == shlib_shlibvar1;
}
/* This function is passed a function pointer to main_called. It
confirms that the pointer compares equally. */
#ifndef XCOFF_TEST
int
shlib_checkfunptr2 (p)
int (*p) ();
{
return p == main_called;
}
#endif
/* This function returns a pointer to shlib_mainvar. */
int
(*shlib_getfunptr1 ()) ()
{
return shlib_shlibvar1;
}
/* This function returns a pointer to main_called. */
#ifndef XCOFF_TEST
int
(*shlib_getfunptr2 ()) ()
{
return main_called;
}
#endif
/* This function makes sure that constant data and local functions
work. */
#ifndef __STDC__
#define const
#endif
static int i = 6;
static const char *str = "Hello, world\n";
int
shlib_check ()
{
const char *s1, *s2;
if (i != 6)
return 0;
/* To isolate the test, don't rely on any external functions, such
as strcmp. */
s1 = "Hello, world\n";
s2 = str;
while (*s1 != '\0')
if (*s1++ != *s2++)
return 0;
if (*s2 != '\0')
return 0;
if (shlib_shlibvar1 () != 3)
return 0;
return 1;
}
#ifdef HIDDEN_WEAK_TEST
#define HIDDEN_UNDEF_TEST
#define WEAK_TEST
#endif
#ifdef PROTECTED_WEAK_TEST
#define PROTECTED_UNDEF_TEST
#define WEAK_TEST
#endif
#if defined (HIDDEN_UNDEF_TEST) || defined (PROTECTED_UNDEF_TEST)
extern int visibility ();
#else
int
visibility ()
{
return 2;
}
#endif
#ifdef HIDDEN_NORMAL_TEST
asm (".hidden visibility_normal");
int
visibility_normal ()
{
return 2;
}
#endif
int
visibility_checkfunptr ()
{
#ifdef WEAK_TEST
return 1;
#else
#ifdef HIDDEN_NORMAL_TEST
int (*v) () = visibility_normal;
#else
int (*v) () = visibility;
#endif
return (*v) () == 2;
#endif
}
int
visibility_check ()
{
#ifdef WEAK_TEST
if (&visibility)
return visibility () == 1;
else
return 1;
#else
#ifdef HIDDEN_NORMAL_TEST
return visibility_normal () == 2;
#else
return visibility () == 2;
#endif
#endif
}
void *
visibility_funptr ()
{
#ifdef WEAK_TEST
if (&visibility == NULL)
return NULL;
else
#endif
return visibility;
}
#if defined (HIDDEN_UNDEF_TEST) || defined (PROTECTED_UNDEF_TEST)
extern int visibility_var;
#else
int visibility_var = 2;
#endif
#ifdef HIDDEN_NORMAL_TEST
asm (".hidden visibility_var_normal");
int visibility_var_normal = 2;
#endif
int
visibility_checkvarptr ()
{
#ifdef WEAK_TEST
if (&visibility_var)
return visibility_var == 1;
else
return 1;
#else
#ifdef HIDDEN_NORMAL_TEST
int *v = &visibility_var_normal;
#else
int *v = &visibility_var;
#endif
return *v == 2;
#endif
}
int
visibility_checkvar ()
{
#ifdef WEAK_TEST
return 1;
#else
#ifdef HIDDEN_NORMAL_TEST
return visibility_var_normal == 2;
#else
return visibility_var == 2;
#endif
#endif
}
void *
visibility_varptr ()
{
#ifdef WEAK_TEST
if (&visibility_var == NULL)
return NULL;
else
#endif
return &visibility_var;
}
int
visibility_varval ()
{
#ifdef WEAK_TEST
if (&visibility_var == NULL)
return 0;
else
#endif
return visibility_var;
}
#if defined (HIDDEN_TEST) || defined (HIDDEN_UNDEF_TEST)
asm (".hidden visibility");
asm (".hidden visibility_var");
#else
#if defined (PROTECTED_TEST) || defined (PROTECTED_UNDEF_TEST) || defined (PROTECTED_WEAK_TEST)
asm (".protected visibility");
asm (".protected visibility_var");
#endif
#endif
#ifdef WEAK_TEST
asm (".weak visibility");
asm (".weak visibility_var");
#endif

View File

@ -0,0 +1,24 @@
/* This is part of the shared library ld test. This file becomes part
of a shared library. */
/* This variable is defined here, and referenced by another file in
the shared library. */
int shlibvar2 = 4;
/* This function is called by another file in the shared library. */
int
shlib_shlibcalled ()
{
return 5;
}
#ifdef DSO_DEFINE_TEST
int
visibility ()
{
return 2;
}
int visibility_var = 2;
#endif

View File

@ -85,6 +85,7 @@ proc default_ld_link { ld target objects } {
global HOSTING_LIBS
global LIBS
global host_triplet
global link_output
set objs "$HOSTING_CRT0 $objects"
set libs "$LIBS $HOSTING_LIBS"
@ -98,12 +99,12 @@ proc default_ld_link { ld target objects } {
verbose -log "$ld $HOSTING_EMU $flags -o $target $objs $libs"
catch "exec $ld $HOSTING_EMU $flags -o $target $objs $libs" exec_output
set exec_output [prune_warnings $exec_output]
if [string match "" $exec_output] then {
catch "exec $ld $HOSTING_EMU $flags -o $target $objs $libs" link_output
set exec_output [prune_warnings $link_output]
if [string match "" $link_output] then {
return 1
} else {
verbose -log "$exec_output"
verbose -log "$link_output"
return 0
}
}
@ -114,7 +115,8 @@ proc default_ld_link { ld target objects } {
#
proc default_ld_simple_link { ld target objects } {
global host_triplet
global link_output
if { [which $ld] == 0 } then {
perror "$ld does not exist"
return 0
@ -124,8 +126,8 @@ proc default_ld_simple_link { ld target objects } {
verbose -log "$ld $flags -o $target $objects"
catch "exec $ld $flags -o $target $objects" exec_output
set exec_output [prune_warnings $exec_output]
catch "exec $ld $flags -o $target $objects" link_output
set exec_output [prune_warnings $link_output]
# We don't care if we get a warning about a non-existent start
# symbol, since the default linker script might use ENTRY.

View File

@ -1,3 +1,16 @@
2000-10-17 Philip Blundell <pb@futuretv.com>
* cp-demangle.c, dyn-string.c, cplus-dem.c: Update from trunk
version.
* testsuite/demangle-expected, testsuite/regress-demangle:
Likewise.
From 2000-06-04 Alex Samuel <samuel@codesourcery.com>
* Makefile.in (CFILES): Add cp-demangle.c and dyn-string.c.
(REQUIRED_OFILES): Add cp-demangle.o and dyn-string.o.
(cp-demangle.o): New dependency.
(dyn-string.o): Likewise.
Thu Mar 16 01:33:58 2000 Jeffrey A Law (law@cygnus.com)
* Makefile.in (partition.o): Depend on config.h

View File

@ -1,6 +1,6 @@
#
# Makefile
# Copyright (C) 1990, 91 - 99, 2000
# Copyright (C) 1990, 91, 00 - 99, 2000
# Free Software Foundation
#
# This file is part of the libiberty library.
@ -124,7 +124,8 @@ HFILES = alloca-conf.h
# (alphabetical), and add them to REQUIRED_OFILES or funcs in
# configure.in.
CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \
bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c fdmatch.c \
bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c \
cp-demangle.c dyn-string.c fdmatch.c \
fnmatch.c getcwd.c getpwd.c getopt.c getopt1.c getpagesize.c \
getruntime.c floatformat.c hashtab.c hex.c index.c insque.c memchr.c \
memcmp.c memcpy.c memmove.c memset.c mkstemps.c objalloc.c obstack.c \
@ -136,10 +137,10 @@ CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \
xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c
# These are always included in the library.
REQUIRED_OFILES = argv.o choose-temp.o concat.o cplus-dem.o \
fdmatch.o fnmatch.o getopt.o getopt1.o getpwd.o getruntime.o hashtab.o \
hex.o floatformat.o objalloc.o obstack.o partition.o pexecute.o spaces.o \
splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o \
REQUIRED_OFILES = argv.o choose-temp.o concat.o cplus-dem.o cp-demangle.o \
dyn-string.o fdmatch.o fnmatch.o getopt.o getopt1.o getpwd.o getruntime.o \
hashtab.o hex.o floatformat.o objalloc.o obstack.o partition.o pexecute.o \
spaces.o splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o \
xmemdup.o xstrdup.o xstrerror.o
$(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(ALLOCA)
@ -259,6 +260,8 @@ choose-temp.o: config.h
clock.o: config.h
concat.o: $(INCDIR)/libiberty.h
cplus-dem.o: config.h $(INCDIR)/demangle.h
cp-demangle.o: config.h $(INCDIR)/dyn-string.h $(INCDIR)/demangle.h
dyn-string.o: config.h $(INCDIR)/dyn-string.h
fdmatch.o: $(INCDIR)/libiberty.h
fnmatch.o: config.h $(INCDIR)/fnmatch.h
getcwd.o: config.h

3409
gnu/dist/toolchain/libiberty/cp-demangle.c vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -252,6 +252,55 @@ typedef enum type_kind_t
tk_real
} type_kind_t;
struct demangler_engine libiberty_demanglers[] =
{
{
AUTO_DEMANGLING_STYLE_STRING,
auto_demangling,
"Automatic selection based on executable"
}
,
{
GNU_DEMANGLING_STYLE_STRING,
gnu_demangling,
"GNU (g++) style demangling"
}
,
{
LUCID_DEMANGLING_STYLE_STRING,
lucid_demangling,
"Lucid (lcc) style demangling"
}
,
{
ARM_DEMANGLING_STYLE_STRING,
arm_demangling,
"ARM style demangling"
}
,
{
HP_DEMANGLING_STYLE_STRING,
hp_demangling,
"HP (aCC) style demangling"
}
,
{
EDG_DEMANGLING_STYLE_STRING,
edg_demangling,
"EDG style demangling"
}
,
{
GNU_NEW_ABI_DEMANGLING_STYLE_STRING,
gnu_new_abi_demangling,
"GNU (g++) new-ABI-style demangling"
}
,
{
NULL, unknown_demangling, NULL
}
};
#define STRING_EMPTY(str) ((str) -> b == (str) -> p)
#define PREPEND_BLANK(str) {if (!STRING_EMPTY(str)) \
string_prepend(str, " ");}
@ -268,12 +317,21 @@ typedef enum type_kind_t
/* Prototypes for local functions */
static void
delete_work_stuff PARAMS ((struct work_stuff *));
static void
delete_non_B_K_work_stuff PARAMS ((struct work_stuff *));
static char *
mop_up PARAMS ((struct work_stuff *, string *, int));
static void
squangle_mop_up PARAMS ((struct work_stuff *));
static void
work_stuff_copy_to_from PARAMS ((struct work_stuff *, struct work_stuff *));
#if 0
static int
demangle_method_args PARAMS ((struct work_stuff *, const char **, string *));
@ -379,6 +437,10 @@ static void
demangle_function_name PARAMS ((struct work_stuff *, const char **, string *,
const char *));
static int
iterate_demangle_function PARAMS ((struct work_stuff *,
const char **, string *, const char *));
static void
remember_type PARAMS ((struct work_stuff *, const char *, int));
@ -636,8 +698,8 @@ cplus_demangle_opname (opname, result, options)
}
}
else if (opname[0] == '_' && opname[1] == '_'
&& opname[2] >= 'a' && opname[2] <= 'z'
&& opname[3] >= 'a' && opname[3] <= 'z')
&& islower((unsigned char)opname[2])
&& islower((unsigned char)opname[3]))
{
if (opname[4] == '\0')
{
@ -733,6 +795,7 @@ cplus_demangle_opname (opname, result, options)
return ret;
}
/* Takes operator name as e.g. "++" and returns mangled
operator name (e.g. "postincrement_expr"), or NULL if not found.
@ -758,6 +821,40 @@ cplus_mangle_opname (opname, options)
return (0);
}
/* Add a routine to set the demangling style to be sure it is valid and
allow for any demangler initialization that maybe necessary. */
enum demangling_styles
cplus_demangle_set_style (style)
enum demangling_styles style;
{
struct demangler_engine *demangler = libiberty_demanglers;
for (; demangler->demangling_style != unknown_demangling; ++demangler)
if (style == demangler->demangling_style)
{
current_demangling_style = style;
return current_demangling_style;
}
return unknown_demangling;
}
/* Do string name to style translation */
enum demangling_styles
cplus_demangle_name_to_style (name)
const char *name;
{
struct demangler_engine *demangler = libiberty_demanglers;
for (; demangler->demangling_style != unknown_demangling; ++demangler)
if (strcmp (name, demangler->demangling_style_name) == 0)
return demangler->demangling_style;
return unknown_demangling;
}
/* char *cplus_demangle (const char *mangled, int options)
If MANGLED is a mangled function name produced by GNU C++, then
@ -798,6 +895,10 @@ cplus_demangle (mangled, options)
if ((work -> options & DMGL_STYLE_MASK) == 0)
work -> options |= (int) current_demangling_style & DMGL_STYLE_MASK;
/* The new-ABI demangling is implemented elsewhere. */
if (GNU_NEW_ABI_DEMANGLING)
return cplus_demangle_new_abi (mangled);
ret = internal_cplus_demangle (work, mangled);
squangle_mop_up (work);
return (ret);
@ -893,16 +994,85 @@ squangle_mop_up (work)
}
}
/* Clear out any mangled storage */
static char *
mop_up (work, declp, success)
struct work_stuff *work;
string *declp;
int success;
/* Copy the work state and storage. */
static void
work_stuff_copy_to_from (to, from)
struct work_stuff *to;
struct work_stuff *from;
{
char *demangled = NULL;
int i;
delete_work_stuff (to);
/* Shallow-copy scalars. */
memcpy (to, from, sizeof (*to));
/* Deep-copy dynamic storage. */
if (from->typevec_size)
to->typevec
= (char **) xmalloc (from->typevec_size * sizeof (to->typevec[0]));
for (i = 0; i < from->ntypes; i++)
{
int len = strlen (from->typevec[i]) + 1;
to->typevec[i] = xmalloc (len);
memcpy (to->typevec[i], from->typevec[i], len);
}
if (from->ksize)
to->ktypevec
= (char **) xmalloc (from->ksize * sizeof (to->ktypevec[0]));
for (i = 0; i < from->numk; i++)
{
int len = strlen (from->ktypevec[i]) + 1;
to->ktypevec[i] = xmalloc (len);
memcpy (to->ktypevec[i], from->ktypevec[i], len);
}
if (from->bsize)
to->btypevec
= (char **) xmalloc (from->bsize * sizeof (to->btypevec[0]));
for (i = 0; i < from->numb; i++)
{
int len = strlen (from->btypevec[i]) + 1;
to->btypevec[i] = xmalloc (len);
memcpy (to->btypevec[i], from->btypevec[i], len);
}
if (from->ntmpl_args)
to->tmpl_argvec
= xmalloc (from->ntmpl_args * sizeof (to->tmpl_argvec[0]));
for (i = 0; i < from->ntmpl_args; i++)
{
int len = strlen (from->tmpl_argvec[i]) + 1;
to->tmpl_argvec[i] = xmalloc (len);
memcpy (to->tmpl_argvec[i], from->tmpl_argvec[i], len);
}
if (from->previous_argument)
{
to->previous_argument = (string*) xmalloc (sizeof (string));
string_init (to->previous_argument);
string_appends (to->previous_argument, from->previous_argument);
}
}
/* Delete dynamic stuff in work_stuff that is not to be re-used. */
static void
delete_non_B_K_work_stuff (work)
struct work_stuff *work;
{
/* Discard the remembered types, if any. */
forget_types (work);
@ -929,6 +1099,30 @@ mop_up (work, declp, success)
free ((char*) work->previous_argument);
work->previous_argument = NULL;
}
}
/* Delete all dynamic storage in work_stuff. */
static void
delete_work_stuff (work)
struct work_stuff *work;
{
delete_non_B_K_work_stuff (work);
squangle_mop_up (work);
}
/* Clear out any mangled storage */
static char *
mop_up (work, declp, success)
struct work_stuff *work;
string *declp;
int success;
{
char *demangled = NULL;
delete_non_B_K_work_stuff (work);
/* If demangling was successful, ensure that the demangled string is null
terminated and return it. Otherwise, free the demangling decl. */
@ -1154,7 +1348,7 @@ demangle_signature (work, mangled, declp)
break;
case '_':
if (GNU_DEMANGLING && expect_return_type)
if ((AUTO_DEMANGLING || GNU_DEMANGLING) && expect_return_type)
{
/* Read the return type. */
string return_type;
@ -1188,7 +1382,7 @@ demangle_signature (work, mangled, declp)
break;
case 'H':
if (GNU_DEMANGLING)
if (AUTO_DEMANGLING || GNU_DEMANGLING)
{
/* A G++ template function. Read the template arguments. */
success = demangle_template (work, mangled, declp, 0, 0,
@ -1433,6 +1627,11 @@ demangle_integral_value (work, mangled, s)
{
int value;
/* By default, we let the number decide whether we shall consume an
underscore. */
int consume_following_underscore = 0;
int leave_following_underscore = 0;
success = 0;
/* Negative numbers are indicated with a leading `m'. */
@ -1441,17 +1640,49 @@ demangle_integral_value (work, mangled, s)
string_appendn (s, "-", 1);
(*mangled)++;
}
else if (mangled[0][0] == '_' && mangled[0][1] == 'm')
{
/* Since consume_count_with_underscores does not handle the
`m'-prefix we must do it here, using consume_count and
adjusting underscores: we have to consume the underscore
matching the prepended one. */
consume_following_underscore = 1;
string_appendn (s, "-", 1);
(*mangled) += 2;
}
else if (**mangled == '_')
{
/* Do not consume a following underscore;
consume_following_underscore will consume what should be
consumed. */
leave_following_underscore = 1;
}
/* We must call consume_count if we expect to remove a trailing
underscore, since consume_count_with_underscores expects
the leading underscore (that we consumed) if it is to handle
multi-digit numbers. */
if (consume_following_underscore)
value = consume_count (mangled);
else
value = consume_count_with_underscores (mangled);
/* Read the rest of the number. */
value = consume_count_with_underscores (mangled);
if (value != -1)
{
char buf[INTBUF_SIZE];
sprintf (buf, "%d", value);
string_append (s, buf);
/* If the next character is an underscore, skip it. */
if (**mangled == '_')
/* Numbers not otherwise delimited, might have an underscore
appended as a delimeter, which we should skip.
??? This used to always remove a following underscore, which
is wrong. If other (arbitrary) cases are followed by an
underscore, we need to do something more radical. */
if ((value > 9 || consume_following_underscore)
&& ! leave_following_underscore
&& **mangled == '_')
(*mangled)++;
/* All is well. */
@ -1616,7 +1847,7 @@ demangle_template_value_parm (work, mangled, s, tk)
template parameters (e.g. S) is placed in TRAWNAME if TRAWNAME is
non-NULL. If IS_TYPE is nonzero, this template is a type template,
not a function template. If both IS_TYPE and REMEMBER are nonzero,
the tmeplate is remembered in the list of back-referenceable
the template is remembered in the list of back-referenceable
types. */
static int
@ -2148,6 +2379,86 @@ demangle_class (work, mangled, declp)
return (success);
}
/* Called when there's a "__" in the mangled name, with `scan' pointing to
the rightmost guess.
Find the correct "__"-sequence where the function name ends and the
signature starts, which is ambiguous with GNU mangling.
Call demangle_signature here, so we can make sure we found the right
one; *mangled will be consumed so caller will not make further calls to
demangle_signature. */
static int
iterate_demangle_function (work, mangled, declp, scan)
struct work_stuff *work;
const char **mangled;
string *declp;
const char *scan;
{
const char *mangle_init = *mangled;
int success = 0;
string decl_init;
struct work_stuff work_init;
if (*(scan + 2) == '\0')
return 0;
/* Do not iterate for some demangling modes, or if there's only one
"__"-sequence. This is the normal case. */
if (ARM_DEMANGLING || LUCID_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING
|| mystrstr (scan + 2, "__") == NULL)
{
demangle_function_name (work, mangled, declp, scan);
return 1;
}
/* Save state so we can restart if the guess at the correct "__" was
wrong. */
string_init (&decl_init);
string_appends (&decl_init, declp);
memset (&work_init, 0, sizeof work_init);
work_stuff_copy_to_from (&work_init, work);
/* Iterate over occurrences of __, allowing names and types to have a
"__" sequence in them. We must start with the first (not the last)
occurrence, since "__" most often occur between independent mangled
parts, hence starting at the last occurence inside a signature
might get us a "successful" demangling of the signature. */
while (scan[2])
{
demangle_function_name (work, mangled, declp, scan);
success = demangle_signature (work, mangled, declp);
if (success)
break;
/* Reset demangle state for the next round. */
*mangled = mangle_init;
string_clear (declp);
string_appends (declp, &decl_init);
work_stuff_copy_to_from (work, &work_init);
/* Leave this underscore-sequence. */
scan += 2;
/* Scan for the next "__" sequence. */
while (*scan && (scan[0] != '_' || scan[1] != '_'))
scan++;
/* Move to last "__" in this sequence. */
while (*scan && *scan == '_')
scan++;
scan -= 2;
}
/* Delete saved state. */
delete_work_stuff (&work_init);
string_delete (&decl_init);
return success;
}
/*
LOCAL FUNCTION
@ -2163,6 +2474,8 @@ SYNOPSIS
DESCRIPTION
Consume and demangle the prefix of the mangled name.
While processing the function name root, arrange to call
demangle_signature if the root is ambiguous.
DECLP points to the string buffer into which demangled output is
placed. On entry, the buffer is empty. On exit it contains
@ -2336,29 +2649,16 @@ demangle_prefix (work, mangled, declp)
success = 0;
}
else
{
const char *tmp;
/* Look for the LAST occurrence of __, allowing names to
have the '__' sequence embedded in them. */
if (!(ARM_DEMANGLING || HP_DEMANGLING))
{
while ((tmp = mystrstr (scan + 2, "__")) != NULL)
scan = tmp;
}
if (*(scan + 2) == '\0')
success = 0;
else
demangle_function_name (work, mangled, declp, scan);
}
return iterate_demangle_function (work, mangled, declp, scan);
}
}
else if (*(scan + 2) != '\0')
{
/* Mangled name does not start with "__" but does have one somewhere
in there with non empty stuff after it. Looks like a global
function name. */
demangle_function_name (work, mangled, declp, scan);
function name. Iterate over all "__":s until the right
one is found. */
return iterate_demangle_function (work, mangled, declp, scan);
}
else
{
@ -2512,6 +2812,25 @@ gnu_special (work, mangled, declp)
success = 0;
break;
}
if (n > 10 && strncmp (*mangled, "_GLOBAL_", 8) == 0
&& (*mangled)[9] == 'N'
&& (*mangled)[8] == (*mangled)[10]
&& strchr (cplus_markers, (*mangled)[8]))
{
/* A member of the anonymous namespace. There's information
about what identifier or filename it was keyed to, but
it's just there to make the mangled name unique; we just
step over it. */
string_append (declp, "{anonymous}");
(*mangled) += n;
/* Now p points to the marker before the N, so we need to
update it to the first marker after what we consumed. */
p = strpbrk (*mangled, cplus_markers);
break;
}
string_appendn (declp, *mangled, n);
(*mangled) += n;
}
@ -2573,7 +2892,7 @@ gnu_special (work, mangled, declp)
success = demangle_template (work, mangled, declp, 0, 1, 1);
break;
default:
success = demangle_fund_type (work, mangled, declp);
success = do_type (work, mangled, declp);
break;
}
if (success && **mangled != '\0')
@ -3311,7 +3630,7 @@ demangle_fund_type (work, mangled, result)
int done = 0;
int success = 1;
char buf[10];
int dec = 0;
unsigned int dec = 0;
string btype;
type_kind_t tk = tk_integral;
@ -3455,7 +3774,7 @@ demangle_fund_type (work, mangled, result)
*mangled += min (strlen (*mangled), 2);
}
sscanf (buf, "%x", &dec);
sprintf (buf, "int%i_t", dec);
sprintf (buf, "int%u_t", dec);
APPEND_BLANK (result);
string_append (result, buf);
break;
@ -4188,8 +4507,8 @@ demangle_function_name (work, mangled, declp, scan)
}
}
else if (declp->b[0] == '_' && declp->b[1] == '_'
&& declp->b[2] >= 'a' && declp->b[2] <= 'z'
&& declp->b[3] >= 'a' && declp->b[3] <= 'z')
&& islower((unsigned char)declp->b[2])
&& islower((unsigned char)declp->b[3]))
{
if (declp->b[4] == '\0')
{
@ -4402,6 +4721,7 @@ static int flags = DMGL_PARAMS | DMGL_ANSI;
static void demangle_it PARAMS ((char *));
static void usage PARAMS ((FILE *, int)) ATTRIBUTE_NORETURN;
static void fatal PARAMS ((const char *)) ATTRIBUTE_NORETURN;
static void print_demangler_list PARAMS ((FILE *));
static void
demangle_it (mangled_name)
@ -4421,16 +4741,43 @@ demangle_it (mangled_name)
}
}
static void
print_demangler_list (stream)
FILE *stream;
{
struct demangler_engine *demangler;
fprintf (stream, "{%s", libiberty_demanglers->demangling_style_name);
for (demangler = libiberty_demanglers + 1;
demangler->demangling_style != unknown_demangling;
++demangler)
fprintf (stream, ",%s", demangler->demangling_style_name);
fprintf (stream, "}");
}
static void
usage (stream, status)
FILE *stream;
int status;
{
fprintf (stream, "\
Usage: %s [-_] [-n] [-s {gnu,lucid,arm,hp,edg}] [--strip-underscores]\n\
[--no-strip-underscores] [--format={gnu,lucid,arm,hp,edg}]\n\
[--help] [--version] [arg...]\n",
Usage: %s [-_] [-n] [--strip-underscores] [--no-strip-underscores] \n",
program_name);
fprintf (stream, "\
[-s ");
print_demangler_list (stream);
fprintf (stream, "]\n");
fprintf (stream, "\
[--format ");
print_demangler_list (stream);
fprintf (stream, "]\n");
fprintf (stream, "\
[--help] [--version] [arg...]\n");
exit (status);
}
@ -4468,6 +4815,9 @@ standard_symbol_characters PARAMS ((void));
static const char *
hp_symbol_characters PARAMS ((void));
static const char *
gnu_new_abi_symbol_characters PARAMS ((void));
/* Return the string of non-alnum characters that may occur
as a valid symbol component, in the standard assembler symbol
syntax. */
@ -4516,6 +4866,17 @@ hp_symbol_characters ()
}
/* Return the string of non-alnum characters that may occur
as a valid symbol component in the GNU standard C++ ABI mangling
scheme. */
static const char *
gnu_new_abi_symbol_characters ()
{
return "_";
}
extern int main PARAMS ((int, char **));
int
@ -4553,32 +4914,19 @@ main (argc, argv)
flags |= DMGL_JAVA;
break;
case 's':
if (strcmp (optarg, "gnu") == 0)
{
current_demangling_style = gnu_demangling;
}
else if (strcmp (optarg, "lucid") == 0)
{
current_demangling_style = lucid_demangling;
}
else if (strcmp (optarg, "arm") == 0)
{
current_demangling_style = arm_demangling;
}
else if (strcmp (optarg, "hp") == 0)
{
current_demangling_style = hp_demangling;
}
else if (strcmp (optarg, "edg") == 0)
{
current_demangling_style = edg_demangling;
}
else
{
fprintf (stderr, "%s: unknown demangling style `%s'\n",
program_name, optarg);
return (1);
}
{
enum demangling_styles style;
style = cplus_demangle_name_to_style (optarg);
if (style == unknown_demangling)
{
fprintf (stderr, "%s: unknown demangling style `%s'\n",
program_name, optarg);
return (1);
}
else
cplus_demangle_set_style (style);
}
break;
}
}
@ -4603,6 +4951,9 @@ main (argc, argv)
case hp_demangling:
valid_symbols = hp_symbol_characters ();
break;
case gnu_new_abi_demangling:
valid_symbols = gnu_new_abi_symbol_characters ();
break;
default:
/* Folks should explicitly indicate the appropriate alphabet for
each demangling. Providing a default would allow the
@ -4652,6 +5003,7 @@ main (argc, argv)
if (c == EOF)
break;
putchar (c);
fflush (stdout);
}
}

Some files were not shown because too many files have changed in this diff Show More