mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-22 00:38:06 +08:00
This commit was manufactured by cvs2svn to create branch 'add-fakeroots-
dir'. Sprout from kettenis_i386newframe-20030419-branch 2003-04-19 00:19:41 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch' Delete: Makefile.tpl README README-maintainer-mode config-ml.in config.guess config.if config.sub config/ChangeLog config/accross.m4 config/acinclude.m4 config/acx.m4 config/mh-armpic config/mh-cxux config/mh-cygwin config/mh-decstation config/mh-dgux386 config/mh-djgpp config/mh-elfalphapic config/mh-i370pic config/mh-ia64pic config/mh-interix config/mh-lynxrs6k config/mh-m68kpic config/mh-mingw32 config/mh-ncr3000 config/mh-necv4 config/mh-papic config/mh-ppcpic config/mh-s390pic config/mh-sco config/mh-solaris config/mh-sparcpic config/mh-sysv4 config/mh-sysv5 config/mh-x86pic config/mt-alphaieee config/mt-d30v config/mt-linux config/mt-netware config/mt-ospace config/mt-v810 config/mt-wince configure configure.in djunpack.bat etc/ChangeLog etc/Makefile.in etc/add-log.el etc/add-log.vi etc/configbuild.ein etc/configbuild.fig etc/configbuild.jin etc/configbuild.tin etc/configdev.ein etc/configdev.fig etc/configdev.jin etc/configdev.tin etc/configure etc/configure.in etc/configure.texi etc/fdl.texi etc/make-stds.texi etc/standards.texi etc/texi2pod.pl gettext.m4 include/COPYING include/ChangeLog include/MAINTAINERS include/alloca-conf.h include/ansidecl.h include/aout/ChangeLog include/aout/adobe.h include/aout/aout64.h include/aout/ar.h include/aout/dynix3.h include/aout/encap.h include/aout/host.h include/aout/hp.h include/aout/hp300hpux.h include/aout/hppa.h include/aout/ranlib.h include/aout/reloc.h include/aout/stab.def include/aout/stab_gnu.h include/aout/sun4.h include/bfdlink.h include/bin-bugs.h include/bout.h include/coff/ChangeLog include/coff/a29k.h include/coff/alpha.h include/coff/apollo.h include/coff/arm.h include/coff/aux-coff.h include/coff/ecoff.h include/coff/external.h include/coff/go32exe.h include/coff/h8300.h include/coff/h8500.h include/coff/i386.h include/coff/i860.h include/coff/i960.h include/coff/ia64.h include/coff/internal.h include/coff/m68k.h include/coff/m88k.h include/coff/mcore.h include/coff/mips.h include/coff/mipspe.h include/coff/or32.h include/coff/pe.h include/coff/powerpc.h include/coff/rs6000.h include/coff/rs6k64.h include/coff/sh.h include/coff/sparc.h include/coff/sym.h include/coff/symconst.h include/coff/ti.h include/coff/tic30.h include/coff/tic4x.h include/coff/tic54x.h include/coff/tic80.h include/coff/w65.h include/coff/we32k.h include/coff/xcoff.h include/coff/z8k.h include/demangle.h include/dis-asm.h include/dyn-string.h include/elf/ChangeLog include/elf/alpha.h include/elf/arc.h include/elf/arm.h include/elf/avr.h include/elf/common.h include/elf/cris.h include/elf/d10v.h include/elf/d30v.h include/elf/dlx.h include/elf/dwarf.h include/elf/dwarf2.h include/elf/external.h include/elf/fr30.h include/elf/frv.h include/elf/h8.h include/elf/hppa.h include/elf/i370.h include/elf/i386.h include/elf/i860.h include/elf/i960.h include/elf/ia64.h include/elf/internal.h include/elf/ip2k.h include/elf/iq2000.h include/elf/m32r.h include/elf/m68hc11.h include/elf/m68k.h include/elf/mcore.h include/elf/mips.h include/elf/mmix.h include/elf/mn10200.h include/elf/mn10300.h include/elf/msp430.h include/elf/openrisc.h include/elf/or32.h include/elf/pj.h include/elf/ppc.h include/elf/ppc64.h include/elf/reloc-macros.h include/elf/s390.h include/elf/sh.h include/elf/sparc.h include/elf/v850.h include/elf/vax.h include/elf/x86-64.h include/elf/xstormy16.h include/elf/xtensa.h include/fibheap.h include/filenames.h include/floatformat.h include/fnmatch.h include/fopen-bin.h include/fopen-same.h include/fopen-vms.h include/gdb/ChangeLog include/gdb/callback.h include/gdb/remote-sim.h include/gdb/signals.h include/gdb/sim-arm.h include/gdb/sim-d10v.h include/gdb/sim-h8300.h include/gdb/sim-sh.h include/gdbm.h include/getopt.h include/hashtab.h include/hp-symtab.h include/ieee.h include/libiberty.h include/md5.h include/mpw/ChangeLog include/mpw/README include/mpw/dir.h include/mpw/dirent.h include/mpw/fcntl.h include/mpw/grp.h include/mpw/mpw.h include/mpw/pwd.h include/mpw/spin.h include/mpw/stat.h include/mpw/sys/file.h include/mpw/sys/param.h include/mpw/sys/resource.h include/mpw/sys/stat.h include/mpw/sys/time.h include/mpw/sys/types.h include/mpw/utime.h include/mpw/varargs.h include/nlm/ChangeLog include/nlm/alpha-ext.h include/nlm/common.h include/nlm/external.h include/nlm/i386-ext.h include/nlm/internal.h include/nlm/ppc-ext.h include/nlm/sparc32-ext.h include/oasys.h include/objalloc.h include/obstack.h include/opcode/ChangeLog include/opcode/a29k.h include/opcode/alpha.h include/opcode/arc.h include/opcode/arm.h include/opcode/avr.h include/opcode/cgen.h include/opcode/convex.h include/opcode/cris.h include/opcode/d10v.h include/opcode/d30v.h include/opcode/dlx.h include/opcode/h8300.h include/opcode/hppa.h include/opcode/i370.h include/opcode/i386.h include/opcode/i860.h include/opcode/i960.h include/opcode/ia64.h include/opcode/m68hc11.h include/opcode/m68k.h include/opcode/m88k.h include/opcode/mips.h include/opcode/mmix.h include/opcode/mn10200.h include/opcode/mn10300.h include/opcode/msp430.h include/opcode/np1.h include/opcode/ns32k.h include/opcode/or32.h include/opcode/pdp11.h include/opcode/pj.h include/opcode/pn.h include/opcode/ppc.h include/opcode/pyr.h include/opcode/s390.h include/opcode/sparc.h include/opcode/tahoe.h include/opcode/tic30.h include/opcode/tic4x.h include/opcode/tic54x.h include/opcode/tic80.h include/opcode/v850.h include/opcode/vax.h include/os9k.h include/partition.h include/progress.h include/safe-ctype.h include/sort.h include/splay-tree.h include/symcat.h include/ternary.h include/xregex.h include/xregex2.h include/xtensa-config.h include/xtensa-isa-internal.h include/xtensa-isa.h install-sh libtool.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh ltconfig ltmain.sh makefile.vms missing mkdep mkinstalldirs move-if-change mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install setup.com src-release symlink-tree texinfo/texinfo.tex ylwrap
This commit is contained in:
parent
cd4993ccbb
commit
9faf347a36
1469
Makefile.tpl
1469
Makefile.tpl
File diff suppressed because it is too large
Load Diff
47
README
47
README
@ -1,47 +0,0 @@
|
|||||||
README for GNU development tools
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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
|
|
||||||
COPYING.LIB in the various directories, for a description of the
|
|
||||||
GNU General Public License terms under which you can copy the files.
|
|
||||||
|
|
||||||
REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
|
|
||||||
on where and how to report problems.
|
|
@ -1,14 +0,0 @@
|
|||||||
|
|
||||||
Notes on enabling maintainer mode
|
|
||||||
|
|
||||||
Note that if you configure with --enable-maintainer-mode, you will need
|
|
||||||
special versions of automake, autoconf, libtool and gettext. You will
|
|
||||||
find the sources for these in ftp://sourceware.cygnus.com/pub/binutils.
|
|
||||||
|
|
||||||
Note - "make distclean" does not work with maintainer mode enabled.
|
|
||||||
The Makefiles in the some of the po/ subdirectories depend upon the
|
|
||||||
Makefiles in their parent directories, and distclean will delete the
|
|
||||||
Makefiles in the parent directories before running the Makefiles in
|
|
||||||
the child directories. There is no easy way around this (short of
|
|
||||||
changing the automake macros) as these dependencies need to exist in
|
|
||||||
order to correctly build the NLS files.
|
|
843
config-ml.in
843
config-ml.in
@ -1,843 +0,0 @@
|
|||||||
# Configure fragment invoked in the post-target section for subdirs
|
|
||||||
# wanting multilib support.
|
|
||||||
#
|
|
||||||
# It is advisable to support a few --enable/--disable options to let the
|
|
||||||
# user select which libraries s/he really wants.
|
|
||||||
#
|
|
||||||
# Subdirectories wishing to use multilib should put the following lines
|
|
||||||
# in the "post-target" section of configure.in.
|
|
||||||
#
|
|
||||||
# if [ "${srcdir}" = "." ] ; then
|
|
||||||
# if [ "${with_target_subdir}" != "." ] ; then
|
|
||||||
# . ${with_multisrctop}../../config-ml.in
|
|
||||||
# else
|
|
||||||
# . ${with_multisrctop}../config-ml.in
|
|
||||||
# fi
|
|
||||||
# else
|
|
||||||
# . ${srcdir}/../config-ml.in
|
|
||||||
# fi
|
|
||||||
#
|
|
||||||
# See librx/configure.in in the libg++ distribution for an example of how
|
|
||||||
# to handle autoconf'd libraries.
|
|
||||||
#
|
|
||||||
# Things are complicated because 6 separate cases must be handled:
|
|
||||||
# 2 (native, cross) x 3 (absolute-path, relative-not-dot, dot) = 6.
|
|
||||||
#
|
|
||||||
# srcdir=. is special. It must handle make programs that don't handle VPATH.
|
|
||||||
# To implement this, a symlink tree is built for each library and for each
|
|
||||||
# multilib subdir.
|
|
||||||
#
|
|
||||||
# The build tree is layed out as
|
|
||||||
#
|
|
||||||
# ./
|
|
||||||
# libg++
|
|
||||||
# newlib
|
|
||||||
# m68020/
|
|
||||||
# libg++
|
|
||||||
# newlib
|
|
||||||
# m68881/
|
|
||||||
# libg++
|
|
||||||
# newlib
|
|
||||||
#
|
|
||||||
# The nice feature about this arrangement is that inter-library references
|
|
||||||
# in the build tree work without having to care where you are. Note that
|
|
||||||
# inter-library references also work in the source tree because symlink trees
|
|
||||||
# are built when srcdir=.
|
|
||||||
#
|
|
||||||
# Unfortunately, trying to access the libraries in the build tree requires
|
|
||||||
# the user to manually choose which library to use as GCC won't be able to
|
|
||||||
# find the right one. This is viewed as the lesser of two evils.
|
|
||||||
#
|
|
||||||
# Configure variables:
|
|
||||||
# ${with_target_subdir} = "." for native, or ${target_alias} for cross.
|
|
||||||
# Set by top level Makefile.
|
|
||||||
# ${with_multisrctop} = how many levels of multilibs there are in the source
|
|
||||||
# tree. It exists to handle the case of configuring in the source tree:
|
|
||||||
# ${srcdir} is not constant.
|
|
||||||
# ${with_multisubdir} = name of multilib subdirectory (eg: m68020/m68881).
|
|
||||||
#
|
|
||||||
# Makefile variables:
|
|
||||||
# MULTISRCTOP = number of multilib levels in source tree (+1 if cross)
|
|
||||||
# (FIXME: note that this is different than ${with_multisrctop}. Check out.).
|
|
||||||
# MULTIBUILDTOP = number of multilib levels in build tree
|
|
||||||
# MULTIDIRS = list of multilib subdirs (eg: m68000 m68020 ...)
|
|
||||||
# (only defined in each library's main Makefile).
|
|
||||||
# MULTISUBDIR = installed subdirectory name with leading '/' (eg: /m68000)
|
|
||||||
# (only defined in each multilib subdir).
|
|
||||||
|
|
||||||
# FIXME: Multilib is currently disabled by default for everything other than
|
|
||||||
# newlib. It is up to each target to turn on multilib support for the other
|
|
||||||
# libraries as desired.
|
|
||||||
|
|
||||||
# We have to handle being invoked by both Cygnus configure and Autoconf.
|
|
||||||
#
|
|
||||||
# Cygnus configure incoming variables:
|
|
||||||
# srcdir, subdir, host, arguments
|
|
||||||
#
|
|
||||||
# Autoconf incoming variables:
|
|
||||||
# srcdir, host, ac_configure_args
|
|
||||||
#
|
|
||||||
# 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}
|
|
||||||
ml_config_shell=${CONFIG_SHELL-/bin/sh}
|
|
||||||
ml_arguments="${ac_configure_args}"
|
|
||||||
ml_realsrcdir=${srcdir}
|
|
||||||
else
|
|
||||||
Makefile=${Makefile-Makefile}
|
|
||||||
ml_config_shell=${config_shell-/bin/sh}
|
|
||||||
ml_arguments="${arguments}"
|
|
||||||
if [ -n "${subdir}" -a "${subdir}" != "." ] ; then
|
|
||||||
ml_realsrcdir=${srcdir}/${subdir}
|
|
||||||
else
|
|
||||||
ml_realsrcdir=${srcdir}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Scan all the arguments and set all the ones we need.
|
|
||||||
|
|
||||||
ml_verbose=--verbose
|
|
||||||
for option in ${ml_arguments}
|
|
||||||
do
|
|
||||||
case $option in
|
|
||||||
--*) ;;
|
|
||||||
-*) option=-$option ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case $option in
|
|
||||||
--*=*)
|
|
||||||
optarg=`echo $option | sed -e 's/^[^=]*=//'`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case $option in
|
|
||||||
--disable-*)
|
|
||||||
enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'`
|
|
||||||
eval $enableopt=no
|
|
||||||
;;
|
|
||||||
--enable-*)
|
|
||||||
case "$option" in
|
|
||||||
*=*) ;;
|
|
||||||
*) optarg=yes ;;
|
|
||||||
esac
|
|
||||||
enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
|
|
||||||
eval $enableopt="$optarg"
|
|
||||||
;;
|
|
||||||
--norecursion | --no*)
|
|
||||||
ml_norecursion=yes
|
|
||||||
;;
|
|
||||||
--silent | --sil* | --quiet | --q*)
|
|
||||||
ml_verbose=--silent
|
|
||||||
;;
|
|
||||||
--verbose | --v | --verb*)
|
|
||||||
ml_verbose=--verbose
|
|
||||||
;;
|
|
||||||
--with-*)
|
|
||||||
case "$option" in
|
|
||||||
*=*) ;;
|
|
||||||
*) optarg=yes ;;
|
|
||||||
esac
|
|
||||||
withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
|
|
||||||
eval $withopt="$optarg"
|
|
||||||
;;
|
|
||||||
--without-*)
|
|
||||||
withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'`
|
|
||||||
eval $withopt=no
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# Only do this if --enable-multilib.
|
|
||||||
if [ "${enable_multilib}" = yes ]; then
|
|
||||||
|
|
||||||
# Compute whether this is the library's top level directory
|
|
||||||
# (ie: not a multilib subdirectory, and not a subdirectory like libg++/src).
|
|
||||||
# ${with_multisubdir} tells us we're in the right branch, but we could be
|
|
||||||
# in a subdir of that.
|
|
||||||
# ??? The previous version could void this test by separating the process into
|
|
||||||
# two files: one that only the library's toplevel configure.in ran (to
|
|
||||||
# configure the multilib subdirs), and another that all configure.in's ran to
|
|
||||||
# update the Makefile. It seemed reasonable to collapse all multilib support
|
|
||||||
# into one file, but it does leave us with having to perform this test.
|
|
||||||
ml_toplevel_p=no
|
|
||||||
if [ -z "${with_multisubdir}" ]; then
|
|
||||||
if [ "${srcdir}" = "." ]; then
|
|
||||||
# Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}.
|
|
||||||
# ${with_target_subdir} = "." for native, otherwise target alias.
|
|
||||||
if [ "${with_target_subdir}" = "." ]; then
|
|
||||||
if [ -f ${ml_realsrcdir}/../config-ml.in ]; then
|
|
||||||
ml_toplevel_p=yes
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ -f ${ml_realsrcdir}/../../config-ml.in ]; then
|
|
||||||
ml_toplevel_p=yes
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}.
|
|
||||||
if [ -f ${ml_realsrcdir}/../config-ml.in ]; then
|
|
||||||
ml_toplevel_p=yes
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If this is the library's top level directory, set multidirs to the
|
|
||||||
# multilib subdirs to support. This lives at the top because we need
|
|
||||||
# `multidirs' set right away.
|
|
||||||
|
|
||||||
if [ "${ml_toplevel_p}" = yes ]; then
|
|
||||||
|
|
||||||
multidirs=
|
|
||||||
for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
|
|
||||||
dir=`echo $i | sed -e 's/;.*$//'`
|
|
||||||
if [ "${dir}" = "." ]; then
|
|
||||||
true
|
|
||||||
else
|
|
||||||
if [ -z "${multidirs}" ]; then
|
|
||||||
multidirs="${dir}"
|
|
||||||
else
|
|
||||||
multidirs="${multidirs} ${dir}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# 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
|
|
||||||
old_multidirs=${multidirs}
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "${x}" in
|
|
||||||
*be*) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
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
|
|
||||||
if [ x"$enable_nofmult" = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*nofmult* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
m68*-*-*)
|
|
||||||
if [ x$enable_softfloat = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*soft-float* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_m68881 = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*m68881* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_m68000 = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*m68000* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_m68020 = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*m68020* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
mips*-*-*)
|
|
||||||
if [ x$enable_single_float = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*single* ) : ;;
|
|
||||||
*) 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
|
|
||||||
*el* ) : ;;
|
|
||||||
*eb* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_softfloat = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*soft-float* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
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 ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*soft-float* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_powercpu = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
power | */power | */power/* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_powerpccpu = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*powerpc* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_powerpcos = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*mcall-linux* | *mcall-solaris* ) : ;;
|
|
||||||
*) 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
|
|
||||||
*mlittle* | *mbig* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_sysv = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*mcall-sysv* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ x$enable_aix = xno ]
|
|
||||||
then
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*mcall-aix* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
sparc*-*-*)
|
|
||||||
case " $multidirs " in
|
|
||||||
*" m64 "*)
|
|
||||||
# We will not be able to create libraries with -m64 if
|
|
||||||
# we cannot even link a trivial program. It usually
|
|
||||||
# indicates the 64bit libraries are missing.
|
|
||||||
if echo 'main() {}' > conftest.c &&
|
|
||||||
${CC-gcc} -m64 conftest.c -o conftest; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
echo Could not link program with -m64, disabling it.
|
|
||||||
old_multidirs="${multidirs}"
|
|
||||||
multidirs=""
|
|
||||||
for x in ${old_multidirs}; do
|
|
||||||
case "$x" in
|
|
||||||
*m64* ) : ;;
|
|
||||||
*) multidirs="${multidirs} ${x}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
rm -f conftest.c conftest
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Remove extraneous blanks from multidirs.
|
|
||||||
# Tests like `if [ -n "$multidirs" ]' require it.
|
|
||||||
multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'`
|
|
||||||
|
|
||||||
# Add code to library's top level makefile to handle building the multilib
|
|
||||||
# subdirs.
|
|
||||||
|
|
||||||
cat > Multi.tem <<\EOF
|
|
||||||
|
|
||||||
PWD=$${PWDCMD-pwd}
|
|
||||||
|
|
||||||
# FIXME: There should be an @-sign in front of the `if'.
|
|
||||||
# Leave out until this is tested a bit more.
|
|
||||||
multi-do:
|
|
||||||
if [ -z "$(MULTIDIRS)" ]; then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
rootpre=`${PWD}`/; export rootpre; \
|
|
||||||
srcrootpre=`cd $(srcdir); ${PWD}`/; export srcrootpre; \
|
|
||||||
lib=`echo $${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \
|
|
||||||
compiler="$(CC)"; \
|
|
||||||
for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \
|
|
||||||
dir=`echo $$i | sed -e 's/;.*$$//'`; \
|
|
||||||
if [ "$${dir}" = "." ]; then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
if [ -d ../$${dir}/$${lib} ]; then \
|
|
||||||
flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
|
|
||||||
if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \
|
|
||||||
CFLAGS="$(CFLAGS) $${flags}" \
|
|
||||||
prefix="$(prefix)" \
|
|
||||||
exec_prefix="$(exec_prefix)" \
|
|
||||||
CXXFLAGS="$(CXXFLAGS) $${flags}" \
|
|
||||||
LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
|
|
||||||
LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \
|
|
||||||
LDFLAGS="$(LDFLAGS) $${flags}" \
|
|
||||||
DESTDIR="$(DESTDIR)" \
|
|
||||||
$(DO)); then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
else true; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
# FIXME: There should be an @-sign in front of the `if'.
|
|
||||||
# Leave out until this is tested a bit more.
|
|
||||||
multi-clean:
|
|
||||||
if [ -z "$(MULTIDIRS)" ]; then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
lib=`${PWD} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
|
|
||||||
for dir in Makefile $(MULTIDIRS); do \
|
|
||||||
if [ -f ../$${dir}/$${lib}/Makefile ]; then \
|
|
||||||
if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) $(DO)); \
|
|
||||||
then true; \
|
|
||||||
else exit 1; \
|
|
||||||
fi; \
|
|
||||||
else true; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat ${Makefile} Multi.tem > Makefile.tem
|
|
||||||
rm -f ${Makefile} Multi.tem
|
|
||||||
mv Makefile.tem ${Makefile}
|
|
||||||
|
|
||||||
fi # ${ml_toplevel_p} = yes
|
|
||||||
|
|
||||||
if [ "${ml_verbose}" = --verbose ]; then
|
|
||||||
echo "Adding multilib support to Makefile in ${ml_realsrcdir}"
|
|
||||||
if [ "${ml_toplevel_p}" = yes ]; then
|
|
||||||
echo "multidirs=${multidirs}"
|
|
||||||
fi
|
|
||||||
echo "with_multisubdir=${with_multisubdir}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${srcdir}" = "." ]; then
|
|
||||||
if [ "${with_target_subdir}" != "." ]; then
|
|
||||||
ml_srcdotdot="../"
|
|
||||||
else
|
|
||||||
ml_srcdotdot=""
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ml_srcdotdot=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${with_multisubdir}" ]; then
|
|
||||||
ml_subdir=
|
|
||||||
ml_builddotdot=
|
|
||||||
: # ml_srcdotdot= # already set
|
|
||||||
else
|
|
||||||
ml_subdir="/${with_multisubdir}"
|
|
||||||
# The '[^/][^/]*' appears that way to work around a SunOS sed bug.
|
|
||||||
ml_builddotdot=`echo ${with_multisubdir} | sed -e 's:[^/][^/]*:..:g'`/
|
|
||||||
if [ "$srcdir" = "." ]; then
|
|
||||||
ml_srcdotdot=${ml_srcdotdot}${ml_builddotdot}
|
|
||||||
else
|
|
||||||
: # ml_srcdotdot= # already set
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${ml_toplevel_p}" = yes ]; then
|
|
||||||
ml_do='$(MAKE)'
|
|
||||||
ml_clean='$(MAKE)'
|
|
||||||
else
|
|
||||||
ml_do=true
|
|
||||||
ml_clean=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# TOP is used by newlib and should not be used elsewhere for this purpose.
|
|
||||||
# MULTI{SRC,BUILD}TOP are the proper ones to use. MULTISRCTOP is empty
|
|
||||||
# when srcdir != builddir. MULTIBUILDTOP is always some number of ../'s.
|
|
||||||
# FIXME: newlib needs to be updated to use MULTI{SRC,BUILD}TOP so we can
|
|
||||||
# delete TOP. Newlib may wish to continue to use TOP for its own purposes
|
|
||||||
# of course.
|
|
||||||
# MULTIDIRS is non-empty for the cpu top level Makefile (eg: newlib/Makefile)
|
|
||||||
# and lists the subdirectories to recurse into.
|
|
||||||
# MULTISUBDIR is non-empty in each cpu subdirectory's Makefile
|
|
||||||
# (eg: newlib/h8300h/Makefile) and is the installed subdirectory name with
|
|
||||||
# a leading '/'.
|
|
||||||
# MULTIDO is used for targets like all, install, and check where
|
|
||||||
# $(FLAGS_TO_PASS) augmented with the subdir's compiler option is needed.
|
|
||||||
# MULTICLEAN is used for the *clean targets.
|
|
||||||
#
|
|
||||||
# ??? It is possible to merge MULTIDO and MULTICLEAN into one. They are
|
|
||||||
# currently kept separate because we don't want the *clean targets to require
|
|
||||||
# the existence of the compiler (which MULTIDO currently requires) and
|
|
||||||
# therefore we'd have to record the directory options as well as names
|
|
||||||
# (currently we just record the names and use --print-multi-lib to get the
|
|
||||||
# options).
|
|
||||||
|
|
||||||
sed -e "s:^TOP[ ]*=[ ]*\([./]*\)[ ]*$:TOP = ${ml_builddotdot}\1:" \
|
|
||||||
-e "s:^MULTISRCTOP[ ]*=.*$:MULTISRCTOP = ${ml_srcdotdot}:" \
|
|
||||||
-e "s:^MULTIBUILDTOP[ ]*=.*$:MULTIBUILDTOP = ${ml_builddotdot}:" \
|
|
||||||
-e "s:^MULTIDIRS[ ]*=.*$:MULTIDIRS = ${multidirs}:" \
|
|
||||||
-e "s:^MULTISUBDIR[ ]*=.*$:MULTISUBDIR = ${ml_subdir}:" \
|
|
||||||
-e "s:^MULTIDO[ ]*=.*$:MULTIDO = $ml_do:" \
|
|
||||||
-e "s:^MULTICLEAN[ ]*=.*$:MULTICLEAN = $ml_clean:" \
|
|
||||||
${Makefile} > Makefile.tem
|
|
||||||
rm -f ${Makefile}
|
|
||||||
mv Makefile.tem ${Makefile}
|
|
||||||
|
|
||||||
# If this is the library's top level, configure each multilib subdir.
|
|
||||||
# This is done at the end because this is the loop that runs configure
|
|
||||||
# in each multilib subdir and it seemed reasonable to finish updating the
|
|
||||||
# Makefile before going on to configure the subdirs.
|
|
||||||
|
|
||||||
if [ "${ml_toplevel_p}" = yes ]; then
|
|
||||||
|
|
||||||
# We must freshly configure each subdirectory. This bit of code is
|
|
||||||
# actually partially stolen from the main configure script. FIXME.
|
|
||||||
|
|
||||||
if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
|
|
||||||
|
|
||||||
if [ "${ml_verbose}" = --verbose ]; then
|
|
||||||
echo "Running configure in multilib subdirs ${multidirs}"
|
|
||||||
echo "pwd: `${PWDCMD-pwd}`"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ml_origdir=`${PWDCMD-pwd}`
|
|
||||||
ml_libdir=`echo $ml_origdir | sed -e 's,^.*/,,'`
|
|
||||||
# cd to top-level-build-dir/${with_target_subdir}
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
for ml_dir in ${multidirs}; do
|
|
||||||
|
|
||||||
if [ "${ml_verbose}" = --verbose ]; then
|
|
||||||
echo "Running configure in multilib subdir ${ml_dir}"
|
|
||||||
echo "pwd: `${PWDCMD-pwd}`"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d ${ml_dir} ]; then true; else
|
|
||||||
# ``mkdir -p ${ml_dir}'' See also mkinstalldirs.
|
|
||||||
pathcomp=""
|
|
||||||
for d in `echo ":${ml_dir}" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`; do
|
|
||||||
pathcomp="$pathcomp$d"
|
|
||||||
case "$pathcomp" in
|
|
||||||
-* ) pathcomp=./$pathcomp ;;
|
|
||||||
esac
|
|
||||||
if test ! -d "$pathcomp"; then
|
|
||||||
echo "mkdir $pathcomp" 1>&2
|
|
||||||
mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$?
|
|
||||||
fi
|
|
||||||
if test ! -d "$pathcomp"; then
|
|
||||||
exit $lasterr
|
|
||||||
fi
|
|
||||||
pathcomp="$pathcomp/"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ -d ${ml_dir}/${ml_libdir} ]; then true; else mkdir ${ml_dir}/${ml_libdir}; fi
|
|
||||||
|
|
||||||
# Eg: if ${ml_dir} = m68000/m68881, dotdot = ../../
|
|
||||||
dotdot=../`echo ${ml_dir} | sed -e 's|[^/]||g' -e 's|/|../|g'`
|
|
||||||
|
|
||||||
case ${srcdir} in
|
|
||||||
".")
|
|
||||||
echo Building symlink tree in `${PWDCMD-pwd}`/${ml_dir}/${ml_libdir}
|
|
||||||
if [ "${with_target_subdir}" != "." ]; then
|
|
||||||
ml_unsubdir="../"
|
|
||||||
else
|
|
||||||
ml_unsubdir=""
|
|
||||||
fi
|
|
||||||
(cd ${ml_dir}/${ml_libdir};
|
|
||||||
../${dotdot}${ml_unsubdir}symlink-tree ../${dotdot}${ml_unsubdir}${ml_libdir} "")
|
|
||||||
if [ -f ${ml_dir}/${ml_libdir}/Makefile ]; then
|
|
||||||
if [ x"${MAKE}" = x ]; then
|
|
||||||
(cd ${ml_dir}/${ml_libdir}; make distclean)
|
|
||||||
else
|
|
||||||
(cd ${ml_dir}/${ml_libdir}; ${MAKE} distclean)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
ml_newsrcdir="."
|
|
||||||
ml_srcdiroption=
|
|
||||||
multisrctop=${dotdot}
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
case "${srcdir}" in
|
|
||||||
/*) # absolute path
|
|
||||||
ml_newsrcdir=${srcdir}
|
|
||||||
;;
|
|
||||||
*) # otherwise relative
|
|
||||||
ml_newsrcdir=${dotdot}${srcdir}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
ml_srcdiroption="-srcdir=${ml_newsrcdir}"
|
|
||||||
multisrctop=
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case "${progname}" in
|
|
||||||
/*) ml_recprog=${progname} ;;
|
|
||||||
*) ml_recprog=${dotdot}${progname} ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# FIXME: POPDIR=${PWD=`pwd`} doesn't work here.
|
|
||||||
ML_POPDIR=`pwd`
|
|
||||||
cd ${ml_dir}/${ml_libdir}
|
|
||||||
|
|
||||||
if [ -f ${ml_newsrcdir}/configure ]; then
|
|
||||||
ml_recprog="${ml_newsrcdir}/configure --cache-file=../config.cache"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# find compiler flag corresponding to ${ml_dir}
|
|
||||||
for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
|
|
||||||
dir=`echo $i | sed -e 's/;.*$//'`
|
|
||||||
if [ "${dir}" = "${ml_dir}" ]; then
|
|
||||||
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags"'
|
|
||||||
|
|
||||||
if [ "${with_target_subdir}" = "." ]; then
|
|
||||||
CC_=$CC' '
|
|
||||||
CXX_=$CXX' '
|
|
||||||
else
|
|
||||||
# Create a regular expression that matches any string as long
|
|
||||||
# as ML_POPDIR.
|
|
||||||
popdir_rx=`echo ${ML_POPDIR} | sed 's,.,.,g'`
|
|
||||||
CC_=
|
|
||||||
for arg in ${CC}; do
|
|
||||||
case $arg in
|
|
||||||
-[BIL]"${ML_POPDIR}"/*)
|
|
||||||
CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\1/p"`' ' ;;
|
|
||||||
"${ML_POPDIR}"/*)
|
|
||||||
CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
|
|
||||||
*)
|
|
||||||
CC_="${CC_}${arg} " ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
CXX_=
|
|
||||||
for arg in ${CXX}; do
|
|
||||||
case $arg in
|
|
||||||
-[BIL]"${ML_POPDIR}"/*)
|
|
||||||
CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
|
|
||||||
"${ML_POPDIR}"/*)
|
|
||||||
CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
|
|
||||||
*)
|
|
||||||
CXX_="${CXX_}${arg} " ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if test "x${LD_LIBRARY_PATH+set}" = xset; then
|
|
||||||
LD_LIBRARY_PATH_=
|
|
||||||
for arg in `echo "$LD_LIBRARY_PATH" | tr ':' ' '`; do
|
|
||||||
case "$arg" in
|
|
||||||
"${ML_POPDIR}"/*)
|
|
||||||
arg=`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if test "x$LD_LIBRARY_PATH_" != x; then
|
|
||||||
LD_LIBRARY_PATH_=$LD_LIBRARY_PATH_:$arg
|
|
||||||
else
|
|
||||||
LD_LIBRARY_PATH_=$arg
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
ml_config_env="$ml_config_env LD_LIBRARY_PATH=$LD_LIBRARY_PATH_"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x${SHLIB_PATH+set}" = xset; then
|
|
||||||
SHLIB_PATH_=
|
|
||||||
for arg in `echo "$SHLIB_PATH" | tr ':' ' '`; do
|
|
||||||
case "$arg" in
|
|
||||||
"${ML_POPDIR}"/*)
|
|
||||||
arg=`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if test "x$SHLIB_PATH_" != x; then
|
|
||||||
SHLIB_PATH_=$SHLIB_PATH_:$arg
|
|
||||||
else
|
|
||||||
SHLIB_PATH_=$arg
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
ml_config_env="$ml_config_env SHLIB_PATH=$SHLIB_PATH_"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if eval ${ml_config_env} ${ml_config_shell} ${ml_recprog} \
|
|
||||||
--with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \
|
|
||||||
${ml_arguments} ${ml_srcdiroption} ; then
|
|
||||||
true
|
|
||||||
else
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd ${ML_POPDIR}
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
cd ${ml_origdir}
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi # ${ml_toplevel_p} = yes
|
|
||||||
fi # ${enable_multilib} = yes
|
|
1391
config.guess
vendored
1391
config.guess
vendored
File diff suppressed because it is too large
Load Diff
88
config.if
88
config.if
@ -1,88 +0,0 @@
|
|||||||
#! /dev/null
|
|
||||||
# Don't call it directly. This shell script fragment is called to
|
|
||||||
# determine:
|
|
||||||
#
|
|
||||||
# 1. libstcxx_incdir: the interface name for libstdc++.
|
|
||||||
# 2. libc_interface: the interface name for libc.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Get the top level src dir.
|
|
||||||
if [ -z "${topsrcdir}" -a -z "${top_srcdir}" ]
|
|
||||||
then
|
|
||||||
echo "Undefined top level src dir: topsrcdir and top_srcdir are empty" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${topsrcdir}" ]
|
|
||||||
then
|
|
||||||
if_topsrcdir=${topsrcdir}
|
|
||||||
else
|
|
||||||
if_topsrcdir=${top_srcdir}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set libstdcxx_incdir.
|
|
||||||
# This is the same as gcc/configure.in and libstdc++-v3/acinclude.m4.
|
|
||||||
if test -z "$gcc_version"; then
|
|
||||||
if test -z "${gcc_version_trigger}" \
|
|
||||||
&& test -f ${if_topsrcdir}/gcc/version.c; then
|
|
||||||
gcc_version_trigger=${if_topsrcdir}/gcc/version.c
|
|
||||||
fi
|
|
||||||
if test -f "${gcc_version_trigger}"; then
|
|
||||||
gcc_version_full=`grep version_string "${gcc_version_trigger}" | sed -e 's/.*"\([^"]*\)".*/\1/'`
|
|
||||||
else
|
|
||||||
gcc_version_full=`$CC -v 2>&1 | sed -n 's/^gcc version //p'`
|
|
||||||
fi
|
|
||||||
gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
|
|
||||||
fi
|
|
||||||
libstdcxx_incdir=c++/${gcc_version}
|
|
||||||
|
|
||||||
# The trickiest part is libc_interface.
|
|
||||||
if [ -z "${libc_interface}" ]
|
|
||||||
then
|
|
||||||
case ${target_os} in
|
|
||||||
*linux*libc1*|*linux*libc5*)
|
|
||||||
case ${target_alias} in
|
|
||||||
*alpha*|*powerpc*)
|
|
||||||
libc_interface=-libc5.9-
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
libc_interface=-libc5-
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*linux*gnu*)
|
|
||||||
# We have to work harder to figure it out.
|
|
||||||
if [ ${target_alias} = ${build_alias} ]
|
|
||||||
then
|
|
||||||
dummy=if$$
|
|
||||||
cat >$dummy.c <<EOF
|
|
||||||
#include <features.h>
|
|
||||||
main(argc, argv)
|
|
||||||
int argc;
|
|
||||||
char *argv[];
|
|
||||||
{
|
|
||||||
printf("%d\n", __GLIBC_MINOR__);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
${CC-cc} $dummy.c -o $dummy 2>/dev/null
|
|
||||||
if [ "$?" = 0 ]
|
|
||||||
then
|
|
||||||
libc_interface=-libc6.`./$dummy`-
|
|
||||||
rm -f $dummy.c $dummy
|
|
||||||
else
|
|
||||||
# It should never happen.
|
|
||||||
echo "Cannot find the GNU C library minor version number." >&2
|
|
||||||
rm -f $dummy.c $dummy
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Cross compiling. Assume glibc 2.1.
|
|
||||||
libc_interface=-libc6.1-
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
libc_interface=-
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
1489
config.sub
vendored
1489
config.sub
vendored
File diff suppressed because it is too large
Load Diff
561
config/ChangeLog
561
config/ChangeLog
@ -1,561 +0,0 @@
|
|||||||
2003-03-04 Nathanael Nerode <neroden@gcc.gnu.org>
|
|
||||||
|
|
||||||
* mh-dgux: Delete.
|
|
||||||
|
|
||||||
2002-12-28 Alexandre Oliva <aoliva@redhat.com>
|
|
||||||
|
|
||||||
* acx.m4: Name cache variables properly.
|
|
||||||
(NCN_STRICT_CHECK_TOOL): If program is not found and
|
|
||||||
value-if-not-found is empty, use ${ncn_tool_prefix}$2 or $2,
|
|
||||||
depending on whether build != host or not.
|
|
||||||
(NCN_STRICT_CHECK_TARGET_TOOL): Ditto, with the target prefix.
|
|
||||||
|
|
||||||
2002-12-28 Nathanael Nerode <neroden@gcc.gnu.org>
|
|
||||||
|
|
||||||
* acx.m4: New.
|
|
||||||
* mh-a68bsd, mh-aix386, mh-apollo68, mh-delta88, mh-hp300,
|
|
||||||
mh-hpux, mh-hpux8, mh-irix5, mh-irix6, mh-ncrsvr43, mh-openedition,
|
|
||||||
mh-riscos, mh-sysv: Delete.
|
|
||||||
* mh-cxux, mh-dgux386, mh-interix, mh-lynxrs6k, mh-ncr3000,
|
|
||||||
mh-necv4, mh-sco, mh-solaris, mh-sysv4, mh-sysv5, mt-v810: Simplify.
|
|
||||||
|
|
||||||
2002-12-16 Christopher Faylor <cgf@redhat.com>
|
|
||||||
|
|
||||||
* mh-cygwin: Don't build libtermcap if it doesn't exist.
|
|
||||||
|
|
||||||
2002-11-23 H.J. Lu <hjl@gnu.org>
|
|
||||||
|
|
||||||
* accross.m4: New.
|
|
||||||
|
|
||||||
2002-11-10 Stan Shebs <shebs@apple.com>
|
|
||||||
|
|
||||||
Retire common MPW configury bits.
|
|
||||||
* mpw-mh-mpw: Remove.
|
|
||||||
* mpw: Remove directory along with all of its files.
|
|
||||||
|
|
||||||
2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
|
||||||
|
|
||||||
* acinclude.m4: Allow for PWDCMD to override hardcoded pwd.
|
|
||||||
|
|
||||||
2002-05-13 Nathanael Nerode <neroden@twcny.rr.com>
|
|
||||||
|
|
||||||
* mh-apollo68: remove unused HDEFINES setting.
|
|
||||||
* mh-dgux: remove unused HDEFINES setting.
|
|
||||||
* mh-dgux386: remove unused HDEFINES setting, duplicate RANLIB=true.
|
|
||||||
|
|
||||||
2002-04-29 Nathanael Nerode <neroden@twcny.rr.com>
|
|
||||||
|
|
||||||
* config/mh-cxux: remove dead code
|
|
||||||
* config/mh-dgux386: remove dead code
|
|
||||||
* config/mh-hp300: remove dead code
|
|
||||||
* config/mh-hpux: remove dead code
|
|
||||||
* config/mh-hpux8: remove dead code
|
|
||||||
* config/mh-irix5: remove dead code
|
|
||||||
* config/mh-irix6: remove dead code
|
|
||||||
* config/mh-ncr3000: remove dead code
|
|
||||||
* config/mh-ncrsvr43: remove dead code
|
|
||||||
* config/mh-necv4: remove dead code
|
|
||||||
* config/mh-sco: remove dead code
|
|
||||||
* config/mh-solaris: remove dead code
|
|
||||||
* config/mh-sysv: remove dead code
|
|
||||||
* config/mh-sysv4: remove dead code
|
|
||||||
* config/mh-sysv5: remove dead code
|
|
||||||
* config/mh-irix4: remove, contains only dead code
|
|
||||||
|
|
||||||
* config/mt-armpic: Delete.
|
|
||||||
* config/mt-elfalphapic: Delete.
|
|
||||||
* config/mt-i370pic: Delete.
|
|
||||||
* config/mt-ia64pic: Delete.
|
|
||||||
* config/mt-m68kpic: Delete.
|
|
||||||
* config/mt-papic: Delete.
|
|
||||||
* config/mt-ppcpic: Delete.
|
|
||||||
* config/mt-s390pic: Delete.
|
|
||||||
* config/mt-sparcpic: Delete.
|
|
||||||
* config/mt-x86pic: Delete.
|
|
||||||
|
|
||||||
2002-04-19 Nathanael Nerode <neroden@twcny.rr.com>
|
|
||||||
|
|
||||||
* mh-a68bsd: clean out dead code
|
|
||||||
* mh-apollo68: clean out dead code
|
|
||||||
* mh-cxux: clean out dead code
|
|
||||||
* mh-decstation: clean out dead code
|
|
||||||
* mh-dgux: clean out dead code
|
|
||||||
* mh-dgux386: clean out dead code
|
|
||||||
* mh-hp300: clean out dead code
|
|
||||||
* mh-hpux: clean out dead code
|
|
||||||
* mh-hpux8: clean out dead code
|
|
||||||
* mh-interix: clean out dead code
|
|
||||||
* mh-irix4: clean out dead code
|
|
||||||
* mh-lynxrs6k: clean out dead code
|
|
||||||
* mh-mingw32: clean out dead code
|
|
||||||
* mh-ncr3000: clean out dead code
|
|
||||||
* mh-ncrsvr43: clean out dead code
|
|
||||||
* mh-necv4: clean out dead code
|
|
||||||
* mh-openedition: clean out dead code
|
|
||||||
* mh-riscos: clean out dead code
|
|
||||||
* mh-sco: clean out dead code
|
|
||||||
* mh-sysv4: clean out dead code
|
|
||||||
* mh-lynxos: removed, contained only dead code
|
|
||||||
* mh-vaxult2: removed, contained only dead code
|
|
||||||
* mh-sun3: removed, contained only dead code
|
|
||||||
|
|
||||||
2002-04-15 Keith Seitz <keiths@redhat.com>
|
|
||||||
|
|
||||||
* acinclude.m4 (CYG_AC_PATH_TCLCONFIG): Search the win/ directory,
|
|
||||||
too.
|
|
||||||
(CYG_AC_PATH_TKCONFIG): Likewise.
|
|
||||||
|
|
||||||
2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
|
|
||||||
|
|
||||||
* acinclude.m4: Fix spelling error of "separate" as "seperate".
|
|
||||||
|
|
||||||
2001-05-22 Jason Merrill <jason_merrill@redhat.com>
|
|
||||||
|
|
||||||
* mt-linux (CXXFLAGS_FOR_TARGET): Lose -fvtable-thunks.
|
|
||||||
|
|
||||||
2001-01-27 Richard Henderson <rth@redhat.com>
|
|
||||||
|
|
||||||
* mt-alphaieee: New file.
|
|
||||||
|
|
||||||
2001-01-02 Laurynas Biveinis <lauras@softhome.net>
|
|
||||||
|
|
||||||
* mh-djgpp: do not set CFLAGS.
|
|
||||||
|
|
||||||
2000-08-04 Mark Elbrecht <snowball3@bigfoot.com>
|
|
||||||
|
|
||||||
* mh-djgpp: Conditionally set 'target_alias' to djgpp. Conditionally
|
|
||||||
modify 'gcc_version'.
|
|
||||||
|
|
||||||
2000-07-21 Andrew Haley <aph@cygnus.com>
|
|
||||||
|
|
||||||
* mh-ia64pic: New file.
|
|
||||||
* mt-ia64pic: New file.
|
|
||||||
|
|
||||||
2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
|
||||||
|
|
||||||
* mh-s390pic: New file.
|
|
||||||
* mt-s390pic: New file.
|
|
||||||
|
|
||||||
2000-07-14 Mark P Mitchell <mark@codesourcery.com>
|
|
||||||
|
|
||||||
* mh-irix6 (CC): Don't set it.
|
|
||||||
|
|
||||||
2000-06-21 Branko Cibej <branko.cibej@hermes.si>
|
|
||||||
|
|
||||||
* mh-sparcpic: Use single instead of double quotes.
|
|
||||||
* mt-sparcpic: Likewise.
|
|
||||||
|
|
||||||
2000-06-19 Syd Polk <spolk@redhat.com>
|
|
||||||
|
|
||||||
* acinclude.m4: Updated for Incr Tcl 3.0.
|
|
||||||
|
|
||||||
2000-02-23 Linas Vepstas <linas@linas.org>
|
|
||||||
|
|
||||||
* mh-i370pic: New file.
|
|
||||||
* mt-i370pic: New file.
|
|
||||||
|
|
||||||
2000-02-22 Nick Clifton <nickc@cygnus.com>
|
|
||||||
|
|
||||||
* config/mt-wince: new file: Makefile fragment for WinCE targets.
|
|
||||||
|
|
||||||
2000-01-06 Geoff Keating <geoffk@cygnus.com>
|
|
||||||
|
|
||||||
* mh-aix43: Delete, move to mt-aix43.
|
|
||||||
* mt-aix43: New file.
|
|
||||||
|
|
||||||
Tue Sep 7 23:31:01 1999 Linas Vepstas <linas@linas.org>
|
|
||||||
|
|
||||||
* mh-openedition: New file.
|
|
||||||
|
|
||||||
1999-04-07 Michael Meissner <meissner@cygnus.com>
|
|
||||||
|
|
||||||
* 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>
|
|
||||||
|
|
||||||
* mh-armpic: New file. Patch from Jim Pick <jim@jimpick.com>.
|
|
||||||
* mt-armpic: Likewise.
|
|
||||||
|
|
||||||
Mon Jan 18 19:41:08 1999 Christopher Faylor <cgf@cygnus.com>
|
|
||||||
|
|
||||||
* cygwin.mh: Activate commented out dependencies for
|
|
||||||
gdb: libtermcap.
|
|
||||||
|
|
||||||
Wed Nov 18 20:29:46 1998 Christopher Faylor <cgf@cygnus.com>
|
|
||||||
|
|
||||||
* cygwin.mh: Add extra libtermcap target information.
|
|
||||||
Add commented out dependency for gdb to libtermcap for
|
|
||||||
future readline requirement.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Sat Aug 29 14:32:55 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
|
||||||
|
|
||||||
* mh-aix43: New file.
|
|
||||||
|
|
||||||
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
|
|
||||||
the libraries.
|
|
||||||
|
|
||||||
Wed Apr 22 10:53:14 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
|
||||||
|
|
||||||
* mt-linux (CXXFLAGS_FOR_TARGET): Set this instead of CXXFLAGS.
|
|
||||||
|
|
||||||
Sat Apr 11 22:43:17 1998 J. Kean Johnston <jkj@sco.com>
|
|
||||||
|
|
||||||
* mh-svsv5: New file - support for SCO UnixWare 7 / SVR5.
|
|
||||||
|
|
||||||
Thu Mar 26 01:54:25 1998 Geoffrey Noer <noer@cygnus.com>
|
|
||||||
|
|
||||||
* mh-cygwin32: stop configuring and building dosrel.
|
|
||||||
|
|
||||||
Thu Sep 11 16:43:27 1997 Jim Wilson <wilson@cygnus.com>
|
|
||||||
|
|
||||||
* mh-elfalphapic, mt-elfalphapic: New files.
|
|
||||||
|
|
||||||
Wed Jul 23 12:32:18 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
|
|
||||||
|
|
||||||
* mh-go32 (CFLAGS): Don't set -fno-omit-frame-pointer.
|
|
||||||
|
|
||||||
Mon Jun 16 19:06:41 1997 Geoff Keating <geoffk@ozemail.com.au>
|
|
||||||
|
|
||||||
* mh-ppcpic: New file.
|
|
||||||
* mt-ppcpic: New file.
|
|
||||||
|
|
||||||
Thu Mar 27 15:52:40 1997 Geoffrey Noer <noer@cygnus.com>
|
|
||||||
|
|
||||||
* mh-cygwin32: override CXXFLAGS, setting to -O2 only
|
|
||||||
(no debug)
|
|
||||||
|
|
||||||
Tue Mar 25 18:16:43 1997 Geoffrey Noer <noer@cygnus.com>
|
|
||||||
|
|
||||||
* mh-cygwin32: override LIBGCC2_DEBUG_CFLAGS so debug info
|
|
||||||
isn't included in cygwin32-hosted libgcc2.a by default
|
|
||||||
|
|
||||||
Wed Jan 8 19:56:43 1997 Geoffrey Noer <noer@cygnus.com>
|
|
||||||
|
|
||||||
* mh-cygwin32: override CFLAGS so debug info isn't included
|
|
||||||
in cygwin32-hosted tools by default
|
|
||||||
|
|
||||||
Tue Dec 31 16:04:26 1996 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* mh-linux: Remove.
|
|
||||||
|
|
||||||
Mon Nov 11 10:29:51 1996 Michael Meissner <meissner@tiktok.cygnus.com>
|
|
||||||
|
|
||||||
* mt-ppc: Delete file, options moved to newlib configure.
|
|
||||||
|
|
||||||
Fri Oct 4 12:21:03 1996 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* mh-dgux386: New file. x86 dgux specific flags
|
|
||||||
|
|
||||||
Mon Sep 30 15:10:07 1996 Stan Shebs <shebs@andros.cygnus.com>
|
|
||||||
|
|
||||||
* mpw-mh-mpw (EXTRALIBS_PPC_XCOFF): New, was EXTRALIBS_PPC.
|
|
||||||
(EXTRALIBS_PPC): Use shared libraries instead of xcoff.
|
|
||||||
|
|
||||||
Sat Aug 17 04:56:25 1996 Geoffrey Noer <noer@skaro.cygnus.com>
|
|
||||||
|
|
||||||
* mh-cygwin32: don't -D_WIN32 here anymore
|
|
||||||
|
|
||||||
Thu Aug 15 19:46:44 1996 Stan Shebs <shebs@andros.cygnus.com>
|
|
||||||
|
|
||||||
* mpw-mh-mpw (SEGFLAG_68K, SEGFLAG_PPC): Remove.
|
|
||||||
(EXTRALIBS_PPC): Add libgcc.xcoff.
|
|
||||||
|
|
||||||
Thu Aug 8 14:51:47 1996 Michael Meissner <meissner@tiktok.cygnus.com>
|
|
||||||
|
|
||||||
* mt-ppc: New file, add -mrelocatable-lib and -mno-eabi to all
|
|
||||||
target builds for PowerPC eabi targets.
|
|
||||||
|
|
||||||
Fri Jul 12 12:06:01 1996 Stan Shebs <shebs@andros.cygnus.com>
|
|
||||||
|
|
||||||
* mpw: New subdir, Mac MPW configuration support bits.
|
|
||||||
|
|
||||||
Mon Jul 8 17:30:52 1996 Jim Wilson <wilson@cygnus.com>
|
|
||||||
|
|
||||||
* mh-irix6: New file.
|
|
||||||
|
|
||||||
Mon Jul 8 15:15:37 1996 Jason Merrill <jason@yorick.cygnus.com>
|
|
||||||
|
|
||||||
* mt-sparcpic (PICFLAG_FOR_TARGET): Use -fPIC.
|
|
||||||
|
|
||||||
Fri Jul 5 11:49:02 1996 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* mh-irix4 (RANLIB): Don't define; Irix 4 does have ranlib.
|
|
||||||
|
|
||||||
Sun Jun 23 22:59:25 1996 Geoffrey Noer <noer@cygnus.com>
|
|
||||||
|
|
||||||
* mh-cygwin32: new file. Like mh-go32 without the CFLAGS entry.
|
|
||||||
|
|
||||||
Tue Mar 26 14:10:41 1996 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* mh-go32 (CFLAGS): Define.
|
|
||||||
|
|
||||||
Thu Mar 14 19:20:54 1996 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* mh-necv4: New file.
|
|
||||||
|
|
||||||
Thu Feb 15 13:07:43 1996 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* mh-cxux (CC): New variable.
|
|
||||||
(CFLAGS, LDFLAGS): Remove.
|
|
||||||
* mh-ncrsvr43 (CC): New variable.
|
|
||||||
(CFLAGS): Remove.
|
|
||||||
* mh-solaris (CFLAGS): Remove.
|
|
||||||
|
|
||||||
* mh-go32: Remove most variable settings, since they presumed a
|
|
||||||
Canadian Cross, which is now handled correctly by the configure
|
|
||||||
script.
|
|
||||||
|
|
||||||
* mh-sparcpic (PICFLAG): Set to -fPIC, not -fpic.
|
|
||||||
|
|
||||||
Mon Feb 12 14:53:39 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
|
||||||
|
|
||||||
* mh-m68kpic, mt-m68kpic: New files.
|
|
||||||
|
|
||||||
Thu Feb 1 14:15:42 1996 Stan Shebs <shebs@andros.cygnus.com>
|
|
||||||
|
|
||||||
* mpw-mh-mpw (CC_MWC68K): Add options similar to those used
|
|
||||||
in CC_MWCPPC, and -mc68020 -model far.
|
|
||||||
(AR_MWLINK68K): Add -xm library.
|
|
||||||
(AR_AR): Define.
|
|
||||||
(CC_LD_MWLINK68K): Remove -d.
|
|
||||||
(EXTRALIBS_MWC68K): Define.
|
|
||||||
|
|
||||||
Thu Jan 25 16:05:33 1996 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* mh-ncrsvr43 (CFLAGS): Remove -Hnocopyr.
|
|
||||||
|
|
||||||
Tue Nov 7 15:41:30 1995 Stan Shebs <shebs@andros.cygnus.com>
|
|
||||||
|
|
||||||
* mpw-mh-mpw (CC_MWC68K, CC_MWCPPC): Remove unused include path.
|
|
||||||
(CC_MWCPPC): Add -mpw_chars, disable warnings, add comments
|
|
||||||
explaining reasons for various flags.
|
|
||||||
(EXTRALIBS_PPC, EXTRALIBS_MWCPPC ): Put runtime library first.
|
|
||||||
|
|
||||||
Fri Oct 13 14:44:25 1995 Jason Molenda (crash@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* mh-aix, mh-sun: Removed.
|
|
||||||
|
|
||||||
* mh-decstation (X11_EXTRA_CFLAGS): Define.
|
|
||||||
|
|
||||||
* mh-sco, mh-solaris, mh-sysv4 (X11_EXTRA_LIBS): Define.
|
|
||||||
|
|
||||||
* mh-hp300, mh-hpux, mh-hpux8, mh-solaris, mh-sun3, mh-sysv4: Don't
|
|
||||||
hardcode location of X stuff here.
|
|
||||||
|
|
||||||
Thu Sep 28 13:14:56 1995 Stan Shebs <shebs@andros.cygnus.com>
|
|
||||||
|
|
||||||
* mpw-mh-mpw: Add definitions for various 68K and PowerMac
|
|
||||||
compilers, add definitions for library and link steps for
|
|
||||||
PowerMacs.
|
|
||||||
|
|
||||||
Thu Sep 14 08:20:04 1995 Fred Fish <fnf@cygnus.com>
|
|
||||||
|
|
||||||
* mh-hp300 (CC): Add "CC = cc -Wp,-H256000" to avoid
|
|
||||||
"too much defining" errors from the HPUX compiler.
|
|
||||||
|
|
||||||
Thu Aug 17 17:28:56 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
|
|
||||||
|
|
||||||
* mh-hp300 (RANLIB): Use "ar ts", in case GNU ar was used and
|
|
||||||
didn't build a symbol table.
|
|
||||||
|
|
||||||
Thu Jun 22 17:47:24 1995 Stan Shebs <shebs@andros.cygnus.com>
|
|
||||||
|
|
||||||
* mpw-mh-mpw (CC): Define ANSI_PROTOTYPES.
|
|
||||||
|
|
||||||
Mon Apr 10 12:29:48 1995 Stan Shebs <shebs@andros.cygnus.com>
|
|
||||||
|
|
||||||
* mpw-mh-mpw (EXTRALIBS): Always link in Math.o, CSANELIB.o,
|
|
||||||
and ToolLibs.o.
|
|
||||||
|
|
||||||
* mpw-mh-mpw (CC): Define ALMOST_STDC.
|
|
||||||
(CFLAGS): Remove ALMOST_STDC, -mc68881.
|
|
||||||
(LDFLAGS): add -w.
|
|
||||||
|
|
||||||
* mpw-mh-mpw (CFLAGS): Add -b option to put strings at the ends of
|
|
||||||
functions.
|
|
||||||
|
|
||||||
* mpw-mh-mpw: New file, host makefile definitions for MPW.
|
|
||||||
|
|
||||||
Fri Mar 31 11:35:17 1995 Jason Molenda (crash@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* mt-netware: New file.
|
|
||||||
|
|
||||||
Mon Mar 13 12:31:29 1995 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* mh-hpux8: New file.
|
|
||||||
* mh-hpux: Use X11R5 rather than X11R4.
|
|
||||||
|
|
||||||
Thu Feb 9 11:04:13 1995 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* mh-linux (SYSV): Don't define.
|
|
||||||
(RANLIB): Don't define.
|
|
||||||
|
|
||||||
Wed Jan 11 16:29:34 1995 Jason Merrill <jason@phydeaux.cygnus.com>
|
|
||||||
|
|
||||||
* m?-*pic (LIBCXXFLAGS): Add -fno-implicit-templates.
|
|
||||||
|
|
||||||
Thu Nov 3 17:27:19 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
|
|
||||||
|
|
||||||
* mh-irix4 (CC): Increase maximum string length.
|
|
||||||
|
|
||||||
* mh-sco (CC): Define away const, it doesn't work right; elements
|
|
||||||
of arrays of ptr-to-const are considered const themselves.
|
|
||||||
|
|
||||||
Sat Jul 16 12:17:49 1994 Stan Shebs (shebs@andros.cygnus.com)
|
|
||||||
|
|
||||||
* mh-cxux: New file, from Bob Rusk (rrusk@mail.csd.harris.com).
|
|
||||||
|
|
||||||
Sat Jun 4 17:22:12 1994 Per Bothner (bothner@kalessin.cygnus.com)
|
|
||||||
|
|
||||||
* mh-ncrsvr43: New file from Tom McConnell
|
|
||||||
<tmcconne@sedona.intel.com>.
|
|
||||||
|
|
||||||
Thu May 19 00:32:11 1994 Jeff Law (law@snake.cs.utah.edu)
|
|
||||||
|
|
||||||
* mh-hpux (CC): Add -Wp,-H256000 to avoid "too much defining"
|
|
||||||
errors from the HPUX 8 compilers.
|
|
||||||
|
|
||||||
Wed May 4 20:14:47 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
|
|
||||||
|
|
||||||
* mh-lynxrs6k: set SHELL to /bin/bash
|
|
||||||
|
|
||||||
Tue Apr 12 12:38:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
|
||||||
|
|
||||||
* mh-irix4 (CC): Change -XNh1500 to -XNh2000.
|
|
||||||
|
|
||||||
Sat Dec 25 20:03:45 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
|
|
||||||
|
|
||||||
* mt-hppa: Delete.
|
|
||||||
|
|
||||||
Tue Nov 16 22:54:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* mh-a68bsd: Define CC to gcc.
|
|
||||||
|
|
||||||
Mon Nov 15 16:56:51 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* mh-linux: Don't put -static in LDFLAGS. Add comments.
|
|
||||||
|
|
||||||
Mon Nov 15 13:37:58 1993 david d `zoo' zuhn (zoo@cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* mh-sysv4 (AR_FLAGS): change from cq to cr
|
|
||||||
|
|
||||||
Fri Nov 5 08:12:32 1993 D. V. Henkel-Wallace (gumby@blues.cygnus.com)
|
|
||||||
|
|
||||||
* mh-unixware: remove. It's the same as sysv4, and config.guess
|
|
||||||
can't tell the difference. So don't allow skew.
|
|
||||||
|
|
||||||
Wed Oct 20 20:35:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* mh-hp300: Revert yesterday's change, but add comment explaining.
|
|
||||||
|
|
||||||
Tue Oct 19 18:58:21 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* mh-hp300: Don't define CFLAGS to empty. Why should hp300 be
|
|
||||||
different from anything else? ("gdb doesn't understand the native
|
|
||||||
debug format" isn't a good enough answer because we might be using
|
|
||||||
gcc).
|
|
||||||
|
|
||||||
Tue Oct 5 12:17:40 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
|
||||||
|
|
||||||
* mh-alphaosf: Remove, no longer necessary now that gdb knows
|
|
||||||
how to handle OSF/1 shared libraries.
|
|
||||||
|
|
||||||
Tue Jul 6 11:27:33 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* mh-alphaosf: New file.
|
|
||||||
|
|
||||||
Thu Jul 1 15:49:33 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* mh-riscos: New file.
|
|
||||||
|
|
||||||
Mon Jun 14 12:03:18 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com)
|
|
||||||
|
|
||||||
* mh-aix, mh-aix386, mh-decstation, mh-delta88, mh-hpux, mh-irix4,
|
|
||||||
mh-ncr3000, mh-solaris, mh-sysv, mh-sysv4: remove INSTALL=cp line,
|
|
||||||
now that we're using install.sh globally
|
|
||||||
|
|
||||||
Fri Jun 4 16:09:34 1993 Ian Lance Taylor (ian@cygnus.com)
|
|
||||||
|
|
||||||
* mh-sysv4 (INSTALL): Use cp, not /usr/ucb/install.
|
|
||||||
|
|
||||||
Thu Apr 8 11:21:52 1993 Ian Lance Taylor (ian@cygnus.com)
|
|
||||||
|
|
||||||
* mt-a29k, mt-ebmon29k, mt-os68k, mt-ose68000, mt-ose68k,
|
|
||||||
mt-vxworks68, mt-vxworks960: Removed obsolete, unused target
|
|
||||||
Makefile fragment files.
|
|
||||||
|
|
||||||
Mon Mar 8 15:05:25 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
|
|
||||||
|
|
||||||
* mh-aix386: New file; old mh-aix, plus no-op RANLIB.
|
|
||||||
|
|
||||||
Thu Oct 1 13:50:48 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* mh-solaris: INSTALL is NOT /usr/ucb/install
|
|
||||||
|
|
||||||
Mon Aug 24 14:25:35 1992 Ian Lance Taylor (ian@cygnus.com)
|
|
||||||
|
|
||||||
* mt-ose68000, mt-ose68k: renamed from mt-OSE*.
|
|
||||||
|
|
||||||
Tue Jul 21 02:11:01 1992 D. V. Henkel-Wallace (gumby@cygnus.com)
|
|
||||||
|
|
||||||
* mt-OSE68k, mt-680000: new configs.
|
|
||||||
|
|
||||||
Thu Jul 16 17:12:09 1992 K. Richard Pixley (rich@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* mh-irix4: merged changes from progressive.
|
|
||||||
|
|
||||||
Tue Jun 9 23:29:38 1992 Per Bothner (bothner@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* Everywhere: Change RANLIB=echo>/dev/null (which confuses
|
|
||||||
some shells - and I don't blame them) to RANLIB=true.
|
|
||||||
* mh-solaris: Use /usr/ucb/install for INSTALL.
|
|
||||||
|
|
||||||
Sun May 31 14:45:23 1992 Mark Eichin (eichin at cygnus.com)
|
|
||||||
|
|
||||||
* mh-solaris2: Add new configuration for Solaris 2 (sysv, no ranlib)
|
|
||||||
|
|
||||||
Fri Apr 10 23:10:08 1992 Fred Fish (fnf@cygnus.com)
|
|
||||||
|
|
||||||
* mh-ncr3000: Add new configuration for NCR 3000.
|
|
||||||
|
|
||||||
Tue Dec 10 00:10:55 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
|
||||||
|
|
||||||
* ChangeLog: fresh changelog.
|
|
||||||
|
|
@ -1,98 +0,0 @@
|
|||||||
AC_DEFUN([AC_COMPILE_CHECK_SIZEOF],
|
|
||||||
[changequote(<<, >>)dnl
|
|
||||||
dnl The name to #define.
|
|
||||||
define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
|
|
||||||
dnl The cache variable name.
|
|
||||||
define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
|
|
||||||
changequote([, ])dnl
|
|
||||||
AC_MSG_CHECKING(size of $1)
|
|
||||||
AC_CACHE_VAL(AC_CV_NAME,
|
|
||||||
[for ac_size in 4 8 1 2 16 12 $2 ; do # List sizes in rough order of prevalence.
|
|
||||||
AC_TRY_COMPILE([#include "confdefs.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
$2
|
|
||||||
], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size)
|
|
||||||
if test x$AC_CV_NAME != x ; then break; fi
|
|
||||||
done
|
|
||||||
])
|
|
||||||
if test x$AC_CV_NAME = x ; then
|
|
||||||
AC_MSG_ERROR([cannot determine a size for $1])
|
|
||||||
fi
|
|
||||||
AC_MSG_RESULT($AC_CV_NAME)
|
|
||||||
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
|
|
||||||
undefine([AC_TYPE_NAME])dnl
|
|
||||||
undefine([AC_CV_NAME])dnl
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([AC_C_BIGENDIAN_CROSS],
|
|
||||||
[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
|
|
||||||
[ac_cv_c_bigendian=unknown
|
|
||||||
# See if sys/param.h defines the BYTE_ORDER macro.
|
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>
|
|
||||||
#include <sys/param.h>], [
|
|
||||||
#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
|
|
||||||
bogus endian macros
|
|
||||||
#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
|
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>
|
|
||||||
#include <sys/param.h>], [
|
|
||||||
#if BYTE_ORDER != BIG_ENDIAN
|
|
||||||
not big endian
|
|
||||||
#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
|
|
||||||
if test $ac_cv_c_bigendian = unknown; then
|
|
||||||
AC_TRY_RUN([main () {
|
|
||||||
/* Are we little or big endian? From Harbison&Steele. */
|
|
||||||
union
|
|
||||||
{
|
|
||||||
long l;
|
|
||||||
char c[sizeof (long)];
|
|
||||||
} u;
|
|
||||||
u.l = 1;
|
|
||||||
exit (u.c[sizeof (long) - 1] == 1);
|
|
||||||
}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes,
|
|
||||||
[ echo $ac_n "cross-compiling... " 2>&AC_FD_MSG ])
|
|
||||||
fi])
|
|
||||||
if test $ac_cv_c_bigendian = unknown; then
|
|
||||||
AC_MSG_CHECKING(to probe for byte ordering)
|
|
||||||
[
|
|
||||||
cat >conftest.c <<EOF
|
|
||||||
short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
|
|
||||||
short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
|
|
||||||
void _ascii() { char* s = (char*) ascii_mm; s = (char*) ascii_ii; }
|
|
||||||
short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
|
|
||||||
short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
|
|
||||||
void _ebcdic() { char* s = (char*) ebcdic_mm; s = (char*) ebcdic_ii; }
|
|
||||||
int main() { _ascii (); _ebcdic (); return 0; }
|
|
||||||
EOF
|
|
||||||
] if test -f conftest.c ; then
|
|
||||||
if ${CC-cc} ${CFLAGS} conftest.c -o conftest.o && test -f conftest.o ; then
|
|
||||||
if test `grep -l BIGenDianSyS conftest.o` ; then
|
|
||||||
echo $ac_n ' big endian probe OK, ' 1>&AC_FD_MSG
|
|
||||||
ac_cv_c_bigendian=yes
|
|
||||||
fi
|
|
||||||
if test `grep -l LiTTleEnDian conftest.o` ; then
|
|
||||||
echo $ac_n ' little endian probe OK, ' 1>&AC_FD_MSG
|
|
||||||
if test $ac_cv_c_bigendian = yes ; then
|
|
||||||
ac_cv_c_bigendian=unknown;
|
|
||||||
else
|
|
||||||
ac_cv_c_bigendian=no
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo $ac_n 'guessing bigendian ... ' >&AC_FD_MSG
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AC_MSG_RESULT($ac_cv_c_bigendian)
|
|
||||||
fi
|
|
||||||
if test $ac_cv_c_bigendian = yes; then
|
|
||||||
AC_DEFINE(WORDS_BIGENDIAN, 1, [whether byteorder is bigendian])
|
|
||||||
AC_DEFINE(HOST_WORDS_BIG_ENDIAN, 1,
|
|
||||||
[Define if the host machine stores words of multi-word integers in
|
|
||||||
big-endian order.])
|
|
||||||
BYTEORDER=4321
|
|
||||||
else
|
|
||||||
BYTEORDER=1234
|
|
||||||
fi
|
|
||||||
AC_DEFINE_UNQUOTED(BYTEORDER, $BYTEORDER, [1234 = LIL_ENDIAN, 4321 = BIGENDIAN])
|
|
||||||
if test $ac_cv_c_bigendian = unknown; then
|
|
||||||
AC_MSG_ERROR(unknown endianess - sorry, please pre-set ac_cv_c_bigendian)
|
|
||||||
fi
|
|
||||||
])
|
|
2023
config/acinclude.m4
2023
config/acinclude.m4
File diff suppressed because it is too large
Load Diff
@ -1,81 +0,0 @@
|
|||||||
# Autoconf M4 include file defining utility macros for complex Canadian
|
|
||||||
# cross builds.
|
|
||||||
|
|
||||||
####
|
|
||||||
# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM
|
|
||||||
# or AC_INIT.
|
|
||||||
# These demand that AC_CANONICAL_SYSTEM be called beforehand.
|
|
||||||
AC_DEFUN([_NCN_TOOL_PREFIXES],
|
|
||||||
[ncn_tool_prefix=
|
|
||||||
test -n "$host_alias" && ncn_tool_prefix=$host_alias-
|
|
||||||
ncn_target_tool_prefix=
|
|
||||||
test -n "$target_alias" && ncn_target_tool_prefix=$target_alias-
|
|
||||||
]) []dnl # _NCN_TOOL_PREFIXES
|
|
||||||
|
|
||||||
####
|
|
||||||
# NCN_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path])
|
|
||||||
# Like AC_CHECK_TOOL, but tries a prefix of the target, not the host.
|
|
||||||
# Code is pretty much lifted from autoconf2.53.
|
|
||||||
|
|
||||||
AC_DEFUN([NCN_CHECK_TARGET_TOOL],
|
|
||||||
[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl
|
|
||||||
if test -n "$ncn_target_tool_prefix"; then
|
|
||||||
AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2],
|
|
||||||
[${ncn_target_tool_prefix}$2], , [$4])
|
|
||||||
fi
|
|
||||||
if test -z "$ac_cv_prog_$1" ; then
|
|
||||||
ncn_cv_$1=$$1
|
|
||||||
AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [$3], [$4])
|
|
||||||
$1=$ncn_cv_$1
|
|
||||||
else
|
|
||||||
$1="$ac_cv_prog_$1"
|
|
||||||
fi
|
|
||||||
]) []dnl # NCN_CHECK_TARGET_TOOL
|
|
||||||
|
|
||||||
|
|
||||||
####
|
|
||||||
# NCN_STRICT_CHECK_TOOL(variable, prog-to-check-for,[value-if-not-found],[path])
|
|
||||||
# Like AC_CHECK_TOOL, but requires the prefix if build!=host.
|
|
||||||
|
|
||||||
AC_DEFUN([NCN_STRICT_CHECK_TOOL],
|
|
||||||
[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl
|
|
||||||
if test -n "$ncn_tool_prefix"; then
|
|
||||||
AC_CHECK_PROG([$1], [${ncn_tool_prefix}$2],
|
|
||||||
[${ncn_tool_prefix}$2], , [$4])
|
|
||||||
fi
|
|
||||||
if test -z "$ac_cv_prog_$1" ; then
|
|
||||||
if test $build = $host ; then
|
|
||||||
ncn_cv_$1=$$1
|
|
||||||
AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [ifelse([$3],[],[$2],[$3])], [$4])
|
|
||||||
$1=$ncn_cv_$1
|
|
||||||
else
|
|
||||||
$1="ifelse([$3],[],[${ncn_tool_prefix}$2],[$3])"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
$1="$ac_cv_prog_$1"
|
|
||||||
fi
|
|
||||||
]) []dnl # NCN_STRICT_CHECK_TOOL
|
|
||||||
|
|
||||||
|
|
||||||
####
|
|
||||||
# NCN_STRICT_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path])
|
|
||||||
# Like NCN_CHECK_TARGET_TOOL, but requires the prefix if build!=target.
|
|
||||||
|
|
||||||
AC_DEFUN([NCN_STRICT_CHECK_TARGET_TOOL],
|
|
||||||
[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl
|
|
||||||
if test -n "$ncn_target_tool_prefix"; then
|
|
||||||
AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2],
|
|
||||||
[${ncn_target_tool_prefix}$2], , [$4])
|
|
||||||
fi
|
|
||||||
if test -z "$ac_cv_prog_$1" ; then
|
|
||||||
if test $build = $target ; then
|
|
||||||
ncn_cv_$1=$$1
|
|
||||||
AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [ifelse([$3],[],[$2],[$3])], [$4])
|
|
||||||
$1=$ncn_cv_$1
|
|
||||||
else
|
|
||||||
$1="ifelse([$3],[],[${ncn_target_tool_prefix}$2],[$3])"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
$1="$ac_cv_prog_$1"
|
|
||||||
fi
|
|
||||||
]) []dnl # NCN_STRICT_CHECK_TARGET_TOOL
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fPIC
|
|
@ -1,5 +0,0 @@
|
|||||||
# Configuration for Harris CX/UX 7 (and maybe 6), based on sysv4 configuration.
|
|
||||||
|
|
||||||
# The l flag generates a warning from the SVR4 archiver, remove it.
|
|
||||||
AR_FLAGS = cq
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
EXTRA_TARGET_HOST_ALL_MODULES=maybe-all-libtermcap
|
|
||||||
EXTRA_TARGET_HOST_INSTALL_MODULES=maybe-install-libtermcap
|
|
||||||
|
|
||||||
all-gdb: maybe-all-libtermcap
|
|
||||||
|
|
||||||
install-gdb: maybe-all-libtermcap
|
|
@ -1,3 +0,0 @@
|
|||||||
# for X11, since the native DECwindows include files are really broken when
|
|
||||||
# it comes to function prototypes.
|
|
||||||
X11_EXTRA_CFLAGS = "-DNeedFunctionPrototypes=0"
|
|
@ -1,5 +0,0 @@
|
|||||||
# The l flag generates a warning from the SVR4 archiver, remove it.
|
|
||||||
AR_FLAGS = cr
|
|
||||||
|
|
||||||
X11_EXTRA_LIBS = -lnsl
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
|||||||
# Shorten the target alias so when it is used to set 'libsubdir'
|
|
||||||
# the name will work in both short and long filename environments.
|
|
||||||
ifeq ($(findstring -pc-msdosdjgpp,$(target_alias)),-pc-msdosdjgpp)
|
|
||||||
target_alias=djgpp
|
|
||||||
endif
|
|
||||||
|
|
||||||
# The version string must be modified to contain just one dot
|
|
||||||
# because DOS filenames can only have one dot when long filenames
|
|
||||||
# are not available.
|
|
||||||
__version:=$(gcc_version)
|
|
||||||
__version:=$(subst ., ,$(__version))
|
|
||||||
ifeq ($(words $(__version)),3)
|
|
||||||
gcc_version=$(word 1,$(__version)).$(word 2,$(__version))$(word 3,$(__version))
|
|
||||||
endif
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fPIC
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fPIC
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fpic
|
|
@ -1,7 +0,0 @@
|
|||||||
# The shell may not be in /bin.
|
|
||||||
SHELL = sh
|
|
||||||
|
|
||||||
# We also need to override LIBGCC2_DEBUG_CFLAGS so libgcc2 will be
|
|
||||||
# built without debugging information
|
|
||||||
|
|
||||||
LIBGCC2_DEBUG_CFLAGS=
|
|
@ -1,2 +0,0 @@
|
|||||||
# /bin/sh is too buggy, so use /bin/bash instead.
|
|
||||||
SHELL = /bin/bash
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fpic
|
|
@ -1,7 +0,0 @@
|
|||||||
# We also need to override LIBGCC2_DEBUG_CFLAGS so libgcc2 will be
|
|
||||||
# built without debugging information
|
|
||||||
|
|
||||||
LIBGCC2_DEBUG_CFLAGS=
|
|
||||||
|
|
||||||
# custom installation rules for mingw32 (append .exe to binaries, etc.)
|
|
||||||
# INSTALL_DOSREL=install-dosrel
|
|
@ -1,4 +0,0 @@
|
|||||||
# Host configuration file for an NCR 3000 (i486/SVR4) system.
|
|
||||||
|
|
||||||
# The l flag generates a warning from the SVR4 archiver, remove it.
|
|
||||||
AR_FLAGS = cq
|
|
@ -1,4 +0,0 @@
|
|||||||
# Host Makefile fragment for NEC MIPS SVR4.
|
|
||||||
|
|
||||||
# NEC -lX11 needs some other libraries.
|
|
||||||
X11_EXTRA_LIBS = -lsocket -lnsl
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fPIC
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fPIC
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fpic
|
|
@ -1,4 +0,0 @@
|
|||||||
# You may need this if you don't have bison.
|
|
||||||
# BISON = yacc -Sm10400
|
|
||||||
|
|
||||||
X11_EXTRA_LIBS = -lsocket -lm -lintl -lmalloc
|
|
@ -1,2 +0,0 @@
|
|||||||
# Makefile changes for Suns running Solaris 2
|
|
||||||
X11_EXTRA_LIBS = -lnsl -lsocket
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=`case '${LIBCFLAGS} ${LIBCXXFLAGS}' in *-fpic* ) echo -fpic ;; * ) echo -fPIC ;; esac`
|
|
@ -1,4 +0,0 @@
|
|||||||
# The l flag generates a warning from the SVR4 archiver, remove it.
|
|
||||||
AR_FLAGS = cr
|
|
||||||
|
|
||||||
X11_EXTRA_LIBS = -lnsl
|
|
@ -1,4 +0,0 @@
|
|||||||
# The l flag generates a warning from the SVR4 archiver, remove it.
|
|
||||||
AR_FLAGS = cr
|
|
||||||
|
|
||||||
X11_EXTRA_LIBS = -lnsl
|
|
@ -1 +0,0 @@
|
|||||||
PICFLAG=-fpic
|
|
@ -1,2 +0,0 @@
|
|||||||
CFLAGS_FOR_TARGET += -mieee
|
|
||||||
CXXFLAGS_FOR_TARGET += -mieee
|
|
@ -1,4 +0,0 @@
|
|||||||
# 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 +0,0 @@
|
|||||||
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -D_GNU_SOURCE
|
|
@ -1 +0,0 @@
|
|||||||
GDB_NLM_DEPS = all-gcc all-ld
|
|
@ -1,3 +0,0 @@
|
|||||||
# Build libraries optimizing for space, not speed.
|
|
||||||
CFLAGS_FOR_TARGET = -g -Os
|
|
||||||
CXXFLAGS_FOR_TARGET = -g -Os
|
|
@ -1,3 +0,0 @@
|
|||||||
CC_FOR_TARGET = ca732 -ansi
|
|
||||||
AS_FOR_TARGET = as732
|
|
||||||
AR_FOR_TARGET = ar732
|
|
@ -1,10 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
2087
configure.in
2087
configure.in
File diff suppressed because it is too large
Load Diff
52
djunpack.bat
52
djunpack.bat
@ -1,52 +0,0 @@
|
|||||||
@echo off
|
|
||||||
Rem
|
|
||||||
Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line
|
|
||||||
Rem format, or else stock DOS/Windows shells will refuse to run it.
|
|
||||||
Rem
|
|
||||||
Rem This batch file unpacks the GDB distribution while simultaneously
|
|
||||||
Rem renaming some of the files whose names are invalid on DOS or conflict
|
|
||||||
Rem with other file names after truncation to DOS 8+3 namespace.
|
|
||||||
Rem
|
|
||||||
Rem Invoke like this:
|
|
||||||
Rem
|
|
||||||
Rem djunpack gdb-XYZ.tar
|
|
||||||
Rem
|
|
||||||
Rem where XYZ is the version number. If the argument includes leading
|
|
||||||
Rem directories, it MUST use backslashes, not forward slashes.
|
|
||||||
Rem
|
|
||||||
Rem The following 2 lines need to be changed with each new GDB release, to
|
|
||||||
Rem be identical to the name of the top-level directory where the GDB
|
|
||||||
Rem distribution unpacks itself.
|
|
||||||
set GDBVER=gdb-5.0
|
|
||||||
if "%GDBVER%"=="gdb-5.0" GoTo EnvOk
|
|
||||||
Rem If their environment space is too small, re-exec with a larger one
|
|
||||||
command.com /e:4096 /c %0 %1
|
|
||||||
GoTo End
|
|
||||||
:EnvOk
|
|
||||||
if not exist %1 GoTo NoArchive
|
|
||||||
djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp
|
|
||||||
Rem The following uses a feature of COPY whereby it does not copy
|
|
||||||
Rem empty files. We need that because the previous line will create
|
|
||||||
Rem an empty fnchange.tmp even if the command failed for some reason.
|
|
||||||
copy fnchange.tmp junk.tmp > nul
|
|
||||||
if not exist junk.tmp GoTo NoDjTar
|
|
||||||
del junk.tmp
|
|
||||||
sed -e 's,@V@,%GDBVER%,g' < fnchange.tmp > fnchange.lst
|
|
||||||
Rem See the comment above about the reason for using COPY.
|
|
||||||
copy fnchange.lst junk.tmp > nul
|
|
||||||
if not exist junk.tmp GoTo NoSed
|
|
||||||
del junk.tmp
|
|
||||||
djtar -x -n fnchange.lst %1
|
|
||||||
GoTo End
|
|
||||||
:NoSed
|
|
||||||
echo FAIL: Sed is not available.
|
|
||||||
GoTo End
|
|
||||||
:NoDjTar
|
|
||||||
echo FAIL: DJTAR is not available or no fnchange.lst file in %1.
|
|
||||||
GoTo End
|
|
||||||
:NoArchive
|
|
||||||
echo FAIL: the file %1 does not seem to exist.
|
|
||||||
echo Remember that %1 cannot use forward slashes, only backslashes.
|
|
||||||
GoTo End
|
|
||||||
:End
|
|
||||||
set GDBVER=
|
|
557
etc/ChangeLog
557
etc/ChangeLog
@ -1,557 +0,0 @@
|
|||||||
2003-01-02 H.J. Lu <hjl@gnu.org>
|
|
||||||
|
|
||||||
* Makefile.in (DESTDIR): New.
|
|
||||||
(install-info): Use it.
|
|
||||||
|
|
||||||
2002-06-11 Nick Clifton <nickc@cambridge.redhat.com>
|
|
||||||
|
|
||||||
Import the following patches from the FSF GCC sources:
|
|
||||||
2002-03-25 Zack Weinberg <zack@codesourcery.com>
|
|
||||||
|
|
||||||
* texi2pod.pl: Handle @end ftable and @end vtable.
|
|
||||||
|
|
||||||
2001-12-12 Matthias Klose <doko@debian.org>
|
|
||||||
|
|
||||||
* texi2pod.pl: Merge changes from binutils' texi2pod.pl. Allows
|
|
||||||
generation of more than one man page from one source.
|
|
||||||
Add '-' to set of valid chars for an identifier.
|
|
||||||
Let -D option accept flags of the form <flag>=<value>.
|
|
||||||
Use \s+ for whitespace detection in '@c man' lines.
|
|
||||||
Handle @set and @clear independent of $output.
|
|
||||||
Substitute all @value{}'s in a line.
|
|
||||||
|
|
||||||
2001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
|
|
||||||
|
|
||||||
* texi2pod.pl: Handle @ifnottex, @iftex and @display. Handle @var
|
|
||||||
in verbatim blocks specially. Handle @unnumbered, @unnumberedsec
|
|
||||||
and @center. Allow [a-z] after @enumerate. Handle 0 and numbers
|
|
||||||
greater than 9 in enumerations.
|
|
||||||
|
|
||||||
2001-07-03 Joseph S. Myers <jsm28@cam.ac.uk>
|
|
||||||
|
|
||||||
* texi2pod.pl: Handle @r inside @item.
|
|
||||||
|
|
||||||
2002-02-27 Andrew Cagney <ac131313@redhat.com>
|
|
||||||
|
|
||||||
* fdl.texi: New file.
|
|
||||||
|
|
||||||
2002-02-24 Andrew Cagney <ac131313@redhat.com>
|
|
||||||
|
|
||||||
* standards.texi: Import February 14, 2002 version.
|
|
||||||
* make-stds.texi: Import 2001 version.
|
|
||||||
|
|
||||||
2002-01-26 Hans-Peter Nilsson <hp@bitrange.com>
|
|
||||||
|
|
||||||
* Makefile.in (install): Depend on install-info.
|
|
||||||
|
|
||||||
2001-03-25 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
|
||||||
|
|
||||||
* texi2pod.pl: New file (from gcc/contrib).
|
|
||||||
|
|
||||||
1999-04-01 Jim Blandy <jimb@zwingli.cygnus.com>
|
|
||||||
|
|
||||||
* add-log.el, add-log.vi: New files.
|
|
||||||
|
|
||||||
1999-01-20 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* comp-tools-verify: Remove some checks that are no longer valid.
|
|
||||||
|
|
||||||
1998-12-03 Nick Clifton <nickc@cygnus.com>
|
|
||||||
|
|
||||||
* targetdoc/fr30.texi: New document.
|
|
||||||
|
|
||||||
1998-10-01 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* comp-tools-fix, cross-tools-fix: Replace /usr/include
|
|
||||||
with ${FIXINCDIR}.
|
|
||||||
|
|
||||||
1998-08-11 Doug Evans <devans@canuck.cygnus.com>
|
|
||||||
|
|
||||||
* make-rel-sym-tree (version): Update calculation.
|
|
||||||
|
|
||||||
1998-06-12 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* configure.texi: Various additions.
|
|
||||||
* Makefile.in (TEXI2HTML, DVIPS): New variables.
|
|
||||||
(standards.ps): New target.
|
|
||||||
(configure.dvi): Copy .tin files in as well.
|
|
||||||
(configure.ps, configure.html): New targets.
|
|
||||||
(clean): Remove configdev.jpg and configbuild.jpg.
|
|
||||||
* configdev.fig: New file.
|
|
||||||
* configdev.ein: New file (EPS version of configdev.fig).
|
|
||||||
* configdev.jin: New file (JPEG version of configdev.fig).
|
|
||||||
* configbuild.fig: New file.
|
|
||||||
* configbuild.ein: New file (EPS version of configbuild.fig).
|
|
||||||
* configbuild.jin: New file (JPEG version of configbuild.fig).
|
|
||||||
|
|
||||||
1998-06-10 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* configure.texi: New file.
|
|
||||||
* configdev.tin: New file.
|
|
||||||
* configbuild.tin: New file.
|
|
||||||
* Makefile.in (MAKEINFO): Use makeinfo from texinfo directory if
|
|
||||||
it exists.
|
|
||||||
(TEXI2DVI): Likewise for texi2dvi.
|
|
||||||
(INFOFILES): Add configure.info.
|
|
||||||
(DVIFILES): Add configure.dvi.
|
|
||||||
(info): Only build info files if the source files exist.
|
|
||||||
(install-info): Only install info files if they exist.
|
|
||||||
(dvi): Only build DVI files if the sources files exist.
|
|
||||||
(configure.info): New target.
|
|
||||||
(configure.dvi): New target.
|
|
||||||
(clean): Remove configdev and configbuild derived files.
|
|
||||||
|
|
||||||
Remove obsolete documentation.
|
|
||||||
* intro.texi: Remove.
|
|
||||||
* install.texi: Remove.
|
|
||||||
* config-names.texi: Remove.
|
|
||||||
* screen1.eps: Remove.
|
|
||||||
* screen1.obj: Remove.
|
|
||||||
* screen2.eps: Remove.
|
|
||||||
* screen2.obj: Remove.
|
|
||||||
* Makefile.in: Remove references to the above.
|
|
||||||
|
|
||||||
Thu May 21 14:34:51 1998 Nick Clifton <nickc@cygnus.com>
|
|
||||||
|
|
||||||
* targetdoc/arm-interwork.texi: Add note about ignoring linker
|
|
||||||
warning message when using --support-old-code.
|
|
||||||
|
|
||||||
Mon May 18 14:27:37 1998 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* Install.in, comp-tools-fix, comp-tools-verify, cross-tools-fix:
|
|
||||||
Use $GCCvn rather than substitute everywhere.
|
|
||||||
|
|
||||||
Thu May 14 14:43:10 1998 Nick Clifton <nickc@cygnus.com>
|
|
||||||
|
|
||||||
* targetdoc/arm-interwork.texi: Document dlltool support of
|
|
||||||
interworking.
|
|
||||||
|
|
||||||
Thu May 7 16:49:38 1998 Jason Molenda (crash@bugshack.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: Remove references to TCL_LIBRARY, TK_LIBRARY,
|
|
||||||
and GDBTK_FILENAME.
|
|
||||||
|
|
||||||
Wed Apr 1 17:11:44 1998 Nick Clifton <nickc@cygnus.com>
|
|
||||||
|
|
||||||
* targetdoc/arm-interwork.texi: Document ARM/thumb interworking.
|
|
||||||
|
|
||||||
Tue Mar 31 15:28:20 1998 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* standards.texi, make-stds.texi: Update to current FSF versions.
|
|
||||||
* Makefile.in (standards.info): Depend upon make-std.texi.
|
|
||||||
|
|
||||||
Tue Mar 24 16:13:26 1998 Stu Grossman <grossman@bhuna.cygnus.co.uk>
|
|
||||||
|
|
||||||
* configure: Regenerate with autoconf 2.12.1 to fix shell issues
|
|
||||||
for NT native builds.
|
|
||||||
|
|
||||||
Mon Mar 9 16:41:04 1998 Doug Evans <devans@canuck.cygnus.com>
|
|
||||||
|
|
||||||
* make-rel-sym-tree (binprogs): Add objcopy.
|
|
||||||
|
|
||||||
Tue Feb 24 18:11:58 1998 Doug Evans <devans@canuck.cygnus.com>
|
|
||||||
|
|
||||||
* make-rel-sym-tree: as.new -> as-new, ld.new -> ld-new
|
|
||||||
nm.new -> nm-new. Make symlinks to crt*.o.
|
|
||||||
|
|
||||||
Fri Nov 21 12:54:58 1997 Manfred Hollstein <manfred@s-direktnet.de>
|
|
||||||
|
|
||||||
* Makefile.in: Add --no-split argument to avoid creating files
|
|
||||||
with names longer than 14 characters.
|
|
||||||
|
|
||||||
Thu Sep 25 13:13:11 1997 Jason Molenda (crash@pern.cygnus.com)
|
|
||||||
|
|
||||||
* intro.texi: Add closing ifset.
|
|
||||||
|
|
||||||
Mon Sep 1 10:31:32 1997 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: Move setting HOST and TARGET to the beginning
|
|
||||||
of the file for editing convenience.
|
|
||||||
|
|
||||||
Mon Sep 1 10:28:37 1997 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* Install.in.: More friendly options/messages when extracting
|
|
||||||
from a file instead of a tape device.
|
|
||||||
|
|
||||||
Tue Jun 17 15:50:23 1997 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: Add /usr/bsd to PATH for Irix (home of compress)
|
|
||||||
|
|
||||||
Thu Jun 12 13:47:00 1997 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* Install.in (show_exec_prefix_msg): fix quoting
|
|
||||||
|
|
||||||
Wed Jun 4 15:31:43 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
|
||||||
|
|
||||||
* rebuilding.texi: Removed.
|
|
||||||
|
|
||||||
Sat May 24 18:02:20 1997 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* cross-tools-fix: Remove host check since it doesn't matter
|
|
||||||
for this case.
|
|
||||||
* Install.in (guess_system): clean up more unused hosts.
|
|
||||||
* Install.in, cross-tools-fix, comp-tools-fix, comp-tools-verify:
|
|
||||||
Hack for host check to not warn the user for certain cases.
|
|
||||||
|
|
||||||
Fri May 23 23:46:10 1997 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* subst-strings: Remove a lot of unused code
|
|
||||||
* Install.in: Remove reference to TAPEdflt, use variables instead of
|
|
||||||
string substitution when able.
|
|
||||||
|
|
||||||
Fri Apr 11 17:25:52 1997 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* configure.in: Change file named in AC_INIT to Makefile.in.
|
|
||||||
* configure: Rebuild.
|
|
||||||
|
|
||||||
Fri Apr 11 18:12:42 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
|
||||||
|
|
||||||
* Install.in (guess_system): Back out change to INSTALLHOST to
|
|
||||||
call all IRIX systems "mips-sgi-irix4"
|
|
||||||
|
|
||||||
* Makefile.in: Remove references to configure.texi and cfg-paper.texi.
|
|
||||||
|
|
||||||
Thu Apr 10 23:26:45 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
|
||||||
|
|
||||||
* srctree.texi, emacs-relnotes.texi, cfg-paper.texi: Remove.
|
|
||||||
* Install.in: Remove Ultrix-specific hacks.
|
|
||||||
Update Cygnus phone numbers.
|
|
||||||
(guess_system): Remove some old systems (Ultrix, OSF1 v1 & 2,
|
|
||||||
m68k-HPUX, m68k SunOS, etc.)
|
|
||||||
(show_gnu_root_msg): Remove.
|
|
||||||
Removed all the remove option code.
|
|
||||||
|
|
||||||
Thu Apr 10 23:23:33 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
|
||||||
|
|
||||||
* configure.man, configure.texi: Remote.
|
|
||||||
|
|
||||||
Mon Apr 7 18:15:00 1997 Brendan Kehoe <brendan@cygnus.com>
|
|
||||||
|
|
||||||
* Fix the version string for OSF1 4.0 to recognize either
|
|
||||||
V4.* or X4.*
|
|
||||||
|
|
||||||
Mon Apr 7 15:34:47 1997 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* standards.texi, make-stds.texi: Update to current FSF versions.
|
|
||||||
|
|
||||||
Tue Nov 19 15:36:14 1996 Doug Evans <dje@canuck.cygnus.com>
|
|
||||||
|
|
||||||
* make-rel-sym-tree: New file.
|
|
||||||
|
|
||||||
Wed Oct 23 00:34:07 1996 Angela Marie Thomas (angela@cygnus.com)
|
|
||||||
|
|
||||||
* Lots of patches from progressive...
|
|
||||||
* Install.in: restore DDOPTS for AIX 4.x
|
|
||||||
* Install.in, subst-strings: add case for DG Aviion
|
|
||||||
* subst-strings: fix typo in INSTALLdir var setting
|
|
||||||
* comp-tools-verify: set SHLIB_PATH for shared libs
|
|
||||||
* Install.in, subst-strings: add case for solaris2.5
|
|
||||||
* Install.in: fix regression for hppa1.1 check
|
|
||||||
* comp-tools-fix: set LD_LIBRARY_PATH
|
|
||||||
* comp-tools-fix: If fixincludes fixes /usr/include/limits.h,
|
|
||||||
install it as syslimits.h.
|
|
||||||
|
|
||||||
Wed Oct 16 19:20:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
|
|
||||||
|
|
||||||
* Install.in (guess_system): Treat powerpc-ibm-aix4.1 the same as
|
|
||||||
rs6000-ibm-aix4.1, since the compiler now uses common mode by
|
|
||||||
default.
|
|
||||||
|
|
||||||
Wed Oct 2 15:39:07 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
|
||||||
|
|
||||||
* configure.in (AC_PROG_INSTALL): Added.
|
|
||||||
* Makefile.in (distclean): Remove config.cache.
|
|
||||||
|
|
||||||
Wed Oct 2 14:33:58 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
|
||||||
|
|
||||||
* configure.in: Switch to autoconf configure.in.
|
|
||||||
* configure: New.
|
|
||||||
* Makefile.in: Use autoconf-substituted values.
|
|
||||||
|
|
||||||
Tue Jun 25 18:56:08 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
|
||||||
|
|
||||||
* Makefile.in (datadir): Changed to $(prefix)/share.
|
|
||||||
|
|
||||||
Fri Mar 29 11:38:01 1996 J.T. Conklin (jtc@lisa.cygnus.com)
|
|
||||||
|
|
||||||
* configure.man: Changed to be recognized by catman -w on Solaris.
|
|
||||||
|
|
||||||
Wed Dec 6 15:40:28 1995 Doug Evans <dje@canuck.cygnus.com>
|
|
||||||
|
|
||||||
* comp-tools-fix (fixincludes): Define FIXPROTO_DEFINES from
|
|
||||||
.../install-tools/fixproto-defines.
|
|
||||||
|
|
||||||
Sun Nov 12 19:31:27 1995 Jason Molenda (crash@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* comp-tools-verify (verify_cxx_initializers): delete argv,
|
|
||||||
argc declarations, add -static to compile line.
|
|
||||||
(verify_cxx_hello_world): delete argv, argc declarations, add
|
|
||||||
-static to compile line.
|
|
||||||
|
|
||||||
Wed Sep 20 13:21:52 1995 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* Makefile.in (maintainer-clean): New target, synonym for
|
|
||||||
realclean.
|
|
||||||
|
|
||||||
Mon Aug 28 17:25:49 1995 Jason Molenda (crash@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in (PATH): add /usr/ucb to $PATH (for SunOS 4.1.x).
|
|
||||||
|
|
||||||
Tue Aug 15 21:51:58 1995 Jason Molenda (crash@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in (guess_system): Match OSF/1 v3.x as the same as
|
|
||||||
v2.x--v2.x binaries are upward compatible.
|
|
||||||
|
|
||||||
Tue Aug 15 21:46:54 1995 Jason Molenda (crash@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in (guess_system): recognize HP 9000/800 systems as the
|
|
||||||
same as HP 9000/700 systems.
|
|
||||||
|
|
||||||
Tue Aug 8 13:11:56 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
|
|
||||||
|
|
||||||
* Install.in: For emacs, run show_emacs_alternate_msg and exit.
|
|
||||||
(show_emacs_alternate_msg): New message saying how emacs can't be
|
|
||||||
installed in an alternate prefix.
|
|
||||||
|
|
||||||
Thu Jun 8 00:42:56 1995 Angela Marie Thomas <angela@cirdan.cygnus.com>
|
|
||||||
|
|
||||||
* subst-strings: change du commands to $BINDIR/. & $SRCDIR/. just
|
|
||||||
in case they are symlinks.
|
|
||||||
|
|
||||||
Tue Apr 18 14:23:10 1995 J.T. Conklin <jtc@rtl.cygnus.com>
|
|
||||||
|
|
||||||
* cdk-fix: Extracted table of targets that don't need their
|
|
||||||
headers fixed from gcc's configure script.
|
|
||||||
|
|
||||||
* cdk-fix, cdk-verify: Use ${HOST} instead of ||HOSTstr||
|
|
||||||
|
|
||||||
* cdk-fix, cdk-verify: New files, install script fragments used
|
|
||||||
for Cygnus Developer's Kit.
|
|
||||||
|
|
||||||
* Install.in (do_mkdir): New function.
|
|
||||||
|
|
||||||
* Install.in: Added support for --with and --without options.
|
|
||||||
Changed so that tape commands are not run when extracting
|
|
||||||
from a file.
|
|
||||||
(do_mt): Changed to take only one argument.
|
|
||||||
|
|
||||||
Wed Mar 29 11:16:38 1995 Jason Molenda (crash@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: catch UNAME==alpha-dec-osf2.x and correct entry for
|
|
||||||
alpha-dec-osf1.x
|
|
||||||
|
|
||||||
Fri Jan 27 12:04:29 1995 J.T. Conklin <jtc@rtl.cygnus.com>
|
|
||||||
|
|
||||||
* subst-strings (mips-sgi-irix5): New entry in table.
|
|
||||||
|
|
||||||
Thu Jan 19 12:15:44 1995 J.T. Conklin <jtc@rtl.cygnus.com>
|
|
||||||
|
|
||||||
* Install.in: Major rewrite, bundle dependent code (for example,
|
|
||||||
fixincludes for comp-tools) will be inserted into the Install
|
|
||||||
script when it is generated.
|
|
||||||
|
|
||||||
Tue Jan 17 16:51:32 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
|
|
||||||
|
|
||||||
* Makefile.in (Makefile): Rebuild using $(SHELL).
|
|
||||||
|
|
||||||
Thu Nov 3 19:30:33 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
|
|
||||||
|
|
||||||
* Makefile.in (install-info): Depend on info.
|
|
||||||
|
|
||||||
Fri Aug 19 16:16:38 1994 Jason Molenda (crash@phydeaux.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: set $FIX_HEADER so fixproto can find fix-header.
|
|
||||||
|
|
||||||
Fri May 6 16:18:58 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Makefile.in (install-info): add a semicolon in the if statement.
|
|
||||||
|
|
||||||
Fri Apr 29 16:56:07 1994 David J. Mackenzie (djm@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* cfg-paper.texi: Update some outdated information.
|
|
||||||
|
|
||||||
* Makefile.in (install-info): Pass file, not directory, as last
|
|
||||||
arg to INSTALL_DATA.
|
|
||||||
(uninstall): New target.
|
|
||||||
|
|
||||||
Thu Apr 28 14:42:22 1994 David J. Mackenzie (djm@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* configure.texi: Comment out @smallbook.
|
|
||||||
|
|
||||||
* Makefile.in: Define TEXI2DVI and TEXIDIR, and use the latter.
|
|
||||||
Remove info files in realclean, not clean, per coding standards.
|
|
||||||
Remove TeX output in clean.
|
|
||||||
|
|
||||||
Tue Apr 26 17:18:03 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: fixincludes output is actually put in fixincludes.log,
|
|
||||||
but echo'ed messages claim it is fixinc.log. This is the same
|
|
||||||
messages as I logged in March 4 1994, but for some reason we found
|
|
||||||
the change hadn't been done. I'll have to dig through the logs
|
|
||||||
and find out what I really did do that day. :)
|
|
||||||
|
|
||||||
Mon Apr 25 20:28:19 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: use eval to call do_mt() for Ultrix brokenness.
|
|
||||||
|
|
||||||
Mon Apr 25 20:00:00 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in(do_mt): exit with error status 1 if # of parameters
|
|
||||||
!= 3.
|
|
||||||
|
|
||||||
Mon Apr 25 19:42:36 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: lose TAPE_FORWARD and TAPE_REWIND, add do_mt()
|
|
||||||
to do all tape movement operations. Currently untested. Addresses
|
|
||||||
PR # 4886 from bull.
|
|
||||||
|
|
||||||
* Install.in: add 1994 to the copyright thing.
|
|
||||||
|
|
||||||
Fri Apr 22 19:05:13 1994 David J. Mackenzie (djm@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* standards.texi: Update from FSF.
|
|
||||||
|
|
||||||
Fri Apr 22 15:46:10 1994 Jason Molenda (crash@cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: Add $DDOPTS, has ``bs=124b'' for all systems except
|
|
||||||
AIX (some versions of AIX don't understand bs=124b. Silly OS).
|
|
||||||
|
|
||||||
Mon Apr 4 22:55:05 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: null out $TOOLS before adding stuff to it
|
|
||||||
non-destructively.
|
|
||||||
|
|
||||||
Wed Mar 30 21:45:35 1994 David J. Mackenzie (djm@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* standards.texi: Fix typo.
|
|
||||||
|
|
||||||
* configure.texi, configure.man: Document --disable-.
|
|
||||||
|
|
||||||
Mon Mar 28 13:22:15 1994 David J. Mackenzie (djm@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* standards.texi: Update from FSF.
|
|
||||||
|
|
||||||
Sat Mar 26 09:21:44 1994 David J. Mackenzie (djm@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* standards.texi, make-stds.texi: Update from FSF.
|
|
||||||
|
|
||||||
Fri Mar 25 22:59:45 1994 David J. Mackenzie (djm@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* configure.texi, configure.man: Document --enable-* options.
|
|
||||||
|
|
||||||
Wed Mar 23 23:38:24 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: set CPP to be gcc -E for fixincludes.
|
|
||||||
|
|
||||||
Wed Mar 23 13:42:48 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: set PATH to $PATH:/bin:/usr/bin so we can pick
|
|
||||||
up native tools even if the user doesn't have them in his
|
|
||||||
path.
|
|
||||||
|
|
||||||
* Install.in: ``hppa-1.1-hp-hpux'' -> ``hppa1.1-hp-hpux''.
|
|
||||||
|
|
||||||
Tue Mar 15 22:09:20 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: TAPE_REWIND and TAPE_FORWARD variables for Unixunaware,
|
|
||||||
added switch statement to detect if system is Unixunaware.
|
|
||||||
|
|
||||||
Fri Mar 4 12:10:30 1994 Jason Molenda (crash@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: fixincludes output is actually put in fixincludes.log,
|
|
||||||
but echo'ed messages claim it is fixinc.log.
|
|
||||||
|
|
||||||
Wed Nov 3 02:58:02 1993 Jeffrey Osier (jeffrey@thepub.cygnus.com)
|
|
||||||
|
|
||||||
* subst-strings: output TEXBUNDLE for more install notes matching
|
|
||||||
* install-texi.in: PRMS info now exists
|
|
||||||
|
|
||||||
Tue Oct 26 16:57:12 1993 K. Richard Pixley (rich@sendai.cygnus.com)
|
|
||||||
|
|
||||||
* subst-strings: match solaris*. Also, add default case to catch
|
|
||||||
and error out for unrecognized systems.
|
|
||||||
|
|
||||||
Thu Aug 19 18:21:31 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: handle the new fixproto work
|
|
||||||
|
|
||||||
Mon Jul 19 12:05:41 1993 david d `zoo' zuhn (zoo@cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: remove "MT=tctl" for AIX (not needed, and barely
|
|
||||||
worked anyway)
|
|
||||||
|
|
||||||
Mon Jun 14 19:09:22 1993 Jeffrey Osier (jeffrey@cygnus.com)
|
|
||||||
|
|
||||||
* subst-strings: changed HOST to recognize Solaris for install notes
|
|
||||||
|
|
||||||
Thu Jun 10 16:01:25 1993 Jeffrey Osier (jeffrey@cygnus.com)
|
|
||||||
|
|
||||||
* dos-inst.texi: new file.
|
|
||||||
|
|
||||||
Wed Jun 9 19:23:59 1993 Jeffrey Osier (jeffrey@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* install-texi.in: added conditionals (nearly complete)
|
|
||||||
cleaned up
|
|
||||||
added support for other releases (not done)
|
|
||||||
|
|
||||||
Wed Jun 9 15:53:58 1993 Jim Kingdon (kingdon@cygnus.com)
|
|
||||||
|
|
||||||
* Makefile.in (install-info): Use INSTALL_DATA.
|
|
||||||
({dist,real}clean): Also delete Makefile and config.status.
|
|
||||||
|
|
||||||
Fri Jun 4 17:09:56 1993 Jeffrey Osier (jeffrey@cygnus.com)
|
|
||||||
|
|
||||||
* subst-strings: added data for OS_STRING
|
|
||||||
|
|
||||||
* subst-strings: added support for OS_STRING
|
|
||||||
|
|
||||||
Thu Jun 3 00:37:01 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: pull COPYING and COPYING.LIB off of the tape
|
|
||||||
|
|
||||||
Tue Jun 1 16:52:08 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* subst-strings: replace RELEASE_DIR too
|
|
||||||
|
|
||||||
Mon Mar 22 23:55:27 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* Makefile.in: add installcheck target
|
|
||||||
|
|
||||||
Wed Mar 17 02:21:15 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* Install.in: fix 'source only' extraction bug where it looked for
|
|
||||||
the src dir under H-<host>/src instead of src; also remove stray
|
|
||||||
reference to EMACSHIBIN
|
|
||||||
|
|
||||||
Mon Mar 15 01:25:45 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* make-stds.texi: added 'installcheck' to the standard targets
|
|
||||||
|
|
||||||
Tue Mar 9 19:48:28 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* standards.texi: added INFO-DIR-ENTRY, updated version from the FSF
|
|
||||||
|
|
||||||
Tue Feb 9 12:40:23 1993 Ian Lance Taylor (ian@cygnus.com)
|
|
||||||
|
|
||||||
* Makefile.in (standards.info): Added -I$(srcdir) to find
|
|
||||||
make-stds.texi.
|
|
||||||
|
|
||||||
Mon Feb 1 16:32:56 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* standards.texi: updated to latest FSF version, which includes:
|
|
||||||
|
|
||||||
* make-stds.texi: new file
|
|
||||||
|
|
||||||
Mon Nov 30 01:31:40 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* install-texi.in, relnotes.texi, intro.texi: changed Cygnus phone
|
|
||||||
numbers from the old Palo Alto ones to the new Mtn. View numbers
|
|
||||||
|
|
||||||
Mon Nov 16 16:50:43 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* Makefile.in: define $(RM) to "rm -f"
|
|
||||||
|
|
||||||
Sun Oct 11 16:05:48 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
|
|
||||||
|
|
||||||
* intro.texi: added INFO-DIR-ENTRY
|
|
||||||
|
|
159
etc/Makefile.in
159
etc/Makefile.in
@ -1,159 +0,0 @@
|
|||||||
#
|
|
||||||
# Makefile.in for etc
|
|
||||||
#
|
|
||||||
|
|
||||||
DESTDIR =
|
|
||||||
|
|
||||||
prefix = @prefix@
|
|
||||||
exec_prefix = @exec_prefix@
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
VPATH = @srcdir@
|
|
||||||
|
|
||||||
bindir = @bindir@
|
|
||||||
libdir = @libdir@
|
|
||||||
tooldir = $(libdir)
|
|
||||||
datadir = @datadir@
|
|
||||||
|
|
||||||
mandir = @mandir@
|
|
||||||
man1dir = $(mandir)/man1
|
|
||||||
man2dir = $(mandir)/man2
|
|
||||||
man3dir = $(mandir)/man3
|
|
||||||
man4dir = $(mandir)/man4
|
|
||||||
man5dir = $(mandir)/man5
|
|
||||||
man6dir = $(mandir)/man6
|
|
||||||
man7dir = $(mandir)/man7
|
|
||||||
man8dir = $(mandir)/man8
|
|
||||||
man9dir = $(mandir)/man9
|
|
||||||
infodir = @infodir@
|
|
||||||
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
INSTALL = @INSTALL@
|
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
#### Host, target, and site specific Makefile fragments come in here.
|
|
||||||
###
|
|
||||||
|
|
||||||
INFOFILES = standards.info configure.info
|
|
||||||
DVIFILES = standards.dvi configure.dvi
|
|
||||||
|
|
||||||
all:
|
|
||||||
|
|
||||||
# We want install to imply install-info as per GNU standards.
|
|
||||||
install: install-info
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
install-info: info
|
|
||||||
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(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 $(DESTDIR)$(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 $(DESTDIR)$(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
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -f Makefile config.status config.cache
|
|
||||||
|
|
||||||
maintainer-clean realclean: distclean
|
|
||||||
rm -f *.info*
|
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
|
|
||||||
$(SHELL) ./config.status
|
|
||||||
|
|
||||||
## these last targets are for standards.texi conformance
|
|
||||||
dist:
|
|
||||||
check:
|
|
||||||
installcheck:
|
|
||||||
TAGS:
|
|
573
etc/add-log.el
573
etc/add-log.el
@ -1,573 +0,0 @@
|
|||||||
;;; ============ NOTE WELL! =============
|
|
||||||
;;;
|
|
||||||
;;; You only need to use this file if you're using a version of Emacs
|
|
||||||
;;; prior to 20.1 to work on GDB. The only difference between this
|
|
||||||
;;; and the standard add-log.el provided with 19.34 is that it
|
|
||||||
;;; generates dates using the terser format used by Emacs 20. This is
|
|
||||||
;;; the format recommended for use in GDB ChangeLogs.
|
|
||||||
;;;
|
|
||||||
;;; To use this code, you should create a directory `~/elisp', save the code
|
|
||||||
;;; below in `~/elisp/add-log.el', and then put something like this in
|
|
||||||
;;; your `~/.emacs' file, to tell Emacs where to find it:
|
|
||||||
;;;
|
|
||||||
;;; (setq load-path
|
|
||||||
;;; (cons (expand-file-name "~/elisp")
|
|
||||||
;;; load-path))
|
|
||||||
;;;
|
|
||||||
;;; If you want, you can also byte-compile it --- it'll run a little
|
|
||||||
;;; faster, and use a little less memory. (Not that those matter much for
|
|
||||||
;;; this file.) To do that, after you've saved the text as
|
|
||||||
;;; ~/elisp/add-log.el, bring it up in Emacs, and type
|
|
||||||
;;;
|
|
||||||
;;; C-u M-x byte-compile-file
|
|
||||||
;;;
|
|
||||||
;;; --- Jim Blandy
|
|
||||||
|
|
||||||
;;; add-log.el --- change log maintenance commands for Emacs
|
|
||||||
|
|
||||||
;; Copyright (C) 1985, 1986, 1988, 1993, 1994 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
;; Keywords: maint
|
|
||||||
|
|
||||||
;; This file is part of GNU Emacs.
|
|
||||||
|
|
||||||
;; GNU Emacs 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 Emacs 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 Emacs; see the file COPYING. If not, write to the
|
|
||||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
;; Boston, MA 02111-1307, USA.
|
|
||||||
|
|
||||||
;;; Commentary:
|
|
||||||
|
|
||||||
;; This facility is documented in the Emacs Manual.
|
|
||||||
|
|
||||||
;;; Code:
|
|
||||||
|
|
||||||
(defvar change-log-default-name nil
|
|
||||||
"*Name of a change log file for \\[add-change-log-entry].")
|
|
||||||
|
|
||||||
(defvar add-log-current-defun-function nil
|
|
||||||
"\
|
|
||||||
*If non-nil, function to guess name of current function from surrounding text.
|
|
||||||
\\[add-change-log-entry] calls this function (if nil, `add-log-current-defun'
|
|
||||||
instead) with no arguments. It returns a string or nil if it cannot guess.")
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defvar add-log-full-name nil
|
|
||||||
"*Full name of user, for inclusion in ChangeLog daily headers.
|
|
||||||
This defaults to the value returned by the `user-full-name' function.")
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defvar add-log-mailing-address nil
|
|
||||||
"*Electronic mail address of user, for inclusion in ChangeLog daily headers.
|
|
||||||
This defaults to the value of `user-mail-address'.")
|
|
||||||
|
|
||||||
(defvar change-log-font-lock-keywords
|
|
||||||
'(("^[SMTWF].+" . font-lock-function-name-face) ; Date line.
|
|
||||||
("^\t\\* \\([^ :\n]+\\)" 1 font-lock-comment-face) ; File name.
|
|
||||||
("(\\([^)\n]+\\)):" 1 font-lock-keyword-face)) ; Function name.
|
|
||||||
"Additional expressions to highlight in Change Log mode.")
|
|
||||||
|
|
||||||
(defvar change-log-mode-map nil
|
|
||||||
"Keymap for Change Log major mode.")
|
|
||||||
(if change-log-mode-map
|
|
||||||
nil
|
|
||||||
(setq change-log-mode-map (make-sparse-keymap))
|
|
||||||
(define-key change-log-mode-map "\M-q" 'change-log-fill-paragraph))
|
|
||||||
|
|
||||||
(defun change-log-name ()
|
|
||||||
(or change-log-default-name
|
|
||||||
(if (eq system-type 'vax-vms)
|
|
||||||
"$CHANGE_LOG$.TXT"
|
|
||||||
(if (or (eq system-type 'ms-dos) (eq system-type 'windows-nt))
|
|
||||||
"changelo"
|
|
||||||
"ChangeLog"))))
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun prompt-for-change-log-name ()
|
|
||||||
"Prompt for a change log name."
|
|
||||||
(let* ((default (change-log-name))
|
|
||||||
(name (expand-file-name
|
|
||||||
(read-file-name (format "Log file (default %s): " default)
|
|
||||||
nil default))))
|
|
||||||
;; Handle something that is syntactically a directory name.
|
|
||||||
;; Look for ChangeLog or whatever in that directory.
|
|
||||||
(if (string= (file-name-nondirectory name) "")
|
|
||||||
(expand-file-name (file-name-nondirectory default)
|
|
||||||
name)
|
|
||||||
;; Handle specifying a file that is a directory.
|
|
||||||
(if (file-directory-p name)
|
|
||||||
(expand-file-name (file-name-nondirectory default)
|
|
||||||
(file-name-as-directory name))
|
|
||||||
name))))
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun find-change-log (&optional file-name)
|
|
||||||
"Find a change log file for \\[add-change-log-entry] and return the name.
|
|
||||||
|
|
||||||
Optional arg FILE-NAME specifies the file to use.
|
|
||||||
If FILE-NAME is nil, use the value of `change-log-default-name'.
|
|
||||||
If 'change-log-default-name' is nil, behave as though it were 'ChangeLog'
|
|
||||||
\(or whatever we use on this operating system).
|
|
||||||
|
|
||||||
If 'change-log-default-name' contains a leading directory component, then
|
|
||||||
simply find it in the current directory. Otherwise, search in the current
|
|
||||||
directory and its successive parents for a file so named.
|
|
||||||
|
|
||||||
Once a file is found, `change-log-default-name' is set locally in the
|
|
||||||
current buffer to the complete file name."
|
|
||||||
;; If user specified a file name or if this buffer knows which one to use,
|
|
||||||
;; just use that.
|
|
||||||
(or file-name
|
|
||||||
(setq file-name (and change-log-default-name
|
|
||||||
(file-name-directory change-log-default-name)
|
|
||||||
change-log-default-name))
|
|
||||||
(progn
|
|
||||||
;; Chase links in the source file
|
|
||||||
;; and use the change log in the dir where it points.
|
|
||||||
(setq file-name (or (and buffer-file-name
|
|
||||||
(file-name-directory
|
|
||||||
(file-chase-links buffer-file-name)))
|
|
||||||
default-directory))
|
|
||||||
(if (file-directory-p file-name)
|
|
||||||
(setq file-name (expand-file-name (change-log-name) file-name)))
|
|
||||||
;; Chase links before visiting the file.
|
|
||||||
;; This makes it easier to use a single change log file
|
|
||||||
;; for several related directories.
|
|
||||||
(setq file-name (file-chase-links file-name))
|
|
||||||
(setq file-name (expand-file-name file-name))
|
|
||||||
;; Move up in the dir hierarchy till we find a change log file.
|
|
||||||
(let ((file1 file-name)
|
|
||||||
parent-dir)
|
|
||||||
(while (and (not (or (get-file-buffer file1) (file-exists-p file1)))
|
|
||||||
(progn (setq parent-dir
|
|
||||||
(file-name-directory
|
|
||||||
(directory-file-name
|
|
||||||
(file-name-directory file1))))
|
|
||||||
;; Give up if we are already at the root dir.
|
|
||||||
(not (string= (file-name-directory file1)
|
|
||||||
parent-dir))))
|
|
||||||
;; Move up to the parent dir and try again.
|
|
||||||
(setq file1 (expand-file-name
|
|
||||||
(file-name-nondirectory (change-log-name))
|
|
||||||
parent-dir)))
|
|
||||||
;; If we found a change log in a parent, use that.
|
|
||||||
(if (or (get-file-buffer file1) (file-exists-p file1))
|
|
||||||
(setq file-name file1)))))
|
|
||||||
;; Make a local variable in this buffer so we needn't search again.
|
|
||||||
(set (make-local-variable 'change-log-default-name) file-name)
|
|
||||||
file-name)
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun add-change-log-entry (&optional whoami file-name other-window new-entry)
|
|
||||||
"Find change log file and add an entry for today.
|
|
||||||
Optional arg (interactive prefix) non-nil means prompt for user name and site.
|
|
||||||
Second arg is file name of change log. If nil, uses `change-log-default-name'.
|
|
||||||
Third arg OTHER-WINDOW non-nil means visit in other window.
|
|
||||||
Fourth arg NEW-ENTRY non-nil means always create a new entry at the front;
|
|
||||||
never append to an existing entry."
|
|
||||||
(interactive (list current-prefix-arg
|
|
||||||
(prompt-for-change-log-name)))
|
|
||||||
(or add-log-full-name
|
|
||||||
(setq add-log-full-name (user-full-name)))
|
|
||||||
(or add-log-mailing-address
|
|
||||||
(setq add-log-mailing-address user-mail-address))
|
|
||||||
(if whoami
|
|
||||||
(progn
|
|
||||||
(setq add-log-full-name (read-input "Full name: " add-log-full-name))
|
|
||||||
;; Note that some sites have room and phone number fields in
|
|
||||||
;; full name which look silly when inserted. Rather than do
|
|
||||||
;; anything about that here, let user give prefix argument so that
|
|
||||||
;; s/he can edit the full name field in prompter if s/he wants.
|
|
||||||
(setq add-log-mailing-address
|
|
||||||
(read-input "Mailing address: " add-log-mailing-address))))
|
|
||||||
(let ((defun (funcall (or add-log-current-defun-function
|
|
||||||
'add-log-current-defun)))
|
|
||||||
paragraph-end entry)
|
|
||||||
|
|
||||||
(setq file-name (expand-file-name (find-change-log file-name)))
|
|
||||||
|
|
||||||
;; Set ENTRY to the file name to use in the new entry.
|
|
||||||
(and buffer-file-name
|
|
||||||
;; Never want to add a change log entry for the ChangeLog file itself.
|
|
||||||
(not (string= buffer-file-name file-name))
|
|
||||||
(setq entry (if (string-match
|
|
||||||
(concat "^" (regexp-quote (file-name-directory
|
|
||||||
file-name)))
|
|
||||||
buffer-file-name)
|
|
||||||
(substring buffer-file-name (match-end 0))
|
|
||||||
(file-name-nondirectory buffer-file-name))))
|
|
||||||
|
|
||||||
(if (and other-window (not (equal file-name buffer-file-name)))
|
|
||||||
(find-file-other-window file-name)
|
|
||||||
(find-file file-name))
|
|
||||||
(or (eq major-mode 'change-log-mode)
|
|
||||||
(change-log-mode))
|
|
||||||
(undo-boundary)
|
|
||||||
(goto-char (point-min))
|
|
||||||
(let ((heading (format "%s %s <%s>"
|
|
||||||
(format-time-string "%Y-%m-%d")
|
|
||||||
add-log-full-name
|
|
||||||
add-log-mailing-address)))
|
|
||||||
(if (looking-at (regexp-quote heading))
|
|
||||||
(forward-line 1)
|
|
||||||
(insert heading "\n\n")))
|
|
||||||
|
|
||||||
;; Search only within the first paragraph.
|
|
||||||
(if (looking-at "\n*[^\n* \t]")
|
|
||||||
(skip-chars-forward "\n")
|
|
||||||
(forward-paragraph 1))
|
|
||||||
(setq paragraph-end (point))
|
|
||||||
(goto-char (point-min))
|
|
||||||
|
|
||||||
;; Now insert the new line for this entry.
|
|
||||||
(cond ((re-search-forward "^\\s *\\*\\s *$" paragraph-end t)
|
|
||||||
;; Put this file name into the existing empty entry.
|
|
||||||
(if entry
|
|
||||||
(insert entry)))
|
|
||||||
((and (not new-entry)
|
|
||||||
(let (case-fold-search)
|
|
||||||
(re-search-forward
|
|
||||||
(concat (regexp-quote (concat "* " entry))
|
|
||||||
;; Don't accept `foo.bar' when
|
|
||||||
;; looking for `foo':
|
|
||||||
"\\(\\s \\|[(),:]\\)")
|
|
||||||
paragraph-end t)))
|
|
||||||
;; Add to the existing entry for the same file.
|
|
||||||
(re-search-forward "^\\s *$\\|^\\s \\*")
|
|
||||||
(goto-char (match-beginning 0))
|
|
||||||
;; Delete excess empty lines; make just 2.
|
|
||||||
(while (and (not (eobp)) (looking-at "^\\s *$"))
|
|
||||||
(delete-region (point) (save-excursion (forward-line 1) (point))))
|
|
||||||
(insert "\n\n")
|
|
||||||
(forward-line -2)
|
|
||||||
(indent-relative-maybe))
|
|
||||||
(t
|
|
||||||
;; Make a new entry.
|
|
||||||
(forward-line 1)
|
|
||||||
(while (looking-at "\\sW")
|
|
||||||
(forward-line 1))
|
|
||||||
(while (and (not (eobp)) (looking-at "^\\s *$"))
|
|
||||||
(delete-region (point) (save-excursion (forward-line 1) (point))))
|
|
||||||
(insert "\n\n\n")
|
|
||||||
(forward-line -2)
|
|
||||||
(indent-to left-margin)
|
|
||||||
(insert "* " (or entry ""))))
|
|
||||||
;; Now insert the function name, if we have one.
|
|
||||||
;; Point is at the entry for this file,
|
|
||||||
;; either at the end of the line or at the first blank line.
|
|
||||||
(if defun
|
|
||||||
(progn
|
|
||||||
;; Make it easy to get rid of the function name.
|
|
||||||
(undo-boundary)
|
|
||||||
(insert (if (save-excursion
|
|
||||||
(beginning-of-line 1)
|
|
||||||
(looking-at "\\s *$"))
|
|
||||||
""
|
|
||||||
" ")
|
|
||||||
"(" defun "): "))
|
|
||||||
;; No function name, so put in a colon unless we have just a star.
|
|
||||||
(if (not (save-excursion
|
|
||||||
(beginning-of-line 1)
|
|
||||||
(looking-at "\\s *\\(\\*\\s *\\)?$")))
|
|
||||||
(insert ": ")))))
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun add-change-log-entry-other-window (&optional whoami file-name)
|
|
||||||
"Find change log file in other window and add an entry for today.
|
|
||||||
Optional arg (interactive prefix) non-nil means prompt for user name and site.
|
|
||||||
Second arg is file name of change log. \
|
|
||||||
If nil, uses `change-log-default-name'."
|
|
||||||
(interactive (if current-prefix-arg
|
|
||||||
(list current-prefix-arg
|
|
||||||
(prompt-for-change-log-name))))
|
|
||||||
(add-change-log-entry whoami file-name t))
|
|
||||||
;;;###autoload (define-key ctl-x-4-map "a" 'add-change-log-entry-other-window)
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun change-log-mode ()
|
|
||||||
"Major mode for editing change logs; like Indented Text Mode.
|
|
||||||
Prevents numeric backups and sets `left-margin' to 8 and `fill-column' to 74.
|
|
||||||
New log entries are usually made with \\[add-change-log-entry] or \\[add-change-log-entry-other-window].
|
|
||||||
Each entry behaves as a paragraph, and the entries for one day as a page.
|
|
||||||
Runs `change-log-mode-hook'."
|
|
||||||
(interactive)
|
|
||||||
(kill-all-local-variables)
|
|
||||||
(indented-text-mode)
|
|
||||||
(setq major-mode 'change-log-mode
|
|
||||||
mode-name "Change Log"
|
|
||||||
left-margin 8
|
|
||||||
fill-column 74
|
|
||||||
indent-tabs-mode t
|
|
||||||
tab-width 8)
|
|
||||||
(use-local-map change-log-mode-map)
|
|
||||||
;; Let each entry behave as one paragraph:
|
|
||||||
;; We really do want "^" in paragraph-start below: it is only the lines that
|
|
||||||
;; begin at column 0 (despite the left-margin of 8) that we are looking for.
|
|
||||||
(set (make-local-variable 'paragraph-start) "\\s *$\\|\f\\|^\\sw")
|
|
||||||
(set (make-local-variable 'paragraph-separate) "\\s *$\\|\f\\|^\\sw")
|
|
||||||
;; Let all entries for one day behave as one page.
|
|
||||||
;; Match null string on the date-line so that the date-line
|
|
||||||
;; is grouped with what follows.
|
|
||||||
(set (make-local-variable 'page-delimiter) "^\\<\\|^\f")
|
|
||||||
(set (make-local-variable 'version-control) 'never)
|
|
||||||
(set (make-local-variable 'adaptive-fill-regexp) "\\s *")
|
|
||||||
(set (make-local-variable 'font-lock-defaults)
|
|
||||||
'(change-log-font-lock-keywords t))
|
|
||||||
(run-hooks 'change-log-mode-hook))
|
|
||||||
|
|
||||||
;; It might be nice to have a general feature to replace this. The idea I
|
|
||||||
;; have is a variable giving a regexp matching text which should not be
|
|
||||||
;; moved from bol by filling. change-log-mode would set this to "^\\s *\\s(".
|
|
||||||
;; But I don't feel up to implementing that today.
|
|
||||||
(defun change-log-fill-paragraph (&optional justify)
|
|
||||||
"Fill the paragraph, but preserve open parentheses at beginning of lines.
|
|
||||||
Prefix arg means justify as well."
|
|
||||||
(interactive "P")
|
|
||||||
(let ((end (save-excursion (forward-paragraph) (point)))
|
|
||||||
(beg (save-excursion (backward-paragraph)(point)))
|
|
||||||
(paragraph-start (concat paragraph-start "\\|\\s *\\s(")))
|
|
||||||
(fill-region beg end justify)))
|
|
||||||
|
|
||||||
(defvar add-log-current-defun-header-regexp
|
|
||||||
"^\\([A-Z][A-Z_ ]*[A-Z_]\\|[-_a-zA-Z]+\\)[ \t]*[:=]"
|
|
||||||
"*Heuristic regexp used by `add-log-current-defun' for unknown major modes.")
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun add-log-current-defun ()
|
|
||||||
"Return name of function definition point is in, or nil.
|
|
||||||
|
|
||||||
Understands C, Lisp, LaTeX (\"functions\" are chapters, sections, ...),
|
|
||||||
Texinfo (@node titles), Perl, and Fortran.
|
|
||||||
|
|
||||||
Other modes are handled by a heuristic that looks in the 10K before
|
|
||||||
point for uppercase headings starting in the first column or
|
|
||||||
identifiers followed by `:' or `=', see variable
|
|
||||||
`add-log-current-defun-header-regexp'.
|
|
||||||
|
|
||||||
Has a preference of looking backwards."
|
|
||||||
(condition-case nil
|
|
||||||
(save-excursion
|
|
||||||
(let ((location (point)))
|
|
||||||
(cond ((memq major-mode '(emacs-lisp-mode lisp-mode scheme-mode
|
|
||||||
lisp-interaction-mode))
|
|
||||||
;; If we are now precisely at the beginning of a defun,
|
|
||||||
;; make sure beginning-of-defun finds that one
|
|
||||||
;; rather than the previous one.
|
|
||||||
(or (eobp) (forward-char 1))
|
|
||||||
(beginning-of-defun)
|
|
||||||
;; Make sure we are really inside the defun found, not after it.
|
|
||||||
(if (and (looking-at "\\s(")
|
|
||||||
(progn (end-of-defun)
|
|
||||||
(< location (point)))
|
|
||||||
(progn (forward-sexp -1)
|
|
||||||
(>= location (point))))
|
|
||||||
(progn
|
|
||||||
(if (looking-at "\\s(")
|
|
||||||
(forward-char 1))
|
|
||||||
(forward-sexp 1)
|
|
||||||
(skip-chars-forward " '")
|
|
||||||
(buffer-substring (point)
|
|
||||||
(progn (forward-sexp 1) (point))))))
|
|
||||||
((and (memq major-mode '(c-mode c++-mode c++-c-mode objc-mode))
|
|
||||||
(save-excursion (beginning-of-line)
|
|
||||||
;; Use eq instead of = here to avoid
|
|
||||||
;; error when at bob and char-after
|
|
||||||
;; returns nil.
|
|
||||||
(while (eq (char-after (- (point) 2)) ?\\)
|
|
||||||
(forward-line -1))
|
|
||||||
(looking-at "[ \t]*#[ \t]*define[ \t]")))
|
|
||||||
;; Handle a C macro definition.
|
|
||||||
(beginning-of-line)
|
|
||||||
(while (eq (char-after (- (point) 2)) ?\\) ;not =; note above
|
|
||||||
(forward-line -1))
|
|
||||||
(search-forward "define")
|
|
||||||
(skip-chars-forward " \t")
|
|
||||||
(buffer-substring (point)
|
|
||||||
(progn (forward-sexp 1) (point))))
|
|
||||||
((memq major-mode '(c-mode c++-mode c++-c-mode objc-mode))
|
|
||||||
(beginning-of-line)
|
|
||||||
;; See if we are in the beginning part of a function,
|
|
||||||
;; before the open brace. If so, advance forward.
|
|
||||||
(while (not (looking-at "{\\|\\(\\s *$\\)"))
|
|
||||||
(forward-line 1))
|
|
||||||
(or (eobp)
|
|
||||||
(forward-char 1))
|
|
||||||
(beginning-of-defun)
|
|
||||||
(if (progn (end-of-defun)
|
|
||||||
(< location (point)))
|
|
||||||
(progn
|
|
||||||
(backward-sexp 1)
|
|
||||||
(let (beg tem)
|
|
||||||
|
|
||||||
(forward-line -1)
|
|
||||||
;; Skip back over typedefs of arglist.
|
|
||||||
(while (and (not (bobp))
|
|
||||||
(looking-at "[ \t\n]"))
|
|
||||||
(forward-line -1))
|
|
||||||
;; See if this is using the DEFUN macro used in Emacs,
|
|
||||||
;; or the DEFUN macro used by the C library.
|
|
||||||
(if (condition-case nil
|
|
||||||
(and (save-excursion
|
|
||||||
(end-of-line)
|
|
||||||
(while (= (preceding-char) ?\\)
|
|
||||||
(end-of-line 2))
|
|
||||||
(backward-sexp 1)
|
|
||||||
(beginning-of-line)
|
|
||||||
(setq tem (point))
|
|
||||||
(looking-at "DEFUN\\b"))
|
|
||||||
(>= location tem))
|
|
||||||
(error nil))
|
|
||||||
(progn
|
|
||||||
(goto-char tem)
|
|
||||||
(down-list 1)
|
|
||||||
(if (= (char-after (point)) ?\")
|
|
||||||
(progn
|
|
||||||
(forward-sexp 1)
|
|
||||||
(skip-chars-forward " ,")))
|
|
||||||
(buffer-substring (point)
|
|
||||||
(progn (forward-sexp 1) (point))))
|
|
||||||
(if (looking-at "^[+-]")
|
|
||||||
(get-method-definition)
|
|
||||||
;; Ordinary C function syntax.
|
|
||||||
(setq beg (point))
|
|
||||||
(if (and (condition-case nil
|
|
||||||
;; Protect against "Unbalanced parens" error.
|
|
||||||
(progn
|
|
||||||
(down-list 1) ; into arglist
|
|
||||||
(backward-up-list 1)
|
|
||||||
(skip-chars-backward " \t")
|
|
||||||
t)
|
|
||||||
(error nil))
|
|
||||||
;; Verify initial pos was after
|
|
||||||
;; real start of function.
|
|
||||||
(save-excursion
|
|
||||||
(goto-char beg)
|
|
||||||
;; For this purpose, include the line
|
|
||||||
;; that has the decl keywords. This
|
|
||||||
;; may also include some of the
|
|
||||||
;; comments before the function.
|
|
||||||
(while (and (not (bobp))
|
|
||||||
(save-excursion
|
|
||||||
(forward-line -1)
|
|
||||||
(looking-at "[^\n\f]")))
|
|
||||||
(forward-line -1))
|
|
||||||
(>= location (point)))
|
|
||||||
;; Consistency check: going down and up
|
|
||||||
;; shouldn't take us back before BEG.
|
|
||||||
(> (point) beg))
|
|
||||||
(let (end middle)
|
|
||||||
;; Don't include any final newline
|
|
||||||
;; in the name we use.
|
|
||||||
(if (= (preceding-char) ?\n)
|
|
||||||
(forward-char -1))
|
|
||||||
(setq end (point))
|
|
||||||
(backward-sexp 1)
|
|
||||||
;; Now find the right beginning of the name.
|
|
||||||
;; Include certain keywords if they
|
|
||||||
;; precede the name.
|
|
||||||
(setq middle (point))
|
|
||||||
(forward-word -1)
|
|
||||||
;; Ignore these subparts of a class decl
|
|
||||||
;; and move back to the class name itself.
|
|
||||||
(while (looking-at "public \\|private ")
|
|
||||||
(skip-chars-backward " \t:")
|
|
||||||
(setq end (point))
|
|
||||||
(backward-sexp 1)
|
|
||||||
(setq middle (point))
|
|
||||||
(forward-word -1))
|
|
||||||
(and (bolp)
|
|
||||||
(looking-at "struct \\|union \\|class ")
|
|
||||||
(setq middle (point)))
|
|
||||||
(buffer-substring middle end)))))))))
|
|
||||||
((memq major-mode
|
|
||||||
'(TeX-mode plain-TeX-mode LaTeX-mode;; tex-mode.el
|
|
||||||
plain-tex-mode latex-mode;; cmutex.el
|
|
||||||
))
|
|
||||||
(if (re-search-backward
|
|
||||||
"\\\\\\(sub\\)*\\(section\\|paragraph\\|chapter\\)" nil t)
|
|
||||||
(progn
|
|
||||||
(goto-char (match-beginning 0))
|
|
||||||
(buffer-substring (1+ (point));; without initial backslash
|
|
||||||
(progn
|
|
||||||
(end-of-line)
|
|
||||||
(point))))))
|
|
||||||
((eq major-mode 'texinfo-mode)
|
|
||||||
(if (re-search-backward "^@node[ \t]+\\([^,\n]+\\)" nil t)
|
|
||||||
(buffer-substring (match-beginning 1)
|
|
||||||
(match-end 1))))
|
|
||||||
((eq major-mode 'perl-mode)
|
|
||||||
(if (re-search-backward "^sub[ \t]+\\([^ \t\n]+\\)" nil t)
|
|
||||||
(buffer-substring (match-beginning 1)
|
|
||||||
(match-end 1))))
|
|
||||||
((eq major-mode 'fortran-mode)
|
|
||||||
;; must be inside function body for this to work
|
|
||||||
(beginning-of-fortran-subprogram)
|
|
||||||
(let ((case-fold-search t)) ; case-insensitive
|
|
||||||
;; search for fortran subprogram start
|
|
||||||
(if (re-search-forward
|
|
||||||
"^[ \t]*\\(program\\|subroutine\\|function\
|
|
||||||
\\|[ \ta-z0-9*]*[ \t]+function\\)"
|
|
||||||
nil t)
|
|
||||||
(progn
|
|
||||||
;; move to EOL or before first left paren
|
|
||||||
(if (re-search-forward "[(\n]" nil t)
|
|
||||||
(progn (forward-char -1)
|
|
||||||
(skip-chars-backward " \t"))
|
|
||||||
(end-of-line))
|
|
||||||
;; Use the name preceding that.
|
|
||||||
(buffer-substring (point)
|
|
||||||
(progn (forward-sexp -1)
|
|
||||||
(point)))))))
|
|
||||||
(t
|
|
||||||
;; If all else fails, try heuristics
|
|
||||||
(let (case-fold-search)
|
|
||||||
(end-of-line)
|
|
||||||
(if (re-search-backward add-log-current-defun-header-regexp
|
|
||||||
(- (point) 10000)
|
|
||||||
t)
|
|
||||||
(buffer-substring (match-beginning 1)
|
|
||||||
(match-end 1))))))))
|
|
||||||
(error nil)))
|
|
||||||
|
|
||||||
(defvar get-method-definition-md)
|
|
||||||
|
|
||||||
;; Subroutine used within get-method-definition.
|
|
||||||
;; Add the last match in the buffer to the end of `md',
|
|
||||||
;; followed by the string END; move to the end of that match.
|
|
||||||
(defun get-method-definition-1 (end)
|
|
||||||
(setq get-method-definition-md
|
|
||||||
(concat get-method-definition-md
|
|
||||||
(buffer-substring (match-beginning 1) (match-end 1))
|
|
||||||
end))
|
|
||||||
(goto-char (match-end 0)))
|
|
||||||
|
|
||||||
;; For objective C, return the method name if we are in a method.
|
|
||||||
(defun get-method-definition ()
|
|
||||||
(let ((get-method-definition-md "["))
|
|
||||||
(save-excursion
|
|
||||||
(if (re-search-backward "^@implementation\\s-*\\([A-Za-z_]*\\)" nil t)
|
|
||||||
(get-method-definition-1 " ")))
|
|
||||||
(save-excursion
|
|
||||||
(cond
|
|
||||||
((re-search-forward "^\\([-+]\\)[ \t\n\f\r]*\\(([^)]*)\\)?\\s-*" nil t)
|
|
||||||
(get-method-definition-1 "")
|
|
||||||
(while (not (looking-at "[{;]"))
|
|
||||||
(looking-at
|
|
||||||
"\\([A-Za-z_]*:?\\)\\s-*\\(([^)]*)\\)?[A-Za-z_]*[ \t\n\f\r]*")
|
|
||||||
(get-method-definition-1 ""))
|
|
||||||
(concat get-method-definition-md "]"))))))
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'add-log)
|
|
||||||
|
|
||||||
;;; add-log.el ends here
|
|
@ -1,11 +0,0 @@
|
|||||||
Here is a vi macro to create entries in the recommended format for
|
|
||||||
GDB's ChangeLogs.
|
|
||||||
|
|
||||||
map 1GO:r !date '+\%Y-\%m-\%d'2GA Jason Molenda (:r !whoamikJxA@:r !hostnameA)kJxkddjO
*
k$
|
|
||||||
|
|
||||||
It contains control and escape sequences, so don't just cut and paste it.
|
|
||||||
You'll need to change the "Jason Molenda" bit, of course. :-) Put this
|
|
||||||
in your $HOME/.exrc and when you type control-X in move-around-mode,
|
|
||||||
you'll have a changelog template inserted.
|
|
||||||
|
|
||||||
--- Jason Molenda
|
|
@ -1,149 +0,0 @@
|
|||||||
%!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
|
|
@ -1,50 +0,0 @@
|
|||||||
#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
|
|
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
@ -1,9 +0,0 @@
|
|||||||
config.in *configure* Makefile.in
|
|
||||||
| | |
|
|
||||||
| v |
|
|
||||||
| config.status |
|
|
||||||
| | |
|
|
||||||
*config.status*<======+==========>*config.status*
|
|
||||||
| |
|
|
||||||
v v
|
|
||||||
config.h Makefile
|
|
@ -1,185 +0,0 @@
|
|||||||
%!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
|
|
@ -1,80 +0,0 @@
|
|||||||
#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
|
|
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
@ -1,17 +0,0 @@
|
|||||||
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
|
|
862
etc/configure
vendored
862
etc/configure
vendored
@ -1,862 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
|
||||||
# Generated automatically using autoconf version 2.12.1
|
|
||||||
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This configure script is free software; the Free Software Foundation
|
|
||||||
# gives unlimited permission to copy, distribute and modify it.
|
|
||||||
|
|
||||||
# Defaults:
|
|
||||||
ac_help=
|
|
||||||
ac_default_prefix=/usr/local
|
|
||||||
# Any additions from configure.in:
|
|
||||||
|
|
||||||
# Initialize some variables set by options.
|
|
||||||
# The variables have the same names as the options, with
|
|
||||||
# dashes changed to underlines.
|
|
||||||
build=NONE
|
|
||||||
cache_file=./config.cache
|
|
||||||
exec_prefix=NONE
|
|
||||||
host=NONE
|
|
||||||
no_create=
|
|
||||||
nonopt=NONE
|
|
||||||
no_recursion=
|
|
||||||
prefix=NONE
|
|
||||||
program_prefix=NONE
|
|
||||||
program_suffix=NONE
|
|
||||||
program_transform_name=s,x,x,
|
|
||||||
silent=
|
|
||||||
site=
|
|
||||||
srcdir=
|
|
||||||
target=NONE
|
|
||||||
verbose=
|
|
||||||
x_includes=NONE
|
|
||||||
x_libraries=NONE
|
|
||||||
bindir='${exec_prefix}/bin'
|
|
||||||
sbindir='${exec_prefix}/sbin'
|
|
||||||
libexecdir='${exec_prefix}/libexec'
|
|
||||||
datadir='${prefix}/share'
|
|
||||||
sysconfdir='${prefix}/etc'
|
|
||||||
sharedstatedir='${prefix}/com'
|
|
||||||
localstatedir='${prefix}/var'
|
|
||||||
libdir='${exec_prefix}/lib'
|
|
||||||
includedir='${prefix}/include'
|
|
||||||
oldincludedir='/usr/include'
|
|
||||||
infodir='${prefix}/info'
|
|
||||||
mandir='${prefix}/man'
|
|
||||||
|
|
||||||
# Initialize some other variables.
|
|
||||||
subdirs=
|
|
||||||
MFLAGS= MAKEFLAGS=
|
|
||||||
SHELL=${CONFIG_SHELL-/bin/sh}
|
|
||||||
# Maximum number of lines to put in a shell here document.
|
|
||||||
ac_max_here_lines=12
|
|
||||||
|
|
||||||
ac_prev=
|
|
||||||
for ac_option
|
|
||||||
do
|
|
||||||
|
|
||||||
# If the previous option needs an argument, assign it.
|
|
||||||
if test -n "$ac_prev"; then
|
|
||||||
eval "$ac_prev=\$ac_option"
|
|
||||||
ac_prev=
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$ac_option" in
|
|
||||||
-*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
|
||||||
*) ac_optarg= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Accept the important Cygnus configure options, so we can diagnose typos.
|
|
||||||
|
|
||||||
case "$ac_option" in
|
|
||||||
|
|
||||||
-bindir | --bindir | --bindi | --bind | --bin | --bi)
|
|
||||||
ac_prev=bindir ;;
|
|
||||||
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
|
|
||||||
bindir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-build | --build | --buil | --bui | --bu)
|
|
||||||
ac_prev=build ;;
|
|
||||||
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
|
|
||||||
build="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-cache-file | --cache-file | --cache-fil | --cache-fi \
|
|
||||||
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
|
|
||||||
ac_prev=cache_file ;;
|
|
||||||
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
|
|
||||||
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
|
|
||||||
cache_file="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-datadir | --datadir | --datadi | --datad | --data | --dat | --da)
|
|
||||||
ac_prev=datadir ;;
|
|
||||||
-datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
|
|
||||||
| --da=*)
|
|
||||||
datadir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-disable-* | --disable-*)
|
|
||||||
ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
|
|
||||||
# Reject names that are not valid shell variable names.
|
|
||||||
if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
|
|
||||||
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
|
|
||||||
eval "enable_${ac_feature}=no" ;;
|
|
||||||
|
|
||||||
-enable-* | --enable-*)
|
|
||||||
ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
|
|
||||||
# Reject names that are not valid shell variable names.
|
|
||||||
if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
|
|
||||||
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
|
|
||||||
case "$ac_option" in
|
|
||||||
*=*) ;;
|
|
||||||
*) ac_optarg=yes ;;
|
|
||||||
esac
|
|
||||||
eval "enable_${ac_feature}='$ac_optarg'" ;;
|
|
||||||
|
|
||||||
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
|
|
||||||
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
|
|
||||||
| --exec | --exe | --ex)
|
|
||||||
ac_prev=exec_prefix ;;
|
|
||||||
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
|
|
||||||
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
|
|
||||||
| --exec=* | --exe=* | --ex=*)
|
|
||||||
exec_prefix="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-gas | --gas | --ga | --g)
|
|
||||||
# Obsolete; use --with-gas.
|
|
||||||
with_gas=yes ;;
|
|
||||||
|
|
||||||
-help | --help | --hel | --he)
|
|
||||||
# Omit some internal or obsolete options to make the list less imposing.
|
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
|
||||||
cat << EOF
|
|
||||||
Usage: configure [options] [host]
|
|
||||||
Options: [defaults in brackets after descriptions]
|
|
||||||
Configuration:
|
|
||||||
--cache-file=FILE cache test results in FILE
|
|
||||||
--help print this message
|
|
||||||
--no-create do not create output files
|
|
||||||
--quiet, --silent do not print \`checking...' messages
|
|
||||||
--version print the version of autoconf that created configure
|
|
||||||
Directory and file names:
|
|
||||||
--prefix=PREFIX install architecture-independent files in PREFIX
|
|
||||||
[$ac_default_prefix]
|
|
||||||
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
|
|
||||||
[same as prefix]
|
|
||||||
--bindir=DIR user executables in DIR [EPREFIX/bin]
|
|
||||||
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
|
|
||||||
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
|
|
||||||
--datadir=DIR read-only architecture-independent data in DIR
|
|
||||||
[PREFIX/share]
|
|
||||||
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
|
|
||||||
--sharedstatedir=DIR modifiable architecture-independent data in DIR
|
|
||||||
[PREFIX/com]
|
|
||||||
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
|
|
||||||
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
|
|
||||||
--includedir=DIR C header files in DIR [PREFIX/include]
|
|
||||||
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
|
|
||||||
--infodir=DIR info documentation in DIR [PREFIX/info]
|
|
||||||
--mandir=DIR man documentation in DIR [PREFIX/man]
|
|
||||||
--srcdir=DIR find the sources in DIR [configure dir or ..]
|
|
||||||
--program-prefix=PREFIX prepend PREFIX to installed program names
|
|
||||||
--program-suffix=SUFFIX append SUFFIX to installed program names
|
|
||||||
--program-transform-name=PROGRAM
|
|
||||||
run sed PROGRAM on installed program names
|
|
||||||
EOF
|
|
||||||
cat << EOF
|
|
||||||
Host type:
|
|
||||||
--build=BUILD configure for building on BUILD [BUILD=HOST]
|
|
||||||
--host=HOST configure for HOST [guessed]
|
|
||||||
--target=TARGET configure for TARGET [TARGET=HOST]
|
|
||||||
Features and packages:
|
|
||||||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
|
||||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
|
||||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
|
||||||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
|
||||||
--x-includes=DIR X include files are in DIR
|
|
||||||
--x-libraries=DIR X library files are in DIR
|
|
||||||
EOF
|
|
||||||
if test -n "$ac_help"; then
|
|
||||||
echo "--enable and --with options recognized:$ac_help"
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
|
|
||||||
-host | --host | --hos | --ho)
|
|
||||||
ac_prev=host ;;
|
|
||||||
-host=* | --host=* | --hos=* | --ho=*)
|
|
||||||
host="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-includedir | --includedir | --includedi | --included | --include \
|
|
||||||
| --includ | --inclu | --incl | --inc)
|
|
||||||
ac_prev=includedir ;;
|
|
||||||
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
|
|
||||||
| --includ=* | --inclu=* | --incl=* | --inc=*)
|
|
||||||
includedir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-infodir | --infodir | --infodi | --infod | --info | --inf)
|
|
||||||
ac_prev=infodir ;;
|
|
||||||
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
|
|
||||||
infodir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-libdir | --libdir | --libdi | --libd)
|
|
||||||
ac_prev=libdir ;;
|
|
||||||
-libdir=* | --libdir=* | --libdi=* | --libd=*)
|
|
||||||
libdir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
|
|
||||||
| --libexe | --libex | --libe)
|
|
||||||
ac_prev=libexecdir ;;
|
|
||||||
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
|
|
||||||
| --libexe=* | --libex=* | --libe=*)
|
|
||||||
libexecdir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-localstatedir | --localstatedir | --localstatedi | --localstated \
|
|
||||||
| --localstate | --localstat | --localsta | --localst \
|
|
||||||
| --locals | --local | --loca | --loc | --lo)
|
|
||||||
ac_prev=localstatedir ;;
|
|
||||||
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
|
|
||||||
| --localstate=* | --localstat=* | --localsta=* | --localst=* \
|
|
||||||
| --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
|
|
||||||
localstatedir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
|
|
||||||
ac_prev=mandir ;;
|
|
||||||
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
|
|
||||||
mandir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-nfp | --nfp | --nf)
|
|
||||||
# Obsolete; use --without-fp.
|
|
||||||
with_fp=no ;;
|
|
||||||
|
|
||||||
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
|
|
||||||
| --no-cr | --no-c)
|
|
||||||
no_create=yes ;;
|
|
||||||
|
|
||||||
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
|
|
||||||
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
|
|
||||||
no_recursion=yes ;;
|
|
||||||
|
|
||||||
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
|
|
||||||
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
|
|
||||||
| --oldin | --oldi | --old | --ol | --o)
|
|
||||||
ac_prev=oldincludedir ;;
|
|
||||||
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
|
|
||||||
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
|
|
||||||
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
|
|
||||||
oldincludedir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
|
|
||||||
ac_prev=prefix ;;
|
|
||||||
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
|
|
||||||
prefix="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-program-prefix | --program-prefix | --program-prefi | --program-pref \
|
|
||||||
| --program-pre | --program-pr | --program-p)
|
|
||||||
ac_prev=program_prefix ;;
|
|
||||||
-program-prefix=* | --program-prefix=* | --program-prefi=* \
|
|
||||||
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
|
|
||||||
program_prefix="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-program-suffix | --program-suffix | --program-suffi | --program-suff \
|
|
||||||
| --program-suf | --program-su | --program-s)
|
|
||||||
ac_prev=program_suffix ;;
|
|
||||||
-program-suffix=* | --program-suffix=* | --program-suffi=* \
|
|
||||||
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
|
|
||||||
program_suffix="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-program-transform-name | --program-transform-name \
|
|
||||||
| --program-transform-nam | --program-transform-na \
|
|
||||||
| --program-transform-n | --program-transform- \
|
|
||||||
| --program-transform | --program-transfor \
|
|
||||||
| --program-transfo | --program-transf \
|
|
||||||
| --program-trans | --program-tran \
|
|
||||||
| --progr-tra | --program-tr | --program-t)
|
|
||||||
ac_prev=program_transform_name ;;
|
|
||||||
-program-transform-name=* | --program-transform-name=* \
|
|
||||||
| --program-transform-nam=* | --program-transform-na=* \
|
|
||||||
| --program-transform-n=* | --program-transform-=* \
|
|
||||||
| --program-transform=* | --program-transfor=* \
|
|
||||||
| --program-transfo=* | --program-transf=* \
|
|
||||||
| --program-trans=* | --program-tran=* \
|
|
||||||
| --progr-tra=* | --program-tr=* | --program-t=*)
|
|
||||||
program_transform_name="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
|
||||||
| -silent | --silent | --silen | --sile | --sil)
|
|
||||||
silent=yes ;;
|
|
||||||
|
|
||||||
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
|
||||||
ac_prev=sbindir ;;
|
|
||||||
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
|
||||||
| --sbi=* | --sb=*)
|
|
||||||
sbindir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-sharedstatedir | --sharedstatedir | --sharedstatedi \
|
|
||||||
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
|
|
||||||
| --sharedst | --shareds | --shared | --share | --shar \
|
|
||||||
| --sha | --sh)
|
|
||||||
ac_prev=sharedstatedir ;;
|
|
||||||
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
|
|
||||||
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
|
|
||||||
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
|
|
||||||
| --sha=* | --sh=*)
|
|
||||||
sharedstatedir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-site | --site | --sit)
|
|
||||||
ac_prev=site ;;
|
|
||||||
-site=* | --site=* | --sit=*)
|
|
||||||
site="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
|
||||||
ac_prev=srcdir ;;
|
|
||||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
|
||||||
srcdir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
|
|
||||||
| --syscon | --sysco | --sysc | --sys | --sy)
|
|
||||||
ac_prev=sysconfdir ;;
|
|
||||||
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
|
|
||||||
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
|
|
||||||
sysconfdir="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-target | --target | --targe | --targ | --tar | --ta | --t)
|
|
||||||
ac_prev=target ;;
|
|
||||||
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
|
|
||||||
target="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-v | -verbose | --verbose | --verbos | --verbo | --verb)
|
|
||||||
verbose=yes ;;
|
|
||||||
|
|
||||||
-version | --version | --versio | --versi | --vers)
|
|
||||||
echo "configure generated by autoconf version 2.12.1"
|
|
||||||
exit 0 ;;
|
|
||||||
|
|
||||||
-with-* | --with-*)
|
|
||||||
ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
|
|
||||||
# Reject names that are not valid shell variable names.
|
|
||||||
if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
|
|
||||||
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
ac_package=`echo $ac_package| sed 's/-/_/g'`
|
|
||||||
case "$ac_option" in
|
|
||||||
*=*) ;;
|
|
||||||
*) ac_optarg=yes ;;
|
|
||||||
esac
|
|
||||||
eval "with_${ac_package}='$ac_optarg'" ;;
|
|
||||||
|
|
||||||
-without-* | --without-*)
|
|
||||||
ac_package=`echo $ac_option|sed -e 's/-*without-//'`
|
|
||||||
# Reject names that are not valid shell variable names.
|
|
||||||
if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
|
|
||||||
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
ac_package=`echo $ac_package| sed 's/-/_/g'`
|
|
||||||
eval "with_${ac_package}=no" ;;
|
|
||||||
|
|
||||||
--x)
|
|
||||||
# Obsolete; use --with-x.
|
|
||||||
with_x=yes ;;
|
|
||||||
|
|
||||||
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
|
|
||||||
| --x-incl | --x-inc | --x-in | --x-i)
|
|
||||||
ac_prev=x_includes ;;
|
|
||||||
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
|
|
||||||
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
|
|
||||||
x_includes="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-x-libraries | --x-libraries | --x-librarie | --x-librari \
|
|
||||||
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
|
|
||||||
ac_prev=x_libraries ;;
|
|
||||||
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
|
|
||||||
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
|
|
||||||
x_libraries="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
|
|
||||||
echo "configure: warning: $ac_option: invalid host type" 1>&2
|
|
||||||
fi
|
|
||||||
if test "x$nonopt" != xNONE; then
|
|
||||||
{ echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
nonopt="$ac_option"
|
|
||||||
;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -n "$ac_prev"; then
|
|
||||||
{ echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
|
|
||||||
|
|
||||||
# File descriptor usage:
|
|
||||||
# 0 standard input
|
|
||||||
# 1 file creation
|
|
||||||
# 2 errors and warnings
|
|
||||||
# 3 some systems may open it to /dev/tty
|
|
||||||
# 4 used on the Kubota Titan
|
|
||||||
# 6 checking for... messages and results
|
|
||||||
# 5 compiler messages saved in config.log
|
|
||||||
if test "$silent" = yes; then
|
|
||||||
exec 6>/dev/null
|
|
||||||
else
|
|
||||||
exec 6>&1
|
|
||||||
fi
|
|
||||||
exec 5>./config.log
|
|
||||||
|
|
||||||
echo "\
|
|
||||||
This file contains any messages produced by compilers while
|
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
|
||||||
" 1>&5
|
|
||||||
|
|
||||||
# Strip out --no-create and --no-recursion so they do not pile up.
|
|
||||||
# Also quote any args containing shell metacharacters.
|
|
||||||
ac_configure_args=
|
|
||||||
for ac_arg
|
|
||||||
do
|
|
||||||
case "$ac_arg" in
|
|
||||||
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
|
|
||||||
| --no-cr | --no-c) ;;
|
|
||||||
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
|
|
||||||
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
|
|
||||||
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
|
|
||||||
ac_configure_args="$ac_configure_args '$ac_arg'" ;;
|
|
||||||
*) ac_configure_args="$ac_configure_args $ac_arg" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# NLS nuisances.
|
|
||||||
# Only set these to C if already set. These must not be set unconditionally
|
|
||||||
# because not all systems understand e.g. LANG=C (notably SCO).
|
|
||||||
# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
|
|
||||||
# Non-C LC_CTYPE values break the ctype check.
|
|
||||||
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
|
|
||||||
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
|
|
||||||
if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
|
|
||||||
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
|
|
||||||
|
|
||||||
# confdefs.h avoids OS command line length limits that DEFS can exceed.
|
|
||||||
rm -rf conftest* confdefs.h
|
|
||||||
# AIX cpp loses on an empty file, so make sure it contains at least a newline.
|
|
||||||
echo > confdefs.h
|
|
||||||
|
|
||||||
# A filename unique to this package, relative to the directory that
|
|
||||||
# configure is in, which we can look for to find out if srcdir is correct.
|
|
||||||
ac_unique_file=Makefile.in
|
|
||||||
|
|
||||||
# Find the source files, if location was not specified.
|
|
||||||
if test -z "$srcdir"; then
|
|
||||||
ac_srcdir_defaulted=yes
|
|
||||||
# Try the directory containing this script, then its parent.
|
|
||||||
ac_prog=$0
|
|
||||||
ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
|
|
||||||
test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
|
|
||||||
srcdir=$ac_confdir
|
|
||||||
if test ! -r $srcdir/$ac_unique_file; then
|
|
||||||
srcdir=..
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ac_srcdir_defaulted=no
|
|
||||||
fi
|
|
||||||
if test ! -r $srcdir/$ac_unique_file; then
|
|
||||||
if test "$ac_srcdir_defaulted" = yes; then
|
|
||||||
{ echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
|
|
||||||
else
|
|
||||||
{ echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
|
|
||||||
|
|
||||||
# Prefer explicitly selected file to automatically selected ones.
|
|
||||||
if test -z "$CONFIG_SITE"; then
|
|
||||||
if test "x$prefix" != xNONE; then
|
|
||||||
CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
|
|
||||||
else
|
|
||||||
CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
for ac_site_file in $CONFIG_SITE; do
|
|
||||||
if test -r "$ac_site_file"; then
|
|
||||||
echo "loading site script $ac_site_file"
|
|
||||||
. "$ac_site_file"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -r "$cache_file"; then
|
|
||||||
echo "loading cache $cache_file"
|
|
||||||
. $cache_file
|
|
||||||
else
|
|
||||||
echo "creating cache $cache_file"
|
|
||||||
> $cache_file
|
|
||||||
fi
|
|
||||||
|
|
||||||
ac_ext=c
|
|
||||||
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
|
||||||
ac_cpp='$CPP $CPPFLAGS'
|
|
||||||
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
|
|
||||||
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
|
|
||||||
cross_compiling=$ac_cv_prog_cc_cross
|
|
||||||
|
|
||||||
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
|
|
||||||
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
|
|
||||||
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
|
|
||||||
ac_n= ac_c='
|
|
||||||
' ac_t=' '
|
|
||||||
else
|
|
||||||
ac_n=-n ac_c= ac_t=
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ac_n= ac_c='\c' ac_t=
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ac_aux_dir=
|
|
||||||
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
|
|
||||||
if test -f $ac_dir/install-sh; then
|
|
||||||
ac_aux_dir=$ac_dir
|
|
||||||
ac_install_sh="$ac_aux_dir/install-sh -c"
|
|
||||||
break
|
|
||||||
elif test -f $ac_dir/install.sh; then
|
|
||||||
ac_aux_dir=$ac_dir
|
|
||||||
ac_install_sh="$ac_aux_dir/install.sh -c"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test -z "$ac_aux_dir"; then
|
|
||||||
{ echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
|
|
||||||
fi
|
|
||||||
ac_config_guess=$ac_aux_dir/config.guess
|
|
||||||
ac_config_sub=$ac_aux_dir/config.sub
|
|
||||||
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
|
|
||||||
|
|
||||||
# Find a good install program. We prefer a C program (faster),
|
|
||||||
# so one script is as good as another. But avoid the broken or
|
|
||||||
# incompatible versions:
|
|
||||||
# SysV /etc/install, /usr/sbin/install
|
|
||||||
# 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: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
|
|
||||||
else
|
|
||||||
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
|
|
||||||
for ac_dir in $PATH; do
|
|
||||||
# Account for people who put trailing slashes in PATH elements.
|
|
||||||
case "$ac_dir/" in
|
|
||||||
/|./|.//|/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.
|
|
||||||
:
|
|
||||||
else
|
|
||||||
ac_cv_path_install="$ac_dir/$ac_prog -c"
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
IFS="$ac_save_IFS"
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test "${ac_cv_path_install+set}" = set; then
|
|
||||||
INSTALL="$ac_cv_path_install"
|
|
||||||
else
|
|
||||||
# As a last resort, use the slow shell script. We don't cache a
|
|
||||||
# path for INSTALL within a source directory, because that will
|
|
||||||
# break other packages using the cache if that directory is
|
|
||||||
# removed, or if the path is relative.
|
|
||||||
INSTALL="$ac_install_sh"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo "$ac_t""$INSTALL" 1>&6
|
|
||||||
|
|
||||||
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
|
|
||||||
# It thinks the first close brace ends the variable substitution.
|
|
||||||
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
|
||||||
|
|
||||||
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
|
||||||
|
|
||||||
|
|
||||||
trap '' 1 2 15
|
|
||||||
cat > confcache <<\EOF
|
|
||||||
# This file is a shell script that caches the results of configure
|
|
||||||
# tests run on this system so they can be shared between configure
|
|
||||||
# scripts and configure runs. It is not useful on other systems.
|
|
||||||
# If it contains results you don't want to keep, you may remove or edit it.
|
|
||||||
#
|
|
||||||
# By default, configure uses ./config.cache as the cache file,
|
|
||||||
# creating it if it does not exist already. You can give configure
|
|
||||||
# the --cache-file=FILE option to use a different cache file; that is
|
|
||||||
# what configure does when it calls configure scripts in
|
|
||||||
# subdirectories, so they share the cache.
|
|
||||||
# Giving --cache-file=/dev/null disables caching, for debugging configure.
|
|
||||||
# config.status only pays attention to the cache file if you give it the
|
|
||||||
# --recheck option to rerun configure.
|
|
||||||
#
|
|
||||||
EOF
|
|
||||||
# The following way of writing the cache mishandles newlines in values,
|
|
||||||
# but we know of no workaround that is simple, portable, and efficient.
|
|
||||||
# So, don't put newlines in cache variables' values.
|
|
||||||
# Ultrix sh set writes to stderr and can't be redirected directly,
|
|
||||||
# and sets the high bit in the cache file unless we assign to the vars.
|
|
||||||
(set) 2>&1 |
|
|
||||||
case `(ac_space=' '; set) 2>&1 | grep ac_space` in
|
|
||||||
*ac_space=\ *)
|
|
||||||
# `set' does not quote correctly, so add quotes (double-quote substitution
|
|
||||||
# turns \\\\ into \\, and sed turns \\ into \).
|
|
||||||
sed -n \
|
|
||||||
-e "s/'/'\\\\''/g" \
|
|
||||||
-e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# `set' quotes correctly as required by POSIX, so do not add quotes.
|
|
||||||
sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
|
|
||||||
;;
|
|
||||||
esac >> confcache
|
|
||||||
if cmp -s $cache_file confcache; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
if test -w $cache_file; then
|
|
||||||
echo "updating cache $cache_file"
|
|
||||||
cat confcache > $cache_file
|
|
||||||
else
|
|
||||||
echo "not updating unwritable cache $cache_file"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
rm -f confcache
|
|
||||||
|
|
||||||
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
|
|
||||||
|
|
||||||
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
|
||||||
# Let make expand exec_prefix.
|
|
||||||
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
|
||||||
|
|
||||||
# Any assignment to VPATH causes Sun make to only execute
|
|
||||||
# the first set of double-colon rules, so remove it if not needed.
|
|
||||||
# If there is a colon in the path, we need to keep it.
|
|
||||||
if test "x$srcdir" = x.; then
|
|
||||||
ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
|
|
||||||
fi
|
|
||||||
|
|
||||||
trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
|
|
||||||
|
|
||||||
# Transform confdefs.h into DEFS.
|
|
||||||
# Protect against shell expansion while executing Makefile rules.
|
|
||||||
# Protect against Makefile macro expansion.
|
|
||||||
cat > conftest.defs <<\EOF
|
|
||||||
s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
|
|
||||||
s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
|
|
||||||
s%\[%\\&%g
|
|
||||||
s%\]%\\&%g
|
|
||||||
s%\$%$$%g
|
|
||||||
EOF
|
|
||||||
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
|
|
||||||
rm -f conftest.defs
|
|
||||||
|
|
||||||
|
|
||||||
# Without the "./", some shells look in PATH for config.status.
|
|
||||||
: ${CONFIG_STATUS=./config.status}
|
|
||||||
|
|
||||||
echo creating $CONFIG_STATUS
|
|
||||||
rm -f $CONFIG_STATUS
|
|
||||||
cat > $CONFIG_STATUS <<EOF
|
|
||||||
#! /bin/sh
|
|
||||||
# Generated automatically by configure.
|
|
||||||
# Run this file to recreate the current configuration.
|
|
||||||
# This directory was configured as follows,
|
|
||||||
# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
|
|
||||||
#
|
|
||||||
# $0 $ac_configure_args
|
|
||||||
#
|
|
||||||
# Compiler output produced by configure, useful for debugging
|
|
||||||
# configure, is in ./config.log if it exists.
|
|
||||||
|
|
||||||
ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
|
|
||||||
for ac_option
|
|
||||||
do
|
|
||||||
case "\$ac_option" in
|
|
||||||
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
|
|
||||||
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
|
|
||||||
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
|
|
||||||
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
|
|
||||||
echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
|
|
||||||
exit 0 ;;
|
|
||||||
-help | --help | --hel | --he | --h)
|
|
||||||
echo "\$ac_cs_usage"; exit 0 ;;
|
|
||||||
*) echo "\$ac_cs_usage"; exit 1 ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
ac_given_srcdir=$srcdir
|
|
||||||
ac_given_INSTALL="$INSTALL"
|
|
||||||
|
|
||||||
trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
|
|
||||||
EOF
|
|
||||||
cat >> $CONFIG_STATUS <<EOF
|
|
||||||
|
|
||||||
# Protect against being on the right side of a sed subst in config.status.
|
|
||||||
sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
|
|
||||||
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
|
|
||||||
$ac_vpsub
|
|
||||||
$extrasub
|
|
||||||
s%@SHELL@%$SHELL%g
|
|
||||||
s%@CFLAGS@%$CFLAGS%g
|
|
||||||
s%@CPPFLAGS@%$CPPFLAGS%g
|
|
||||||
s%@CXXFLAGS@%$CXXFLAGS%g
|
|
||||||
s%@DEFS@%$DEFS%g
|
|
||||||
s%@LDFLAGS@%$LDFLAGS%g
|
|
||||||
s%@LIBS@%$LIBS%g
|
|
||||||
s%@exec_prefix@%$exec_prefix%g
|
|
||||||
s%@prefix@%$prefix%g
|
|
||||||
s%@program_transform_name@%$program_transform_name%g
|
|
||||||
s%@bindir@%$bindir%g
|
|
||||||
s%@sbindir@%$sbindir%g
|
|
||||||
s%@libexecdir@%$libexecdir%g
|
|
||||||
s%@datadir@%$datadir%g
|
|
||||||
s%@sysconfdir@%$sysconfdir%g
|
|
||||||
s%@sharedstatedir@%$sharedstatedir%g
|
|
||||||
s%@localstatedir@%$localstatedir%g
|
|
||||||
s%@libdir@%$libdir%g
|
|
||||||
s%@includedir@%$includedir%g
|
|
||||||
s%@oldincludedir@%$oldincludedir%g
|
|
||||||
s%@infodir@%$infodir%g
|
|
||||||
s%@mandir@%$mandir%g
|
|
||||||
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
|
|
||||||
s%@INSTALL_DATA@%$INSTALL_DATA%g
|
|
||||||
|
|
||||||
CEOF
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat >> $CONFIG_STATUS <<\EOF
|
|
||||||
|
|
||||||
# Split the substitutions into bite-sized pieces for seds with
|
|
||||||
# small command number limits, like on Digital OSF/1 and HP-UX.
|
|
||||||
ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
|
|
||||||
ac_file=1 # Number of current file.
|
|
||||||
ac_beg=1 # First line for current file.
|
|
||||||
ac_end=$ac_max_sed_cmds # Line after last line for current file.
|
|
||||||
ac_more_lines=:
|
|
||||||
ac_sed_cmds=""
|
|
||||||
while $ac_more_lines; do
|
|
||||||
if test $ac_beg -gt 1; then
|
|
||||||
sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
|
|
||||||
else
|
|
||||||
sed "${ac_end}q" conftest.subs > conftest.s$ac_file
|
|
||||||
fi
|
|
||||||
if test ! -s conftest.s$ac_file; then
|
|
||||||
ac_more_lines=false
|
|
||||||
rm -f conftest.s$ac_file
|
|
||||||
else
|
|
||||||
if test -z "$ac_sed_cmds"; then
|
|
||||||
ac_sed_cmds="sed -f conftest.s$ac_file"
|
|
||||||
else
|
|
||||||
ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
|
|
||||||
fi
|
|
||||||
ac_file=`expr $ac_file + 1`
|
|
||||||
ac_beg=$ac_end
|
|
||||||
ac_end=`expr $ac_end + $ac_max_sed_cmds`
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test -z "$ac_sed_cmds"; then
|
|
||||||
ac_sed_cmds=cat
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat >> $CONFIG_STATUS <<EOF
|
|
||||||
|
|
||||||
CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
|
|
||||||
EOF
|
|
||||||
cat >> $CONFIG_STATUS <<\EOF
|
|
||||||
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
|
|
||||||
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
|
|
||||||
case "$ac_file" in
|
|
||||||
*:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
|
|
||||||
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
|
|
||||||
*) ac_file_in="${ac_file}.in" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
|
|
||||||
|
|
||||||
# Remove last slash and all that follows it. Not all systems have dirname.
|
|
||||||
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
|
|
||||||
if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
|
|
||||||
# The file is in a subdirectory.
|
|
||||||
test ! -d "$ac_dir" && mkdir "$ac_dir"
|
|
||||||
ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
|
|
||||||
# A "../" for each directory in $ac_dir_suffix.
|
|
||||||
ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
|
|
||||||
else
|
|
||||||
ac_dir_suffix= ac_dots=
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$ac_given_srcdir" in
|
|
||||||
.) srcdir=.
|
|
||||||
if test -z "$ac_dots"; then top_srcdir=.
|
|
||||||
else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
|
|
||||||
/*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
|
|
||||||
*) # Relative path.
|
|
||||||
srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
|
|
||||||
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"
|
|
||||||
configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
|
|
||||||
case "$ac_file" in
|
|
||||||
*Makefile*) ac_comsub="1i\\
|
|
||||||
# $configure_input" ;;
|
|
||||||
*) ac_comsub= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
|
|
||||||
sed -e "$ac_comsub
|
|
||||||
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*
|
|
||||||
|
|
||||||
EOF
|
|
||||||
cat >> $CONFIG_STATUS <<EOF
|
|
||||||
|
|
||||||
EOF
|
|
||||||
cat >> $CONFIG_STATUS <<\EOF
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
EOF
|
|
||||||
chmod +x $CONFIG_STATUS
|
|
||||||
rm -fr confdefs* $ac_clean_files
|
|
||||||
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
|
||||||
AC_PREREQ(2.5)
|
|
||||||
AC_INIT(Makefile.in)
|
|
||||||
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
|
|
||||||
AC_OUTPUT(Makefile)
|
|
2644
etc/configure.texi
2644
etc/configure.texi
File diff suppressed because it is too large
Load Diff
368
etc/fdl.texi
368
etc/fdl.texi
@ -1,368 +0,0 @@
|
|||||||
@c -*-texinfo-*-
|
|
||||||
@node GNU Free Documentation License, , , Copying This Manual
|
|
||||||
|
|
||||||
@appendix GNU Free Documentation License
|
|
||||||
@center Version 1.1, March 2000
|
|
||||||
|
|
||||||
@display
|
|
||||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
@end display
|
|
||||||
@sp 1
|
|
||||||
@enumerate 0
|
|
||||||
@item
|
|
||||||
PREAMBLE
|
|
||||||
|
|
||||||
The purpose of this License is to make a manual, textbook, or other
|
|
||||||
written document ``free'' in the sense of freedom: to assure everyone
|
|
||||||
the effective freedom to copy and redistribute it, with or without
|
|
||||||
modifying it, either commercially or noncommercially. Secondarily,
|
|
||||||
this License preserves for the author and publisher a way to get
|
|
||||||
credit for their work, while not being considered responsible for
|
|
||||||
modifications made by others.
|
|
||||||
|
|
||||||
This License is a kind of ``copyleft'', which means that derivative
|
|
||||||
works of the document must themselves be free in the same sense. It
|
|
||||||
complements the GNU General Public License, which is a copyleft
|
|
||||||
license designed for free software.
|
|
||||||
|
|
||||||
We have designed this License in order to use it for manuals for free
|
|
||||||
software, because free software needs free documentation: a free
|
|
||||||
program should come with manuals providing the same freedoms that the
|
|
||||||
software does. But this License is not limited to software manuals;
|
|
||||||
it can be used for any textual work, regardless of subject matter or
|
|
||||||
whether it is published as a printed book. We recommend this License
|
|
||||||
principally for works whose purpose is instruction or reference.
|
|
||||||
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
APPLICABILITY AND DEFINITIONS
|
|
||||||
|
|
||||||
This License applies to any manual or other work that contains a
|
|
||||||
notice placed by the copyright holder saying it can be distributed
|
|
||||||
under the terms of this License. The ``Document'', below, refers to any
|
|
||||||
such manual or work. Any member of the public is a licensee, and is
|
|
||||||
addressed as ``you.''
|
|
||||||
|
|
||||||
A ``Modified Version'' of the Document means any work containing the
|
|
||||||
Document or a portion of it, either copied verbatim, or with
|
|
||||||
modifications and/or translated into another language.
|
|
||||||
|
|
||||||
A ``Secondary Section'' is a named appendix or a front-matter section of
|
|
||||||
the Document that deals exclusively with the relationship of the
|
|
||||||
publishers or authors of the Document to the Document's overall subject
|
|
||||||
(or to related matters) and contains nothing that could fall directly
|
|
||||||
within that overall subject. (For example, if the Document is in part a
|
|
||||||
textbook of mathematics, a Secondary Section may not explain any
|
|
||||||
mathematics.) The relationship could be a matter of historical
|
|
||||||
connection with the subject or with related matters, or of legal,
|
|
||||||
commercial, philosophical, ethical or political position regarding
|
|
||||||
them.
|
|
||||||
|
|
||||||
The ``Invariant Sections'' are certain Secondary Sections whose titles
|
|
||||||
are designated, as being those of Invariant Sections, in the notice
|
|
||||||
that says that the Document is released under this License.
|
|
||||||
|
|
||||||
The ``Cover Texts'' are certain short passages of text that are listed,
|
|
||||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
|
||||||
the Document is released under this License.
|
|
||||||
|
|
||||||
A ``Transparent'' copy of the Document means a machine-readable copy,
|
|
||||||
represented in a format whose specification is available to the
|
|
||||||
general public, whose contents can be viewed and edited directly and
|
|
||||||
straightforwardly with generic text editors or (for images composed of
|
|
||||||
pixels) generic paint programs or (for drawings) some widely available
|
|
||||||
drawing editor, and that is suitable for input to text formatters or
|
|
||||||
for automatic translation to a variety of formats suitable for input
|
|
||||||
to text formatters. A copy made in an otherwise Transparent file
|
|
||||||
format whose markup has been designed to thwart or discourage
|
|
||||||
subsequent modification by readers is not Transparent. A copy that is
|
|
||||||
not ``Transparent'' is called ``Opaque.''
|
|
||||||
|
|
||||||
Examples of suitable formats for Transparent copies include plain
|
|
||||||
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
|
||||||
or XML using a publicly available DTD, and standard-conforming simple
|
|
||||||
HTML designed for human modification. Opaque formats include
|
|
||||||
PostScript, PDF, proprietary formats that can be read and edited only
|
|
||||||
by proprietary word processors, SGML or XML for which the DTD and/or
|
|
||||||
processing tools are not generally available, and the
|
|
||||||
machine-generated HTML produced by some word processors for output
|
|
||||||
purposes only.
|
|
||||||
|
|
||||||
The ``Title Page'' means, for a printed book, the title page itself,
|
|
||||||
plus such following pages as are needed to hold, legibly, the material
|
|
||||||
this License requires to appear in the title page. For works in
|
|
||||||
formats which do not have any title page as such, ``Title Page'' means
|
|
||||||
the text near the most prominent appearance of the work's title,
|
|
||||||
preceding the beginning of the body of the text.
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
VERBATIM COPYING
|
|
||||||
|
|
||||||
You may copy and distribute the Document in any medium, either
|
|
||||||
commercially or noncommercially, provided that this License, the
|
|
||||||
copyright notices, and the license notice saying this License applies
|
|
||||||
to the Document are reproduced in all copies, and that you add no other
|
|
||||||
conditions whatsoever to those of this License. You may not use
|
|
||||||
technical measures to obstruct or control the reading or further
|
|
||||||
copying of the copies you make or distribute. However, you may accept
|
|
||||||
compensation in exchange for copies. If you distribute a large enough
|
|
||||||
number of copies you must also follow the conditions in section 3.
|
|
||||||
|
|
||||||
You may also lend copies, under the same conditions stated above, and
|
|
||||||
you may publicly display copies.
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
COPYING IN QUANTITY
|
|
||||||
|
|
||||||
If you publish printed copies of the Document numbering more than 100,
|
|
||||||
and the Document's license notice requires Cover Texts, you must enclose
|
|
||||||
the copies in covers that carry, clearly and legibly, all these Cover
|
|
||||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
|
||||||
the back cover. Both covers must also clearly and legibly identify
|
|
||||||
you as the publisher of these copies. The front cover must present
|
|
||||||
the full title with all words of the title equally prominent and
|
|
||||||
visible. You may add other material on the covers in addition.
|
|
||||||
Copying with changes limited to the covers, as long as they preserve
|
|
||||||
the title of the Document and satisfy these conditions, can be treated
|
|
||||||
as verbatim copying in other respects.
|
|
||||||
|
|
||||||
If the required texts for either cover are too voluminous to fit
|
|
||||||
legibly, you should put the first ones listed (as many as fit
|
|
||||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
|
||||||
pages.
|
|
||||||
|
|
||||||
If you publish or distribute Opaque copies of the Document numbering
|
|
||||||
more than 100, you must either include a machine-readable Transparent
|
|
||||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
|
||||||
a publicly-accessible computer-network location containing a complete
|
|
||||||
Transparent copy of the Document, free of added material, which the
|
|
||||||
general network-using public has access to download anonymously at no
|
|
||||||
charge using public-standard network protocols. If you use the latter
|
|
||||||
option, you must take reasonably prudent steps, when you begin
|
|
||||||
distribution of Opaque copies in quantity, to ensure that this
|
|
||||||
Transparent copy will remain thus accessible at the stated location
|
|
||||||
until at least one year after the last time you distribute an Opaque
|
|
||||||
copy (directly or through your agents or retailers) of that edition to
|
|
||||||
the public.
|
|
||||||
|
|
||||||
It is requested, but not required, that you contact the authors of the
|
|
||||||
Document well before redistributing any large number of copies, to give
|
|
||||||
them a chance to provide you with an updated version of the Document.
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
MODIFICATIONS
|
|
||||||
|
|
||||||
You may copy and distribute a Modified Version of the Document under
|
|
||||||
the conditions of sections 2 and 3 above, provided that you release
|
|
||||||
the Modified Version under precisely this License, with the Modified
|
|
||||||
Version filling the role of the Document, thus licensing distribution
|
|
||||||
and modification of the Modified Version to whoever possesses a copy
|
|
||||||
of it. In addition, you must do these things in the Modified Version:
|
|
||||||
|
|
||||||
A. Use in the Title Page (and on the covers, if any) a title distinct
|
|
||||||
from that of the Document, and from those of previous versions
|
|
||||||
(which should, if there were any, be listed in the History section
|
|
||||||
of the Document). You may use the same title as a previous version
|
|
||||||
if the original publisher of that version gives permission.@*
|
|
||||||
B. List on the Title Page, as authors, one or more persons or entities
|
|
||||||
responsible for authorship of the modifications in the Modified
|
|
||||||
Version, together with at least five of the principal authors of the
|
|
||||||
Document (all of its principal authors, if it has less than five).@*
|
|
||||||
C. State on the Title page the name of the publisher of the
|
|
||||||
Modified Version, as the publisher.@*
|
|
||||||
D. Preserve all the copyright notices of the Document.@*
|
|
||||||
E. Add an appropriate copyright notice for your modifications
|
|
||||||
adjacent to the other copyright notices.@*
|
|
||||||
F. Include, immediately after the copyright notices, a license notice
|
|
||||||
giving the public permission to use the Modified Version under the
|
|
||||||
terms of this License, in the form shown in the Addendum below.@*
|
|
||||||
G. Preserve in that license notice the full lists of Invariant Sections
|
|
||||||
and required Cover Texts given in the Document's license notice.@*
|
|
||||||
H. Include an unaltered copy of this License.@*
|
|
||||||
I. Preserve the section entitled ``History'', and its title, and add to
|
|
||||||
it an item stating at least the title, year, new authors, and
|
|
||||||
publisher of the Modified Version as given on the Title Page. If
|
|
||||||
there is no section entitled ``History'' in the Document, create one
|
|
||||||
stating the title, year, authors, and publisher of the Document as
|
|
||||||
given on its Title Page, then add an item describing the Modified
|
|
||||||
Version as stated in the previous sentence.@*
|
|
||||||
J. Preserve the network location, if any, given in the Document for
|
|
||||||
public access to a Transparent copy of the Document, and likewise
|
|
||||||
the network locations given in the Document for previous versions
|
|
||||||
it was based on. These may be placed in the ``History'' section.
|
|
||||||
You may omit a network location for a work that was published at
|
|
||||||
least four years before the Document itself, or if the original
|
|
||||||
publisher of the version it refers to gives permission.@*
|
|
||||||
K. In any section entitled ``Acknowledgements'' or ``Dedications'',
|
|
||||||
preserve the section's title, and preserve in the section all the
|
|
||||||
substance and tone of each of the contributor acknowledgements
|
|
||||||
and/or dedications given therein.@*
|
|
||||||
L. Preserve all the Invariant Sections of the Document,
|
|
||||||
unaltered in their text and in their titles. Section numbers
|
|
||||||
or the equivalent are not considered part of the section titles.@*
|
|
||||||
M. Delete any section entitled ``Endorsements.'' Such a section
|
|
||||||
may not be included in the Modified Version.@*
|
|
||||||
N. Do not retitle any existing section as ``Endorsements''
|
|
||||||
or to conflict in title with any Invariant Section.@*
|
|
||||||
@sp 1
|
|
||||||
If the Modified Version includes new front-matter sections or
|
|
||||||
appendices that qualify as Secondary Sections and contain no material
|
|
||||||
copied from the Document, you may at your option designate some or all
|
|
||||||
of these sections as invariant. To do this, add their titles to the
|
|
||||||
list of Invariant Sections in the Modified Version's license notice.
|
|
||||||
These titles must be distinct from any other section titles.
|
|
||||||
|
|
||||||
You may add a section entitled ``Endorsements'', provided it contains
|
|
||||||
nothing but endorsements of your Modified Version by various
|
|
||||||
parties--for example, statements of peer review or that the text has
|
|
||||||
been approved by an organization as the authoritative definition of a
|
|
||||||
standard.
|
|
||||||
|
|
||||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
|
||||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
|
||||||
of Cover Texts in the Modified Version. Only one passage of
|
|
||||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
|
||||||
through arrangements made by) any one entity. If the Document already
|
|
||||||
includes a cover text for the same cover, previously added by you or
|
|
||||||
by arrangement made by the same entity you are acting on behalf of,
|
|
||||||
you may not add another; but you may replace the old one, on explicit
|
|
||||||
permission from the previous publisher that added the old one.
|
|
||||||
|
|
||||||
The author(s) and publisher(s) of the Document do not by this License
|
|
||||||
give permission to use their names for publicity for or to assert or
|
|
||||||
imply endorsement of any Modified Version.
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
COMBINING DOCUMENTS
|
|
||||||
|
|
||||||
You may combine the Document with other documents released under this
|
|
||||||
License, under the terms defined in section 4 above for modified
|
|
||||||
versions, provided that you include in the combination all of the
|
|
||||||
Invariant Sections of all of the original documents, unmodified, and
|
|
||||||
list them all as Invariant Sections of your combined work in its
|
|
||||||
license notice.
|
|
||||||
|
|
||||||
The combined work need only contain one copy of this License, and
|
|
||||||
multiple identical Invariant Sections may be replaced with a single
|
|
||||||
copy. If there are multiple Invariant Sections with the same name but
|
|
||||||
different contents, make the title of each such section unique by
|
|
||||||
adding at the end of it, in parentheses, the name of the original
|
|
||||||
author or publisher of that section if known, or else a unique number.
|
|
||||||
Make the same adjustment to the section titles in the list of
|
|
||||||
Invariant Sections in the license notice of the combined work.
|
|
||||||
|
|
||||||
In the combination, you must combine any sections entitled ``History''
|
|
||||||
in the various original documents, forming one section entitled
|
|
||||||
``History''; likewise combine any sections entitled ``Acknowledgements'',
|
|
||||||
and any sections entitled ``Dedications.'' You must delete all sections
|
|
||||||
entitled ``Endorsements.''
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
COLLECTIONS OF DOCUMENTS
|
|
||||||
|
|
||||||
You may make a collection consisting of the Document and other documents
|
|
||||||
released under this License, and replace the individual copies of this
|
|
||||||
License in the various documents with a single copy that is included in
|
|
||||||
the collection, provided that you follow the rules of this License for
|
|
||||||
verbatim copying of each of the documents in all other respects.
|
|
||||||
|
|
||||||
You may extract a single document from such a collection, and distribute
|
|
||||||
it individually under this License, provided you insert a copy of this
|
|
||||||
License into the extracted document, and follow this License in all
|
|
||||||
other respects regarding verbatim copying of that document.
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
AGGREGATION WITH INDEPENDENT WORKS
|
|
||||||
|
|
||||||
A compilation of the Document or its derivatives with other separate
|
|
||||||
and independent documents or works, in or on a volume of a storage or
|
|
||||||
distribution medium, does not as a whole count as a Modified Version
|
|
||||||
of the Document, provided no compilation copyright is claimed for the
|
|
||||||
compilation. Such a compilation is called an ``aggregate'', and this
|
|
||||||
License does not apply to the other self-contained works thus compiled
|
|
||||||
with the Document, on account of their being thus compiled, if they
|
|
||||||
are not themselves derivative works of the Document.
|
|
||||||
|
|
||||||
If the Cover Text requirement of section 3 is applicable to these
|
|
||||||
copies of the Document, then if the Document is less than one quarter
|
|
||||||
of the entire aggregate, the Document's Cover Texts may be placed on
|
|
||||||
covers that surround only the Document within the aggregate.
|
|
||||||
Otherwise they must appear on covers around the whole aggregate.
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
TRANSLATION
|
|
||||||
|
|
||||||
Translation is considered a kind of modification, so you may
|
|
||||||
distribute translations of the Document under the terms of section 4.
|
|
||||||
Replacing Invariant Sections with translations requires special
|
|
||||||
permission from their copyright holders, but you may include
|
|
||||||
translations of some or all Invariant Sections in addition to the
|
|
||||||
original versions of these Invariant Sections. You may include a
|
|
||||||
translation of this License provided that you also include the
|
|
||||||
original English version of this License. In case of a disagreement
|
|
||||||
between the translation and the original English version of this
|
|
||||||
License, the original English version will prevail.
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
TERMINATION
|
|
||||||
|
|
||||||
You may not copy, modify, sublicense, or distribute the Document except
|
|
||||||
as expressly provided for under this License. Any other attempt to
|
|
||||||
copy, modify, sublicense or distribute the Document is void, and will
|
|
||||||
automatically terminate your rights under this License. However,
|
|
||||||
parties who have received copies, or rights, from you under this
|
|
||||||
License will not have their licenses terminated so long as such
|
|
||||||
parties remain in full compliance.
|
|
||||||
@sp 1
|
|
||||||
@item
|
|
||||||
FUTURE REVISIONS OF THIS LICENSE
|
|
||||||
|
|
||||||
The Free Software Foundation may publish new, revised versions
|
|
||||||
of the GNU Free Documentation License from time to time. Such new
|
|
||||||
versions will be similar in spirit to the present version, but may
|
|
||||||
differ in detail to address new problems or concerns. See
|
|
||||||
http://www.gnu.org/copyleft/.
|
|
||||||
|
|
||||||
Each version of the License is given a distinguishing version number.
|
|
||||||
If the Document specifies that a particular numbered version of this
|
|
||||||
License ``or any later version'' applies to it, you have the option of
|
|
||||||
following the terms and conditions either of that specified version or
|
|
||||||
of any later version that has been published (not as a draft) by the
|
|
||||||
Free Software Foundation. If the Document does not specify a version
|
|
||||||
number of this License, you may choose any version ever published (not
|
|
||||||
as a draft) by the Free Software Foundation.
|
|
||||||
|
|
||||||
@end enumerate
|
|
||||||
|
|
||||||
@unnumberedsec ADDENDUM: How to use this License for your documents
|
|
||||||
|
|
||||||
To use this License in a document you have written, include a copy of
|
|
||||||
the License in the document and put the following copyright and
|
|
||||||
license notices just after the title page:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
@group
|
|
||||||
Copyright (C) @var{year} @var{your name}.
|
|
||||||
Permission is granted to copy, distribute and/or modify this document
|
|
||||||
under the terms of the GNU Free Documentation License, Version 1.1
|
|
||||||
or any later version published by the Free Software Foundation;
|
|
||||||
with the Invariant Sections being @var{list their titles}, with the
|
|
||||||
Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
|
|
||||||
A copy of the license is included in the section entitled "GNU
|
|
||||||
Free Documentation License."
|
|
||||||
@end group
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
If you have no Invariant Sections, write ``with no Invariant Sections''
|
|
||||||
instead of saying which ones are invariant. If you have no
|
|
||||||
Front-Cover Texts, write ``no Front-Cover Texts'' instead of
|
|
||||||
``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
|
|
||||||
|
|
||||||
If your document contains nontrivial examples of program code, we
|
|
||||||
recommend releasing these examples in parallel under your choice of
|
|
||||||
free software license, such as the GNU General Public License,
|
|
||||||
to permit their use in free software.
|
|
@ -1,955 +0,0 @@
|
|||||||
@comment This file is included by both standards.texi and make.texinfo.
|
|
||||||
@comment It was broken out of standards.texi on 1/6/93 by roland.
|
|
||||||
|
|
||||||
@node Makefile Conventions
|
|
||||||
@chapter Makefile Conventions
|
|
||||||
@comment standards.texi does not print an index, but make.texinfo does.
|
|
||||||
@cindex makefile, conventions for
|
|
||||||
@cindex conventions for makefiles
|
|
||||||
@cindex standards for makefiles
|
|
||||||
|
|
||||||
@c Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001 Free
|
|
||||||
@c Software Foundation, Inc.
|
|
||||||
|
|
||||||
@c Permission is granted to copy, distribute and/or modify this document
|
|
||||||
@c under the terms of the GNU Free Documentation License, Version 1.1
|
|
||||||
@c or any later version published by the Free Software Foundation;
|
|
||||||
@c with no Invariant Sections, with no
|
|
||||||
@c Front-Cover Texts, and with no Back-Cover Texts.
|
|
||||||
@c A copy of the license is included in the section entitled ``GNU
|
|
||||||
@c Free Documentation License''.
|
|
||||||
|
|
||||||
This
|
|
||||||
@ifinfo
|
|
||||||
node
|
|
||||||
@end ifinfo
|
|
||||||
@iftex
|
|
||||||
@ifset CODESTD
|
|
||||||
section
|
|
||||||
@end ifset
|
|
||||||
@ifclear CODESTD
|
|
||||||
chapter
|
|
||||||
@end ifclear
|
|
||||||
@end iftex
|
|
||||||
describes conventions for writing the Makefiles for GNU programs.
|
|
||||||
Using Automake will help you write a Makefile that follows these
|
|
||||||
conventions.
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* Makefile Basics:: General Conventions for Makefiles
|
|
||||||
* Utilities in Makefiles:: Utilities in Makefiles
|
|
||||||
* Command Variables:: Variables for Specifying Commands
|
|
||||||
* Directory Variables:: Variables for Installation Directories
|
|
||||||
* Standard Targets:: Standard Targets for Users
|
|
||||||
* Install Command Categories:: Three categories of commands in the `install'
|
|
||||||
rule: normal, pre-install and post-install.
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node Makefile Basics
|
|
||||||
@section General Conventions for Makefiles
|
|
||||||
|
|
||||||
Every Makefile should contain this line:
|
|
||||||
|
|
||||||
@example
|
|
||||||
SHELL = /bin/sh
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
to avoid trouble on systems where the @code{SHELL} variable might be
|
|
||||||
inherited from the environment. (This is never a problem with GNU
|
|
||||||
@code{make}.)
|
|
||||||
|
|
||||||
Different @code{make} programs have incompatible suffix lists and
|
|
||||||
implicit rules, and this sometimes creates confusion or misbehavior. So
|
|
||||||
it is a good idea to set the suffix list explicitly using only the
|
|
||||||
suffixes you need in the particular Makefile, like this:
|
|
||||||
|
|
||||||
@example
|
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .c .o
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
The first line clears out the suffix list, the second introduces all
|
|
||||||
suffixes which may be subject to implicit rules in this Makefile.
|
|
||||||
|
|
||||||
Don't assume that @file{.} is in the path for command execution. When
|
|
||||||
you need to run programs that are a part of your package during the
|
|
||||||
make, please make sure that it uses @file{./} if the program is built as
|
|
||||||
part of the make or @file{$(srcdir)/} if the file is an unchanging part
|
|
||||||
of the source code. Without one of these prefixes, the current search
|
|
||||||
path is used.
|
|
||||||
|
|
||||||
The distinction between @file{./} (the @dfn{build directory}) and
|
|
||||||
@file{$(srcdir)/} (the @dfn{source directory}) is important because
|
|
||||||
users can build in a separate directory using the @samp{--srcdir} option
|
|
||||||
to @file{configure}. A rule of the form:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
foo.1 : foo.man sedscript
|
|
||||||
sed -e sedscript foo.man > foo.1
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
will fail when the build directory is not the source directory, because
|
|
||||||
@file{foo.man} and @file{sedscript} are in 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,
|
|
||||||
since the @code{make} automatic variable @samp{$<} will represent the
|
|
||||||
source file wherever it is. (Many versions of @code{make} set @samp{$<}
|
|
||||||
only in implicit rules.) A Makefile target like
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
foo.o : bar.c
|
|
||||||
$(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
should instead be written as
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
foo.o : bar.c
|
|
||||||
$(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@@
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
in order to allow @samp{VPATH} to work correctly. When the target has
|
|
||||||
multiple dependencies, using an explicit @samp{$(srcdir)} is the easiest
|
|
||||||
way to make the rule work well. For example, the target above for
|
|
||||||
@file{foo.1} is best written as:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
foo.1 : foo.man sedscript
|
|
||||||
sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@@
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
GNU distributions usually contain some files which are not source
|
|
||||||
files---for example, Info files, and the output from Autoconf, Automake,
|
|
||||||
Bison or Flex. Since these files normally appear in the source
|
|
||||||
directory, they should always appear in the source directory, not in the
|
|
||||||
build directory. So Makefile rules to update them should put the
|
|
||||||
updated files in the source directory.
|
|
||||||
|
|
||||||
However, if a file does not appear in the distribution, then the
|
|
||||||
Makefile should not put it in the source directory, because building a
|
|
||||||
program in ordinary circumstances should not modify the source directory
|
|
||||||
in any way.
|
|
||||||
|
|
||||||
Try to make the build and installation targets, at least (and all their
|
|
||||||
subtargets) work correctly with a parallel @code{make}.
|
|
||||||
|
|
||||||
@node Utilities in Makefiles
|
|
||||||
@section Utilities in Makefiles
|
|
||||||
|
|
||||||
Write the Makefile commands (and any shell scripts, such as
|
|
||||||
@code{configure}) to run in @code{sh}, not in @code{csh}. Don't use any
|
|
||||||
special features of @code{ksh} or @code{bash}.
|
|
||||||
|
|
||||||
The @code{configure} script and the Makefile rules for building and
|
|
||||||
installation should not use any utilities directly except these:
|
|
||||||
|
|
||||||
@c dd find
|
|
||||||
@c gunzip gzip md5sum
|
|
||||||
@c mkfifo mknod tee uname
|
|
||||||
|
|
||||||
@example
|
|
||||||
cat cmp cp diff echo egrep expr false grep install-info
|
|
||||||
ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true
|
|
||||||
@end example
|
|
||||||
|
|
||||||
The compression program @code{gzip} can be used in the @code{dist} rule.
|
|
||||||
|
|
||||||
Stick to the generally supported options for these programs. For
|
|
||||||
example, don't use @samp{mkdir -p}, convenient as it may be, because
|
|
||||||
most systems don't support it.
|
|
||||||
|
|
||||||
It is a good idea to avoid creating symbolic links in makefiles, since a
|
|
||||||
few systems don't support them.
|
|
||||||
|
|
||||||
The Makefile rules for building and installation can also use compilers
|
|
||||||
and related programs, but should do so via @code{make} variables so that the
|
|
||||||
user can substitute alternatives. Here are some of the programs we
|
|
||||||
mean:
|
|
||||||
|
|
||||||
@example
|
|
||||||
ar bison cc flex install ld ldconfig lex
|
|
||||||
make makeinfo ranlib texi2dvi yacc
|
|
||||||
@end example
|
|
||||||
|
|
||||||
Use the following @code{make} variables to run those programs:
|
|
||||||
|
|
||||||
@example
|
|
||||||
$(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
|
|
||||||
$(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
|
|
||||||
@end example
|
|
||||||
|
|
||||||
When you use @code{ranlib} or @code{ldconfig}, you should make sure
|
|
||||||
nothing bad happens if the system does not have the program in question.
|
|
||||||
Arrange to ignore an error from that command, and print a message before
|
|
||||||
the command to tell the user that failure of this command does not mean
|
|
||||||
a problem. (The Autoconf @samp{AC_PROG_RANLIB} macro can help with
|
|
||||||
this.)
|
|
||||||
|
|
||||||
If you use symbolic links, you should implement a fallback for systems
|
|
||||||
that don't have symbolic links.
|
|
||||||
|
|
||||||
Additional utilities that can be used via Make variables are:
|
|
||||||
|
|
||||||
@example
|
|
||||||
chgrp chmod chown mknod
|
|
||||||
@end example
|
|
||||||
|
|
||||||
It is ok to use other utilities in Makefile portions (or scripts)
|
|
||||||
intended only for particular systems where you know those utilities
|
|
||||||
exist.
|
|
||||||
|
|
||||||
@node Command Variables
|
|
||||||
@section Variables for Specifying Commands
|
|
||||||
|
|
||||||
Makefiles should provide variables for overriding certain commands, options,
|
|
||||||
and so on.
|
|
||||||
|
|
||||||
In particular, you should run most utility programs via variables.
|
|
||||||
Thus, if you use Bison, have a variable named @code{BISON} whose default
|
|
||||||
value is set with @samp{BISON = bison}, and refer to it with
|
|
||||||
@code{$(BISON)} whenever you need to use Bison.
|
|
||||||
|
|
||||||
File management utilities such as @code{ln}, @code{rm}, @code{mv}, and
|
|
||||||
so on, need not be referred to through variables in this way, since users
|
|
||||||
don't need to replace them with other programs.
|
|
||||||
|
|
||||||
Each program-name variable should come with an options variable that is
|
|
||||||
used to supply options to the program. Append @samp{FLAGS} to the
|
|
||||||
program-name variable name to get the options variable name---for
|
|
||||||
example, @code{BISONFLAGS}. (The names @code{CFLAGS} for the C
|
|
||||||
compiler, @code{YFLAGS} for yacc, and @code{LFLAGS} for lex, are
|
|
||||||
exceptions to this rule, but we keep them because they are standard.)
|
|
||||||
Use @code{CPPFLAGS} in any compilation command that runs the
|
|
||||||
preprocessor, and use @code{LDFLAGS} in any compilation command that
|
|
||||||
does linking as well as in any direct use of @code{ld}.
|
|
||||||
|
|
||||||
If there are C compiler options that @emph{must} be used for proper
|
|
||||||
compilation of certain files, do not include them in @code{CFLAGS}.
|
|
||||||
Users expect to be able to specify @code{CFLAGS} freely themselves.
|
|
||||||
Instead, arrange to pass the necessary options to the C compiler
|
|
||||||
independently of @code{CFLAGS}, by writing them explicitly in the
|
|
||||||
compilation commands or by defining an implicit rule, like this:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
CFLAGS = -g
|
|
||||||
ALL_CFLAGS = -I. $(CFLAGS)
|
|
||||||
.c.o:
|
|
||||||
$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
Do include the @samp{-g} option in @code{CFLAGS}, because that is not
|
|
||||||
@emph{required} for proper compilation. You can consider it a default
|
|
||||||
that is only recommended. If the package is set up so that it is
|
|
||||||
compiled with GCC by default, then you might as well include @samp{-O}
|
|
||||||
in the default value of @code{CFLAGS} as well.
|
|
||||||
|
|
||||||
Put @code{CFLAGS} last in the compilation command, after other variables
|
|
||||||
containing compiler options, so the user can use @code{CFLAGS} to
|
|
||||||
override the others.
|
|
||||||
|
|
||||||
@code{CFLAGS} should be used in every invocation of the C compiler,
|
|
||||||
both those which do compilation and those which do linking.
|
|
||||||
|
|
||||||
Every Makefile should define the variable @code{INSTALL}, which is the
|
|
||||||
basic command for installing a file into the system.
|
|
||||||
|
|
||||||
Every Makefile should also define the variables @code{INSTALL_PROGRAM}
|
|
||||||
and @code{INSTALL_DATA}. (The default for @code{INSTALL_PROGRAM} should
|
|
||||||
be @code{$(INSTALL)}; the default for @code{INSTALL_DATA} should be
|
|
||||||
@code{$@{INSTALL@} -m 644}.) Then it should use those variables as the
|
|
||||||
commands for actual installation, for executables and nonexecutables
|
|
||||||
respectively. Use these variables as follows:
|
|
||||||
|
|
||||||
@example
|
|
||||||
$(INSTALL_PROGRAM) foo $(bindir)/foo
|
|
||||||
$(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
|
|
||||||
@end example
|
|
||||||
|
|
||||||
Optionally, you may prepend the value of @code{DESTDIR} to the target
|
|
||||||
filename. Doing this allows the installer to create a snapshot of the
|
|
||||||
installation to be copied onto the real target filesystem later. Do not
|
|
||||||
set the value of @code{DESTDIR} in your Makefile, and do not include it
|
|
||||||
in any installed files. With support for @code{DESTDIR}, the above
|
|
||||||
examples become:
|
|
||||||
|
|
||||||
@example
|
|
||||||
$(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
|
|
||||||
$(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
Always use a file name, not a directory name, as the second argument of
|
|
||||||
the installation commands. Use a separate command for each file to be
|
|
||||||
installed.
|
|
||||||
|
|
||||||
@node Directory Variables
|
|
||||||
@section Variables for Installation Directories
|
|
||||||
|
|
||||||
Installation directories should always be named by variables, so it is
|
|
||||||
easy to install in a nonstandard place. The standard names for these
|
|
||||||
variables are described below. They are based on a standard filesystem
|
|
||||||
layout; variants of it are used in SVR4, 4.4BSD, GNU/Linux, Ultrix v4,
|
|
||||||
and other modern operating systems.
|
|
||||||
|
|
||||||
These two variables set the root for the installation. All the other
|
|
||||||
installation directories should be subdirectories of one of these two,
|
|
||||||
and nothing should be directly installed into these two directories.
|
|
||||||
|
|
||||||
@table @code
|
|
||||||
@item prefix
|
|
||||||
@vindex prefix
|
|
||||||
A prefix used in constructing the default values of the variables listed
|
|
||||||
below. The default value of @code{prefix} should be @file{/usr/local}.
|
|
||||||
When building the complete GNU system, the prefix will be empty and
|
|
||||||
@file{/usr} will be a symbolic link to @file{/}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@prefix@@}.)
|
|
||||||
|
|
||||||
Running @samp{make install} with a different value of @code{prefix} from
|
|
||||||
the one used to build the program should @emph{not} recompile the
|
|
||||||
program.
|
|
||||||
|
|
||||||
@item exec_prefix
|
|
||||||
@vindex exec_prefix
|
|
||||||
A prefix used in constructing the default values of some of the
|
|
||||||
variables listed below. The default value of @code{exec_prefix} should
|
|
||||||
be @code{$(prefix)}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@exec_prefix@@}.)
|
|
||||||
|
|
||||||
Generally, @code{$(exec_prefix)} is used for directories that contain
|
|
||||||
machine-specific files (such as executables and subroutine libraries),
|
|
||||||
while @code{$(prefix)} is used directly for other directories.
|
|
||||||
|
|
||||||
Running @samp{make install} with a different value of @code{exec_prefix}
|
|
||||||
from the one used to build the program should @emph{not} recompile the
|
|
||||||
program.
|
|
||||||
@end table
|
|
||||||
|
|
||||||
Executable programs are installed in one of the following directories.
|
|
||||||
|
|
||||||
@table @code
|
|
||||||
@item bindir
|
|
||||||
@vindex bindir
|
|
||||||
The directory for installing executable programs that users can run.
|
|
||||||
This should normally be @file{/usr/local/bin}, but write it as
|
|
||||||
@file{$(exec_prefix)/bin}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@bindir@@}.)
|
|
||||||
|
|
||||||
@item sbindir
|
|
||||||
@vindex sbindir
|
|
||||||
The directory for installing executable programs that can be run from
|
|
||||||
the shell, but are only generally useful to system administrators. This
|
|
||||||
should normally be @file{/usr/local/sbin}, but write it as
|
|
||||||
@file{$(exec_prefix)/sbin}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@sbindir@@}.)
|
|
||||||
|
|
||||||
@item libexecdir
|
|
||||||
@vindex libexecdir
|
|
||||||
@comment This paragraph adjusted to avoid overfull hbox --roland 5jul94
|
|
||||||
The directory for installing executable programs to be run by other
|
|
||||||
programs rather than by users. This directory should normally be
|
|
||||||
@file{/usr/local/libexec}, but write it as @file{$(exec_prefix)/libexec}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@libexecdir@@}.)
|
|
||||||
@end table
|
|
||||||
|
|
||||||
Data files used by the program during its execution are divided into
|
|
||||||
categories in two ways.
|
|
||||||
|
|
||||||
@itemize @bullet
|
|
||||||
@item
|
|
||||||
Some files are normally modified by programs; others are never normally
|
|
||||||
modified (though users may edit some of these).
|
|
||||||
|
|
||||||
@item
|
|
||||||
Some files are architecture-independent and can be shared by all
|
|
||||||
machines at a site; some are architecture-dependent and can be shared
|
|
||||||
only by machines of the same kind and operating system; others may never
|
|
||||||
be shared between two machines.
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
This makes for six different possibilities. However, we want to
|
|
||||||
discourage the use of architecture-dependent files, aside from object
|
|
||||||
files and libraries. It is much cleaner to make other data files
|
|
||||||
architecture-independent, and it is generally not hard.
|
|
||||||
|
|
||||||
Therefore, here are the variables Makefiles should use to specify
|
|
||||||
directories:
|
|
||||||
|
|
||||||
@table @samp
|
|
||||||
@item datadir
|
|
||||||
The directory for installing read-only architecture independent data
|
|
||||||
files. This should normally be @file{/usr/local/share}, but write it as
|
|
||||||
@file{$(prefix)/share}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@datadir@@}.)
|
|
||||||
As a special exception, see @file{$(infodir)}
|
|
||||||
and @file{$(includedir)} below.
|
|
||||||
|
|
||||||
@item sysconfdir
|
|
||||||
The directory for installing read-only data files that pertain to a
|
|
||||||
single machine--that is to say, files for configuring a host. Mailer
|
|
||||||
and network configuration files, @file{/etc/passwd}, and so forth belong
|
|
||||||
here. All the files in this directory should be ordinary ASCII text
|
|
||||||
files. This directory should normally be @file{/usr/local/etc}, but
|
|
||||||
write it as @file{$(prefix)/etc}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@sysconfdir@@}.)
|
|
||||||
|
|
||||||
Do not install executables here in this directory (they probably belong
|
|
||||||
in @file{$(libexecdir)} or @file{$(sbindir)}). Also do not install
|
|
||||||
files that are modified in the normal course of their use (programs
|
|
||||||
whose purpose is to change the configuration of the system excluded).
|
|
||||||
Those probably belong in @file{$(localstatedir)}.
|
|
||||||
|
|
||||||
@item sharedstatedir
|
|
||||||
The directory for installing architecture-independent data files which
|
|
||||||
the programs modify while they run. This should normally be
|
|
||||||
@file{/usr/local/com}, but write it as @file{$(prefix)/com}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@sharedstatedir@@}.)
|
|
||||||
|
|
||||||
@item localstatedir
|
|
||||||
The directory for installing data files which the programs modify while
|
|
||||||
they run, and that pertain to one specific machine. Users should never
|
|
||||||
need to modify files in this directory to configure the package's
|
|
||||||
operation; put such configuration information in separate files that go
|
|
||||||
in @file{$(datadir)} or @file{$(sysconfdir)}. @file{$(localstatedir)}
|
|
||||||
should normally be @file{/usr/local/var}, but write it as
|
|
||||||
@file{$(prefix)/var}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@localstatedir@@}.)
|
|
||||||
|
|
||||||
@item libdir
|
|
||||||
The directory for object files and libraries of object code. Do not
|
|
||||||
install executables here, they probably ought to go in @file{$(libexecdir)}
|
|
||||||
instead. The value of @code{libdir} should normally be
|
|
||||||
@file{/usr/local/lib}, but write it as @file{$(exec_prefix)/lib}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@libdir@@}.)
|
|
||||||
|
|
||||||
@item infodir
|
|
||||||
The directory for installing the Info files for this package. By
|
|
||||||
default, it should be @file{/usr/local/info}, but it should be written
|
|
||||||
as @file{$(prefix)/info}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@infodir@@}.)
|
|
||||||
|
|
||||||
@item lispdir
|
|
||||||
The directory for installing any Emacs Lisp files in this package. By
|
|
||||||
default, it should be @file{/usr/local/share/emacs/site-lisp}, but it
|
|
||||||
should be written as @file{$(prefix)/share/emacs/site-lisp}.
|
|
||||||
|
|
||||||
If you are using Autoconf, write the default as @samp{@@lispdir@@}.
|
|
||||||
In order to make @samp{@@lispdir@@} work, you need the following lines
|
|
||||||
in your @file{configure.in} file:
|
|
||||||
|
|
||||||
@example
|
|
||||||
lispdir='$@{datadir@}/emacs/site-lisp'
|
|
||||||
AC_SUBST(lispdir)
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@item includedir
|
|
||||||
@c rewritten to avoid overfull hbox --roland
|
|
||||||
The directory for installing header files to be included by user
|
|
||||||
programs with the C @samp{#include} preprocessor directive. This
|
|
||||||
should normally be @file{/usr/local/include}, but write it as
|
|
||||||
@file{$(prefix)/include}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@includedir@@}.)
|
|
||||||
|
|
||||||
Most compilers other than GCC do not look for header files in directory
|
|
||||||
@file{/usr/local/include}. So installing the header files this way is
|
|
||||||
only useful with GCC. Sometimes this is not a problem because some
|
|
||||||
libraries are only really intended to work with GCC. But some libraries
|
|
||||||
are intended to work with other compilers. They should install their
|
|
||||||
header files in two places, one specified by @code{includedir} and one
|
|
||||||
specified by @code{oldincludedir}.
|
|
||||||
|
|
||||||
@item oldincludedir
|
|
||||||
The directory for installing @samp{#include} header files for use with
|
|
||||||
compilers other than GCC. This should normally be @file{/usr/include}.
|
|
||||||
(If you are using Autoconf, you can write it as @samp{@@oldincludedir@@}.)
|
|
||||||
|
|
||||||
The Makefile commands should check whether the value of
|
|
||||||
@code{oldincludedir} is empty. If it is, they should not try to use
|
|
||||||
it; they should cancel the second installation of the header files.
|
|
||||||
|
|
||||||
A package should not replace an existing header in this directory unless
|
|
||||||
the header came from the same package. Thus, if your Foo package
|
|
||||||
provides a header file @file{foo.h}, then it should install the header
|
|
||||||
file in the @code{oldincludedir} directory if either (1) there is no
|
|
||||||
@file{foo.h} there or (2) the @file{foo.h} that exists came from the Foo
|
|
||||||
package.
|
|
||||||
|
|
||||||
To tell whether @file{foo.h} came from the Foo package, put a magic
|
|
||||||
string in the file---part of a comment---and @code{grep} for that string.
|
|
||||||
@end table
|
|
||||||
|
|
||||||
Unix-style man pages are installed in one of the following:
|
|
||||||
|
|
||||||
@table @samp
|
|
||||||
@item mandir
|
|
||||||
The top-level directory for installing the man pages (if any) for this
|
|
||||||
package. It will normally be @file{/usr/local/man}, but you should
|
|
||||||
write it as @file{$(prefix)/man}.
|
|
||||||
(If you are using Autoconf, write it as @samp{@@mandir@@}.)
|
|
||||||
|
|
||||||
@item man1dir
|
|
||||||
The directory for installing section 1 man pages. Write it as
|
|
||||||
@file{$(mandir)/man1}.
|
|
||||||
@item man2dir
|
|
||||||
The directory for installing section 2 man pages. Write it as
|
|
||||||
@file{$(mandir)/man2}
|
|
||||||
@item @dots{}
|
|
||||||
|
|
||||||
@strong{Don't make the primary documentation for any GNU software be a
|
|
||||||
man page. Write a manual in Texinfo instead. Man pages are just for
|
|
||||||
the sake of people running GNU software on Unix, which is a secondary
|
|
||||||
application only.}
|
|
||||||
|
|
||||||
@item manext
|
|
||||||
The file name extension for the installed man page. This should contain
|
|
||||||
a period followed by the appropriate digit; it should normally be @samp{.1}.
|
|
||||||
|
|
||||||
@item man1ext
|
|
||||||
The file name extension for installed section 1 man pages.
|
|
||||||
@item man2ext
|
|
||||||
The file name extension for installed section 2 man pages.
|
|
||||||
@item @dots{}
|
|
||||||
Use these names instead of @samp{manext} if the package needs to install man
|
|
||||||
pages in more than one section of the manual.
|
|
||||||
@end table
|
|
||||||
|
|
||||||
And finally, you should set the following variable:
|
|
||||||
|
|
||||||
@table @samp
|
|
||||||
@item srcdir
|
|
||||||
The directory for the sources being compiled. The value of this
|
|
||||||
variable is normally inserted by the @code{configure} shell script.
|
|
||||||
(If you are using Autconf, use @samp{srcdir = @@srcdir@@}.)
|
|
||||||
@end table
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
@c I have changed some of the comments here slightly to fix an overfull
|
|
||||||
@c hbox, so the make manual can format correctly. --roland
|
|
||||||
# Common prefix for installation directories.
|
|
||||||
# NOTE: This directory must exist when you start the install.
|
|
||||||
prefix = /usr/local
|
|
||||||
exec_prefix = $(prefix)
|
|
||||||
# Where to put the executable for the command `gcc'.
|
|
||||||
bindir = $(exec_prefix)/bin
|
|
||||||
# Where to put the directories used by the compiler.
|
|
||||||
libexecdir = $(exec_prefix)/libexec
|
|
||||||
# Where to put the Info files.
|
|
||||||
infodir = $(prefix)/info
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
If your program installs a large number of files into one of the
|
|
||||||
standard user-specified directories, it might be useful to group them
|
|
||||||
into a subdirectory particular to that program. If you do this, you
|
|
||||||
should write the @code{install} rule to create these subdirectories.
|
|
||||||
|
|
||||||
Do not expect the user to include the subdirectory name in the value of
|
|
||||||
any of the variables listed above. The idea of having a uniform set of
|
|
||||||
variable names for installation directories is to enable the user to
|
|
||||||
specify the exact same values for several different GNU packages. In
|
|
||||||
order for this to be useful, all the packages must be designed so that
|
|
||||||
they will work sensibly when the user does so.
|
|
||||||
|
|
||||||
@node Standard Targets
|
|
||||||
@section Standard Targets for Users
|
|
||||||
|
|
||||||
All GNU programs should have the following targets in their Makefiles:
|
|
||||||
|
|
||||||
@table @samp
|
|
||||||
@item all
|
|
||||||
Compile the entire program. This should be the default target. This
|
|
||||||
target need not rebuild any documentation files; Info files should
|
|
||||||
normally be included in the distribution, and DVI files should be made
|
|
||||||
only when explicitly asked for.
|
|
||||||
|
|
||||||
By default, the Make rules should compile and link with @samp{-g}, so
|
|
||||||
that executable programs have debugging symbols. Users who don't mind
|
|
||||||
being helpless can strip the executables later if they wish.
|
|
||||||
|
|
||||||
@item install
|
|
||||||
Compile the program and copy the executables, libraries, and so on to
|
|
||||||
the file names where they should reside for actual use. If there is a
|
|
||||||
simple test to verify that a program is properly installed, this target
|
|
||||||
should run that test.
|
|
||||||
|
|
||||||
Do not strip executables when installing them. Devil-may-care users can
|
|
||||||
use the @code{install-strip} target to do that.
|
|
||||||
|
|
||||||
If possible, write the @code{install} target rule so that it does not
|
|
||||||
modify anything in the directory where the program was built, provided
|
|
||||||
@samp{make all} has just been done. This is convenient for building the
|
|
||||||
program under one user name and installing it under another.
|
|
||||||
|
|
||||||
The commands should create all the directories in which files are to be
|
|
||||||
installed, if they don't already exist. This includes the directories
|
|
||||||
specified as the values of the variables @code{prefix} and
|
|
||||||
@code{exec_prefix}, as well as all subdirectories that are needed.
|
|
||||||
One way to do this is by means of an @code{installdirs} target
|
|
||||||
as described below.
|
|
||||||
|
|
||||||
Use @samp{-} before any command for installing a man page, so that
|
|
||||||
@code{make} will ignore any errors. This is in case there are systems
|
|
||||||
that don't have the Unix man page documentation system installed.
|
|
||||||
|
|
||||||
The way to install Info files is to copy them into @file{$(infodir)}
|
|
||||||
with @code{$(INSTALL_DATA)} (@pxref{Command Variables}), and then run
|
|
||||||
the @code{install-info} program if it is present. @code{install-info}
|
|
||||||
is a program that edits the Info @file{dir} file to add or update the
|
|
||||||
menu entry for the given Info file; it is part of the Texinfo package.
|
|
||||||
Here is a sample rule to install an Info file:
|
|
||||||
|
|
||||||
@comment This example has been carefully formatted for the Make manual.
|
|
||||||
@comment Please do not reformat it without talking to roland@gnu.ai.mit.edu.
|
|
||||||
@smallexample
|
|
||||||
$(DESTDIR)$(infodir)/foo.info: foo.info
|
|
||||||
$(POST_INSTALL)
|
|
||||||
# There may be a newer info file in . than in srcdir.
|
|
||||||
-if test -f foo.info; then d=.; \
|
|
||||||
else d=$(srcdir); fi; \
|
|
||||||
$(INSTALL_DATA) $$d/foo.info $(DESTDIR)$@@; \
|
|
||||||
# Run install-info only if it exists.
|
|
||||||
# Use `if' instead of just prepending `-' to the
|
|
||||||
# line so we notice real errors from install-info.
|
|
||||||
# We use `$(SHELL) -c' because some shells do not
|
|
||||||
# fail gracefully when there is an unknown command.
|
|
||||||
if $(SHELL) -c 'install-info --version' \
|
|
||||||
>/dev/null 2>&1; then \
|
|
||||||
install-info --dir-file=$(DESTDIR)$(infodir)/dir \
|
|
||||||
$(DESTDIR)$(infodir)/foo.info; \
|
|
||||||
else true; fi
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
When writing the @code{install} target, you must classify all the
|
|
||||||
commands into three categories: normal ones, @dfn{pre-installation}
|
|
||||||
commands and @dfn{post-installation} commands. @xref{Install Command
|
|
||||||
Categories}.
|
|
||||||
|
|
||||||
@item uninstall
|
|
||||||
Delete all the installed files---the copies that the @samp{install}
|
|
||||||
target creates.
|
|
||||||
|
|
||||||
This rule should not modify the directories where compilation is done,
|
|
||||||
only the directories where files are installed.
|
|
||||||
|
|
||||||
The uninstallation commands are divided into three categories, just like
|
|
||||||
the installation commands. @xref{Install Command Categories}.
|
|
||||||
|
|
||||||
@item install-strip
|
|
||||||
Like @code{install}, but strip the executable files while installing
|
|
||||||
them. In simple cases, this target can use the @code{install} target in
|
|
||||||
a simple way:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
install-strip:
|
|
||||||
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
|
|
||||||
install
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
But if the package installs scripts as well as real executables, the
|
|
||||||
@code{install-strip} target can't just refer to the @code{install}
|
|
||||||
target; it has to strip the executables but not the scripts.
|
|
||||||
|
|
||||||
@code{install-strip} should not strip the executables in the build
|
|
||||||
directory which are being copied for installation. It should only strip
|
|
||||||
the copies that are installed.
|
|
||||||
|
|
||||||
Normally we do not recommend stripping an executable unless you are sure
|
|
||||||
the program has no bugs. However, it can be reasonable to install a
|
|
||||||
stripped executable for actual execution while saving the unstripped
|
|
||||||
executable elsewhere in case there is a bug.
|
|
||||||
|
|
||||||
@comment The gratuitous blank line here is to make the table look better
|
|
||||||
@comment in the printed Make manual. Please leave it in.
|
|
||||||
@item clean
|
|
||||||
|
|
||||||
Delete all files from the current directory that are normally created by
|
|
||||||
building the program. Don't delete the files that record the
|
|
||||||
configuration. Also preserve files that could be made by building, but
|
|
||||||
normally aren't because the distribution comes with them.
|
|
||||||
|
|
||||||
Delete @file{.dvi} files here if they are not part of the distribution.
|
|
||||||
|
|
||||||
@item distclean
|
|
||||||
Delete all files from the current directory that are created by
|
|
||||||
configuring or building the program. If you have unpacked the source
|
|
||||||
and built the program without creating any other files, @samp{make
|
|
||||||
distclean} should leave only the files that were in the distribution.
|
|
||||||
|
|
||||||
@item mostlyclean
|
|
||||||
Like @samp{clean}, but may refrain from deleting a few files that people
|
|
||||||
normally don't want to recompile. For example, the @samp{mostlyclean}
|
|
||||||
target for GCC does not delete @file{libgcc.a}, because recompiling it
|
|
||||||
is rarely necessary and takes a lot of time.
|
|
||||||
|
|
||||||
@item maintainer-clean
|
|
||||||
Delete almost everything from the current directory that can be
|
|
||||||
reconstructed with this Makefile. This typically includes everything
|
|
||||||
deleted by @code{distclean}, plus more: C source files produced by
|
|
||||||
Bison, tags tables, Info files, and so on.
|
|
||||||
|
|
||||||
The reason we say ``almost everything'' is that running the command
|
|
||||||
@samp{make maintainer-clean} should not delete @file{configure} even if
|
|
||||||
@file{configure} can be remade using a rule in the Makefile. More generally,
|
|
||||||
@samp{make maintainer-clean} should not delete anything that needs to
|
|
||||||
exist in order to run @file{configure} and then begin to build the
|
|
||||||
program. This is the only exception; @code{maintainer-clean} should
|
|
||||||
delete everything else that can be rebuilt.
|
|
||||||
|
|
||||||
The @samp{maintainer-clean} target is intended to be used by a maintainer of
|
|
||||||
the package, not by ordinary users. You may need special tools to
|
|
||||||
reconstruct some of the files that @samp{make maintainer-clean} deletes.
|
|
||||||
Since these files are normally included in the distribution, we don't
|
|
||||||
take care to make them easy to reconstruct. If you find you need to
|
|
||||||
unpack the full distribution again, don't blame us.
|
|
||||||
|
|
||||||
To help make users aware of this, the commands for the special
|
|
||||||
@code{maintainer-clean} target should start with these two:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
@@echo 'This command is intended for maintainers to use; it'
|
|
||||||
@@echo 'deletes files that may need special tools to rebuild.'
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
@item TAGS
|
|
||||||
Update a tags table for this program.
|
|
||||||
@c ADR: how?
|
|
||||||
|
|
||||||
@item info
|
|
||||||
Generate any Info files needed. The best way to write the rules is as
|
|
||||||
follows:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
info: foo.info
|
|
||||||
|
|
||||||
foo.info: foo.texi chap1.texi chap2.texi
|
|
||||||
$(MAKEINFO) $(srcdir)/foo.texi
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
You must define the variable @code{MAKEINFO} in the Makefile. It should
|
|
||||||
run the @code{makeinfo} program, which is part of the Texinfo
|
|
||||||
distribution.
|
|
||||||
|
|
||||||
Normally a GNU distribution comes with Info files, and that means the
|
|
||||||
Info files are present in the source directory. Therefore, the Make
|
|
||||||
rule for an info file should update it in the source directory. When
|
|
||||||
users build the package, ordinarily Make will not update the Info files
|
|
||||||
because they will already be up to date.
|
|
||||||
|
|
||||||
@item dvi
|
|
||||||
Generate DVI files for all Texinfo documentation.
|
|
||||||
For example:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
dvi: foo.dvi
|
|
||||||
|
|
||||||
foo.dvi: foo.texi chap1.texi chap2.texi
|
|
||||||
$(TEXI2DVI) $(srcdir)/foo.texi
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
You must define the variable @code{TEXI2DVI} in the Makefile. It should
|
|
||||||
run the program @code{texi2dvi}, which is part of the Texinfo
|
|
||||||
distribution.@footnote{@code{texi2dvi} uses @TeX{} to do the real work
|
|
||||||
of formatting. @TeX{} is not distributed with Texinfo.} Alternatively,
|
|
||||||
write just the dependencies, and allow GNU @code{make} to provide the command.
|
|
||||||
|
|
||||||
@item dist
|
|
||||||
Create a distribution tar file for this program. The tar file should be
|
|
||||||
set up so that the file names in the tar file start with a subdirectory
|
|
||||||
name which is the name of the package it is a distribution for. This
|
|
||||||
name can include the version number.
|
|
||||||
|
|
||||||
For example, the distribution tar file of GCC version 1.40 unpacks into
|
|
||||||
a subdirectory named @file{gcc-1.40}.
|
|
||||||
|
|
||||||
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
|
|
||||||
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
|
|
||||||
that are in the distribution, to make sure they are up to date in the
|
|
||||||
distribution.
|
|
||||||
@ifset CODESTD
|
|
||||||
@xref{Releases, , Making Releases}.
|
|
||||||
@end ifset
|
|
||||||
@ifclear CODESTD
|
|
||||||
@xref{Releases, , Making Releases, standards, GNU Coding Standards}.
|
|
||||||
@end ifclear
|
|
||||||
|
|
||||||
@item check
|
|
||||||
Perform self-tests (if any). The user must build the program before
|
|
||||||
running the tests, but need not install the program; you should write
|
|
||||||
the self-tests so that they work when the program is built but not
|
|
||||||
installed.
|
|
||||||
@end table
|
|
||||||
|
|
||||||
The following targets are suggested as conventional names, for programs
|
|
||||||
in which they are useful.
|
|
||||||
|
|
||||||
@table @code
|
|
||||||
@item installcheck
|
|
||||||
Perform installation tests (if any). The user must build and install
|
|
||||||
the program before running the tests. You should not assume that
|
|
||||||
@file{$(bindir)} is in the search path.
|
|
||||||
|
|
||||||
@item installdirs
|
|
||||||
It's useful to add a target named @samp{installdirs} to create the
|
|
||||||
directories where files are installed, and their parent directories.
|
|
||||||
There is a script called @file{mkinstalldirs} which is convenient for
|
|
||||||
this; you can find it in the Texinfo package.
|
|
||||||
@c It's in /gd/gnu/lib/mkinstalldirs.
|
|
||||||
You can use a rule like this:
|
|
||||||
|
|
||||||
@comment This has been carefully formatted to look decent in the Make manual.
|
|
||||||
@comment Please be sure not to make it extend any further to the right.--roland
|
|
||||||
@smallexample
|
|
||||||
# Make sure all installation directories (e.g. $(bindir))
|
|
||||||
# actually exist by making them if necessary.
|
|
||||||
installdirs: mkinstalldirs
|
|
||||||
$(srcdir)/mkinstalldirs $(bindir) $(datadir) \
|
|
||||||
$(libdir) $(infodir) \
|
|
||||||
$(mandir)
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
or, if you wish to support @env{DESTDIR},
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
# Make sure all installation directories (e.g. $(bindir))
|
|
||||||
# actually exist by making them if necessary.
|
|
||||||
installdirs: mkinstalldirs
|
|
||||||
$(srcdir)/mkinstalldirs \
|
|
||||||
$(DESTDIR)$(bindir) $(DESTDIR)$(datadir) \
|
|
||||||
$(DESTDIR)$(libdir) $(DESTDIR)$(infodir) \
|
|
||||||
$(DESTDIR)$(mandir)
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
This rule should not modify the directories where compilation is done.
|
|
||||||
It should do nothing but create installation directories.
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@node Install Command Categories
|
|
||||||
@section Install Command Categories
|
|
||||||
|
|
||||||
@cindex pre-installation commands
|
|
||||||
@cindex post-installation commands
|
|
||||||
When writing the @code{install} target, you must classify all the
|
|
||||||
commands into three categories: normal ones, @dfn{pre-installation}
|
|
||||||
commands and @dfn{post-installation} commands.
|
|
||||||
|
|
||||||
Normal commands move files into their proper places, and set their
|
|
||||||
modes. They may not alter any files except the ones that come entirely
|
|
||||||
from the package they belong to.
|
|
||||||
|
|
||||||
Pre-installation and post-installation commands may alter other files;
|
|
||||||
in particular, they can edit global configuration files or data bases.
|
|
||||||
|
|
||||||
Pre-installation commands are typically executed before the normal
|
|
||||||
commands, and post-installation commands are typically run after the
|
|
||||||
normal commands.
|
|
||||||
|
|
||||||
The most common use for a post-installation command is to run
|
|
||||||
@code{install-info}. This cannot be done with a normal command, since
|
|
||||||
it alters a file (the Info directory) which does not come entirely and
|
|
||||||
solely from the package being installed. It is a post-installation
|
|
||||||
command because it needs to be done after the normal command which
|
|
||||||
installs the package's Info files.
|
|
||||||
|
|
||||||
Most programs don't need any pre-installation commands, but we have the
|
|
||||||
feature just in case it is needed.
|
|
||||||
|
|
||||||
To classify the commands in the @code{install} rule into these three
|
|
||||||
categories, insert @dfn{category lines} among them. A category line
|
|
||||||
specifies the category for the commands that follow.
|
|
||||||
|
|
||||||
A category line consists of a tab and a reference to a special Make
|
|
||||||
variable, plus an optional comment at the end. There are three
|
|
||||||
variables you can use, one for each category; the variable name
|
|
||||||
specifies the category. Category lines are no-ops in ordinary execution
|
|
||||||
because these three Make variables are normally undefined (and you
|
|
||||||
@emph{should not} define them in the makefile).
|
|
||||||
|
|
||||||
Here are the three possible category lines, each with a comment that
|
|
||||||
explains what it means:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
$(PRE_INSTALL) # @r{Pre-install commands follow.}
|
|
||||||
$(POST_INSTALL) # @r{Post-install commands follow.}
|
|
||||||
$(NORMAL_INSTALL) # @r{Normal commands follow.}
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
If you don't use a category line at the beginning of the @code{install}
|
|
||||||
rule, all the commands are classified as normal until the first category
|
|
||||||
line. If you don't use any category lines, all the commands are
|
|
||||||
classified as normal.
|
|
||||||
|
|
||||||
These are the category lines for @code{uninstall}:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
$(PRE_UNINSTALL) # @r{Pre-uninstall commands follow.}
|
|
||||||
$(POST_UNINSTALL) # @r{Post-uninstall commands follow.}
|
|
||||||
$(NORMAL_UNINSTALL) # @r{Normal commands follow.}
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
Typically, a pre-uninstall command would be used for deleting entries
|
|
||||||
from the Info directory.
|
|
||||||
|
|
||||||
If the @code{install} or @code{uninstall} target has any dependencies
|
|
||||||
which act as subroutines of installation, then you should start
|
|
||||||
@emph{each} dependency's commands with a category line, and start the
|
|
||||||
main target's commands with a category line also. This way, you can
|
|
||||||
ensure that each command is placed in the right category regardless of
|
|
||||||
which of the dependencies actually run.
|
|
||||||
|
|
||||||
Pre-installation and post-installation commands should not run any
|
|
||||||
programs except for these:
|
|
||||||
|
|
||||||
@example
|
|
||||||
[ basename bash cat chgrp chmod chown cmp cp dd diff echo
|
|
||||||
egrep expand expr false fgrep find getopt grep gunzip gzip
|
|
||||||
hostname install install-info kill ldconfig ln ls md5sum
|
|
||||||
mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee
|
|
||||||
test touch true uname xargs yes
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@cindex binary packages
|
|
||||||
The reason for distinguishing the commands in this way is for the sake
|
|
||||||
of making binary packages. Typically a binary package contains all the
|
|
||||||
executables and other files that need to be installed, and has its own
|
|
||||||
method of installing them---so it does not need to run the normal
|
|
||||||
installation commands. But installing the binary package does need to
|
|
||||||
execute the pre-installation and post-installation commands.
|
|
||||||
|
|
||||||
Programs to build binary packages work by extracting the
|
|
||||||
pre-installation and post-installation commands. Here is one way of
|
|
||||||
extracting the pre-installation commands:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
make -n install -o all \
|
|
||||||
PRE_INSTALL=pre-install \
|
|
||||||
POST_INSTALL=post-install \
|
|
||||||
NORMAL_INSTALL=normal-install \
|
|
||||||
| gawk -f pre-install.awk
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
where the file @file{pre-install.awk} could contain this:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
$0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ @{on = 0@}
|
|
||||||
on @{print $0@}
|
|
||||||
$0 ~ /^\t[ \t]*pre_install[ \t]*$/ @{on = 1@}
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
The resulting file of pre-installation commands is executed as a shell
|
|
||||||
script as part of installing the binary package.
|
|
3742
etc/standards.texi
3742
etc/standards.texi
File diff suppressed because it is too large
Load Diff
427
etc/texi2pod.pl
427
etc/texi2pod.pl
@ -1,427 +0,0 @@
|
|||||||
#! /usr/bin/perl -w
|
|
||||||
|
|
||||||
# Copyright (C) 1999, 2000, 2001, 200 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
# This does trivial (and I mean _trivial_) conversion of Texinfo
|
|
||||||
# markup to Perl POD format. It's intended to be used to extract
|
|
||||||
# something suitable for a manpage from a Texinfo document.
|
|
||||||
|
|
||||||
$output = 0;
|
|
||||||
$skipping = 0;
|
|
||||||
%sects = ();
|
|
||||||
$section = "";
|
|
||||||
@icstack = ();
|
|
||||||
@endwstack = ();
|
|
||||||
@skstack = ();
|
|
||||||
@instack = ();
|
|
||||||
$shift = "";
|
|
||||||
%defs = ();
|
|
||||||
$fnno = 1;
|
|
||||||
$inf = "";
|
|
||||||
$ibase = "";
|
|
||||||
|
|
||||||
while ($_ = shift) {
|
|
||||||
if (/^-D(.*)$/) {
|
|
||||||
if ($1 ne "") {
|
|
||||||
$flag = $1;
|
|
||||||
} else {
|
|
||||||
$flag = shift;
|
|
||||||
}
|
|
||||||
$value = "";
|
|
||||||
($flag, $value) = ($flag =~ /^([^=]+)(?:=(.+))?/);
|
|
||||||
die "no flag specified for -D\n"
|
|
||||||
unless $flag ne "";
|
|
||||||
die "flags may only contain letters, digits, hyphens, dashes and underscores\n"
|
|
||||||
unless $flag =~ /^[a-zA-Z0-9_-]+$/;
|
|
||||||
$defs{$flag} = $value;
|
|
||||||
} elsif (/^-/) {
|
|
||||||
usage();
|
|
||||||
} else {
|
|
||||||
$in = $_, next unless defined $in;
|
|
||||||
$out = $_, next unless defined $out;
|
|
||||||
usage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined $in) {
|
|
||||||
$inf = gensym();
|
|
||||||
open($inf, "<$in") or die "opening \"$in\": $!\n";
|
|
||||||
$ibase = $1 if $in =~ m|^(.+)/[^/]+$|;
|
|
||||||
} else {
|
|
||||||
$inf = \*STDIN;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined $out) {
|
|
||||||
open(STDOUT, ">$out") or die "opening \"$out\": $!\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
while(defined $inf) {
|
|
||||||
while(<$inf>) {
|
|
||||||
# Certain commands are discarded without further processing.
|
|
||||||
/^\@(?:
|
|
||||||
[a-z]+index # @*index: useful only in complete manual
|
|
||||||
|need # @need: useful only in printed manual
|
|
||||||
|(?:end\s+)?group # @group .. @end group: ditto
|
|
||||||
|page # @page: ditto
|
|
||||||
|node # @node: useful only in .info file
|
|
||||||
|(?:end\s+)?ifnottex # @ifnottex .. @end ifnottex: use contents
|
|
||||||
)\b/x and next;
|
|
||||||
|
|
||||||
chomp;
|
|
||||||
|
|
||||||
# Look for filename and title markers.
|
|
||||||
/^\@setfilename\s+([^.]+)/ and $fn = $1, next;
|
|
||||||
/^\@settitle\s+([^.]+)/ and $tl = postprocess($1), next;
|
|
||||||
|
|
||||||
# Identify a man title but keep only the one we are interested in.
|
|
||||||
/^\@c\s+man\s+title\s+([A-Za-z0-9-]+)\s+(.+)/ and do {
|
|
||||||
if (exists $defs{$1}) {
|
|
||||||
$fn = $1;
|
|
||||||
$tl = postprocess($2);
|
|
||||||
}
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Look for blocks surrounded by @c man begin SECTION ... @c man end.
|
|
||||||
# This really oughta be @ifman ... @end ifman and the like, but such
|
|
||||||
# would require rev'ing all other Texinfo translators.
|
|
||||||
/^\@c\s+man\s+begin\s+([A-Z]+)\s+([A-Za-z0-9-]+)/ and do {
|
|
||||||
$output = 1 if exists $defs{$2};
|
|
||||||
$sect = $1;
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
/^\@c\s+man\s+begin\s+([A-Z]+)/ and $sect = $1, $output = 1, next;
|
|
||||||
/^\@c\s+man\s+end/ and do {
|
|
||||||
$sects{$sect} = "" unless exists $sects{$sect};
|
|
||||||
$sects{$sect} .= postprocess($section);
|
|
||||||
$section = "";
|
|
||||||
$output = 0;
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
|
|
||||||
# handle variables
|
|
||||||
/^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and do {
|
|
||||||
$defs{$1} = $2;
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
/^\@clear\s+([a-zA-Z0-9_-]+)/ and do {
|
|
||||||
delete $defs{$1};
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
|
|
||||||
next unless $output;
|
|
||||||
|
|
||||||
# Discard comments. (Can't do it above, because then we'd never see
|
|
||||||
# @c man lines.)
|
|
||||||
/^\@c\b/ and next;
|
|
||||||
|
|
||||||
# End-block handler goes up here because it needs to operate even
|
|
||||||
# if we are skipping.
|
|
||||||
/^\@end\s+([a-z]+)/ and do {
|
|
||||||
# Ignore @end foo, where foo is not an operation which may
|
|
||||||
# cause us to skip, if we are presently skipping.
|
|
||||||
my $ended = $1;
|
|
||||||
next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex)$/;
|
|
||||||
|
|
||||||
die "\@end $ended without \@$ended at line $.\n" unless defined $endw;
|
|
||||||
die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw;
|
|
||||||
|
|
||||||
$endw = pop @endwstack;
|
|
||||||
|
|
||||||
if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex)$/) {
|
|
||||||
$skipping = pop @skstack;
|
|
||||||
next;
|
|
||||||
} elsif ($ended =~ /^(?:example|smallexample|display)$/) {
|
|
||||||
$shift = "";
|
|
||||||
$_ = ""; # need a paragraph break
|
|
||||||
} elsif ($ended =~ /^(?:itemize|enumerate|[fv]?table)$/) {
|
|
||||||
$_ = "\n=back\n";
|
|
||||||
$ic = pop @icstack;
|
|
||||||
} else {
|
|
||||||
die "unknown command \@end $ended at line $.\n";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
# We must handle commands which can cause skipping even while we
|
|
||||||
# are skipping, otherwise we will not process nested conditionals
|
|
||||||
# correctly.
|
|
||||||
/^\@ifset\s+([a-zA-Z0-9_-]+)/ and do {
|
|
||||||
push @endwstack, $endw;
|
|
||||||
push @skstack, $skipping;
|
|
||||||
$endw = "ifset";
|
|
||||||
$skipping = 1 unless exists $defs{$1};
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
|
|
||||||
/^\@ifclear\s+([a-zA-Z0-9_-]+)/ and do {
|
|
||||||
push @endwstack, $endw;
|
|
||||||
push @skstack, $skipping;
|
|
||||||
$endw = "ifclear";
|
|
||||||
$skipping = 1 if exists $defs{$1};
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
|
|
||||||
/^\@(ignore|menu|iftex)\b/ and do {
|
|
||||||
push @endwstack, $endw;
|
|
||||||
push @skstack, $skipping;
|
|
||||||
$endw = $1;
|
|
||||||
$skipping = 1;
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
|
|
||||||
next if $skipping;
|
|
||||||
|
|
||||||
# Character entities. First the ones that can be replaced by raw text
|
|
||||||
# or discarded outright:
|
|
||||||
s/\@copyright\{\}/(c)/g;
|
|
||||||
s/\@dots\{\}/.../g;
|
|
||||||
s/\@enddots\{\}/..../g;
|
|
||||||
s/\@([.!? ])/$1/g;
|
|
||||||
s/\@[:-]//g;
|
|
||||||
s/\@bullet(?:\{\})?/*/g;
|
|
||||||
s/\@TeX\{\}/TeX/g;
|
|
||||||
s/\@pounds\{\}/\#/g;
|
|
||||||
s/\@minus(?:\{\})?/-/g;
|
|
||||||
s/\\,/,/g;
|
|
||||||
|
|
||||||
# Now the ones that have to be replaced by special escapes
|
|
||||||
# (which will be turned back into text by unmunge())
|
|
||||||
s/&/&/g;
|
|
||||||
s/\@\{/{/g;
|
|
||||||
s/\@\}/}/g;
|
|
||||||
s/\@\@/&at;/g;
|
|
||||||
|
|
||||||
# Inside a verbatim block, handle @var specially.
|
|
||||||
if ($shift ne "") {
|
|
||||||
s/\@var\{([^\}]*)\}/<$1>/g;
|
|
||||||
}
|
|
||||||
|
|
||||||
# POD doesn't interpret E<> inside a verbatim block.
|
|
||||||
if ($shift eq "") {
|
|
||||||
s/</</g;
|
|
||||||
s/>/>/g;
|
|
||||||
} else {
|
|
||||||
s/</</g;
|
|
||||||
s/>/>/g;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Single line command handlers.
|
|
||||||
|
|
||||||
/^\@include\s+(.+)$/ and do {
|
|
||||||
push @instack, $inf;
|
|
||||||
$inf = gensym();
|
|
||||||
|
|
||||||
# Try cwd and $ibase.
|
|
||||||
open($inf, "<" . $1)
|
|
||||||
or open($inf, "<" . $ibase . "/" . $1)
|
|
||||||
or die "cannot open $1 or $ibase/$1: $!\n";
|
|
||||||
next;
|
|
||||||
};
|
|
||||||
|
|
||||||
/^\@(?:section|unnumbered|unnumberedsec|center)\s+(.+)$/
|
|
||||||
and $_ = "\n=head2 $1\n";
|
|
||||||
/^\@subsection\s+(.+)$/
|
|
||||||
and $_ = "\n=head3 $1\n";
|
|
||||||
|
|
||||||
# Block command handlers:
|
|
||||||
/^\@itemize\s+(\@[a-z]+|\*|-)/ and do {
|
|
||||||
push @endwstack, $endw;
|
|
||||||
push @icstack, $ic;
|
|
||||||
$ic = $1;
|
|
||||||
$_ = "\n=over 4\n";
|
|
||||||
$endw = "itemize";
|
|
||||||
};
|
|
||||||
|
|
||||||
/^\@enumerate(?:\s+([a-zA-Z0-9]+))?/ and do {
|
|
||||||
push @endwstack, $endw;
|
|
||||||
push @icstack, $ic;
|
|
||||||
if (defined $1) {
|
|
||||||
$ic = $1 . ".";
|
|
||||||
} else {
|
|
||||||
$ic = "1.";
|
|
||||||
}
|
|
||||||
$_ = "\n=over 4\n";
|
|
||||||
$endw = "enumerate";
|
|
||||||
};
|
|
||||||
|
|
||||||
/^\@([fv]?table)\s+(\@[a-z]+)/ and do {
|
|
||||||
push @endwstack, $endw;
|
|
||||||
push @icstack, $ic;
|
|
||||||
$endw = $1;
|
|
||||||
$ic = $2;
|
|
||||||
$ic =~ s/\@(?:samp|strong|key|gcctabopt|env)/B/;
|
|
||||||
$ic =~ s/\@(?:code|kbd)/C/;
|
|
||||||
$ic =~ s/\@(?:dfn|var|emph|cite|i)/I/;
|
|
||||||
$ic =~ s/\@(?:file)/F/;
|
|
||||||
$_ = "\n=over 4\n";
|
|
||||||
};
|
|
||||||
|
|
||||||
/^\@((?:small)?example|display)/ and do {
|
|
||||||
push @endwstack, $endw;
|
|
||||||
$endw = $1;
|
|
||||||
$shift = "\t";
|
|
||||||
$_ = ""; # need a paragraph break
|
|
||||||
};
|
|
||||||
|
|
||||||
/^\@itemx?\s*(.+)?$/ and do {
|
|
||||||
if (defined $1) {
|
|
||||||
# Entity escapes prevent munging by the <> processing below.
|
|
||||||
$_ = "\n=item $ic\<$1\>\n";
|
|
||||||
} else {
|
|
||||||
$_ = "\n=item $ic\n";
|
|
||||||
$ic =~ y/A-Ya-y/B-Zb-z/;
|
|
||||||
$ic =~ s/(\d+)/$1 + 1/eg;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$section .= $shift.$_."\n";
|
|
||||||
}
|
|
||||||
# End of current file.
|
|
||||||
close($inf);
|
|
||||||
$inf = pop @instack;
|
|
||||||
}
|
|
||||||
|
|
||||||
die "No filename or title\n" unless defined $fn && defined $tl;
|
|
||||||
|
|
||||||
$sects{NAME} = "$fn \- $tl\n";
|
|
||||||
$sects{FOOTNOTES} .= "=back\n" if exists $sects{FOOTNOTES};
|
|
||||||
|
|
||||||
for $sect (qw(NAME SYNOPSIS DESCRIPTION OPTIONS ENVIRONMENT FILES
|
|
||||||
BUGS NOTES FOOTNOTES SEEALSO AUTHOR COPYRIGHT)) {
|
|
||||||
if(exists $sects{$sect}) {
|
|
||||||
$head = $sect;
|
|
||||||
$head =~ s/SEEALSO/SEE ALSO/;
|
|
||||||
print "=head1 $head\n\n";
|
|
||||||
print scalar unmunge ($sects{$sect});
|
|
||||||
print "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub usage
|
|
||||||
{
|
|
||||||
die "usage: $0 [-D toggle...] [infile [outfile]]\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
sub postprocess
|
|
||||||
{
|
|
||||||
local $_ = $_[0];
|
|
||||||
|
|
||||||
# @value{foo} is replaced by whatever 'foo' is defined as.
|
|
||||||
while (m/(\@value\{([a-zA-Z0-9_-]+)\})/g) {
|
|
||||||
if (! exists $defs{$2}) {
|
|
||||||
print STDERR "Option $2 not defined\n";
|
|
||||||
s/\Q$1\E//;
|
|
||||||
} else {
|
|
||||||
$value = $defs{$2};
|
|
||||||
s/\Q$1\E/$value/;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Formatting commands.
|
|
||||||
# Temporary escape for @r.
|
|
||||||
s/\@r\{([^\}]*)\}/R<$1>/g;
|
|
||||||
s/\@(?:dfn|var|emph|cite|i)\{([^\}]*)\}/I<$1>/g;
|
|
||||||
s/\@(?:code|kbd)\{([^\}]*)\}/C<$1>/g;
|
|
||||||
s/\@(?:gccoptlist|samp|strong|key|option|env|command|b)\{([^\}]*)\}/B<$1>/g;
|
|
||||||
s/\@sc\{([^\}]*)\}/\U$1/g;
|
|
||||||
s/\@file\{([^\}]*)\}/F<$1>/g;
|
|
||||||
s/\@w\{([^\}]*)\}/S<$1>/g;
|
|
||||||
s/\@(?:dmn|math)\{([^\}]*)\}/$1/g;
|
|
||||||
|
|
||||||
# Cross references are thrown away, as are @noindent and @refill.
|
|
||||||
# (@noindent is impossible in .pod, and @refill is unnecessary.)
|
|
||||||
# @* is also impossible in .pod; we discard it and any newline that
|
|
||||||
# follows it. Similarly, our macro @gol must be discarded.
|
|
||||||
|
|
||||||
s/\(?\@xref\{(?:[^\}]*)\}(?:[^.<]|(?:<[^<>]*>))*\.\)?//g;
|
|
||||||
s/\s+\(\@pxref\{(?:[^\}]*)\}\)//g;
|
|
||||||
s/;\s+\@pxref\{(?:[^\}]*)\}//g;
|
|
||||||
s/\@noindent\s*//g;
|
|
||||||
s/\@refill//g;
|
|
||||||
s/\@gol//g;
|
|
||||||
s/\@\*\s*\n?//g;
|
|
||||||
|
|
||||||
# @uref can take one, two, or three arguments, with different
|
|
||||||
# semantics each time. @url and @email are just like @uref with
|
|
||||||
# one argument, for our purposes.
|
|
||||||
s/\@(?:uref|url|email)\{([^\},]*)\}/<B<$1>>/g;
|
|
||||||
s/\@uref\{([^\},]*),([^\},]*)\}/$2 (C<$1>)/g;
|
|
||||||
s/\@uref\{([^\},]*),([^\},]*),([^\},]*)\}/$3/g;
|
|
||||||
|
|
||||||
# Turn B<blah I<blah> blah> into B<blah> I<blah> B<blah> to
|
|
||||||
# match Texinfo semantics of @emph inside @samp. Also handle @r
|
|
||||||
# inside bold.
|
|
||||||
s/</</g;
|
|
||||||
s/>/>/g;
|
|
||||||
1 while s/B<((?:[^<>]|I<[^<>]*>)*)R<([^>]*)>/B<$1>${2}B</g;
|
|
||||||
1 while (s/B<([^<>]*)I<([^>]+)>/B<$1>I<$2>B</g);
|
|
||||||
1 while (s/I<([^<>]*)B<([^>]+)>/I<$1>B<$2>I</g);
|
|
||||||
s/[BI]<>//g;
|
|
||||||
s/([BI])<(\s+)([^>]+)>/$2$1<$3>/g;
|
|
||||||
s/([BI])<([^>]+?)(\s+)>/$1<$2>$3/g;
|
|
||||||
|
|
||||||
# Extract footnotes. This has to be done after all other
|
|
||||||
# processing because otherwise the regexp will choke on formatting
|
|
||||||
# inside @footnote.
|
|
||||||
while (/\@footnote/g) {
|
|
||||||
s/\@footnote\{([^\}]+)\}/[$fnno]/;
|
|
||||||
add_footnote($1, $fnno);
|
|
||||||
$fnno++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub unmunge
|
|
||||||
{
|
|
||||||
# Replace escaped symbols with their equivalents.
|
|
||||||
local $_ = $_[0];
|
|
||||||
|
|
||||||
s/</E<lt>/g;
|
|
||||||
s/>/E<gt>/g;
|
|
||||||
s/{/\{/g;
|
|
||||||
s/}/\}/g;
|
|
||||||
s/&at;/\@/g;
|
|
||||||
s/&/&/g;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub add_footnote
|
|
||||||
{
|
|
||||||
unless (exists $sects{FOOTNOTES}) {
|
|
||||||
$sects{FOOTNOTES} = "\n=over 4\n\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$sects{FOOTNOTES} .= "=item $fnno.\n\n"; $fnno++;
|
|
||||||
$sects{FOOTNOTES} .= $_[0];
|
|
||||||
$sects{FOOTNOTES} .= "\n\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
# stolen from Symbol.pm
|
|
||||||
{
|
|
||||||
my $genseq = 0;
|
|
||||||
sub gensym
|
|
||||||
{
|
|
||||||
my $name = "GEN" . $genseq++;
|
|
||||||
my $ref = \*{$name};
|
|
||||||
delete $::{$name};
|
|
||||||
return $ref;
|
|
||||||
}
|
|
||||||
}
|
|
344
gettext.m4
344
gettext.m4
@ -1,344 +0,0 @@
|
|||||||
# This file is derived from `gettext.m4'. The difference is that the
|
|
||||||
# included macros assume Cygnus-style source and build trees.
|
|
||||||
|
|
||||||
# Macro to add for using GNU gettext.
|
|
||||||
# Ulrich Drepper <drepper@cygnus.com>, 1995.
|
|
||||||
#
|
|
||||||
# This file file be copied and used freely without restrictions. It can
|
|
||||||
# be used in projects which are not available under the GNU Public License
|
|
||||||
# but which still want to provide support for the GNU gettext functionality.
|
|
||||||
# Please note that the actual code is *not* freely available.
|
|
||||||
|
|
||||||
# serial 3
|
|
||||||
|
|
||||||
AC_DEFUN(CY_WITH_NLS,
|
|
||||||
[AC_MSG_CHECKING([whether NLS is requested])
|
|
||||||
dnl Default is enabled NLS
|
|
||||||
AC_ARG_ENABLE(nls,
|
|
||||||
[ --disable-nls do not use Native Language Support],
|
|
||||||
USE_NLS=$enableval, USE_NLS=yes)
|
|
||||||
AC_MSG_RESULT($USE_NLS)
|
|
||||||
AC_SUBST(USE_NLS)
|
|
||||||
|
|
||||||
USE_INCLUDED_LIBINTL=no
|
|
||||||
|
|
||||||
dnl If we use NLS figure out what method
|
|
||||||
if test "$USE_NLS" = "yes"; then
|
|
||||||
AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if NLS is requested])
|
|
||||||
AC_MSG_CHECKING([whether included gettext is requested])
|
|
||||||
AC_ARG_WITH(included-gettext,
|
|
||||||
[ --with-included-gettext use the GNU gettext library included here],
|
|
||||||
nls_cv_force_use_gnu_gettext=$withval,
|
|
||||||
nls_cv_force_use_gnu_gettext=no)
|
|
||||||
AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
|
|
||||||
|
|
||||||
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
|
|
||||||
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
|
|
||||||
dnl User does not insist on using GNU NLS library. Figure out what
|
|
||||||
dnl to use. If gettext or catgets are available (in this order) we
|
|
||||||
dnl use this. Else we have to fall back to GNU NLS library.
|
|
||||||
dnl catgets is only used if permitted by option --with-catgets.
|
|
||||||
nls_cv_header_intl=
|
|
||||||
nls_cv_header_libgt=
|
|
||||||
CATOBJEXT=NONE
|
|
||||||
|
|
||||||
AC_CHECK_HEADER(libintl.h,
|
|
||||||
[AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
|
|
||||||
[AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
|
|
||||||
gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
|
|
||||||
|
|
||||||
if test "$gt_cv_func_gettext_libc" != "yes"; then
|
|
||||||
AC_CHECK_LIB(intl, bindtextdomain,
|
|
||||||
[AC_CACHE_CHECK([for gettext in libintl],
|
|
||||||
gt_cv_func_gettext_libintl,
|
|
||||||
[AC_TRY_LINK([], [return (int) gettext ("")],
|
|
||||||
gt_cv_func_gettext_libintl=yes,
|
|
||||||
gt_cv_func_gettext_libintl=no)])])
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$gt_cv_func_gettext_libc" = "yes" \
|
|
||||||
|| test "$gt_cv_func_gettext_libintl" = "yes"; then
|
|
||||||
AC_DEFINE(HAVE_GETTEXT, 1,
|
|
||||||
[Define as 1 if you have gettext and don't want to use GNU gettext.])
|
|
||||||
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
|
||||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
|
|
||||||
if test "$MSGFMT" != "no"; then
|
|
||||||
AC_CHECK_FUNCS(dcgettext)
|
|
||||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
|
||||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
|
||||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
|
||||||
AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
|
|
||||||
return _nl_msg_cat_cntr],
|
|
||||||
[CATOBJEXT=.gmo
|
|
||||||
DATADIRNAME=share],
|
|
||||||
[CATOBJEXT=.mo
|
|
||||||
DATADIRNAME=lib])
|
|
||||||
INSTOBJEXT=.mo
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl In the standard gettext, we would now check for catgets.
|
|
||||||
dnl However, we never want to use catgets for our releases.
|
|
||||||
|
|
||||||
if test "$CATOBJEXT" = "NONE"; then
|
|
||||||
dnl Neither gettext nor catgets in included in the C library.
|
|
||||||
dnl Fall back on GNU gettext library.
|
|
||||||
nls_cv_use_gnu_gettext=yes
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$nls_cv_use_gnu_gettext" = "yes"; then
|
|
||||||
dnl Mark actions used to generate GNU NLS library.
|
|
||||||
INTLOBJS="\$(GETTOBJS)"
|
|
||||||
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
|
||||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
|
|
||||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
|
||||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
|
||||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
|
||||||
AC_SUBST(MSGFMT)
|
|
||||||
USE_INCLUDED_LIBINTL=yes
|
|
||||||
CATOBJEXT=.gmo
|
|
||||||
INSTOBJEXT=.mo
|
|
||||||
DATADIRNAME=share
|
|
||||||
INTLDEPS='$(top_builddir)/../intl/libintl.a'
|
|
||||||
INTLLIBS=$INTLDEPS
|
|
||||||
LIBS=`echo $LIBS | sed -e 's/-lintl//'`
|
|
||||||
nls_cv_header_intl=libintl.h
|
|
||||||
nls_cv_header_libgt=libgettext.h
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Test whether we really found GNU xgettext.
|
|
||||||
if test "$XGETTEXT" != ":"; then
|
|
||||||
dnl If it is no GNU xgettext we define it as : so that the
|
|
||||||
dnl Makefiles still can work.
|
|
||||||
if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
|
|
||||||
: ;
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(
|
|
||||||
[found xgettext programs is not GNU xgettext; ignore it])
|
|
||||||
XGETTEXT=":"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# We need to process the po/ directory.
|
|
||||||
POSUB=po
|
|
||||||
else
|
|
||||||
DATADIRNAME=share
|
|
||||||
nls_cv_header_intl=libintl.h
|
|
||||||
nls_cv_header_libgt=libgettext.h
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If this is used in GNU gettext we have to set USE_NLS to `yes'
|
|
||||||
# because some of the sources are only built for this goal.
|
|
||||||
if test "$PACKAGE" = gettext; then
|
|
||||||
USE_NLS=yes
|
|
||||||
USE_INCLUDED_LIBINTL=yes
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl These rules are solely for the distribution goal. While doing this
|
|
||||||
dnl we only have to keep exactly one list of the available catalogs
|
|
||||||
dnl in configure.in.
|
|
||||||
for lang in $ALL_LINGUAS; do
|
|
||||||
GMOFILES="$GMOFILES $lang.gmo"
|
|
||||||
POFILES="$POFILES $lang.po"
|
|
||||||
done
|
|
||||||
|
|
||||||
dnl Make all variables we use known to autoconf.
|
|
||||||
AC_SUBST(USE_INCLUDED_LIBINTL)
|
|
||||||
AC_SUBST(CATALOGS)
|
|
||||||
AC_SUBST(CATOBJEXT)
|
|
||||||
AC_SUBST(DATADIRNAME)
|
|
||||||
AC_SUBST(GMOFILES)
|
|
||||||
AC_SUBST(INSTOBJEXT)
|
|
||||||
AC_SUBST(INTLDEPS)
|
|
||||||
AC_SUBST(INTLLIBS)
|
|
||||||
AC_SUBST(INTLOBJS)
|
|
||||||
AC_SUBST(POFILES)
|
|
||||||
AC_SUBST(POSUB)
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN(CY_GNU_GETTEXT,
|
|
||||||
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
|
||||||
AC_REQUIRE([AC_PROG_CC])dnl
|
|
||||||
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
|
||||||
AC_REQUIRE([AC_ISC_POSIX])dnl
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])dnl
|
|
||||||
AC_REQUIRE([AC_C_CONST])dnl
|
|
||||||
AC_REQUIRE([AC_C_INLINE])dnl
|
|
||||||
AC_REQUIRE([AC_TYPE_OFF_T])dnl
|
|
||||||
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
|
|
||||||
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
|
|
||||||
AC_REQUIRE([AC_FUNC_MMAP])dnl
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
|
|
||||||
unistd.h values.h sys/param.h])
|
|
||||||
AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
|
|
||||||
__argz_count __argz_stringify __argz_next])
|
|
||||||
|
|
||||||
if test "${ac_cv_func_stpcpy+set}" != "set"; then
|
|
||||||
AC_CHECK_FUNCS(stpcpy)
|
|
||||||
fi
|
|
||||||
if test "${ac_cv_func_stpcpy}" = "yes"; then
|
|
||||||
AC_DEFINE(HAVE_STPCPY, 1, [Define if you have the stpcpy function])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_LC_MESSAGES
|
|
||||||
CY_WITH_NLS
|
|
||||||
|
|
||||||
if test "x$CATOBJEXT" != "x"; then
|
|
||||||
if test "x$ALL_LINGUAS" = "x"; then
|
|
||||||
LINGUAS=
|
|
||||||
else
|
|
||||||
AC_MSG_CHECKING(for catalogs to be installed)
|
|
||||||
NEW_LINGUAS=
|
|
||||||
for lang in ${LINGUAS=$ALL_LINGUAS}; do
|
|
||||||
case "$ALL_LINGUAS" in
|
|
||||||
*$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
LINGUAS=$NEW_LINGUAS
|
|
||||||
AC_MSG_RESULT($LINGUAS)
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Construct list of names of catalog files to be constructed.
|
|
||||||
if test -n "$LINGUAS"; then
|
|
||||||
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl The reference to <locale.h> in the installed <libintl.h> file
|
|
||||||
dnl must be resolved because we cannot expect the users of this
|
|
||||||
dnl to define HAVE_LOCALE_H.
|
|
||||||
if test $ac_cv_header_locale_h = yes; then
|
|
||||||
INCLUDE_LOCALE_H="#include <locale.h>"
|
|
||||||
else
|
|
||||||
INCLUDE_LOCALE_H="\
|
|
||||||
/* The system does not provide the header <locale.h>. Take care yourself. */"
|
|
||||||
fi
|
|
||||||
AC_SUBST(INCLUDE_LOCALE_H)
|
|
||||||
|
|
||||||
dnl Determine which catalog format we have (if any is needed)
|
|
||||||
dnl For now we know about two different formats:
|
|
||||||
dnl Linux libc-5 and the normal X/Open format
|
|
||||||
if test -f $srcdir/po2tbl.sed.in; then
|
|
||||||
if test "$CATOBJEXT" = ".cat"; then
|
|
||||||
AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
|
|
||||||
|
|
||||||
dnl Transform the SED scripts while copying because some dumb SEDs
|
|
||||||
dnl cannot handle comments.
|
|
||||||
sed -e '/^#/d' $srcdir/$msgformat-msg.sed > po2msg.sed
|
|
||||||
fi
|
|
||||||
dnl po2tbl.sed is always needed.
|
|
||||||
sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
|
|
||||||
$srcdir/po2tbl.sed.in > po2tbl.sed
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl In the intl/Makefile.in we have a special dependency which makes
|
|
||||||
dnl only sense for gettext. We comment this out for non-gettext
|
|
||||||
dnl packages.
|
|
||||||
if test "$PACKAGE" = "gettext"; then
|
|
||||||
GT_NO="#NO#"
|
|
||||||
GT_YES=
|
|
||||||
else
|
|
||||||
GT_NO=
|
|
||||||
GT_YES="#YES#"
|
|
||||||
fi
|
|
||||||
AC_SUBST(GT_NO)
|
|
||||||
AC_SUBST(GT_YES)
|
|
||||||
|
|
||||||
MKINSTALLDIRS="\$(srcdir)/../../mkinstalldirs"
|
|
||||||
AC_SUBST(MKINSTALLDIRS)
|
|
||||||
|
|
||||||
dnl *** For now the libtool support in intl/Makefile is not for real.
|
|
||||||
l=
|
|
||||||
AC_SUBST(l)
|
|
||||||
|
|
||||||
dnl Generate list of files to be processed by xgettext which will
|
|
||||||
dnl be included in po/Makefile. But only do this if the po directory
|
|
||||||
dnl exists in srcdir and contains POTFILES.in.
|
|
||||||
if test -f $srcdir/po/POTFILES.in; then
|
|
||||||
test -d po || mkdir po
|
|
||||||
if test "x$srcdir" != "x."; then
|
|
||||||
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
|
|
||||||
posrcprefix="$srcdir/"
|
|
||||||
else
|
|
||||||
posrcprefix="../$srcdir/"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
posrcprefix="../"
|
|
||||||
fi
|
|
||||||
rm -f po/POTFILES
|
|
||||||
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
|
|
||||||
< $srcdir/po/POTFILES.in > po/POTFILES
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Search path for a program which passes the given test.
|
|
||||||
# Ulrich Drepper <drepper@cygnus.com>, 1996.
|
|
||||||
#
|
|
||||||
# This file file be copied and used freely without restrictions. It can
|
|
||||||
# be used in projects which are not available under the GNU Public License
|
|
||||||
# but which still want to provide support for the GNU gettext functionality.
|
|
||||||
# Please note that the actual code is *not* freely available.
|
|
||||||
|
|
||||||
# serial 1
|
|
||||||
|
|
||||||
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
|
|
||||||
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
|
|
||||||
AC_DEFUN(AM_PATH_PROG_WITH_TEST,
|
|
||||||
[# Extract the first word of "$2", so it can be a program name with args.
|
|
||||||
set dummy $2; ac_word=[$]2
|
|
||||||
AC_MSG_CHECKING([for $ac_word])
|
|
||||||
AC_CACHE_VAL(ac_cv_path_$1,
|
|
||||||
[case "[$]$1" in
|
|
||||||
/*)
|
|
||||||
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
|
||||||
for ac_dir in ifelse([$5], , $PATH, [$5]); do
|
|
||||||
test -z "$ac_dir" && ac_dir=.
|
|
||||||
if test -f $ac_dir/$ac_word; then
|
|
||||||
if [$3]; then
|
|
||||||
ac_cv_path_$1="$ac_dir/$ac_word"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
IFS="$ac_save_ifs"
|
|
||||||
dnl If no 4th arg is given, leave the cache variable unset,
|
|
||||||
dnl so AC_PATH_PROGS will keep looking.
|
|
||||||
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
|
|
||||||
])dnl
|
|
||||||
;;
|
|
||||||
esac])dnl
|
|
||||||
$1="$ac_cv_path_$1"
|
|
||||||
if test -n "[$]$1"; then
|
|
||||||
AC_MSG_RESULT([$]$1)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
AC_SUBST($1)dnl
|
|
||||||
])
|
|
||||||
|
|
||||||
# Check whether LC_MESSAGES is available in <locale.h>.
|
|
||||||
# Ulrich Drepper <drepper@cygnus.com>, 1995.
|
|
||||||
#
|
|
||||||
# This file file be copied and used freely without restrictions. It can
|
|
||||||
# be used in projects which are not available under the GNU Public License
|
|
||||||
# but which still want to provide support for the GNU gettext functionality.
|
|
||||||
# Please note that the actual code is *not* freely available.
|
|
||||||
|
|
||||||
# serial 1
|
|
||||||
|
|
||||||
AC_DEFUN(AM_LC_MESSAGES,
|
|
||||||
[if test $ac_cv_header_locale_h = yes; then
|
|
||||||
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
|
|
||||||
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
|
|
||||||
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
|
|
||||||
if test $am_cv_val_LC_MESSAGES = yes; then
|
|
||||||
AC_DEFINE(HAVE_LC_MESSAGES, 1,
|
|
||||||
[Define if your locale.h file contains LC_MESSAGES.])
|
|
||||||
fi
|
|
||||||
fi])
|
|
340
include/COPYING
340
include/COPYING
@ -1,340 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
License is intended to guarantee your freedom to share and change free
|
|
||||||
software--to make sure the software is free for all its users. This
|
|
||||||
General Public License applies to most of the Free Software
|
|
||||||
Foundation's software and to any other program whose authors commit to
|
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
this service if you wish), that you receive source code or can get it
|
|
||||||
if you want it, that you can change the software or use pieces of it
|
|
||||||
in new free programs; and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
|
||||||
These restrictions translate to certain responsibilities for you if you
|
|
||||||
distribute copies of the software, or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
|
||||||
you have. You must make sure that they, too, receive or can get the
|
|
||||||
source code. And you must show them these terms so they know their
|
|
||||||
rights.
|
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
|
||||||
distribute and/or modify the software.
|
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
|
||||||
that everyone understands that there is no warranty for this free
|
|
||||||
software. If the software is modified by someone else and passed on, we
|
|
||||||
want its recipients to know that what they have is not the original, so
|
|
||||||
that any problems introduced by others will not reflect on the original
|
|
||||||
authors' reputations.
|
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
|
||||||
program will individually obtain patent licenses, in effect making the
|
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
|
||||||
under the terms of this General Public License. The "Program", below,
|
|
||||||
refers to any such program or work, and a "work based on the Program"
|
|
||||||
means either the Program or any derivative work under copyright law:
|
|
||||||
that is to say, a work containing the Program or a portion of it,
|
|
||||||
either verbatim or with modifications and/or translated into another
|
|
||||||
language. (Hereinafter, translation is included without limitation in
|
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running the Program is not restricted, and the output from the Program
|
|
||||||
is covered only if its contents constitute a work based on the
|
|
||||||
Program (independent of having been made by running the Program).
|
|
||||||
Whether that is true depends on what the Program does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
|
||||||
source code as you receive it, in any medium, provided that you
|
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
|
||||||
notices that refer to this License and to the absence of any warranty;
|
|
||||||
and give any other recipients of the Program a copy of this License
|
|
||||||
along with the Program.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
|
||||||
of it, thus forming a work based on the Program, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
|
||||||
whole or in part contains or is derived from the Program or any
|
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
|
||||||
parties under the terms of this License.
|
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
|
||||||
when run, you must cause it, when started running for such
|
|
||||||
interactive use in the most ordinary way, to print or display an
|
|
||||||
announcement including an appropriate copyright notice and a
|
|
||||||
notice that there is no warranty (or else, saying that you provide
|
|
||||||
a warranty) and that users may redistribute the program under
|
|
||||||
these conditions, and telling the user how to view a copy of this
|
|
||||||
License. (Exception: if the Program itself is interactive but
|
|
||||||
does not normally print such an announcement, your work based on
|
|
||||||
the Program is not required to print an announcement.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Program,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Program.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
|
||||||
under Section 2) in object code or executable form under the terms of
|
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
|
||||||
source code, which must be distributed under the terms of Sections
|
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
|
||||||
years, to give any third party, for a charge no more than your
|
|
||||||
cost of physically performing source distribution, a complete
|
|
||||||
machine-readable copy of the corresponding source code, to be
|
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
|
||||||
customarily used for software interchange; or,
|
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
|
||||||
to distribute corresponding source code. (This alternative is
|
|
||||||
allowed only for noncommercial distribution and only if you
|
|
||||||
received the program in object code or executable form with such
|
|
||||||
an offer, in accord with Subsection b above.)
|
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For an executable work, complete source
|
|
||||||
code means all the source code for all modules it contains, plus any
|
|
||||||
associated interface definition files, plus the scripts used to
|
|
||||||
control compilation and installation of the executable. However, as a
|
|
||||||
special exception, the source code distributed need not include
|
|
||||||
anything that is normally distributed (in either source or binary
|
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
|
||||||
operating system on which the executable runs, unless that component
|
|
||||||
itself accompanies the executable.
|
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
|
||||||
access to copy from a designated place, then offering equivalent
|
|
||||||
access to copy the source code from the same place counts as
|
|
||||||
distribution of the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
|
||||||
except as expressly provided under this License. Any attempt
|
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
|
||||||
void, and will automatically terminate your rights under this License.
|
|
||||||
However, parties who have received copies, or rights, from you under
|
|
||||||
this License will not have their licenses terminated so long as such
|
|
||||||
parties remain in full compliance.
|
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Program or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Program (or any work based on the
|
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Program or works based on it.
|
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
|
||||||
Program), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
|
||||||
these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties to
|
|
||||||
this License.
|
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Program at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Program by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Program.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
|
||||||
any particular circumstance, the balance of the section is intended to
|
|
||||||
apply and the section as a whole is intended to apply in other
|
|
||||||
circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system, which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Program under this License
|
|
||||||
may add an explicit geographical distribution limitation excluding
|
|
||||||
those countries, so that distribution is permitted only in or among
|
|
||||||
countries not thus excluded. In such case, this License incorporates
|
|
||||||
the limitation as if written in the body of this License.
|
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
|
||||||
specifies a version number of this License which applies to it and "any
|
|
||||||
later version", you have the option of following the terms and conditions
|
|
||||||
either of that version or of any later version published by the Free
|
|
||||||
Software Foundation. If the Program does not specify a version number of
|
|
||||||
this License, you may choose any version ever published by the Free Software
|
|
||||||
Foundation.
|
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
|
||||||
programs whose distribution conditions are different, write to the author
|
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
|
||||||
of preserving the free status of all derivatives of our free software and
|
|
||||||
of promoting the sharing and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|
||||||
REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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
|
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
|
||||||
when it starts in an interactive mode:
|
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, the commands you use may
|
|
||||||
be called something other than `show w' and `show c'; they could even be
|
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
|
||||||
consider it more useful to permit linking proprietary applications with the
|
|
||||||
library. If this is what you want to do, use the GNU Library General
|
|
||||||
Public License instead of this License.
|
|
2536
include/ChangeLog
2536
include/ChangeLog
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
|||||||
See ../binutils/MAINTAINERS
|
|
@ -1,24 +0,0 @@
|
|||||||
#include "config.h"
|
|
||||||
|
|
||||||
#if defined(__GNUC__) && !defined(C_ALLOCA)
|
|
||||||
# ifndef alloca
|
|
||||||
# define alloca __builtin_alloca
|
|
||||||
# endif
|
|
||||||
#else /* ! defined (__GNUC__) */
|
|
||||||
# ifdef _AIX
|
|
||||||
#pragma alloca
|
|
||||||
# else
|
|
||||||
# if defined(HAVE_ALLOCA_H) && !defined(C_ALLOCA)
|
|
||||||
# include <alloca.h>
|
|
||||||
# else /* ! defined (HAVE_ALLOCA_H) */
|
|
||||||
# ifdef __STDC__
|
|
||||||
extern PTR alloca (size_t);
|
|
||||||
# else /* ! defined (__STDC__) */
|
|
||||||
extern PTR alloca ();
|
|
||||||
# endif /* ! defined (__STDC__) */
|
|
||||||
# endif /* ! defined (HAVE_ALLOCA_H) */
|
|
||||||
# ifdef _WIN32
|
|
||||||
# include <malloc.h>
|
|
||||||
# endif
|
|
||||||
# endif /* ! defined (_AIX) */
|
|
||||||
#endif /* ! defined (__GNUC__) */
|
|
@ -1,326 +0,0 @@
|
|||||||
/* ANSI and traditional C compatability macros
|
|
||||||
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* ANSI and traditional C compatibility macros
|
|
||||||
|
|
||||||
ANSI C is assumed if __STDC__ is #defined.
|
|
||||||
|
|
||||||
Macro ANSI C definition Traditional C definition
|
|
||||||
----- ---- - ---------- ----------- - ----------
|
|
||||||
ANSI_PROTOTYPES 1 not defined
|
|
||||||
PTR `void *' `char *'
|
|
||||||
PTRCONST `void *const' `char *'
|
|
||||||
LONG_DOUBLE `long double' `double'
|
|
||||||
const not defined `'
|
|
||||||
volatile not defined `'
|
|
||||||
signed not defined `'
|
|
||||||
VA_START(ap, var) va_start(ap, var) va_start(ap)
|
|
||||||
|
|
||||||
Note that it is safe to write "void foo();" indicating a function
|
|
||||||
with no return value, in all K+R compilers we have been able to test.
|
|
||||||
|
|
||||||
For declaring functions with prototypes, we also provide these:
|
|
||||||
|
|
||||||
PARAMS ((prototype))
|
|
||||||
-- for functions which take a fixed number of arguments. Use this
|
|
||||||
when declaring the function. When defining the function, write a
|
|
||||||
K+R style argument list. For example:
|
|
||||||
|
|
||||||
char *strcpy PARAMS ((char *dest, char *source));
|
|
||||||
...
|
|
||||||
char *
|
|
||||||
strcpy (dest, source)
|
|
||||||
char *dest;
|
|
||||||
char *source;
|
|
||||||
{ ... }
|
|
||||||
|
|
||||||
|
|
||||||
VPARAMS ((prototype, ...))
|
|
||||||
-- for functions which take a variable number of arguments. Use
|
|
||||||
PARAMS to declare the function, VPARAMS to define it. For example:
|
|
||||||
|
|
||||||
int printf PARAMS ((const char *format, ...));
|
|
||||||
...
|
|
||||||
int
|
|
||||||
printf VPARAMS ((const char *format, ...))
|
|
||||||
{
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
For writing functions which take variable numbers of arguments, we
|
|
||||||
also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These
|
|
||||||
hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
|
|
||||||
thoroughly than the simple VA_START() macro mentioned above.
|
|
||||||
|
|
||||||
VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
|
|
||||||
Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
|
|
||||||
corresponding to the list of fixed arguments. Then use va_arg
|
|
||||||
normally to get the variable arguments, or pass your va_list object
|
|
||||||
around. You do not declare the va_list yourself; VA_OPEN does it
|
|
||||||
for you.
|
|
||||||
|
|
||||||
Here is a complete example:
|
|
||||||
|
|
||||||
int
|
|
||||||
printf VPARAMS ((const char *format, ...))
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
VA_OPEN (ap, format);
|
|
||||||
VA_FIXEDARG (ap, const char *, format);
|
|
||||||
|
|
||||||
result = vfprintf (stdout, format, ap);
|
|
||||||
VA_CLOSE (ap);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
You can declare variables either before or after the VA_OPEN,
|
|
||||||
VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning
|
|
||||||
and end of a block. They must appear at the same nesting level,
|
|
||||||
and any variables declared after VA_OPEN go out of scope at
|
|
||||||
VA_CLOSE. Unfortunately, with a K+R compiler, that includes the
|
|
||||||
argument list. You can have multiple instances of VA_OPEN/VA_CLOSE
|
|
||||||
pairs in a single function in case you need to traverse the
|
|
||||||
argument list more than once.
|
|
||||||
|
|
||||||
For ease of writing code which uses GCC extensions but needs to be
|
|
||||||
portable to other compilers, we provide the GCC_VERSION macro that
|
|
||||||
simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
|
|
||||||
wrappers around __attribute__. Also, __extension__ will be #defined
|
|
||||||
to nothing if it doesn't work. See below.
|
|
||||||
|
|
||||||
This header also defines a lot of obsolete macros:
|
|
||||||
CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
|
|
||||||
AND, DOTS, NOARGS. Don't use them. */
|
|
||||||
|
|
||||||
#ifndef _ANSIDECL_H
|
|
||||||
#define _ANSIDECL_H 1
|
|
||||||
|
|
||||||
/* Every source file includes this file,
|
|
||||||
so they will all get the switch for lint. */
|
|
||||||
/* LINTLIBRARY */
|
|
||||||
|
|
||||||
/* Using MACRO(x,y) in cpp #if conditionals does not work with some
|
|
||||||
older preprocessors. Thus we can't define something like this:
|
|
||||||
|
|
||||||
#define HAVE_GCC_VERSION(MAJOR, MINOR) \
|
|
||||||
(__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
|
|
||||||
|
|
||||||
and then test "#if HAVE_GCC_VERSION(2,7)".
|
|
||||||
|
|
||||||
So instead we use the macro below and test it against specific values. */
|
|
||||||
|
|
||||||
/* This macro simplifies testing whether we are using gcc, and if it
|
|
||||||
is of a particular minimum version. (Both major & minor numbers are
|
|
||||||
significant.) This macro will evaluate to 0 if we are not using
|
|
||||||
gcc at all. */
|
|
||||||
#ifndef GCC_VERSION
|
|
||||||
#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
|
|
||||||
#endif /* GCC_VERSION */
|
|
||||||
|
|
||||||
#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) || (defined(__alpha) && defined(__cplusplus))
|
|
||||||
/* All known AIX compilers implement these things (but don't always
|
|
||||||
define __STDC__). The RISC/OS MIPS compiler defines these things
|
|
||||||
in SVR4 mode, but does not define __STDC__. */
|
|
||||||
/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
|
|
||||||
C++ compilers, does not define __STDC__, though it acts as if this
|
|
||||||
was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
|
|
||||||
|
|
||||||
#define ANSI_PROTOTYPES 1
|
|
||||||
#define PTR void *
|
|
||||||
#define PTRCONST void *const
|
|
||||||
#define LONG_DOUBLE long double
|
|
||||||
|
|
||||||
#define PARAMS(ARGS) ARGS
|
|
||||||
#define VPARAMS(ARGS) ARGS
|
|
||||||
#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR)
|
|
||||||
|
|
||||||
/* variadic function helper macros */
|
|
||||||
/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
|
|
||||||
use without inhibiting further decls and without declaring an
|
|
||||||
actual variable. */
|
|
||||||
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP, VAR); { struct Qdmy
|
|
||||||
#define VA_CLOSE(AP) } va_end(AP); }
|
|
||||||
#define VA_FIXEDARG(AP, T, N) struct Qdmy
|
|
||||||
|
|
||||||
#undef const
|
|
||||||
#undef volatile
|
|
||||||
#undef signed
|
|
||||||
|
|
||||||
/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
|
|
||||||
it too, but it's not in C89. */
|
|
||||||
#undef inline
|
|
||||||
#if __STDC_VERSION__ > 199901L
|
|
||||||
/* it's a keyword */
|
|
||||||
#else
|
|
||||||
# if GCC_VERSION >= 2007
|
|
||||||
# define inline __inline__ /* __inline__ prevents -pedantic warnings */
|
|
||||||
# else
|
|
||||||
# define inline /* nothing */
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* These are obsolete. Do not use. */
|
|
||||||
#ifndef IN_GCC
|
|
||||||
#define CONST const
|
|
||||||
#define VOLATILE volatile
|
|
||||||
#define SIGNED signed
|
|
||||||
|
|
||||||
#define PROTO(type, name, arglist) type name arglist
|
|
||||||
#define EXFUN(name, proto) name proto
|
|
||||||
#define DEFUN(name, arglist, args) name(args)
|
|
||||||
#define DEFUN_VOID(name) name(void)
|
|
||||||
#define AND ,
|
|
||||||
#define DOTS , ...
|
|
||||||
#define NOARGS void
|
|
||||||
#endif /* ! IN_GCC */
|
|
||||||
|
|
||||||
#else /* Not ANSI C. */
|
|
||||||
|
|
||||||
#undef ANSI_PROTOTYPES
|
|
||||||
#define PTR char *
|
|
||||||
#define PTRCONST PTR
|
|
||||||
#define LONG_DOUBLE double
|
|
||||||
|
|
||||||
#define PARAMS(args) ()
|
|
||||||
#define VPARAMS(args) (va_alist) va_dcl
|
|
||||||
#define VA_START(va_list, var) va_start(va_list)
|
|
||||||
|
|
||||||
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP); { struct Qdmy
|
|
||||||
#define VA_CLOSE(AP) } va_end(AP); }
|
|
||||||
#define VA_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE)
|
|
||||||
|
|
||||||
/* some systems define these in header files for non-ansi mode */
|
|
||||||
#undef const
|
|
||||||
#undef volatile
|
|
||||||
#undef signed
|
|
||||||
#undef inline
|
|
||||||
#define const
|
|
||||||
#define volatile
|
|
||||||
#define signed
|
|
||||||
#define inline
|
|
||||||
|
|
||||||
#ifndef IN_GCC
|
|
||||||
#define CONST
|
|
||||||
#define VOLATILE
|
|
||||||
#define SIGNED
|
|
||||||
|
|
||||||
#define PROTO(type, name, arglist) type name ()
|
|
||||||
#define EXFUN(name, proto) name()
|
|
||||||
#define DEFUN(name, arglist, args) name arglist args;
|
|
||||||
#define DEFUN_VOID(name) name()
|
|
||||||
#define AND ;
|
|
||||||
#define DOTS
|
|
||||||
#define NOARGS
|
|
||||||
#endif /* ! IN_GCC */
|
|
||||||
|
|
||||||
#endif /* ANSI C. */
|
|
||||||
|
|
||||||
/* Define macros for some gcc attributes. This permits us to use the
|
|
||||||
macros freely, and know that they will come into play for the
|
|
||||||
version of gcc in which they are supported. */
|
|
||||||
|
|
||||||
#if (GCC_VERSION < 2007)
|
|
||||||
# define __attribute__(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
|
|
||||||
#ifndef ATTRIBUTE_MALLOC
|
|
||||||
# if (GCC_VERSION >= 2096)
|
|
||||||
# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
|
||||||
# else
|
|
||||||
# define ATTRIBUTE_MALLOC
|
|
||||||
# endif /* GNUC >= 2.96 */
|
|
||||||
#endif /* ATTRIBUTE_MALLOC */
|
|
||||||
|
|
||||||
/* Attributes on labels were valid as of gcc 2.93. */
|
|
||||||
#ifndef ATTRIBUTE_UNUSED_LABEL
|
|
||||||
# if (GCC_VERSION >= 2093)
|
|
||||||
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
|
|
||||||
# else
|
|
||||||
# define ATTRIBUTE_UNUSED_LABEL
|
|
||||||
# endif /* GNUC >= 2.93 */
|
|
||||||
#endif /* ATTRIBUTE_UNUSED_LABEL */
|
|
||||||
|
|
||||||
#ifndef ATTRIBUTE_UNUSED
|
|
||||||
#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
|
||||||
#endif /* ATTRIBUTE_UNUSED */
|
|
||||||
|
|
||||||
#ifndef ATTRIBUTE_NORETURN
|
|
||||||
#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
|
|
||||||
#endif /* ATTRIBUTE_NORETURN */
|
|
||||||
|
|
||||||
/* Attribute `nonnull' was valid as of gcc 3.3. */
|
|
||||||
#ifndef ATTRIBUTE_NONNULL
|
|
||||||
# if (GCC_VERSION >= 3003)
|
|
||||||
# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
|
|
||||||
# else
|
|
||||||
# define ATTRIBUTE_NONNULL(m)
|
|
||||||
# endif /* GNUC >= 3.3 */
|
|
||||||
#endif /* ATTRIBUTE_NONNULL */
|
|
||||||
|
|
||||||
/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
|
|
||||||
This was the case for the `printf' format attribute by itself
|
|
||||||
before GCC 3.3, but as of 3.3 we need to add the `nonnull'
|
|
||||||
attribute to retain this behavior. */
|
|
||||||
#ifndef ATTRIBUTE_PRINTF
|
|
||||||
#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
|
|
||||||
#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
|
|
||||||
#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
|
|
||||||
#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
|
|
||||||
#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
|
|
||||||
#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
|
|
||||||
#endif /* ATTRIBUTE_PRINTF */
|
|
||||||
|
|
||||||
/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL. A
|
|
||||||
NULL format specifier was allowed as of gcc 3.3. */
|
|
||||||
#ifndef ATTRIBUTE_NULL_PRINTF
|
|
||||||
# if (GCC_VERSION >= 3003)
|
|
||||||
# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
|
|
||||||
# else
|
|
||||||
# define ATTRIBUTE_NULL_PRINTF(m, n)
|
|
||||||
# endif /* GNUC >= 3.3 */
|
|
||||||
# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
|
|
||||||
# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
|
|
||||||
# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
|
|
||||||
# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
|
|
||||||
# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
|
|
||||||
#endif /* ATTRIBUTE_NULL_PRINTF */
|
|
||||||
|
|
||||||
/* We use __extension__ in some places to suppress -pedantic warnings
|
|
||||||
about GCC extensions. This feature didn't work properly before
|
|
||||||
gcc 2.8. */
|
|
||||||
#if GCC_VERSION < 2008
|
|
||||||
#define __extension__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Bootstrap support: Adjust certain macros defined by Autoconf,
|
|
||||||
which are only valid for the stage1 compiler. If we detect
|
|
||||||
a modern version of GCC, we are probably in stage2 or beyond,
|
|
||||||
so unconditionally reset the values. Note that const, inline,
|
|
||||||
etc. have been dealt with above. */
|
|
||||||
#if (GCC_VERSION >= 2007)
|
|
||||||
# ifndef HAVE_LONG_DOUBLE
|
|
||||||
# define HAVE_LONG_DOUBLE 1
|
|
||||||
# endif
|
|
||||||
#endif /* GCC >= 2.7 */
|
|
||||||
|
|
||||||
#endif /* ansidecl.h */
|
|
@ -1,208 +0,0 @@
|
|||||||
2003-03-06 Elias Athanasopoulos <elathan@phys.uoa.gr>
|
|
||||||
|
|
||||||
* aout64.h (BYTES_IN_WORD): Define if necessary.
|
|
||||||
|
|
||||||
2001-09-18 Alan Modra <amodra@bigpond.net.au>
|
|
||||||
|
|
||||||
* aout64.h: Formatting fixes.
|
|
||||||
(N_TXTADDR): Evaluate to a bfd_vma.
|
|
||||||
(N_DATADDR): Avoid negative unsigned warning.
|
|
||||||
* hp300hpux.h: Formatting fixes.
|
|
||||||
(N_DATADDR): Avoid negative unsigned warning.
|
|
||||||
|
|
||||||
2000-04-03 Hans-Peter Nilsson <hp@axis.com>
|
|
||||||
|
|
||||||
* aout64.h (RELOC_EXT_BITS_EXTERN_BIG): Wrap definition in #ifndef.
|
|
||||||
(RELOC_EXT_BITS_EXTERN_LITTLE): Ditto.
|
|
||||||
(RELOC_EXT_BITS_TYPE_BIG): Ditto.
|
|
||||||
(RELOC_EXT_BITS_TYPE_SH_BIG): Ditto.
|
|
||||||
(RELOC_EXT_BITS_TYPE_LITTLE): Ditto.
|
|
||||||
(RELOC_EXT_BITS_TYPE_SH_LITTLE): Ditto.
|
|
||||||
|
|
||||||
1999-07-12 Ian Lance Taylor <ian@zembu.com>
|
|
||||||
|
|
||||||
* aout64.h (N_SHARED_LIB): Define as 0 if TEXT_START_ADDR is
|
|
||||||
defined as 0.
|
|
||||||
|
|
||||||
1998-06-28 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
|
|
||||||
|
|
||||||
* stab.def: Add N_ALIAS from SunPro F77.
|
|
||||||
|
|
||||||
1996-03-11 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* stab.def: Use __define_stab_duplicate rather than __define_stab
|
|
||||||
for duplicate entries N_BROWS and N_MOD2.
|
|
||||||
* stab_gnu.h (__define_stab_duplicate): Define before including
|
|
||||||
stab.def.
|
|
||||||
|
|
||||||
1995-10-27 Niklas Hallqvist <niklas@appli.se>
|
|
||||||
|
|
||||||
* aout64.h, host.h, hp300hpux.h, sun4.h: Changed PAGE_SIZE to
|
|
||||||
TARGET_PAGE_SIZE.
|
|
||||||
|
|
||||||
1995-09-12 Ian Lance Taylor <ian@cygnus.com>
|
|
||||||
|
|
||||||
* sun4.h (struct internal_sun4_dynamic_link): Change all fields
|
|
||||||
from long to unsigned long.
|
|
||||||
|
|
||||||
1995-07-12 Ken Raeburn <raeburn@kr-pc.cygnus.com>
|
|
||||||
|
|
||||||
* sun4.h (PAGE_SIZE): Undefine before defining.
|
|
||||||
|
|
||||||
1994-09-04 Richard Earnshaw (rwe@pegasus.esprit.ec.org)
|
|
||||||
|
|
||||||
* aout64.h: Only define QMAGIC if it isn't already defined.
|
|
||||||
|
|
||||||
1994-06-16 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h (BMAGIC): Define.
|
|
||||||
|
|
||||||
1994-06-11 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
|
||||||
|
|
||||||
Add weak symbols as an extension to a.out.
|
|
||||||
* aout64.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB): Define.
|
|
||||||
* stab.def: Update symbol value table.
|
|
||||||
|
|
||||||
1994-06-02 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
|
||||||
|
|
||||||
* sun4.h (EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE): Correct from 28 to
|
|
||||||
24. Fix up ld_got comment.
|
|
||||||
|
|
||||||
1994-03-30 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
|
||||||
|
|
||||||
* dynix3.h: Cleanup, adapt to current bfd version.
|
|
||||||
|
|
||||||
1994-02-26 Ian Lance Taylor (ian@cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h: Add casts to avoid warnings from SVR4 cc.
|
|
||||||
|
|
||||||
1994-02-11 Stan Shebs (shebs@andros.cygnus.com)
|
|
||||||
|
|
||||||
* ar.h (ARMAG, ARMAGB, ARFMAG): Change '\n' to '\012', for greater
|
|
||||||
portability.
|
|
||||||
|
|
||||||
1994-01-21 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
|
||||||
|
|
||||||
* sun4.h: Added information about SunOS shared libraries.
|
|
||||||
|
|
||||||
1994-01-07 Jim Kingdon (kingdon@deneb.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h (N_TXTADDR): Add comment regarding OMAGIC and NMAGIC.
|
|
||||||
|
|
||||||
1993-12-25 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h (N_DATOFF): Don't pad (revert change of 8 Jul 1993).
|
|
||||||
|
|
||||||
1993-11-16 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h: New macros ZMAGIC_DISK_BLOCK_SIZE and N_DISK_BLOCK_SIZE
|
|
||||||
for Linux ZMAGIC.
|
|
||||||
(N_TXTOFF, N_DATOFF): Use them.
|
|
||||||
|
|
||||||
1993-11-04 Ken Raeburn (raeburn@kr-pc.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h (RELOC_STD_BITS_RELATIVE_LITTLE): Fixed value to match
|
|
||||||
sun3 system; used to overlap other fields.
|
|
||||||
(RELOC_STD_BITS_JMPTABLE_LITTLE): Likewise.
|
|
||||||
|
|
||||||
1993-11-03 David J. Mackenzie (djm@thepub.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h (RELOC_STD_BITS_BASEREL_LITTLE): Make it 0x10 (Ken's
|
|
||||||
suggestion) to avoid conflict with RELOC_STD_BITS_EXTERN_LITTLE.
|
|
||||||
|
|
||||||
1993-10-29 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
|
||||||
|
|
||||||
* hp300hpux.h (N_SHARED_LIB): Define to be 0.
|
|
||||||
|
|
||||||
1993-09-13 John Gilmore (gnu@cygnus.com)
|
|
||||||
|
|
||||||
* ar.h (ARMAP_TIME_OFFSET): Add and describe.
|
|
||||||
|
|
||||||
Mon Aug 23 Sean Fagan (sef@cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h [ARCH_SIZE != 64]: Allow N_BADMAG to be overridden.
|
|
||||||
|
|
||||||
1993-08-16 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* stab_gnu.h: Include aout/stab.def not just stab.def.
|
|
||||||
|
|
||||||
1993-07-18 Jim Kingdon (kingdon@rtl.cygnus.com)
|
|
||||||
|
|
||||||
* dynix3.h: New, for symmetry running dynix.
|
|
||||||
|
|
||||||
1993-07-08 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h (N_BADMAG): Recognize QMAGIC.
|
|
||||||
N_TXTOFF, N_TXTADDR, N_TXTSIZE: Special code for QMAGIC.
|
|
||||||
N_DATOFF: Pad text size if we need to.
|
|
||||||
|
|
||||||
1993-06-18 Jim Kingdon (kingdon@lioth.cygnus.com)
|
|
||||||
|
|
||||||
* stab.def (N_ECOML): Fix comment.
|
|
||||||
|
|
||||||
1993-05-31 Jim Kingdon (kingdon@cygnus.com)
|
|
||||||
|
|
||||||
* stab.def: Remove Solaris information on N_FUN stabstring grammar;
|
|
||||||
I've transferred it to gdb/doc/stabs.texinfo, where it belongs.
|
|
||||||
|
|
||||||
1993-05-10 Ken Raeburn (raeburn@kr-pc.cygnus.com)
|
|
||||||
|
|
||||||
* hp300hpux.h: Patch from Glenn Engel for linker problem and
|
|
||||||
compatibility fix:
|
|
||||||
(OMAGIC, NMAGIC): New definitions.
|
|
||||||
(SHAREMAGIC): Deleted.
|
|
||||||
(HPUX_DOT_O_MAGIC): New macro.
|
|
||||||
(_N_BADMAG): Adjusted.
|
|
||||||
(N_HEADER_IN_TEXT, N_DATADDR): New macros.
|
|
||||||
|
|
||||||
1993-04-29 Ken Raeburn (raeburn@deneb.cygnus.com)
|
|
||||||
|
|
||||||
* hp300hpux.h: New file from Glenn Engel, glenne@lsid.hp.com.
|
|
||||||
|
|
||||||
1993-04-27 Ken Raeburn (raeburn@kr-pc.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h (struct external_exec, *MAGIC, N_BADMAG): Don't define
|
|
||||||
if `external_exec' is already defined as a macro.
|
|
||||||
(N_DATOFF, N_TRELOFF, N_DRELOFF, N_SYMOFF, N_STROFF): Don't define
|
|
||||||
if already defined.
|
|
||||||
(struct external_nlist, EXTERNAL_NLIST_SIZE): Don't define if
|
|
||||||
`external_nlist' is already defined as a macro.
|
|
||||||
|
|
||||||
1992-08-15 John Gilmore (gnu@cygnus.com)
|
|
||||||
|
|
||||||
* adobe.h: Add description of a.out.adobe format.
|
|
||||||
|
|
||||||
1992-07-03 John Gilmore (gnu at cygnus.com)
|
|
||||||
|
|
||||||
* stab.def: Update more Solaris definitions.
|
|
||||||
* stab_gnu.h: Add N_SO language types, and Solaris basic float types.
|
|
||||||
|
|
||||||
1992-06-14 John Gilmore (gnu at cygnus.com)
|
|
||||||
|
|
||||||
* stab.def: Update descriptions of Solaris-2 stabs; add N_UNDF.
|
|
||||||
|
|
||||||
1992-06-11 John Gilmore (gnu at cygnus.com)
|
|
||||||
|
|
||||||
* stab.def: Add N_OBJ and N_OPT from Solaris-2.
|
|
||||||
|
|
||||||
1992-01-30 John Gilmore (gnu at cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h: N_TXTSIZE needs some more parentheses.
|
|
||||||
I don't trust C precedence.
|
|
||||||
|
|
||||||
1991-12-18 Per Bothner (bothner at cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h: Move common sunos-specific test
|
|
||||||
to recognize shared libraries into new macro N_SHARED_LIB.
|
|
||||||
Use it to simplify & reformat N_TXTADDR, N_TXTOFF, N_TXTSIZE.
|
|
||||||
|
|
||||||
1991-11-30 Steve Chamberlain (sac at rtl.cygnus.com)
|
|
||||||
|
|
||||||
* aout64.h, ar.h, encap.h, host.h, hp.h, ranlib.h, reloc.h,
|
|
||||||
stab.def, stab_gnu.h, sun4.h: All moved from the devo/include
|
|
||||||
directory.
|
|
||||||
|
|
||||||
|
|
||||||
Local Variables:
|
|
||||||
version-control: never
|
|
||||||
End:
|
|
@ -1,313 +0,0 @@
|
|||||||
/* `a.out.adobe' differences from standard a.out files
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef __A_OUT_ADOBE_H__
|
|
||||||
#define __A_OUT_ADOBE_H__
|
|
||||||
|
|
||||||
#define BYTES_IN_WORD 4
|
|
||||||
|
|
||||||
/* Struct external_exec is the same. */
|
|
||||||
|
|
||||||
/* This is the layout on disk of the 32-bit or 64-bit exec header. */
|
|
||||||
|
|
||||||
struct external_exec
|
|
||||||
{
|
|
||||||
bfd_byte e_info[4]; /* magic number and stuff */
|
|
||||||
bfd_byte e_text[BYTES_IN_WORD]; /* length of text section in bytes */
|
|
||||||
bfd_byte e_data[BYTES_IN_WORD]; /* length of data section in bytes */
|
|
||||||
bfd_byte e_bss[BYTES_IN_WORD]; /* length of bss area in bytes */
|
|
||||||
bfd_byte e_syms[BYTES_IN_WORD]; /* length of symbol table in bytes */
|
|
||||||
bfd_byte e_entry[BYTES_IN_WORD]; /* start address */
|
|
||||||
bfd_byte e_trsize[BYTES_IN_WORD]; /* length of text relocation info */
|
|
||||||
bfd_byte e_drsize[BYTES_IN_WORD]; /* length of data relocation info */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define EXEC_BYTES_SIZE (4 + BYTES_IN_WORD * 7)
|
|
||||||
|
|
||||||
/* Magic numbers for a.out files */
|
|
||||||
|
|
||||||
#undef ZMAGIC
|
|
||||||
#define ZMAGIC 0xAD0BE /* Cute, eh? */
|
|
||||||
#undef OMAGIC
|
|
||||||
#undef NMAGIC
|
|
||||||
|
|
||||||
#define N_BADMAG(x) ((x).a_info != ZMAGIC)
|
|
||||||
|
|
||||||
/* By default, segment size is constant. But some machines override this
|
|
||||||
to be a function of the a.out header (e.g. machine type). */
|
|
||||||
#ifndef N_SEGSIZE
|
|
||||||
#define N_SEGSIZE(x) SEGMENT_SIZE
|
|
||||||
#endif
|
|
||||||
#undef N_SEGSIZE /* FIXMEXXXX */
|
|
||||||
|
|
||||||
/* Segment information for the a.out.Adobe format is specified after the
|
|
||||||
file header. It contains N segment descriptors, followed by one with
|
|
||||||
a type of zero.
|
|
||||||
|
|
||||||
The actual text of the segments starts at N_TXTOFF in the file,
|
|
||||||
regardless of how many or how few segment headers there are. */
|
|
||||||
|
|
||||||
struct external_segdesc {
|
|
||||||
unsigned char e_type[1];
|
|
||||||
unsigned char e_size[3];
|
|
||||||
unsigned char e_virtbase[4];
|
|
||||||
unsigned char e_filebase[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct internal_segdesc {
|
|
||||||
unsigned int a_type:8; /* Segment type N_TEXT, N_DATA, 0 */
|
|
||||||
unsigned int a_size:24; /* Segment size */
|
|
||||||
bfd_vma a_virtbase; /* Virtual address */
|
|
||||||
unsigned int a_filebase; /* Base address in object file */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define N_TXTADDR(x) \
|
|
||||||
|
|
||||||
/* This is documented to be at 1024, but appears to really be at 2048.
|
|
||||||
FIXME?! */
|
|
||||||
#define N_TXTOFF(x) 2048
|
|
||||||
|
|
||||||
#define N_TXTSIZE(x) ((x).a_text)
|
|
||||||
|
|
||||||
#define N_DATADDR(x)
|
|
||||||
|
|
||||||
#define N_BSSADDR(x)
|
|
||||||
|
|
||||||
/* Offsets of the various portions of the file after the text segment. */
|
|
||||||
|
|
||||||
#define N_DATOFF(x) ( N_TXTOFF(x) + N_TXTSIZE(x) )
|
|
||||||
#define N_TRELOFF(x) ( N_DATOFF(x) + (x).a_data )
|
|
||||||
#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize )
|
|
||||||
#define N_SYMOFF(x) ( N_DRELOFF(x) + (x).a_drsize )
|
|
||||||
#define N_STROFF(x) ( N_SYMOFF(x) + (x).a_syms )
|
|
||||||
|
|
||||||
/* Symbols */
|
|
||||||
struct external_nlist {
|
|
||||||
bfd_byte e_strx[BYTES_IN_WORD]; /* index into string table of name */
|
|
||||||
bfd_byte e_type[1]; /* type of symbol */
|
|
||||||
bfd_byte e_other[1]; /* misc info (usually empty) */
|
|
||||||
bfd_byte e_desc[2]; /* description field */
|
|
||||||
bfd_byte e_value[BYTES_IN_WORD]; /* value of symbol */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD)
|
|
||||||
|
|
||||||
struct internal_nlist {
|
|
||||||
unsigned long n_strx; /* index into string table of name */
|
|
||||||
unsigned char n_type; /* type of symbol */
|
|
||||||
unsigned char n_other; /* misc info (usually empty) */
|
|
||||||
unsigned short n_desc; /* description field */
|
|
||||||
bfd_vma n_value; /* value of symbol */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The n_type field is the symbol type, containing: */
|
|
||||||
|
|
||||||
#define N_UNDF 0 /* Undefined symbol */
|
|
||||||
#define N_ABS 2 /* Absolute symbol -- defined at particular addr */
|
|
||||||
#define N_TEXT 4 /* Text sym -- defined at offset in text seg */
|
|
||||||
#define N_DATA 6 /* Data sym -- defined at offset in data seg */
|
|
||||||
#define N_BSS 8 /* BSS sym -- defined at offset in zero'd seg */
|
|
||||||
#define N_COMM 0x12 /* Common symbol (visible after shared lib dynlink) */
|
|
||||||
#define N_FN 0x1f /* File name of .o file */
|
|
||||||
#define N_FN_SEQ 0x0C /* N_FN from Sequent compilers (sigh) */
|
|
||||||
/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT,
|
|
||||||
N_DATA, or N_BSS. When the low-order bit of other types is set,
|
|
||||||
(e.g. N_WARNING versus N_FN), they are two different types. */
|
|
||||||
#define N_EXT 1 /* External symbol (as opposed to local-to-this-file) */
|
|
||||||
#define N_TYPE 0x1e
|
|
||||||
#define N_STAB 0xe0 /* If any of these bits are on, it's a debug symbol */
|
|
||||||
|
|
||||||
#define N_INDR 0x0a
|
|
||||||
|
|
||||||
/* The following symbols refer to set elements.
|
|
||||||
All the N_SET[ATDB] symbols with the same name form one set.
|
|
||||||
Space is allocated for the set in the text section, and each set
|
|
||||||
elements value is stored into one word of the space.
|
|
||||||
The first word of the space is the length of the set (number of elements).
|
|
||||||
|
|
||||||
The address of the set is made into an N_SETV symbol
|
|
||||||
whose name is the same as the name of the set.
|
|
||||||
This symbol acts like a N_DATA global symbol
|
|
||||||
in that it can satisfy undefined external references. */
|
|
||||||
|
|
||||||
/* These appear as input to LD, in a .o file. */
|
|
||||||
#define N_SETA 0x14 /* Absolute set element symbol */
|
|
||||||
#define N_SETT 0x16 /* Text set element symbol */
|
|
||||||
#define N_SETD 0x18 /* Data set element symbol */
|
|
||||||
#define N_SETB 0x1A /* Bss set element symbol */
|
|
||||||
|
|
||||||
/* This is output from LD. */
|
|
||||||
#define N_SETV 0x1C /* Pointer to set vector in data area. */
|
|
||||||
|
|
||||||
/* Warning symbol. The text gives a warning message, the next symbol
|
|
||||||
in the table will be undefined. When the symbol is referenced, the
|
|
||||||
message is printed. */
|
|
||||||
|
|
||||||
#define N_WARNING 0x1e
|
|
||||||
|
|
||||||
/* Relocations
|
|
||||||
|
|
||||||
There are two types of relocation flavours for a.out systems,
|
|
||||||
standard and extended. The standard form is used on systems where the
|
|
||||||
instruction has room for all the bits of an offset to the operand, whilst
|
|
||||||
the extended form is used when an address operand has to be split over n
|
|
||||||
instructions. Eg, on the 68k, each move instruction can reference
|
|
||||||
the target with a displacement of 16 or 32 bits. On the sparc, move
|
|
||||||
instructions use an offset of 14 bits, so the offset is stored in
|
|
||||||
the reloc field, and the data in the section is ignored.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* This structure describes a single relocation to be performed.
|
|
||||||
The text-relocation section of the file is a vector of these structures,
|
|
||||||
all of which apply to the text section.
|
|
||||||
Likewise, the data-relocation section applies to the data section. */
|
|
||||||
|
|
||||||
struct reloc_std_external {
|
|
||||||
bfd_byte r_address[BYTES_IN_WORD]; /* offset of of data to relocate */
|
|
||||||
bfd_byte r_index[3]; /* symbol table index of symbol */
|
|
||||||
bfd_byte r_type[1]; /* relocation type */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_PCREL_BIG 0x80
|
|
||||||
#define RELOC_STD_BITS_PCREL_LITTLE 0x01
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_LENGTH_BIG 0x60
|
|
||||||
#define RELOC_STD_BITS_LENGTH_SH_BIG 5 /* To shift to units place */
|
|
||||||
#define RELOC_STD_BITS_LENGTH_LITTLE 0x06
|
|
||||||
#define RELOC_STD_BITS_LENGTH_SH_LITTLE 1
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_EXTERN_BIG 0x10
|
|
||||||
#define RELOC_STD_BITS_EXTERN_LITTLE 0x08
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_BASEREL_BIG 0x08
|
|
||||||
#define RELOC_STD_BITS_BASEREL_LITTLE 0x08
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_JMPTABLE_BIG 0x04
|
|
||||||
#define RELOC_STD_BITS_JMPTABLE_LITTLE 0x04
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_RELATIVE_BIG 0x02
|
|
||||||
#define RELOC_STD_BITS_RELATIVE_LITTLE 0x02
|
|
||||||
|
|
||||||
#define RELOC_STD_SIZE (BYTES_IN_WORD + 3 + 1) /* Bytes per relocation entry */
|
|
||||||
|
|
||||||
struct reloc_std_internal
|
|
||||||
{
|
|
||||||
bfd_vma r_address; /* Address (within segment) to be relocated. */
|
|
||||||
/* The meaning of r_symbolnum depends on r_extern. */
|
|
||||||
unsigned int r_symbolnum:24;
|
|
||||||
/* Nonzero means value is a pc-relative offset
|
|
||||||
and it should be relocated for changes in its own address
|
|
||||||
as well as for changes in the symbol or section specified. */
|
|
||||||
unsigned int r_pcrel:1;
|
|
||||||
/* Length (as exponent of 2) of the field to be relocated.
|
|
||||||
Thus, a value of 2 indicates 1<<2 bytes. */
|
|
||||||
unsigned int r_length:2;
|
|
||||||
/* 1 => relocate with value of symbol.
|
|
||||||
r_symbolnum is the index of the symbol
|
|
||||||
in files the symbol table.
|
|
||||||
0 => relocate with the address of a segment.
|
|
||||||
r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
|
|
||||||
(the N_EXT bit may be set also, but signifies nothing). */
|
|
||||||
unsigned int r_extern:1;
|
|
||||||
/* The next three bits are for SunOS shared libraries, and seem to
|
|
||||||
be undocumented. */
|
|
||||||
unsigned int r_baserel:1; /* Linkage table relative */
|
|
||||||
unsigned int r_jmptable:1; /* pc-relative to jump table */
|
|
||||||
unsigned int r_relative:1; /* "relative relocation" */
|
|
||||||
/* unused */
|
|
||||||
unsigned int r_pad:1; /* Padding -- set to zero */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* EXTENDED RELOCS */
|
|
||||||
|
|
||||||
struct reloc_ext_external {
|
|
||||||
bfd_byte r_address[BYTES_IN_WORD]; /* offset of of data to relocate */
|
|
||||||
bfd_byte r_index[3]; /* symbol table index of symbol */
|
|
||||||
bfd_byte r_type[1]; /* relocation type */
|
|
||||||
bfd_byte r_addend[BYTES_IN_WORD]; /* datum addend */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC_EXT_BITS_EXTERN_BIG 0x80
|
|
||||||
#define RELOC_EXT_BITS_EXTERN_LITTLE 0x01
|
|
||||||
|
|
||||||
#define RELOC_EXT_BITS_TYPE_BIG 0x1F
|
|
||||||
#define RELOC_EXT_BITS_TYPE_SH_BIG 0
|
|
||||||
#define RELOC_EXT_BITS_TYPE_LITTLE 0xF8
|
|
||||||
#define RELOC_EXT_BITS_TYPE_SH_LITTLE 3
|
|
||||||
|
|
||||||
/* Bytes per relocation entry */
|
|
||||||
#define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD)
|
|
||||||
|
|
||||||
enum reloc_type
|
|
||||||
{
|
|
||||||
/* simple relocations */
|
|
||||||
RELOC_8, /* data[0:7] = addend + sv */
|
|
||||||
RELOC_16, /* data[0:15] = addend + sv */
|
|
||||||
RELOC_32, /* data[0:31] = addend + sv */
|
|
||||||
/* pc-rel displacement */
|
|
||||||
RELOC_DISP8, /* data[0:7] = addend - pc + sv */
|
|
||||||
RELOC_DISP16, /* data[0:15] = addend - pc + sv */
|
|
||||||
RELOC_DISP32, /* data[0:31] = addend - pc + sv */
|
|
||||||
/* Special */
|
|
||||||
RELOC_WDISP30, /* data[0:29] = (addend + sv - pc)>>2 */
|
|
||||||
RELOC_WDISP22, /* data[0:21] = (addend + sv - pc)>>2 */
|
|
||||||
RELOC_HI22, /* data[0:21] = (addend + sv)>>10 */
|
|
||||||
RELOC_22, /* data[0:21] = (addend + sv) */
|
|
||||||
RELOC_13, /* data[0:12] = (addend + sv) */
|
|
||||||
RELOC_LO10, /* data[0:9] = (addend + sv) */
|
|
||||||
RELOC_SFA_BASE,
|
|
||||||
RELOC_SFA_OFF13,
|
|
||||||
/* P.I.C. (base-relative) */
|
|
||||||
RELOC_BASE10, /* Not sure - maybe we can do this the */
|
|
||||||
RELOC_BASE13, /* right way now */
|
|
||||||
RELOC_BASE22,
|
|
||||||
/* for some sort of pc-rel P.I.C. (?) */
|
|
||||||
RELOC_PC10,
|
|
||||||
RELOC_PC22,
|
|
||||||
/* P.I.C. jump table */
|
|
||||||
RELOC_JMP_TBL,
|
|
||||||
/* reputedly for shared libraries somehow */
|
|
||||||
RELOC_SEGOFF16,
|
|
||||||
RELOC_GLOB_DAT,
|
|
||||||
RELOC_JMP_SLOT,
|
|
||||||
RELOC_RELATIVE,
|
|
||||||
|
|
||||||
RELOC_11,
|
|
||||||
RELOC_WDISP2_14,
|
|
||||||
RELOC_WDISP19,
|
|
||||||
RELOC_HHI22, /* data[0:21] = (addend + sv) >> 42 */
|
|
||||||
RELOC_HLO10, /* data[0:9] = (addend + sv) >> 32 */
|
|
||||||
|
|
||||||
/* 29K relocation types */
|
|
||||||
RELOC_JUMPTARG,
|
|
||||||
RELOC_CONST,
|
|
||||||
RELOC_CONSTH,
|
|
||||||
|
|
||||||
NO_RELOC
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct reloc_internal {
|
|
||||||
bfd_vma r_address; /* offset of of data to relocate */
|
|
||||||
long r_index; /* symbol table index of symbol */
|
|
||||||
enum reloc_type r_type; /* relocation type */
|
|
||||||
bfd_vma r_addend; /* datum addend */
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* __A_OUT_ADOBE_H__ */
|
|
@ -1,519 +0,0 @@
|
|||||||
/* `a.out' object-file definitions, including extensions to 64-bit fields
|
|
||||||
|
|
||||||
Copyright 2001, 2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef __A_OUT_64_H__
|
|
||||||
#define __A_OUT_64_H__
|
|
||||||
|
|
||||||
#ifndef BYTES_IN_WORD
|
|
||||||
#define BYTES_IN_WORD 4
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This is the layout on disk of the 32-bit or 64-bit exec header. */
|
|
||||||
|
|
||||||
#ifndef external_exec
|
|
||||||
struct external_exec
|
|
||||||
{
|
|
||||||
bfd_byte e_info[4]; /* Magic number and stuff. */
|
|
||||||
bfd_byte e_text[BYTES_IN_WORD]; /* Length of text section in bytes. */
|
|
||||||
bfd_byte e_data[BYTES_IN_WORD]; /* Length of data section in bytes. */
|
|
||||||
bfd_byte e_bss[BYTES_IN_WORD]; /* Length of bss area in bytes. */
|
|
||||||
bfd_byte e_syms[BYTES_IN_WORD]; /* Length of symbol table in bytes. */
|
|
||||||
bfd_byte e_entry[BYTES_IN_WORD]; /* Start address. */
|
|
||||||
bfd_byte e_trsize[BYTES_IN_WORD]; /* Length of text relocation info. */
|
|
||||||
bfd_byte e_drsize[BYTES_IN_WORD]; /* Length of data relocation info. */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define EXEC_BYTES_SIZE (4 + BYTES_IN_WORD * 7)
|
|
||||||
|
|
||||||
/* Magic numbers for a.out files. */
|
|
||||||
|
|
||||||
#if ARCH_SIZE==64
|
|
||||||
#define OMAGIC 0x1001 /* Code indicating object file. */
|
|
||||||
#define ZMAGIC 0x1002 /* Code indicating demand-paged executable. */
|
|
||||||
#define NMAGIC 0x1003 /* Code indicating pure executable. */
|
|
||||||
|
|
||||||
/* There is no 64-bit QMAGIC as far as I know. */
|
|
||||||
|
|
||||||
#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \
|
|
||||||
&& N_MAGIC(x) != NMAGIC \
|
|
||||||
&& N_MAGIC(x) != ZMAGIC)
|
|
||||||
#else
|
|
||||||
#define OMAGIC 0407 /* Object file or impure executable. */
|
|
||||||
#define NMAGIC 0410 /* Code indicating pure executable. */
|
|
||||||
#define ZMAGIC 0413 /* Code indicating demand-paged executable. */
|
|
||||||
#define BMAGIC 0415 /* Used by a b.out object. */
|
|
||||||
|
|
||||||
/* This indicates a demand-paged executable with the header in the text.
|
|
||||||
It is used by 386BSD (and variants) and Linux, at least. */
|
|
||||||
#ifndef QMAGIC
|
|
||||||
#define QMAGIC 0314
|
|
||||||
#endif
|
|
||||||
# ifndef N_BADMAG
|
|
||||||
# define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \
|
|
||||||
&& N_MAGIC(x) != NMAGIC \
|
|
||||||
&& N_MAGIC(x) != ZMAGIC \
|
|
||||||
&& N_MAGIC(x) != QMAGIC)
|
|
||||||
# endif /* N_BADMAG */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef QMAGIC
|
|
||||||
#define N_IS_QMAGIC(x) (N_MAGIC (x) == QMAGIC)
|
|
||||||
#else
|
|
||||||
#define N_IS_QMAGIC(x) (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The difference between TARGET_PAGE_SIZE and N_SEGSIZE is that TARGET_PAGE_SIZE is
|
|
||||||
the finest granularity at which you can page something, thus it
|
|
||||||
controls the padding (if any) before the text segment of a ZMAGIC
|
|
||||||
file. N_SEGSIZE is the resolution at which things can be marked as
|
|
||||||
read-only versus read/write, so it controls the padding between the
|
|
||||||
text segment and the data segment (in memory; on disk the padding
|
|
||||||
between them is TARGET_PAGE_SIZE). TARGET_PAGE_SIZE and N_SEGSIZE are the same
|
|
||||||
for most machines, but different for sun3. */
|
|
||||||
|
|
||||||
/* By default, segment size is constant. But some machines override this
|
|
||||||
to be a function of the a.out header (e.g. machine type). */
|
|
||||||
|
|
||||||
#ifndef N_SEGSIZE
|
|
||||||
#define N_SEGSIZE(x) SEGMENT_SIZE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Virtual memory address of the text section.
|
|
||||||
This is getting very complicated. A good reason to discard a.out format
|
|
||||||
for something that specifies these fields explicitly. But til then...
|
|
||||||
|
|
||||||
* OMAGIC and NMAGIC files:
|
|
||||||
(object files: text for "relocatable addr 0" right after the header)
|
|
||||||
start at 0, offset is EXEC_BYTES_SIZE, size as stated.
|
|
||||||
* The text address, offset, and size of ZMAGIC files depend
|
|
||||||
on the entry point of the file:
|
|
||||||
* entry point below TEXT_START_ADDR:
|
|
||||||
(hack for SunOS shared libraries)
|
|
||||||
start at 0, offset is 0, size as stated.
|
|
||||||
* If N_HEADER_IN_TEXT(x) is true (which defaults to being the
|
|
||||||
case when the entry point is EXEC_BYTES_SIZE or further into a page):
|
|
||||||
no padding is needed; text can start after exec header. Sun
|
|
||||||
considers the text segment of such files to include the exec header;
|
|
||||||
for BFD's purposes, we don't, which makes more work for us.
|
|
||||||
start at TEXT_START_ADDR + EXEC_BYTES_SIZE, offset is EXEC_BYTES_SIZE,
|
|
||||||
size as stated minus EXEC_BYTES_SIZE.
|
|
||||||
* If N_HEADER_IN_TEXT(x) is false (which defaults to being the case when
|
|
||||||
the entry point is less than EXEC_BYTES_SIZE into a page (e.g. page
|
|
||||||
aligned)): (padding is needed so that text can start at a page boundary)
|
|
||||||
start at TEXT_START_ADDR, offset TARGET_PAGE_SIZE, size as stated.
|
|
||||||
|
|
||||||
Specific configurations may want to hardwire N_HEADER_IN_TEXT,
|
|
||||||
for efficiency or to allow people to play games with the entry point.
|
|
||||||
In that case, you would #define N_HEADER_IN_TEXT(x) as 1 for sunos,
|
|
||||||
and as 0 for most other hosts (Sony News, Vax Ultrix, etc).
|
|
||||||
(Do this in the appropriate bfd target file.)
|
|
||||||
(The default is a heuristic that will break if people try changing
|
|
||||||
the entry point, perhaps with the ld -e flag.)
|
|
||||||
|
|
||||||
* QMAGIC is always like a ZMAGIC for which N_HEADER_IN_TEXT is true,
|
|
||||||
and for which the starting address is TARGET_PAGE_SIZE (or should this be
|
|
||||||
SEGMENT_SIZE?) (TEXT_START_ADDR only applies to ZMAGIC, not to QMAGIC). */
|
|
||||||
|
|
||||||
/* This macro is only relevant for ZMAGIC files; QMAGIC always has the header
|
|
||||||
in the text. */
|
|
||||||
#ifndef N_HEADER_IN_TEXT
|
|
||||||
#define N_HEADER_IN_TEXT(x) \
|
|
||||||
(((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Sun shared libraries, not linux. This macro is only relevant for ZMAGIC
|
|
||||||
files. */
|
|
||||||
#ifndef N_SHARED_LIB
|
|
||||||
#if defined (TEXT_START_ADDR) && TEXT_START_ADDR == 0
|
|
||||||
#define N_SHARED_LIB(x) (0)
|
|
||||||
#else
|
|
||||||
#define N_SHARED_LIB(x) ((x).a_entry < TEXT_START_ADDR)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Returning 0 not TEXT_START_ADDR for OMAGIC and NMAGIC is based on
|
|
||||||
the assumption that we are dealing with a .o file, not an
|
|
||||||
executable. This is necessary for OMAGIC (but means we don't work
|
|
||||||
right on the output from ld -N); more questionable for NMAGIC. */
|
|
||||||
|
|
||||||
#ifndef N_TXTADDR
|
|
||||||
#define N_TXTADDR(x) \
|
|
||||||
(/* The address of a QMAGIC file is always one page in, \
|
|
||||||
with the header in the text. */ \
|
|
||||||
N_IS_QMAGIC (x) \
|
|
||||||
? (bfd_vma) TARGET_PAGE_SIZE + EXEC_BYTES_SIZE \
|
|
||||||
: (N_MAGIC (x) != ZMAGIC \
|
|
||||||
? (bfd_vma) 0 /* Object file or NMAGIC. */ \
|
|
||||||
: (N_SHARED_LIB (x) \
|
|
||||||
? (bfd_vma) 0 \
|
|
||||||
: (N_HEADER_IN_TEXT (x) \
|
|
||||||
? (bfd_vma) TEXT_START_ADDR + EXEC_BYTES_SIZE \
|
|
||||||
: (bfd_vma) TEXT_START_ADDR))))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If N_HEADER_IN_TEXT is not true for ZMAGIC, there is some padding
|
|
||||||
to make the text segment start at a certain boundary. For most
|
|
||||||
systems, this boundary is TARGET_PAGE_SIZE. But for Linux, in the
|
|
||||||
time-honored tradition of crazy ZMAGIC hacks, it is 1024 which is
|
|
||||||
not what TARGET_PAGE_SIZE needs to be for QMAGIC. */
|
|
||||||
|
|
||||||
#ifndef ZMAGIC_DISK_BLOCK_SIZE
|
|
||||||
#define ZMAGIC_DISK_BLOCK_SIZE TARGET_PAGE_SIZE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define N_DISK_BLOCK_SIZE(x) \
|
|
||||||
(N_MAGIC(x) == ZMAGIC ? ZMAGIC_DISK_BLOCK_SIZE : TARGET_PAGE_SIZE)
|
|
||||||
|
|
||||||
/* Offset in an a.out of the start of the text section. */
|
|
||||||
#ifndef N_TXTOFF
|
|
||||||
#define N_TXTOFF(x) \
|
|
||||||
(/* For {O,N,Q}MAGIC, no padding. */ \
|
|
||||||
N_MAGIC (x) != ZMAGIC \
|
|
||||||
? EXEC_BYTES_SIZE \
|
|
||||||
: (N_SHARED_LIB (x) \
|
|
||||||
? 0 \
|
|
||||||
: (N_HEADER_IN_TEXT (x) \
|
|
||||||
? EXEC_BYTES_SIZE /* No padding. */ \
|
|
||||||
: ZMAGIC_DISK_BLOCK_SIZE /* A page of padding. */)))
|
|
||||||
#endif
|
|
||||||
/* Size of the text section. It's always as stated, except that we
|
|
||||||
offset it to `undo' the adjustment to N_TXTADDR and N_TXTOFF
|
|
||||||
for ZMAGIC files that nominally include the exec header
|
|
||||||
as part of the first page of text. (BFD doesn't consider the
|
|
||||||
exec header to be part of the text segment.) */
|
|
||||||
#ifndef N_TXTSIZE
|
|
||||||
#define N_TXTSIZE(x) \
|
|
||||||
(/* For QMAGIC, we don't consider the header part of the text section. */\
|
|
||||||
N_IS_QMAGIC (x) \
|
|
||||||
? (x).a_text - EXEC_BYTES_SIZE \
|
|
||||||
: ((N_MAGIC (x) != ZMAGIC || N_SHARED_LIB (x)) \
|
|
||||||
? (x).a_text \
|
|
||||||
: (N_HEADER_IN_TEXT (x) \
|
|
||||||
? (x).a_text - EXEC_BYTES_SIZE /* No padding. */ \
|
|
||||||
: (x).a_text /* A page of padding. */ )))
|
|
||||||
#endif
|
|
||||||
/* The address of the data segment in virtual memory.
|
|
||||||
It is the text segment address, plus text segment size, rounded
|
|
||||||
up to a N_SEGSIZE boundary for pure or pageable files. */
|
|
||||||
#ifndef N_DATADDR
|
|
||||||
#define N_DATADDR(x) \
|
|
||||||
(N_MAGIC (x) == OMAGIC \
|
|
||||||
? (N_TXTADDR (x) + N_TXTSIZE (x)) \
|
|
||||||
: (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \
|
|
||||||
& ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
|
|
||||||
#endif
|
|
||||||
/* The address of the BSS segment -- immediately after the data segment. */
|
|
||||||
|
|
||||||
#define N_BSSADDR(x) (N_DATADDR (x) + (x).a_data)
|
|
||||||
|
|
||||||
/* Offsets of the various portions of the file after the text segment. */
|
|
||||||
|
|
||||||
/* For {Q,Z}MAGIC, there is padding to make the data segment start on
|
|
||||||
a page boundary. Most of the time the a_text field (and thus
|
|
||||||
N_TXTSIZE) already contains this padding. It is possible that for
|
|
||||||
BSDI and/or 386BSD it sometimes doesn't contain the padding, and
|
|
||||||
perhaps we should be adding it here. But this seems kind of
|
|
||||||
questionable and probably should be BSDI/386BSD-specific if we do
|
|
||||||
do it.
|
|
||||||
|
|
||||||
For NMAGIC (at least for hp300 BSD, probably others), there is
|
|
||||||
padding in memory only, not on disk, so we must *not* ever pad here
|
|
||||||
for NMAGIC. */
|
|
||||||
|
|
||||||
#ifndef N_DATOFF
|
|
||||||
#define N_DATOFF(x) (N_TXTOFF (x) + N_TXTSIZE (x))
|
|
||||||
#endif
|
|
||||||
#ifndef N_TRELOFF
|
|
||||||
#define N_TRELOFF(x) (N_DATOFF (x) + (x).a_data)
|
|
||||||
#endif
|
|
||||||
#ifndef N_DRELOFF
|
|
||||||
#define N_DRELOFF(x) (N_TRELOFF (x) + (x).a_trsize)
|
|
||||||
#endif
|
|
||||||
#ifndef N_SYMOFF
|
|
||||||
#define N_SYMOFF(x) (N_DRELOFF (x) + (x).a_drsize)
|
|
||||||
#endif
|
|
||||||
#ifndef N_STROFF
|
|
||||||
#define N_STROFF(x) (N_SYMOFF (x) + (x).a_syms)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Symbols */
|
|
||||||
#ifndef external_nlist
|
|
||||||
struct external_nlist
|
|
||||||
{
|
|
||||||
bfd_byte e_strx[BYTES_IN_WORD]; /* Index into string table of name. */
|
|
||||||
bfd_byte e_type[1]; /* Type of symbol. */
|
|
||||||
bfd_byte e_other[1]; /* Misc info (usually empty). */
|
|
||||||
bfd_byte e_desc[2]; /* Description field. */
|
|
||||||
bfd_byte e_value[BYTES_IN_WORD]; /* Value of symbol. */
|
|
||||||
};
|
|
||||||
#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct internal_nlist
|
|
||||||
{
|
|
||||||
unsigned long n_strx; /* Index into string table of name. */
|
|
||||||
unsigned char n_type; /* Type of symbol. */
|
|
||||||
unsigned char n_other; /* Misc info (usually empty). */
|
|
||||||
unsigned short n_desc; /* Description field. */
|
|
||||||
bfd_vma n_value; /* Value of symbol. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The n_type field is the symbol type, containing: */
|
|
||||||
|
|
||||||
#define N_UNDF 0 /* Undefined symbol. */
|
|
||||||
#define N_ABS 2 /* Absolute symbol -- defined at particular addr. */
|
|
||||||
#define N_TEXT 4 /* Text sym -- defined at offset in text seg. */
|
|
||||||
#define N_DATA 6 /* Data sym -- defined at offset in data seg. */
|
|
||||||
#define N_BSS 8 /* BSS sym -- defined at offset in zero'd seg. */
|
|
||||||
#define N_COMM 0x12 /* Common symbol (visible after shared lib dynlink). */
|
|
||||||
#define N_FN 0x1f /* File name of .o file. */
|
|
||||||
#define N_FN_SEQ 0x0C /* N_FN from Sequent compilers (sigh). */
|
|
||||||
/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT,
|
|
||||||
N_DATA, or N_BSS. When the low-order bit of other types is set,
|
|
||||||
(e.g. N_WARNING versus N_FN), they are two different types. */
|
|
||||||
#define N_EXT 1 /* External symbol (as opposed to local-to-this-file). */
|
|
||||||
#define N_TYPE 0x1e
|
|
||||||
#define N_STAB 0xe0 /* If any of these bits are on, it's a debug symbol. */
|
|
||||||
|
|
||||||
#define N_INDR 0x0a
|
|
||||||
|
|
||||||
/* The following symbols refer to set elements.
|
|
||||||
All the N_SET[ATDB] symbols with the same name form one set.
|
|
||||||
Space is allocated for the set in the text section, and each set
|
|
||||||
elements value is stored into one word of the space.
|
|
||||||
The first word of the space is the length of the set (number of elements).
|
|
||||||
|
|
||||||
The address of the set is made into an N_SETV symbol
|
|
||||||
whose name is the same as the name of the set.
|
|
||||||
This symbol acts like a N_DATA global symbol
|
|
||||||
in that it can satisfy undefined external references. */
|
|
||||||
|
|
||||||
/* These appear as input to LD, in a .o file. */
|
|
||||||
#define N_SETA 0x14 /* Absolute set element symbol. */
|
|
||||||
#define N_SETT 0x16 /* Text set element symbol. */
|
|
||||||
#define N_SETD 0x18 /* Data set element symbol. */
|
|
||||||
#define N_SETB 0x1A /* Bss set element symbol. */
|
|
||||||
|
|
||||||
/* This is output from LD. */
|
|
||||||
#define N_SETV 0x1C /* Pointer to set vector in data area. */
|
|
||||||
|
|
||||||
/* Warning symbol. The text gives a warning message, the next symbol
|
|
||||||
in the table will be undefined. When the symbol is referenced, the
|
|
||||||
message is printed. */
|
|
||||||
|
|
||||||
#define N_WARNING 0x1e
|
|
||||||
|
|
||||||
/* Weak symbols. These are a GNU extension to the a.out format. The
|
|
||||||
semantics are those of ELF weak symbols. Weak symbols are always
|
|
||||||
externally visible. The N_WEAK? values are squeezed into the
|
|
||||||
available slots. The value of a N_WEAKU symbol is 0. The values
|
|
||||||
of the other types are the definitions. */
|
|
||||||
#define N_WEAKU 0x0d /* Weak undefined symbol. */
|
|
||||||
#define N_WEAKA 0x0e /* Weak absolute symbol. */
|
|
||||||
#define N_WEAKT 0x0f /* Weak text symbol. */
|
|
||||||
#define N_WEAKD 0x10 /* Weak data symbol. */
|
|
||||||
#define N_WEAKB 0x11 /* Weak bss symbol. */
|
|
||||||
|
|
||||||
/* Relocations
|
|
||||||
|
|
||||||
There are two types of relocation flavours for a.out systems,
|
|
||||||
standard and extended. The standard form is used on systems where the
|
|
||||||
instruction has room for all the bits of an offset to the operand, whilst
|
|
||||||
the extended form is used when an address operand has to be split over n
|
|
||||||
instructions. Eg, on the 68k, each move instruction can reference
|
|
||||||
the target with a displacement of 16 or 32 bits. On the sparc, move
|
|
||||||
instructions use an offset of 14 bits, so the offset is stored in
|
|
||||||
the reloc field, and the data in the section is ignored. */
|
|
||||||
|
|
||||||
/* This structure describes a single relocation to be performed.
|
|
||||||
The text-relocation section of the file is a vector of these structures,
|
|
||||||
all of which apply to the text section.
|
|
||||||
Likewise, the data-relocation section applies to the data section. */
|
|
||||||
|
|
||||||
struct reloc_std_external
|
|
||||||
{
|
|
||||||
bfd_byte r_address[BYTES_IN_WORD]; /* Offset of of data to relocate. */
|
|
||||||
bfd_byte r_index[3]; /* Symbol table index of symbol. */
|
|
||||||
bfd_byte r_type[1]; /* Relocation type. */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_PCREL_BIG ((unsigned int) 0x80)
|
|
||||||
#define RELOC_STD_BITS_PCREL_LITTLE ((unsigned int) 0x01)
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_LENGTH_BIG ((unsigned int) 0x60)
|
|
||||||
#define RELOC_STD_BITS_LENGTH_SH_BIG 5
|
|
||||||
#define RELOC_STD_BITS_LENGTH_LITTLE ((unsigned int) 0x06)
|
|
||||||
#define RELOC_STD_BITS_LENGTH_SH_LITTLE 1
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_EXTERN_BIG ((unsigned int) 0x10)
|
|
||||||
#define RELOC_STD_BITS_EXTERN_LITTLE ((unsigned int) 0x08)
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_BASEREL_BIG ((unsigned int) 0x08)
|
|
||||||
#define RELOC_STD_BITS_BASEREL_LITTLE ((unsigned int) 0x10)
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_JMPTABLE_BIG ((unsigned int) 0x04)
|
|
||||||
#define RELOC_STD_BITS_JMPTABLE_LITTLE ((unsigned int) 0x20)
|
|
||||||
|
|
||||||
#define RELOC_STD_BITS_RELATIVE_BIG ((unsigned int) 0x02)
|
|
||||||
#define RELOC_STD_BITS_RELATIVE_LITTLE ((unsigned int) 0x40)
|
|
||||||
|
|
||||||
#define RELOC_STD_SIZE (BYTES_IN_WORD + 3 + 1) /* Bytes per relocation entry. */
|
|
||||||
|
|
||||||
struct reloc_std_internal
|
|
||||||
{
|
|
||||||
bfd_vma r_address; /* Address (within segment) to be relocated. */
|
|
||||||
/* The meaning of r_symbolnum depends on r_extern. */
|
|
||||||
unsigned int r_symbolnum:24;
|
|
||||||
/* Nonzero means value is a pc-relative offset
|
|
||||||
and it should be relocated for changes in its own address
|
|
||||||
as well as for changes in the symbol or section specified. */
|
|
||||||
unsigned int r_pcrel:1;
|
|
||||||
/* Length (as exponent of 2) of the field to be relocated.
|
|
||||||
Thus, a value of 2 indicates 1<<2 bytes. */
|
|
||||||
unsigned int r_length:2;
|
|
||||||
/* 1 => relocate with value of symbol.
|
|
||||||
r_symbolnum is the index of the symbol
|
|
||||||
in files the symbol table.
|
|
||||||
0 => relocate with the address of a segment.
|
|
||||||
r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
|
|
||||||
(the N_EXT bit may be set also, but signifies nothing). */
|
|
||||||
unsigned int r_extern:1;
|
|
||||||
/* The next three bits are for SunOS shared libraries, and seem to
|
|
||||||
be undocumented. */
|
|
||||||
unsigned int r_baserel:1; /* Linkage table relative. */
|
|
||||||
unsigned int r_jmptable:1; /* pc-relative to jump table. */
|
|
||||||
unsigned int r_relative:1; /* "relative relocation". */
|
|
||||||
/* unused */
|
|
||||||
unsigned int r_pad:1; /* Padding -- set to zero. */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* EXTENDED RELOCS. */
|
|
||||||
|
|
||||||
struct reloc_ext_external
|
|
||||||
{
|
|
||||||
bfd_byte r_address[BYTES_IN_WORD]; /* Offset of of data to relocate. */
|
|
||||||
bfd_byte r_index[3]; /* Symbol table index of symbol. */
|
|
||||||
bfd_byte r_type[1]; /* Relocation type. */
|
|
||||||
bfd_byte r_addend[BYTES_IN_WORD]; /* Datum addend. */
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifndef RELOC_EXT_BITS_EXTERN_BIG
|
|
||||||
#define RELOC_EXT_BITS_EXTERN_BIG ((unsigned int) 0x80)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef RELOC_EXT_BITS_EXTERN_LITTLE
|
|
||||||
#define RELOC_EXT_BITS_EXTERN_LITTLE ((unsigned int) 0x01)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef RELOC_EXT_BITS_TYPE_BIG
|
|
||||||
#define RELOC_EXT_BITS_TYPE_BIG ((unsigned int) 0x1F)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef RELOC_EXT_BITS_TYPE_SH_BIG
|
|
||||||
#define RELOC_EXT_BITS_TYPE_SH_BIG 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef RELOC_EXT_BITS_TYPE_LITTLE
|
|
||||||
#define RELOC_EXT_BITS_TYPE_LITTLE ((unsigned int) 0xF8)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef RELOC_EXT_BITS_TYPE_SH_LITTLE
|
|
||||||
#define RELOC_EXT_BITS_TYPE_SH_LITTLE 3
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Bytes per relocation entry. */
|
|
||||||
#define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD)
|
|
||||||
|
|
||||||
enum reloc_type
|
|
||||||
{
|
|
||||||
/* Simple relocations. */
|
|
||||||
RELOC_8, /* data[0:7] = addend + sv */
|
|
||||||
RELOC_16, /* data[0:15] = addend + sv */
|
|
||||||
RELOC_32, /* data[0:31] = addend + sv */
|
|
||||||
/* PC-rel displacement. */
|
|
||||||
RELOC_DISP8, /* data[0:7] = addend - pc + sv */
|
|
||||||
RELOC_DISP16, /* data[0:15] = addend - pc + sv */
|
|
||||||
RELOC_DISP32, /* data[0:31] = addend - pc + sv */
|
|
||||||
/* Special. */
|
|
||||||
RELOC_WDISP30, /* data[0:29] = (addend + sv - pc)>>2 */
|
|
||||||
RELOC_WDISP22, /* data[0:21] = (addend + sv - pc)>>2 */
|
|
||||||
RELOC_HI22, /* data[0:21] = (addend + sv)>>10 */
|
|
||||||
RELOC_22, /* data[0:21] = (addend + sv) */
|
|
||||||
RELOC_13, /* data[0:12] = (addend + sv) */
|
|
||||||
RELOC_LO10, /* data[0:9] = (addend + sv) */
|
|
||||||
RELOC_SFA_BASE,
|
|
||||||
RELOC_SFA_OFF13,
|
|
||||||
/* P.I.C. (base-relative). */
|
|
||||||
RELOC_BASE10, /* Not sure - maybe we can do this the */
|
|
||||||
RELOC_BASE13, /* right way now */
|
|
||||||
RELOC_BASE22,
|
|
||||||
/* For some sort of pc-rel P.I.C. (?) */
|
|
||||||
RELOC_PC10,
|
|
||||||
RELOC_PC22,
|
|
||||||
/* P.I.C. jump table. */
|
|
||||||
RELOC_JMP_TBL,
|
|
||||||
/* Reputedly for shared libraries somehow. */
|
|
||||||
RELOC_SEGOFF16,
|
|
||||||
RELOC_GLOB_DAT,
|
|
||||||
RELOC_JMP_SLOT,
|
|
||||||
RELOC_RELATIVE,
|
|
||||||
|
|
||||||
RELOC_11,
|
|
||||||
RELOC_WDISP2_14,
|
|
||||||
RELOC_WDISP19,
|
|
||||||
RELOC_HHI22, /* data[0:21] = (addend + sv) >> 42 */
|
|
||||||
RELOC_HLO10, /* data[0:9] = (addend + sv) >> 32 */
|
|
||||||
|
|
||||||
/* 29K relocation types. */
|
|
||||||
RELOC_JUMPTARG,
|
|
||||||
RELOC_CONST,
|
|
||||||
RELOC_CONSTH,
|
|
||||||
|
|
||||||
/* All the new ones I can think of, for sparc v9. */
|
|
||||||
RELOC_64, /* data[0:63] = addend + sv */
|
|
||||||
RELOC_DISP64, /* data[0:63] = addend - pc + sv */
|
|
||||||
RELOC_WDISP21, /* data[0:20] = (addend + sv - pc)>>2 */
|
|
||||||
RELOC_DISP21, /* data[0:20] = addend - pc + sv */
|
|
||||||
RELOC_DISP14, /* data[0:13] = addend - pc + sv */
|
|
||||||
/* Q .
|
|
||||||
What are the other ones,
|
|
||||||
Since this is a clean slate, can we throw away the ones we dont
|
|
||||||
understand ? Should we sort the values ? What about using a
|
|
||||||
microcode format like the 68k ? */
|
|
||||||
NO_RELOC
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct reloc_internal
|
|
||||||
{
|
|
||||||
bfd_vma r_address; /* Offset of of data to relocate. */
|
|
||||||
long r_index; /* Symbol table index of symbol. */
|
|
||||||
enum reloc_type r_type; /* Relocation type. */
|
|
||||||
bfd_vma r_addend; /* Datum addend. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Q.
|
|
||||||
Should the length of the string table be 4 bytes or 8 bytes ?
|
|
||||||
|
|
||||||
Q.
|
|
||||||
What about archive indexes ? */
|
|
||||||
|
|
||||||
#endif /* __A_OUT_64_H__ */
|
|
@ -1,52 +0,0 @@
|
|||||||
/* archive file definition for GNU software
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* So far this is correct for BSDish archives. Don't forget that
|
|
||||||
files must begin on an even byte boundary. */
|
|
||||||
|
|
||||||
#ifndef __GNU_AR_H__
|
|
||||||
#define __GNU_AR_H__
|
|
||||||
|
|
||||||
/* Note that the usual '\n' in magic strings may translate to different
|
|
||||||
characters, as allowed by ANSI. '\012' has a fixed value, and remains
|
|
||||||
compatible with existing BSDish archives. */
|
|
||||||
|
|
||||||
#define ARMAG "!<arch>\012" /* For COFF and a.out archives */
|
|
||||||
#define ARMAGB "!<bout>\012" /* For b.out archives */
|
|
||||||
#define SARMAG 8
|
|
||||||
#define ARFMAG "`\012"
|
|
||||||
|
|
||||||
/* The ar_date field of the armap (__.SYMDEF) member of an archive
|
|
||||||
must be greater than the modified date of the entire file, or
|
|
||||||
BSD-derived linkers complain. We originally write the ar_date with
|
|
||||||
this offset from the real file's mod-time. After finishing the
|
|
||||||
file, we rewrite ar_date if it's not still greater than the mod date. */
|
|
||||||
|
|
||||||
#define ARMAP_TIME_OFFSET 60
|
|
||||||
|
|
||||||
struct ar_hdr {
|
|
||||||
char ar_name[16]; /* name of this member */
|
|
||||||
char ar_date[12]; /* file mtime */
|
|
||||||
char ar_uid[6]; /* owner uid; printed as decimal */
|
|
||||||
char ar_gid[6]; /* owner gid; printed as decimal */
|
|
||||||
char ar_mode[8]; /* file mode, printed as octal */
|
|
||||||
char ar_size[10]; /* file size, printed as decimal */
|
|
||||||
char ar_fmag[2]; /* should contain ARFMAG */
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* __GNU_AR_H__ */
|
|
@ -1,86 +0,0 @@
|
|||||||
/* a.out specifics for Sequent Symmetry running Dynix 3.x
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef A_OUT_DYNIX3_H
|
|
||||||
#define A_OUT_DYNIX3_H
|
|
||||||
|
|
||||||
#define external_exec dynix_external_exec
|
|
||||||
|
|
||||||
/* struct exec for Dynix 3
|
|
||||||
|
|
||||||
a_gdtbl and a_bootstrap are only for standalone binaries.
|
|
||||||
Shared data fields are not supported by the kernel as of Dynix 3.1,
|
|
||||||
but are supported by Dynix compiler programs. */
|
|
||||||
struct dynix_external_exec
|
|
||||||
{
|
|
||||||
unsigned char e_info[4];
|
|
||||||
unsigned char e_text[4];
|
|
||||||
unsigned char e_data[4];
|
|
||||||
unsigned char e_bss[4];
|
|
||||||
unsigned char e_syms[4];
|
|
||||||
unsigned char e_entry[4];
|
|
||||||
unsigned char e_trsize[4];
|
|
||||||
unsigned char e_drsize[4];
|
|
||||||
unsigned char e_g_code[8];
|
|
||||||
unsigned char e_g_data[8];
|
|
||||||
unsigned char e_g_desc[8];
|
|
||||||
unsigned char e_shdata[4];
|
|
||||||
unsigned char e_shbss[4];
|
|
||||||
unsigned char e_shdrsize[4];
|
|
||||||
unsigned char e_bootstrap[44];
|
|
||||||
unsigned char e_reserved[12];
|
|
||||||
unsigned char e_version[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define EXEC_BYTES_SIZE (128)
|
|
||||||
|
|
||||||
/* All executables under Dynix are demand paged with read-only text,
|
|
||||||
Thus no NMAGIC.
|
|
||||||
|
|
||||||
ZMAGIC has a page of 0s at virtual 0,
|
|
||||||
XMAGIC has an invalid page at virtual 0. */
|
|
||||||
#define OMAGIC 0x12eb /* .o */
|
|
||||||
#define ZMAGIC 0x22eb /* zero @ 0, demand load */
|
|
||||||
#define XMAGIC 0x32eb /* invalid @ 0, demand load */
|
|
||||||
#define SMAGIC 0x42eb /* standalone, not supported here */
|
|
||||||
|
|
||||||
#define N_BADMAG(x) ((OMAGIC != N_MAGIC(x)) && \
|
|
||||||
(ZMAGIC != N_MAGIC(x)) && \
|
|
||||||
(XMAGIC != N_MAGIC(x)) && \
|
|
||||||
(SMAGIC != N_MAGIC(x)))
|
|
||||||
|
|
||||||
#define N_ADDRADJ(x) ((ZMAGIC == N_MAGIC(x) || XMAGIC == N_MAGIC(x)) ? 0x1000 : 0)
|
|
||||||
|
|
||||||
#define N_TXTOFF(x) (EXEC_BYTES_SIZE)
|
|
||||||
#define N_DATOFF(x) (N_TXTOFF(x) + N_TXTSIZE(x))
|
|
||||||
#define N_SHDATOFF(x) (N_DATOFF(x) + (x).a_data)
|
|
||||||
#define N_TRELOFF(x) (N_SHDATOFF(x) + (x).a_shdata)
|
|
||||||
#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize)
|
|
||||||
#define N_SHDRELOFF(x) (N_DRELOFF(x) + (x).a_drsize)
|
|
||||||
#define N_SYMOFF(x) (N_SHDRELOFF(x) + (x).a_shdrsize)
|
|
||||||
#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms)
|
|
||||||
|
|
||||||
#define N_TXTADDR(x) \
|
|
||||||
(((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? 0 \
|
|
||||||
: TEXT_START_ADDR + EXEC_BYTES_SIZE)
|
|
||||||
|
|
||||||
#define N_TXTSIZE(x) \
|
|
||||||
(((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? ((x).a_text) \
|
|
||||||
: ((x).a_text - N_ADDRADJ(x) - EXEC_BYTES_SIZE))
|
|
||||||
|
|
||||||
#endif /* A_OUT_DYNIX3_H */
|
|
@ -1,135 +0,0 @@
|
|||||||
/* Yet Another Try at encapsulating bsd object files in coff.
|
|
||||||
Copyright 1988, 1989, 1991 Free Software Foundation, Inc.
|
|
||||||
Written by Pace Willisson 12/9/88
|
|
||||||
|
|
||||||
This file is obsolete. It needs to be converted to just define a bunch
|
|
||||||
of stuff that BFD can use to do coff-encapsulated files. --gnu@cygnus.com
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We only use the coff headers to tell the kernel
|
|
||||||
* how to exec the file. Therefore, the only fields that need to
|
|
||||||
* be filled in are the scnptr and vaddr for the text and data
|
|
||||||
* sections, and the vaddr for the bss. As far as coff is concerned,
|
|
||||||
* there is no symbol table, relocation, or line numbers.
|
|
||||||
*
|
|
||||||
* A normal bsd header (struct exec) is placed after the coff headers,
|
|
||||||
* and before the real text. I defined a the new fields 'a_machtype'
|
|
||||||
* and a_flags. If a_machtype is M_386, and a_flags & A_ENCAP is
|
|
||||||
* true, then the bsd header is preceeded by a coff header. Macros
|
|
||||||
* like N_TXTOFF and N_TXTADDR use this field to find the bsd header.
|
|
||||||
*
|
|
||||||
* The only problem is to track down the bsd exec header. The
|
|
||||||
* macros HEADER_OFFSET, etc do this.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define N_FLAGS_COFF_ENCAPSULATE 0x20 /* coff header precedes bsd header */
|
|
||||||
|
|
||||||
/* Describe the COFF header used for encapsulation. */
|
|
||||||
|
|
||||||
struct coffheader
|
|
||||||
{
|
|
||||||
/* filehdr */
|
|
||||||
unsigned short f_magic;
|
|
||||||
unsigned short f_nscns;
|
|
||||||
long f_timdat;
|
|
||||||
long f_symptr;
|
|
||||||
long f_nsyms;
|
|
||||||
unsigned short f_opthdr;
|
|
||||||
unsigned short f_flags;
|
|
||||||
/* aouthdr */
|
|
||||||
short magic;
|
|
||||||
short vstamp;
|
|
||||||
long tsize;
|
|
||||||
long dsize;
|
|
||||||
long bsize;
|
|
||||||
long entry;
|
|
||||||
long text_start;
|
|
||||||
long data_start;
|
|
||||||
struct coffscn
|
|
||||||
{
|
|
||||||
char s_name[8];
|
|
||||||
long s_paddr;
|
|
||||||
long s_vaddr;
|
|
||||||
long s_size;
|
|
||||||
long s_scnptr;
|
|
||||||
long s_relptr;
|
|
||||||
long s_lnnoptr;
|
|
||||||
unsigned short s_nreloc;
|
|
||||||
unsigned short s_nlnno;
|
|
||||||
long s_flags;
|
|
||||||
} scns[3];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Describe some of the parameters of the encapsulation,
|
|
||||||
including how to find the encapsulated BSD header. */
|
|
||||||
|
|
||||||
/* FIXME, this is dumb. The same tools can't handle a.outs for different
|
|
||||||
architectures, just because COFF_MAGIC is different; so you need a
|
|
||||||
separate GNU nm for every architecture!!? Unfortunately, it needs to
|
|
||||||
be this way, since the COFF_MAGIC value is determined by the kernel
|
|
||||||
we're trying to fool here. */
|
|
||||||
|
|
||||||
#define COFF_MAGIC_I386 0514 /* I386MAGIC */
|
|
||||||
#define COFF_MAGIC_M68K 0520 /* MC68MAGIC */
|
|
||||||
#define COFF_MAGIC_A29K 0x17A /* Used by asm29k cross-tools */
|
|
||||||
|
|
||||||
#ifdef COFF_MAGIC
|
|
||||||
short __header_offset_temp;
|
|
||||||
#define HEADER_OFFSET(f) \
|
|
||||||
(__header_offset_temp = 0, \
|
|
||||||
fread ((char *)&__header_offset_temp, sizeof (short), 1, (f)), \
|
|
||||||
fseek ((f), -sizeof (short), 1), \
|
|
||||||
__header_offset_temp==COFF_MAGIC ? sizeof(struct coffheader) : 0)
|
|
||||||
#else
|
|
||||||
#define HEADER_OFFSET(f) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define HEADER_SEEK(f) (fseek ((f), HEADER_OFFSET((f)), 1))
|
|
||||||
|
|
||||||
/* Describe the characteristics of the BSD header
|
|
||||||
that appears inside the encapsulation. */
|
|
||||||
|
|
||||||
/* Encapsulated coff files that are linked ZMAGIC have a text segment
|
|
||||||
offset just past the header (and a matching TXTADDR), excluding
|
|
||||||
the headers from the text segment proper but keeping the physical
|
|
||||||
layout and the virtual memory layout page-aligned.
|
|
||||||
|
|
||||||
Non-encapsulated a.out files that are linked ZMAGIC have a text
|
|
||||||
segment that starts at 0 and an N_TXTADR similarly offset to 0.
|
|
||||||
They too are page-aligned with each other, but they include the
|
|
||||||
a.out header as part of the text.
|
|
||||||
|
|
||||||
The _N_HDROFF gets sizeof struct exec added to it, so we have
|
|
||||||
to compensate here. See <a.out.gnu.h>. */
|
|
||||||
|
|
||||||
#undef _N_HDROFF
|
|
||||||
#undef N_TXTADDR
|
|
||||||
#undef N_DATADDR
|
|
||||||
|
|
||||||
#define _N_HDROFF(x) ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
|
|
||||||
sizeof (struct coffheader) : 0)
|
|
||||||
|
|
||||||
/* Address of text segment in memory after it is loaded. */
|
|
||||||
#define N_TXTADDR(x) \
|
|
||||||
((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
|
|
||||||
sizeof (struct coffheader) + sizeof (struct exec) : 0)
|
|
||||||
#define SEGMENT_SIZE 0x400000
|
|
||||||
|
|
||||||
#define N_DATADDR(x) \
|
|
||||||
((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
|
|
||||||
(SEGMENT_SIZE + ((N_TXTADDR(x)+(x).a_text-1) & ~(SEGMENT_SIZE-1))) : \
|
|
||||||
(N_TXTADDR(x)+(x).a_text))
|
|
@ -1,42 +0,0 @@
|
|||||||
/* host.h - Parameters about the a.out format, based on the host system
|
|
||||||
on which the program is compiled.
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* Address of data segment in memory after it is loaded.
|
|
||||||
It is up to you to define SEGMENT_SIZE on machines not listed here. */
|
|
||||||
#ifndef SEGMENT_SIZE
|
|
||||||
|
|
||||||
#if defined(hp300) || defined(pyr)
|
|
||||||
#define SEGMENT_SIZE page_size
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef sony
|
|
||||||
#define SEGMENT_SIZE 0x1000
|
|
||||||
#endif /* Sony. */
|
|
||||||
|
|
||||||
#ifdef is68k
|
|
||||||
#define SEGMENT_SIZE 0x20000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(m68k) && defined(PORTAR)
|
|
||||||
#define TARGET_PAGE_SIZE 0x400
|
|
||||||
#define SEGMENT_SIZE TARGET_PAGE_SIZE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*!defined(SEGMENT_SIZE)*/
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
|||||||
/* Special version of <a.out.h> for use under hp-ux.
|
|
||||||
Copyright 1988, 1991 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* THIS FILE IS OBSOLETE. It needs to be revised as a variant "external"
|
|
||||||
a.out format for use with BFD. */
|
|
||||||
|
|
||||||
/* The `exec' structure and overall layout must be close to HP's when
|
|
||||||
we are running on an HP system, otherwise we will not be able to
|
|
||||||
execute the resulting file. */
|
|
||||||
|
|
||||||
/* Allow this file to be included twice. */
|
|
||||||
#ifndef __GNU_EXEC_MACROS__
|
|
||||||
|
|
||||||
struct exec
|
|
||||||
{
|
|
||||||
unsigned short a_machtype; /* machine type */
|
|
||||||
unsigned short a_magic; /* magic number */
|
|
||||||
unsigned long a_spare1;
|
|
||||||
unsigned long a_spare2;
|
|
||||||
unsigned long a_text; /* length of text, in bytes */
|
|
||||||
unsigned long a_data; /* length of data, in bytes */
|
|
||||||
unsigned long a_bss; /* length of uninitialized data area for file, in bytes */
|
|
||||||
unsigned long a_trsize; /* length of relocation info for text, in bytes */
|
|
||||||
unsigned long a_drsize; /* length of relocation info for data, in bytes */
|
|
||||||
unsigned long a_spare3; /* HP = pascal interface size */
|
|
||||||
unsigned long a_spare4; /* HP = symbol table size */
|
|
||||||
unsigned long a_spare5; /* HP = debug name table size */
|
|
||||||
unsigned long a_entry; /* start address */
|
|
||||||
unsigned long a_spare6; /* HP = source line table size */
|
|
||||||
unsigned long a_spare7; /* HP = value table size */
|
|
||||||
unsigned long a_syms; /* length of symbol table data in file, in bytes */
|
|
||||||
unsigned long a_spare8;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Tell a.out.gnu.h not to define `struct exec'. */
|
|
||||||
#define __STRUCT_EXEC_OVERRIDE__
|
|
||||||
|
|
||||||
#include "../a.out.gnu.h"
|
|
||||||
|
|
||||||
#undef N_MAGIC
|
|
||||||
#undef N_MACHTYPE
|
|
||||||
#undef N_FLAGS
|
|
||||||
#undef N_SET_INFO
|
|
||||||
#undef N_SET_MAGIC
|
|
||||||
#undef N_SET_MACHTYPE
|
|
||||||
#undef N_SET_FLAGS
|
|
||||||
|
|
||||||
#define N_MAGIC(exec) ((exec) . a_magic)
|
|
||||||
#define N_MACHTYPE(exec) ((exec) . a_machtype)
|
|
||||||
#define N_SET_MAGIC(exec, magic) (((exec) . a_magic) = (magic))
|
|
||||||
#define N_SET_MACHTYPE(exec, machtype) (((exec) . a_machtype) = (machtype))
|
|
||||||
|
|
||||||
#undef N_BADMAG
|
|
||||||
#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x)))
|
|
||||||
|
|
||||||
#define _N_BADMACH(x) \
|
|
||||||
(((N_MACHTYPE (x)) != HP9000S200_ID) && \
|
|
||||||
((N_MACHTYPE (x)) != HP98x6_ID))
|
|
||||||
|
|
||||||
#define HP98x6_ID 0x20A
|
|
||||||
#define HP9000S200_ID 0x20C
|
|
||||||
|
|
||||||
#undef _N_HDROFF
|
|
||||||
#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec)))
|
|
||||||
|
|
||||||
#define SEGMENT_SIZE 0x1000
|
|
||||||
|
|
||||||
#endif /* __GNU_EXEC_MACROS__ */
|
|
@ -1,119 +0,0 @@
|
|||||||
/* Special version of <a.out.h> for use under hp-ux.
|
|
||||||
Copyright 1988, 1993, 1995, 2001 Free Software Foundation, Inc. */
|
|
||||||
|
|
||||||
struct hp300hpux_exec_bytes
|
|
||||||
{
|
|
||||||
unsigned char e_info[4]; /* a_machtype/a_magic */
|
|
||||||
unsigned char e_spare1[4];
|
|
||||||
unsigned char e_spare2[4];
|
|
||||||
unsigned char e_text[4]; /* length of text, in bytes */
|
|
||||||
unsigned char e_data[4]; /* length of data, in bytes */
|
|
||||||
unsigned char e_bss[4]; /* length of uninitialized data area , in bytes */
|
|
||||||
unsigned char e_trsize[4]; /* length of relocation info for text, in bytes*/
|
|
||||||
unsigned char e_drsize[4]; /* length of relocation info for data, in bytes*/
|
|
||||||
unsigned char e_passize[4];/* HP = pascal interface size */
|
|
||||||
unsigned char e_syms[4]; /* HP = symbol table size */
|
|
||||||
unsigned char e_spare5[4]; /* HP = debug name table size */
|
|
||||||
unsigned char e_entry[4]; /* start address */
|
|
||||||
unsigned char e_spare6[4]; /* HP = source line table size */
|
|
||||||
unsigned char e_supsize[4];/* HP = value table size */
|
|
||||||
unsigned char e_drelocs[4];
|
|
||||||
unsigned char e_extension[4]; /* file offset of extension */
|
|
||||||
};
|
|
||||||
#define EXEC_BYTES_SIZE 64
|
|
||||||
|
|
||||||
struct hp300hpux_nlist_bytes
|
|
||||||
{
|
|
||||||
unsigned char e_value[4];
|
|
||||||
unsigned char e_type[1];
|
|
||||||
unsigned char e_length[1]; /* length of ascii symbol name */
|
|
||||||
unsigned char e_almod[2]; /* alignment mod */
|
|
||||||
unsigned char e_shlib[2]; /* info about dynamic linking */
|
|
||||||
};
|
|
||||||
#define EXTERNAL_NLIST_SIZE 10
|
|
||||||
|
|
||||||
struct hp300hpux_reloc
|
|
||||||
{
|
|
||||||
unsigned char r_address[4];/* offset of of data to relocate */
|
|
||||||
unsigned char r_index[2]; /* symbol table index of symbol */
|
|
||||||
unsigned char r_type[1]; /* relocation type */
|
|
||||||
unsigned char r_length[1]; /* length of item to reloc */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct hp300hpux_header_extension
|
|
||||||
{
|
|
||||||
unsigned char e_syms[4];
|
|
||||||
unsigned char unique_headers[12*4];
|
|
||||||
unsigned char e_header[2]; /* type of header */
|
|
||||||
unsigned char e_version[2]; /* version */
|
|
||||||
unsigned char e_size[4]; /* bytes following*/
|
|
||||||
unsigned char e_extension[4];/* file offset of next extension */
|
|
||||||
};
|
|
||||||
#define EXTERNAL_EXTENSION_HEADER_SIZE (16*4)
|
|
||||||
|
|
||||||
/* hpux separates object files (0x106) and impure executables (0x107) */
|
|
||||||
/* but the bfd code does not distinguish between them. Since we want to*/
|
|
||||||
/* read hpux .o files, we add an special define and use it below in */
|
|
||||||
/* offset and address calculations. */
|
|
||||||
|
|
||||||
#define HPUX_DOT_O_MAGIC 0x106
|
|
||||||
#define OMAGIC 0x107 /* object file or impure executable. */
|
|
||||||
#define NMAGIC 0x108 /* Code indicating pure executable. */
|
|
||||||
#define ZMAGIC 0x10B /* demand-paged executable. */
|
|
||||||
|
|
||||||
#define N_HEADER_IN_TEXT(x) 0
|
|
||||||
|
|
||||||
#if 0 /* libaout.h only uses the lower 8 bits */
|
|
||||||
#define HP98x6_ID 0x20A
|
|
||||||
#define HP9000S200_ID 0x20C
|
|
||||||
#endif
|
|
||||||
#define HP98x6_ID 0x0A
|
|
||||||
#define HP9000S200_ID 0x0C
|
|
||||||
|
|
||||||
#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x)))
|
|
||||||
|
|
||||||
#define N_DATADDR(x) \
|
|
||||||
((N_MAGIC (x) == OMAGIC || N_MAGIC (x) == HPUX_DOT_O_MAGIC) \
|
|
||||||
? (N_TXTADDR (x) + N_TXTSIZE (x)) \
|
|
||||||
: (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \
|
|
||||||
& ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
|
|
||||||
|
|
||||||
#define _N_BADMACH(x) \
|
|
||||||
(((N_MACHTYPE (x)) != HP9000S200_ID) && ((N_MACHTYPE (x)) != HP98x6_ID))
|
|
||||||
|
|
||||||
#define _N_BADMAG(x) (N_MAGIC(x) != HPUX_DOT_O_MAGIC \
|
|
||||||
&& N_MAGIC(x) != OMAGIC \
|
|
||||||
&& N_MAGIC(x) != NMAGIC \
|
|
||||||
&& N_MAGIC(x) != ZMAGIC )
|
|
||||||
|
|
||||||
#undef _N_HDROFF
|
|
||||||
#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec)))
|
|
||||||
|
|
||||||
#undef N_DATOFF
|
|
||||||
#undef N_PASOFF
|
|
||||||
#undef N_SYMOFF
|
|
||||||
#undef N_SUPOFF
|
|
||||||
#undef N_TRELOFF
|
|
||||||
#undef N_DRELOFF
|
|
||||||
#undef N_STROFF
|
|
||||||
|
|
||||||
#define N_DATOFF(x) ( N_TXTOFF(x) + N_TXTSIZE(x) )
|
|
||||||
#define N_PASOFF(x) ( N_DATOFF(x) + (x).a_data)
|
|
||||||
#define N_SYMOFF(x) ( N_PASOFF(x) /* + (x).a_passize*/ )
|
|
||||||
#define N_SUPOFF(x) ( N_SYMOFF(x) + (x).a_syms )
|
|
||||||
#define N_TRELOFF(x) ( N_SUPOFF(x) /* + 0 (x).a_supsize*/ )
|
|
||||||
#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize )
|
|
||||||
#define N_EXTHOFF(x) ( N_DRELOFF(x) /* + 0 (x).a_drsize */)
|
|
||||||
#define N_STROFF(x) ( 0 /* no string table */ )
|
|
||||||
|
|
||||||
/* use these when the file has gnu symbol tables */
|
|
||||||
#define N_GNU_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
|
|
||||||
#define N_GNU_DRELOFF(x) (N_GNU_TRELOFF(x) + (x).a_trsize)
|
|
||||||
#define N_GNU_SYMOFF(x) (N_GNU_DRELOFF(x) + (x).a_drsize)
|
|
||||||
|
|
||||||
#define TARGET_PAGE_SIZE 0x1000
|
|
||||||
#define SEGMENT_SIZE 0x1000
|
|
||||||
#define TEXT_START_ADDR 0
|
|
||||||
|
|
||||||
#undef N_SHARED_LIB
|
|
||||||
#define N_SHARED_LIB(x) ( 0 /* no shared libraries */ )
|
|
@ -1,7 +0,0 @@
|
|||||||
#include "filehdr.h"
|
|
||||||
#include "aouthdr.h"
|
|
||||||
#include "scnhdr.h"
|
|
||||||
#include "spacehdr.h"
|
|
||||||
#include "syms.h"
|
|
||||||
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
|||||||
/* ranlib.h -- archive library index member definition for GNU.
|
|
||||||
Copyright 1990, 1991 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* The Symdef member of an archive contains two things:
|
|
||||||
a table that maps symbol-string offsets to file offsets,
|
|
||||||
and a symbol-string table. All the symbol names are
|
|
||||||
run together (each with trailing null) in the symbol-string
|
|
||||||
table. There is a single longword bytecount on the front
|
|
||||||
of each of these tables. Thus if we have two symbols,
|
|
||||||
"foo" and "_bar", that are in archive members at offsets
|
|
||||||
200 and 900, it would look like this:
|
|
||||||
16 ; byte count of index table
|
|
||||||
0 ; offset of "foo" in string table
|
|
||||||
200 ; offset of foo-module in file
|
|
||||||
4 ; offset of "bar" in string table
|
|
||||||
900 ; offset of bar-module in file
|
|
||||||
9 ; byte count of string table
|
|
||||||
"foo\0_bar\0" ; string table */
|
|
||||||
|
|
||||||
#define RANLIBMAG "__.SYMDEF" /* Archive file name containing index */
|
|
||||||
#define RANLIBSKEW 3 /* Creation time offset */
|
|
||||||
|
|
||||||
/* Format of __.SYMDEF:
|
|
||||||
First, a longword containing the size of the 'symdef' data that follows.
|
|
||||||
Second, zero or more 'symdef' structures.
|
|
||||||
Third, a longword containing the length of symbol name strings.
|
|
||||||
Fourth, zero or more symbol name strings (each followed by a null). */
|
|
||||||
|
|
||||||
struct symdef
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
unsigned long string_offset; /* In the file */
|
|
||||||
char *name; /* In memory, sometimes */
|
|
||||||
} s;
|
|
||||||
/* this points to the front of the file header (AKA member header --
|
|
||||||
a struct ar_hdr), not to the front of the file or into the file).
|
|
||||||
in other words it only tells you which file to read */
|
|
||||||
unsigned long file_offset;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Compatability with BSD code */
|
|
||||||
|
|
||||||
#define ranlib symdef
|
|
||||||
#define ran_un s
|
|
||||||
#define ran_strx string_offset
|
|
||||||
#define ran_name name
|
|
||||||
#define ran_off file_offset
|
|
@ -1,66 +0,0 @@
|
|||||||
/* reloc.h -- Header file for relocation information.
|
|
||||||
Copyright 1989, 1990, 1991 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* Relocation types for a.out files using reloc_info_extended
|
|
||||||
(SPARC and AMD 29000). */
|
|
||||||
|
|
||||||
#ifndef _RELOC_H_READ_
|
|
||||||
#define _RELOC_H_READ_ 1
|
|
||||||
|
|
||||||
enum reloc_type
|
|
||||||
{
|
|
||||||
RELOC_8, RELOC_16, RELOC_32, /* simple relocations */
|
|
||||||
RELOC_DISP8, RELOC_DISP16, RELOC_DISP32, /* pc-rel displacement */
|
|
||||||
RELOC_WDISP30, RELOC_WDISP22,
|
|
||||||
RELOC_HI22, RELOC_22,
|
|
||||||
RELOC_13, RELOC_LO10,
|
|
||||||
RELOC_SFA_BASE, RELOC_SFA_OFF13,
|
|
||||||
RELOC_BASE10, RELOC_BASE13, RELOC_BASE22, /* P.I.C. (base-relative) */
|
|
||||||
RELOC_PC10, RELOC_PC22, /* for some sort of pc-rel P.I.C. (?) */
|
|
||||||
RELOC_JMP_TBL, /* P.I.C. jump table */
|
|
||||||
RELOC_SEGOFF16, /* reputedly for shared libraries somehow */
|
|
||||||
RELOC_GLOB_DAT, RELOC_JMP_SLOT, RELOC_RELATIVE,
|
|
||||||
RELOC_11,
|
|
||||||
RELOC_WDISP2_14,
|
|
||||||
RELOC_WDISP19,
|
|
||||||
RELOC_HHI22,
|
|
||||||
RELOC_HLO10,
|
|
||||||
|
|
||||||
/* 29K relocation types */
|
|
||||||
RELOC_JUMPTARG, RELOC_CONST, RELOC_CONSTH,
|
|
||||||
|
|
||||||
RELOC_WDISP14, RELOC_WDISP21,
|
|
||||||
|
|
||||||
NO_RELOC
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC_TYPE_NAMES \
|
|
||||||
"8", "16", "32", "DISP8", \
|
|
||||||
"DISP16", "DISP32", "WDISP30", "WDISP22", \
|
|
||||||
"HI22", "22", "13", "LO10", \
|
|
||||||
"SFA_BASE", "SFAOFF13", "BASE10", "BASE13", \
|
|
||||||
"BASE22", "PC10", "PC22", "JMP_TBL", \
|
|
||||||
"SEGOFF16", "GLOB_DAT", "JMP_SLOT", "RELATIVE", \
|
|
||||||
"11", "WDISP2_14", "WDISP19", "HHI22", \
|
|
||||||
"HLO10", \
|
|
||||||
"JUMPTARG", "CONST", "CONSTH", "WDISP14", \
|
|
||||||
"WDISP21", \
|
|
||||||
"NO_RELOC"
|
|
||||||
|
|
||||||
#endif /* _RELOC_H_READ_ */
|
|
||||||
|
|
||||||
/* end of reloc.h */
|
|
@ -1,268 +0,0 @@
|
|||||||
/* Table of DBX symbol codes for the GNU system.
|
|
||||||
Copyright 1988, 1991, 1992, 1993, 1994, 1996, 1998
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* New stab from Solaris 2. This uses an n_type of 0, which in a.out files
|
|
||||||
overlaps the N_UNDF used for ordinary symbols. In ELF files, the
|
|
||||||
debug information is in a different file section, so there is no conflict.
|
|
||||||
This symbol's n_value gives the size of the string section associated
|
|
||||||
with this file. The symbol's n_strx (relative to the just-updated
|
|
||||||
string section start address) gives the name of the source file,
|
|
||||||
e.g. "foo.c", without any path information. The symbol's n_desc gives
|
|
||||||
the count of upcoming symbols associated with this file (not including
|
|
||||||
this one). */
|
|
||||||
/* __define_stab (N_UNDF, 0x00, "UNDF") */
|
|
||||||
|
|
||||||
/* Global variable. Only the name is significant.
|
|
||||||
To find the address, look in the corresponding external symbol. */
|
|
||||||
__define_stab (N_GSYM, 0x20, "GSYM")
|
|
||||||
|
|
||||||
/* Function name for BSD Fortran. Only the name is significant.
|
|
||||||
To find the address, look in the corresponding external symbol. */
|
|
||||||
__define_stab (N_FNAME, 0x22, "FNAME")
|
|
||||||
|
|
||||||
/* Function name or text-segment variable for C. Value is its address.
|
|
||||||
Desc is supposedly starting line number, but GCC doesn't set it
|
|
||||||
and DBX seems not to miss it. */
|
|
||||||
__define_stab (N_FUN, 0x24, "FUN")
|
|
||||||
|
|
||||||
/* Data-segment variable with internal linkage. Value is its address.
|
|
||||||
"Static Sym". */
|
|
||||||
__define_stab (N_STSYM, 0x26, "STSYM")
|
|
||||||
|
|
||||||
/* BSS-segment variable with internal linkage. Value is its address. */
|
|
||||||
__define_stab (N_LCSYM, 0x28, "LCSYM")
|
|
||||||
|
|
||||||
/* Name of main routine. Only the name is significant. */
|
|
||||||
__define_stab (N_MAIN, 0x2a, "MAIN")
|
|
||||||
|
|
||||||
/* Solaris2: Read-only data symbols. */
|
|
||||||
__define_stab (N_ROSYM, 0x2c, "ROSYM")
|
|
||||||
|
|
||||||
/* Global symbol in Pascal.
|
|
||||||
Supposedly the value is its line number; I'm skeptical. */
|
|
||||||
__define_stab (N_PC, 0x30, "PC")
|
|
||||||
|
|
||||||
/* Number of symbols: 0, files,,funcs,lines according to Ultrix V4.0. */
|
|
||||||
__define_stab (N_NSYMS, 0x32, "NSYMS")
|
|
||||||
|
|
||||||
/* "No DST map for sym: name, ,0,type,ignored" according to Ultrix V4.0. */
|
|
||||||
__define_stab (N_NOMAP, 0x34, "NOMAP")
|
|
||||||
|
|
||||||
/* New stab from Solaris 2. Like N_SO, but for the object file. Two in
|
|
||||||
a row provide the build directory and the relative path of the .o from it.
|
|
||||||
Solaris2 uses this to avoid putting the stabs info into the linked
|
|
||||||
executable; this stab goes into the ".stab.index" section, and the debugger
|
|
||||||
reads the real stabs directly from the .o files instead. */
|
|
||||||
__define_stab (N_OBJ, 0x38, "OBJ")
|
|
||||||
|
|
||||||
/* New stab from Solaris 2. Options for the debugger, related to the
|
|
||||||
source language for this module. E.g. whether to use ANSI
|
|
||||||
integral promotions or traditional integral promotions. */
|
|
||||||
__define_stab (N_OPT, 0x3c, "OPT")
|
|
||||||
|
|
||||||
/* Register variable. Value is number of register. */
|
|
||||||
__define_stab (N_RSYM, 0x40, "RSYM")
|
|
||||||
|
|
||||||
/* Modula-2 compilation unit. Can someone say what info it contains? */
|
|
||||||
__define_stab (N_M2C, 0x42, "M2C")
|
|
||||||
|
|
||||||
/* Line number in text segment. Desc is the line number;
|
|
||||||
value is corresponding address. On Solaris2, the line number is
|
|
||||||
relative to the start of the current function. */
|
|
||||||
__define_stab (N_SLINE, 0x44, "SLINE")
|
|
||||||
|
|
||||||
/* Similar, for data segment. */
|
|
||||||
__define_stab (N_DSLINE, 0x46, "DSLINE")
|
|
||||||
|
|
||||||
/* Similar, for bss segment. */
|
|
||||||
__define_stab (N_BSLINE, 0x48, "BSLINE")
|
|
||||||
|
|
||||||
/* Sun's source-code browser stabs. ?? Don't know what the fields are.
|
|
||||||
Supposedly the field is "path to associated .cb file". THIS VALUE
|
|
||||||
OVERLAPS WITH N_BSLINE! */
|
|
||||||
__define_stab_duplicate (N_BROWS, 0x48, "BROWS")
|
|
||||||
|
|
||||||
/* GNU Modula-2 definition module dependency. Value is the modification time
|
|
||||||
of the definition file. Other is non-zero if it is imported with the
|
|
||||||
GNU M2 keyword %INITIALIZE. Perhaps N_M2C can be used if there
|
|
||||||
are enough empty fields? */
|
|
||||||
__define_stab(N_DEFD, 0x4a, "DEFD")
|
|
||||||
|
|
||||||
/* New in Solaris2. Function start/body/end line numbers. */
|
|
||||||
__define_stab(N_FLINE, 0x4C, "FLINE")
|
|
||||||
|
|
||||||
/* THE FOLLOWING TWO STAB VALUES CONFLICT. Happily, one is for Modula-2
|
|
||||||
and one is for C++. Still,... */
|
|
||||||
/* GNU C++ exception variable. Name is variable name. */
|
|
||||||
__define_stab (N_EHDECL, 0x50, "EHDECL")
|
|
||||||
/* Modula2 info "for imc": name,,0,0,0 according to Ultrix V4.0. */
|
|
||||||
__define_stab_duplicate (N_MOD2, 0x50, "MOD2")
|
|
||||||
|
|
||||||
/* GNU C++ `catch' clause. Value is its address. Desc is nonzero if
|
|
||||||
this entry is immediately followed by a CAUGHT stab saying what exception
|
|
||||||
was caught. Multiple CAUGHT stabs means that multiple exceptions
|
|
||||||
can be caught here. If Desc is 0, it means all exceptions are caught
|
|
||||||
here. */
|
|
||||||
__define_stab (N_CATCH, 0x54, "CATCH")
|
|
||||||
|
|
||||||
/* Structure or union element. Value is offset in the structure. */
|
|
||||||
__define_stab (N_SSYM, 0x60, "SSYM")
|
|
||||||
|
|
||||||
/* Solaris2: Last stab emitted for module. */
|
|
||||||
__define_stab (N_ENDM, 0x62, "ENDM")
|
|
||||||
|
|
||||||
/* Name of main source file.
|
|
||||||
Value is starting text address of the compilation.
|
|
||||||
If multiple N_SO's appear, the first to contain a trailing / is the
|
|
||||||
compilation directory. The first to not contain a trailing / is the
|
|
||||||
source file name, relative to the compilation directory. Others (perhaps
|
|
||||||
resulting from cfront) are ignored.
|
|
||||||
On Solaris2, value is undefined, but desc is a source-language code. */
|
|
||||||
|
|
||||||
__define_stab (N_SO, 0x64, "SO")
|
|
||||||
|
|
||||||
/* SunPro F77: Name of alias. */
|
|
||||||
__define_stab (N_ALIAS, 0x6c, "ALIAS")
|
|
||||||
|
|
||||||
/* Automatic variable in the stack. Value is offset from frame pointer.
|
|
||||||
Also used for type descriptions. */
|
|
||||||
__define_stab (N_LSYM, 0x80, "LSYM")
|
|
||||||
|
|
||||||
/* Beginning of an include file. Only Sun uses this.
|
|
||||||
In an object file, only the name is significant.
|
|
||||||
The Sun linker puts data into some of the other fields. */
|
|
||||||
__define_stab (N_BINCL, 0x82, "BINCL")
|
|
||||||
|
|
||||||
/* Name of sub-source file (#include file).
|
|
||||||
Value is starting text address of the compilation. */
|
|
||||||
__define_stab (N_SOL, 0x84, "SOL")
|
|
||||||
|
|
||||||
/* Parameter variable. Value is offset from argument pointer.
|
|
||||||
(On most machines the argument pointer is the same as the frame pointer. */
|
|
||||||
__define_stab (N_PSYM, 0xa0, "PSYM")
|
|
||||||
|
|
||||||
/* End of an include file. No name.
|
|
||||||
This and N_BINCL act as brackets around the file's output.
|
|
||||||
In an object file, there is no significant data in this entry.
|
|
||||||
The Sun linker puts data into some of the fields. */
|
|
||||||
__define_stab (N_EINCL, 0xa2, "EINCL")
|
|
||||||
|
|
||||||
/* Alternate entry point. Value is its address. */
|
|
||||||
__define_stab (N_ENTRY, 0xa4, "ENTRY")
|
|
||||||
|
|
||||||
/* Beginning of lexical block.
|
|
||||||
The desc is the nesting level in lexical blocks.
|
|
||||||
The value is the address of the start of the text for the block.
|
|
||||||
The variables declared inside the block *precede* the N_LBRAC symbol.
|
|
||||||
On Solaris2, the value is relative to the start of the current function. */
|
|
||||||
__define_stab (N_LBRAC, 0xc0, "LBRAC")
|
|
||||||
|
|
||||||
/* Place holder for deleted include file. Replaces a N_BINCL and everything
|
|
||||||
up to the corresponding N_EINCL. The Sun linker generates these when
|
|
||||||
it finds multiple identical copies of the symbols from an include file.
|
|
||||||
This appears only in output from the Sun linker. */
|
|
||||||
__define_stab (N_EXCL, 0xc2, "EXCL")
|
|
||||||
|
|
||||||
/* Modula-2 scope information. Can someone say what info it contains? */
|
|
||||||
__define_stab (N_SCOPE, 0xc4, "SCOPE")
|
|
||||||
|
|
||||||
/* End of a lexical block. Desc matches the N_LBRAC's desc.
|
|
||||||
The value is the address of the end of the text for the block.
|
|
||||||
On Solaris2, the value is relative to the start of the current function. */
|
|
||||||
__define_stab (N_RBRAC, 0xe0, "RBRAC")
|
|
||||||
|
|
||||||
/* Begin named common block. Only the name is significant. */
|
|
||||||
__define_stab (N_BCOMM, 0xe2, "BCOMM")
|
|
||||||
|
|
||||||
/* End named common block. Only the name is significant
|
|
||||||
(and it should match the N_BCOMM). */
|
|
||||||
__define_stab (N_ECOMM, 0xe4, "ECOMM")
|
|
||||||
|
|
||||||
/* Member of a common block; value is offset within the common block.
|
|
||||||
This should occur within a BCOMM/ECOMM pair. */
|
|
||||||
__define_stab (N_ECOML, 0xe8, "ECOML")
|
|
||||||
|
|
||||||
/* Solaris2: Pascal "with" statement: type,,0,0,offset */
|
|
||||||
__define_stab (N_WITH, 0xea, "WITH")
|
|
||||||
|
|
||||||
/* These STAB's are used on Gould systems for Non-Base register symbols
|
|
||||||
or something like that. FIXME. I have assigned the values at random
|
|
||||||
since I don't have a Gould here. Fixups from Gould folk welcome... */
|
|
||||||
__define_stab (N_NBTEXT, 0xF0, "NBTEXT")
|
|
||||||
__define_stab (N_NBDATA, 0xF2, "NBDATA")
|
|
||||||
__define_stab (N_NBBSS, 0xF4, "NBBSS")
|
|
||||||
__define_stab (N_NBSTS, 0xF6, "NBSTS")
|
|
||||||
__define_stab (N_NBLCS, 0xF8, "NBLCS")
|
|
||||||
|
|
||||||
/* Second symbol entry containing a length-value for the preceding entry.
|
|
||||||
The value is the length. */
|
|
||||||
__define_stab (N_LENG, 0xfe, "LENG")
|
|
||||||
|
|
||||||
/* The above information, in matrix format.
|
|
||||||
|
|
||||||
STAB MATRIX
|
|
||||||
_________________________________________________
|
|
||||||
| 00 - 1F are not dbx stab symbols |
|
|
||||||
| In most cases, the low bit is the EXTernal bit|
|
|
||||||
|
|
||||||
| 00 UNDEF | 02 ABS | 04 TEXT | 06 DATA |
|
|
||||||
| 01 |EXT | 03 |EXT | 05 |EXT | 07 |EXT |
|
|
||||||
|
|
||||||
| 08 BSS | 0A INDR | 0C FN_SEQ | 0E WEAKA |
|
|
||||||
| 09 |EXT | 0B | 0D WEAKU | 0F WEAKT |
|
|
||||||
|
|
||||||
| 10 WEAKD | 12 COMM | 14 SETA | 16 SETT |
|
|
||||||
| 11 WEAKB | 13 | 15 | 17 |
|
|
||||||
|
|
||||||
| 18 SETD | 1A SETB | 1C SETV | 1E WARNING|
|
|
||||||
| 19 | 1B | 1D | 1F FN |
|
|
||||||
|
|
||||||
|_______________________________________________|
|
|
||||||
| Debug entries with bit 01 set are unused. |
|
|
||||||
| 20 GSYM | 22 FNAME | 24 FUN | 26 STSYM |
|
|
||||||
| 28 LCSYM | 2A MAIN | 2C ROSYM | 2E |
|
|
||||||
| 30 PC | 32 NSYMS | 34 NOMAP | 36 |
|
|
||||||
| 38 OBJ | 3A | 3C OPT | 3E |
|
|
||||||
| 40 RSYM | 42 M2C | 44 SLINE | 46 DSLINE |
|
|
||||||
| 48 BSLINE*| 4A DEFD | 4C FLINE | 4E |
|
|
||||||
| 50 EHDECL*| 52 | 54 CATCH | 56 |
|
|
||||||
| 58 | 5A | 5C | 5E |
|
|
||||||
| 60 SSYM | 62 ENDM | 64 SO | 66 |
|
|
||||||
| 68 | 6A | 6C ALIAS | 6E |
|
|
||||||
| 70 | 72 | 74 | 76 |
|
|
||||||
| 78 | 7A | 7C | 7E |
|
|
||||||
| 80 LSYM | 82 BINCL | 84 SOL | 86 |
|
|
||||||
| 88 | 8A | 8C | 8E |
|
|
||||||
| 90 | 92 | 94 | 96 |
|
|
||||||
| 98 | 9A | 9C | 9E |
|
|
||||||
| A0 PSYM | A2 EINCL | A4 ENTRY | A6 |
|
|
||||||
| A8 | AA | AC | AE |
|
|
||||||
| B0 | B2 | B4 | B6 |
|
|
||||||
| B8 | BA | BC | BE |
|
|
||||||
| C0 LBRAC | C2 EXCL | C4 SCOPE | C6 |
|
|
||||||
| C8 | CA | CC | CE |
|
|
||||||
| D0 | D2 | D4 | D6 |
|
|
||||||
| D8 | DA | DC | DE |
|
|
||||||
| E0 RBRAC | E2 BCOMM | E4 ECOMM | E6 |
|
|
||||||
| E8 ECOML | EA WITH | EC | EE |
|
|
||||||
| F0 | F2 | F4 | F6 |
|
|
||||||
| F8 | FA | FC | FE LENG |
|
|
||||||
+-----------------------------------------------+
|
|
||||||
* 50 EHDECL is also MOD2.
|
|
||||||
* 48 BSLINE is also BROWS.
|
|
||||||
*/
|
|
@ -1,54 +0,0 @@
|
|||||||
/* gnu_stab.h Definitions for GNU extensions to STABS
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
#ifndef __GNU_STAB__
|
|
||||||
|
|
||||||
/* Indicate the GNU stab.h is in use. */
|
|
||||||
|
|
||||||
#define __GNU_STAB__
|
|
||||||
|
|
||||||
#define __define_stab(NAME, CODE, STRING) NAME=CODE,
|
|
||||||
#define __define_stab_duplicate(NAME, CODE, STRING) NAME=CODE,
|
|
||||||
|
|
||||||
enum __stab_debug_code
|
|
||||||
{
|
|
||||||
#include "aout/stab.def"
|
|
||||||
LAST_UNUSED_STAB_CODE
|
|
||||||
};
|
|
||||||
|
|
||||||
#undef __define_stab
|
|
||||||
|
|
||||||
/* Definitions of "desc" field for N_SO stabs in Solaris2. */
|
|
||||||
|
|
||||||
#define N_SO_AS 1
|
|
||||||
#define N_SO_C 2
|
|
||||||
#define N_SO_ANSI_C 3
|
|
||||||
#define N_SO_CC 4 /* C++ */
|
|
||||||
#define N_SO_FORTRAN 5
|
|
||||||
#define N_SO_PASCAL 6
|
|
||||||
|
|
||||||
/* Solaris2: Floating point type values in basic types. */
|
|
||||||
|
|
||||||
#define NF_NONE 0
|
|
||||||
#define NF_SINGLE 1 /* IEEE 32-bit */
|
|
||||||
#define NF_DOUBLE 2 /* IEEE 64-bit */
|
|
||||||
#define NF_COMPLEX 3 /* Fortran complex */
|
|
||||||
#define NF_COMPLEX16 4 /* Fortran double complex */
|
|
||||||
#define NF_COMPLEX32 5 /* Fortran complex*16 */
|
|
||||||
#define NF_LDOUBLE 6 /* Long double (whatever that is) */
|
|
||||||
|
|
||||||
#endif /* __GNU_STAB_ */
|
|
@ -1,235 +0,0 @@
|
|||||||
/* SPARC-specific values for a.out files
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* Some systems, e.g., AIX, may have defined this in header files already
|
|
||||||
included. */
|
|
||||||
#undef TARGET_PAGE_SIZE
|
|
||||||
#define TARGET_PAGE_SIZE 0x2000 /* 8K. aka NBPG in <sys/param.h> */
|
|
||||||
/* Note that some SPARCs have 4K pages, some 8K, some others. */
|
|
||||||
|
|
||||||
#define SEG_SIZE_SPARC TARGET_PAGE_SIZE
|
|
||||||
#define SEG_SIZE_SUN3 0x20000 /* Resolution of r/w protection hw */
|
|
||||||
|
|
||||||
#define TEXT_START_ADDR TARGET_PAGE_SIZE /* Location 0 is not accessible */
|
|
||||||
#define N_HEADER_IN_TEXT(x) 1
|
|
||||||
|
|
||||||
/* Non-default definitions of the accessor macros... */
|
|
||||||
|
|
||||||
/* Segment size varies on Sun-3 versus Sun-4. */
|
|
||||||
|
|
||||||
#define N_SEGSIZE(x) (N_MACHTYPE(x) == M_SPARC? SEG_SIZE_SPARC: \
|
|
||||||
N_MACHTYPE(x) == M_68020? SEG_SIZE_SUN3: \
|
|
||||||
/* Guess? */ TARGET_PAGE_SIZE)
|
|
||||||
|
|
||||||
/* Virtual Address of text segment from the a.out file. For OMAGIC,
|
|
||||||
(almost always "unlinked .o's" these days), should be zero.
|
|
||||||
Sun added a kludge so that shared libraries linked ZMAGIC get
|
|
||||||
an address of zero if a_entry (!!!) is lower than the otherwise
|
|
||||||
expected text address. These kludges have gotta go!
|
|
||||||
For linked files, should reflect reality if we know it. */
|
|
||||||
|
|
||||||
/* This differs from the version in aout64.h (which we override by defining
|
|
||||||
it here) only for NMAGIC (we return TEXT_START_ADDR+EXEC_BYTES_SIZE;
|
|
||||||
they return 0). */
|
|
||||||
|
|
||||||
#define N_TXTADDR(x) \
|
|
||||||
(N_MAGIC(x)==OMAGIC? 0 \
|
|
||||||
: (N_MAGIC(x) == ZMAGIC && (x).a_entry < TEXT_START_ADDR)? 0 \
|
|
||||||
: TEXT_START_ADDR+EXEC_BYTES_SIZE)
|
|
||||||
|
|
||||||
/* When a file is linked against a shared library on SunOS 4, the
|
|
||||||
dynamic bit in the exec header is set, and the first symbol in the
|
|
||||||
symbol table is __DYNAMIC. Its value is the address of the
|
|
||||||
following structure. */
|
|
||||||
|
|
||||||
struct external_sun4_dynamic
|
|
||||||
{
|
|
||||||
/* The version number of the structure. SunOS 4.1.x creates files
|
|
||||||
with version number 3, which is what this structure is based on.
|
|
||||||
According to gdb, version 2 is similar. I believe that version 2
|
|
||||||
used a different type of procedure linkage table, and there may
|
|
||||||
have been other differences. */
|
|
||||||
bfd_byte ld_version[4];
|
|
||||||
/* The virtual address of a 28 byte structure used in debugging.
|
|
||||||
The contents are filled in at run time by ld.so. */
|
|
||||||
bfd_byte ldd[4];
|
|
||||||
/* The virtual address of another structure with information about
|
|
||||||
how to relocate the executable at run time. */
|
|
||||||
bfd_byte ld[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The size of the debugging structure pointed to by the debugger
|
|
||||||
field of __DYNAMIC. */
|
|
||||||
#define EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE (24)
|
|
||||||
|
|
||||||
/* The structure pointed to by the linker field of __DYNAMIC. As far
|
|
||||||
as I can tell, most of the addresses in this structure are offsets
|
|
||||||
within the file, but some are actually virtual addresses. */
|
|
||||||
|
|
||||||
struct internal_sun4_dynamic_link
|
|
||||||
{
|
|
||||||
/* Linked list of loaded objects. This is filled in at runtime by
|
|
||||||
ld.so and probably by dlopen. */
|
|
||||||
unsigned long ld_loaded;
|
|
||||||
|
|
||||||
/* The address of the list of names of shared objects which must be
|
|
||||||
included at runtime. Each entry in the list is 16 bytes: the 4
|
|
||||||
byte address of the string naming the object (e.g., for -lc this
|
|
||||||
is "c"); 4 bytes of flags--the high bit is whether to search for
|
|
||||||
the object using the library path; the 2 byte major version
|
|
||||||
number; the 2 byte minor version number; the 4 byte address of
|
|
||||||
the next entry in the list (zero if this is the last entry). The
|
|
||||||
version numbers seem to only be non-zero when doing library
|
|
||||||
searching. */
|
|
||||||
unsigned long ld_need;
|
|
||||||
|
|
||||||
/* The address of the path to search for the shared objects which
|
|
||||||
must be included. This points to a string in PATH format which
|
|
||||||
is generated from the -L arguments to the linker. According to
|
|
||||||
the man page, ld.so implicitly adds ${LD_LIBRARY_PATH} to the
|
|
||||||
beginning of this string and /lib:/usr/lib:/usr/local/lib to the
|
|
||||||
end. The string is terminated by a null byte. This field is
|
|
||||||
zero if there is no additional path. */
|
|
||||||
unsigned long ld_rules;
|
|
||||||
|
|
||||||
/* The address of the global offset table. This appears to be a
|
|
||||||
virtual address, not a file offset. The first entry in the
|
|
||||||
global offset table seems to be the virtual address of the
|
|
||||||
sun4_dynamic structure (the same value as the __DYNAMIC symbol).
|
|
||||||
The global offset table is used for PIC code to hold the
|
|
||||||
addresses of variables. A dynamically linked file which does not
|
|
||||||
itself contain PIC code has a four byte global offset table. */
|
|
||||||
unsigned long ld_got;
|
|
||||||
|
|
||||||
/* The address of the procedure linkage table. This appears to be a
|
|
||||||
virtual address, not a file offset.
|
|
||||||
|
|
||||||
On a SPARC, the table is composed of 12 byte entries, each of
|
|
||||||
which consists of three instructions. The first entry is
|
|
||||||
sethi %hi(0),%g1
|
|
||||||
jmp %g1
|
|
||||||
nop
|
|
||||||
These instructions are changed by ld.so into a jump directly into
|
|
||||||
ld.so itself. Each subsequent entry is
|
|
||||||
save %sp, -96, %sp
|
|
||||||
call <address of first entry in procedure linkage table>
|
|
||||||
<reloc_number | 0x01000000>
|
|
||||||
The reloc_number is the number of the reloc to use to resolve
|
|
||||||
this entry. The reloc will be a JMP_SLOT reloc against some
|
|
||||||
symbol that is not defined in this object file but should be
|
|
||||||
defined in a shared object (if it is not, ld.so will report a
|
|
||||||
runtime error and exit). The constant 0x010000000 turns the
|
|
||||||
reloc number into a sethi of %g0, which does nothing since %g0 is
|
|
||||||
hardwired to zero.
|
|
||||||
|
|
||||||
When one of these entries is executed, it winds up calling into
|
|
||||||
ld.so. ld.so looks at the reloc number, available via the return
|
|
||||||
address, to determine which entry this is. It then looks at the
|
|
||||||
reloc and patches up the entry in the table into a sethi and jmp
|
|
||||||
to the real address followed by a nop. This means that the reloc
|
|
||||||
lookup only has to happen once, and it also means that the
|
|
||||||
relocation only needs to be done if the function is actually
|
|
||||||
called. The relocation is expensive because ld.so must look up
|
|
||||||
the symbol by name.
|
|
||||||
|
|
||||||
The size of the procedure linkage table is given by the ld_plt_sz
|
|
||||||
field. */
|
|
||||||
unsigned long ld_plt;
|
|
||||||
|
|
||||||
/* The address of the relocs. These are in the same format as
|
|
||||||
ordinary relocs. Symbol index numbers refer to the symbols
|
|
||||||
pointed to by ld_stab. I think the only way to determine the
|
|
||||||
number of relocs is to assume that all the bytes from ld_rel to
|
|
||||||
ld_hash contain reloc entries. */
|
|
||||||
unsigned long ld_rel;
|
|
||||||
|
|
||||||
/* The address of a hash table of symbols. The hash table has
|
|
||||||
roughly the same number of entries as there are dynamic symbols;
|
|
||||||
I think the only way to get the exact size is to assume that
|
|
||||||
every byte from ld_hash to ld_stab is devoted to the hash table.
|
|
||||||
|
|
||||||
Each entry in the hash table is eight bytes. The first four
|
|
||||||
bytes are a symbol index into the dynamic symbols. The second
|
|
||||||
four bytes are the index of the next hash table entry in the
|
|
||||||
bucket. The ld_buckets field gives the number of buckets, say B.
|
|
||||||
The first B entries in the hash table each start a bucket which
|
|
||||||
is chained through the second four bytes of each entry. A value
|
|
||||||
of zero ends the chain.
|
|
||||||
|
|
||||||
The hash function is simply
|
|
||||||
h = 0;
|
|
||||||
while (*string != '\0')
|
|
||||||
h = (h << 1) + *string++;
|
|
||||||
h &= 0x7fffffff;
|
|
||||||
|
|
||||||
To look up a symbol, compute the hash value of the name. Take
|
|
||||||
the modulos of hash value and the number of buckets. Start at
|
|
||||||
that entry in the hash table. See if the symbol (from the first
|
|
||||||
four bytes of the hash table entry) has the name you are looking
|
|
||||||
for. If not, use the chain field (the second four bytes of the
|
|
||||||
hash table entry) to move on to the next entry in this bucket.
|
|
||||||
If the chain field is zero you have reached the end of the
|
|
||||||
bucket, and the symbol is not in the hash table. */
|
|
||||||
unsigned long ld_hash;
|
|
||||||
|
|
||||||
/* The address of the symbol table. This is a list of
|
|
||||||
external_nlist structures. The string indices are relative to
|
|
||||||
the ld_symbols field. I think the only way to determine the
|
|
||||||
number of symbols is to assume that all the bytes between ld_stab
|
|
||||||
and ld_symbols are external_nlist structures. */
|
|
||||||
unsigned long ld_stab;
|
|
||||||
|
|
||||||
/* I don't know what this is for. It seems to always be zero. */
|
|
||||||
unsigned long ld_stab_hash;
|
|
||||||
|
|
||||||
/* The number of buckets in the hash table. */
|
|
||||||
unsigned long ld_buckets;
|
|
||||||
|
|
||||||
/* The address of the symbol string table. The first string in this
|
|
||||||
string table need not be the empty string. */
|
|
||||||
unsigned long ld_symbols;
|
|
||||||
|
|
||||||
/* The size in bytes of the symbol string table. */
|
|
||||||
unsigned long ld_symb_size;
|
|
||||||
|
|
||||||
/* The size in bytes of the text segment. */
|
|
||||||
unsigned long ld_text;
|
|
||||||
|
|
||||||
/* The size in bytes of the procedure linkage table. */
|
|
||||||
unsigned long ld_plt_sz;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The external form of the structure. */
|
|
||||||
|
|
||||||
struct external_sun4_dynamic_link
|
|
||||||
{
|
|
||||||
bfd_byte ld_loaded[4];
|
|
||||||
bfd_byte ld_need[4];
|
|
||||||
bfd_byte ld_rules[4];
|
|
||||||
bfd_byte ld_got[4];
|
|
||||||
bfd_byte ld_plt[4];
|
|
||||||
bfd_byte ld_rel[4];
|
|
||||||
bfd_byte ld_hash[4];
|
|
||||||
bfd_byte ld_stab[4];
|
|
||||||
bfd_byte ld_stab_hash[4];
|
|
||||||
bfd_byte ld_buckets[4];
|
|
||||||
bfd_byte ld_symbols[4];
|
|
||||||
bfd_byte ld_symb_size[4];
|
|
||||||
bfd_byte ld_text[4];
|
|
||||||
bfd_byte ld_plt_sz[4];
|
|
||||||
};
|
|
@ -1,638 +0,0 @@
|
|||||||
/* bfdlink.h -- header file for BFD link routines
|
|
||||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
|
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef BFDLINK_H
|
|
||||||
#define BFDLINK_H
|
|
||||||
|
|
||||||
/* Which symbols to strip during a link. */
|
|
||||||
enum bfd_link_strip
|
|
||||||
{
|
|
||||||
strip_none, /* Don't strip any symbols. */
|
|
||||||
strip_debugger, /* Strip debugging symbols. */
|
|
||||||
strip_some, /* keep_hash is the list of symbols to keep. */
|
|
||||||
strip_all /* Strip all symbols. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Which local symbols to discard during a link. This is irrelevant
|
|
||||||
if strip_all is used. */
|
|
||||||
enum bfd_link_discard
|
|
||||||
{
|
|
||||||
discard_sec_merge, /* Discard local temporary symbols in SEC_MERGE
|
|
||||||
sections. */
|
|
||||||
discard_none, /* Don't discard any locals. */
|
|
||||||
discard_l, /* Discard local temporary symbols. */
|
|
||||||
discard_all /* Discard all locals. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Describes the type of hash table entry structure being used.
|
|
||||||
Different hash table structure have different fields and so
|
|
||||||
support different linking features. */
|
|
||||||
enum bfd_link_hash_table_type
|
|
||||||
{
|
|
||||||
bfd_link_generic_hash_table,
|
|
||||||
bfd_link_elf_hash_table
|
|
||||||
};
|
|
||||||
|
|
||||||
/* These are the possible types of an entry in the BFD link hash
|
|
||||||
table. */
|
|
||||||
|
|
||||||
enum bfd_link_hash_type
|
|
||||||
{
|
|
||||||
bfd_link_hash_new, /* Symbol is new. */
|
|
||||||
bfd_link_hash_undefined, /* Symbol seen before, but undefined. */
|
|
||||||
bfd_link_hash_undefweak, /* Symbol is weak and undefined. */
|
|
||||||
bfd_link_hash_defined, /* Symbol is defined. */
|
|
||||||
bfd_link_hash_defweak, /* Symbol is weak and defined. */
|
|
||||||
bfd_link_hash_common, /* Symbol is common. */
|
|
||||||
bfd_link_hash_indirect, /* Symbol is an indirect link. */
|
|
||||||
bfd_link_hash_warning /* Like indirect, but warn if referenced. */
|
|
||||||
};
|
|
||||||
|
|
||||||
enum bfd_link_common_skip_ar_aymbols
|
|
||||||
{
|
|
||||||
bfd_link_common_skip_none,
|
|
||||||
bfd_link_common_skip_text,
|
|
||||||
bfd_link_common_skip_data,
|
|
||||||
bfd_link_common_skip_all
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The linking routines use a hash table which uses this structure for
|
|
||||||
its elements. */
|
|
||||||
|
|
||||||
struct bfd_link_hash_entry
|
|
||||||
{
|
|
||||||
/* Base hash table entry structure. */
|
|
||||||
struct bfd_hash_entry root;
|
|
||||||
/* Type of this entry. */
|
|
||||||
enum bfd_link_hash_type type;
|
|
||||||
|
|
||||||
/* Undefined and common symbols are kept in a linked list through
|
|
||||||
this field. This field is not in the union because that would
|
|
||||||
force us to remove entries from the list when we changed their
|
|
||||||
type, which would force the list to be doubly linked, which would
|
|
||||||
waste more memory. When an undefined or common symbol is
|
|
||||||
created, it should be added to this list, the head of which is in
|
|
||||||
the link hash table itself. As symbols are defined, they need
|
|
||||||
not be removed from the list; anything which reads the list must
|
|
||||||
doublecheck the symbol type.
|
|
||||||
|
|
||||||
Weak symbols are not kept on this list.
|
|
||||||
|
|
||||||
Defined and defweak symbols use this field as a reference marker.
|
|
||||||
If the field is not NULL, or this structure is the tail of the
|
|
||||||
undefined symbol list, the symbol has been referenced. If the
|
|
||||||
symbol is undefined and becomes defined, this field will
|
|
||||||
automatically be non-NULL since the symbol will have been on the
|
|
||||||
undefined symbol list. */
|
|
||||||
struct bfd_link_hash_entry *next;
|
|
||||||
/* A union of information depending upon the type. */
|
|
||||||
union
|
|
||||||
{
|
|
||||||
/* Nothing is kept for bfd_hash_new. */
|
|
||||||
/* bfd_link_hash_undefined, bfd_link_hash_undefweak. */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
bfd *abfd; /* BFD symbol was found in. */
|
|
||||||
} undef;
|
|
||||||
/* bfd_link_hash_defined, bfd_link_hash_defweak. */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
bfd_vma value; /* Symbol value. */
|
|
||||||
asection *section; /* Symbol section. */
|
|
||||||
} def;
|
|
||||||
/* bfd_link_hash_indirect, bfd_link_hash_warning. */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct bfd_link_hash_entry *link; /* Real symbol. */
|
|
||||||
const char *warning; /* Warning (bfd_link_hash_warning only). */
|
|
||||||
} i;
|
|
||||||
/* bfd_link_hash_common. */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
/* The linker needs to know three things about common
|
|
||||||
symbols: the size, the alignment, and the section in
|
|
||||||
which the symbol should be placed. We store the size
|
|
||||||
here, and we allocate a small structure to hold the
|
|
||||||
section and the alignment. The alignment is stored as a
|
|
||||||
power of two. We don't store all the information
|
|
||||||
directly because we don't want to increase the size of
|
|
||||||
the union; this structure is a major space user in the
|
|
||||||
linker. */
|
|
||||||
bfd_size_type size; /* Common symbol size. */
|
|
||||||
struct bfd_link_hash_common_entry
|
|
||||||
{
|
|
||||||
unsigned int alignment_power; /* Alignment. */
|
|
||||||
asection *section; /* Symbol section. */
|
|
||||||
} *p;
|
|
||||||
} c;
|
|
||||||
} u;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This is the link hash table. It is a derived class of
|
|
||||||
bfd_hash_table. */
|
|
||||||
|
|
||||||
struct bfd_link_hash_table
|
|
||||||
{
|
|
||||||
/* The hash table itself. */
|
|
||||||
struct bfd_hash_table table;
|
|
||||||
/* The back end which created this hash table. This indicates the
|
|
||||||
type of the entries in the hash table, which is sometimes
|
|
||||||
important information when linking object files of different
|
|
||||||
types together. */
|
|
||||||
const bfd_target *creator;
|
|
||||||
/* A linked list of undefined and common symbols, linked through the
|
|
||||||
next field in the bfd_link_hash_entry structure. */
|
|
||||||
struct bfd_link_hash_entry *undefs;
|
|
||||||
/* Entries are added to the tail of the undefs list. */
|
|
||||||
struct bfd_link_hash_entry *undefs_tail;
|
|
||||||
/* The type of the ink hash table. */
|
|
||||||
enum bfd_link_hash_table_type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Look up an entry in a link hash table. If FOLLOW is TRUE, this
|
|
||||||
follows bfd_link_hash_indirect and bfd_link_hash_warning links to
|
|
||||||
the real symbol. */
|
|
||||||
extern struct bfd_link_hash_entry *bfd_link_hash_lookup
|
|
||||||
PARAMS ((struct bfd_link_hash_table *, const char *, bfd_boolean create,
|
|
||||||
bfd_boolean copy, bfd_boolean follow));
|
|
||||||
|
|
||||||
/* Look up an entry in the main linker hash table if the symbol might
|
|
||||||
be wrapped. This should only be used for references to an
|
|
||||||
undefined symbol, not for definitions of a symbol. */
|
|
||||||
|
|
||||||
extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup
|
|
||||||
PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean,
|
|
||||||
bfd_boolean, bfd_boolean));
|
|
||||||
|
|
||||||
/* Traverse a link hash table. */
|
|
||||||
extern void bfd_link_hash_traverse
|
|
||||||
PARAMS ((struct bfd_link_hash_table *,
|
|
||||||
bfd_boolean (*) (struct bfd_link_hash_entry *, PTR),
|
|
||||||
PTR));
|
|
||||||
|
|
||||||
/* Add an entry to the undefs list. */
|
|
||||||
extern void bfd_link_add_undef
|
|
||||||
PARAMS ((struct bfd_link_hash_table *, struct bfd_link_hash_entry *));
|
|
||||||
|
|
||||||
struct bfd_sym_chain
|
|
||||||
{
|
|
||||||
struct bfd_sym_chain *next;
|
|
||||||
const char *name;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This structure holds all the information needed to communicate
|
|
||||||
between BFD and the linker when doing a link. */
|
|
||||||
|
|
||||||
struct bfd_link_info
|
|
||||||
{
|
|
||||||
/* TRUE if BFD should generate a relocatable object file. */
|
|
||||||
unsigned int relocateable: 1;
|
|
||||||
|
|
||||||
/* TRUE if BFD should generate relocation information in the final
|
|
||||||
executable. */
|
|
||||||
unsigned int emitrelocations: 1;
|
|
||||||
|
|
||||||
/* TRUE if BFD should generate a "task linked" object file,
|
|
||||||
similar to relocatable but also with globals converted to
|
|
||||||
statics. */
|
|
||||||
unsigned int task_link: 1;
|
|
||||||
|
|
||||||
/* TRUE if BFD should generate a shared object. */
|
|
||||||
unsigned int shared: 1;
|
|
||||||
|
|
||||||
/* TRUE if BFD should pre-bind symbols in a shared object. */
|
|
||||||
unsigned int symbolic: 1;
|
|
||||||
|
|
||||||
/* TRUE if BFD should export all symbols in the dynamic symbol table
|
|
||||||
of an executable, rather than only those used. */
|
|
||||||
unsigned int export_dynamic: 1;
|
|
||||||
|
|
||||||
/* TRUE if shared objects should be linked directly, not shared. */
|
|
||||||
unsigned int static_link: 1;
|
|
||||||
|
|
||||||
/* TRUE if the output file should be in a traditional format. This
|
|
||||||
is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
|
|
||||||
on the output file, but may be checked when reading the input
|
|
||||||
files. */
|
|
||||||
unsigned int traditional_format: 1;
|
|
||||||
|
|
||||||
/* TRUE if we want to produced optimized output files. This might
|
|
||||||
need much more time and therefore must be explicitly selected. */
|
|
||||||
unsigned int optimize: 1;
|
|
||||||
|
|
||||||
/* TRUE if BFD should generate errors for undefined symbols
|
|
||||||
even if generating a shared object. */
|
|
||||||
unsigned int no_undefined: 1;
|
|
||||||
|
|
||||||
/* TRUE if BFD should allow undefined symbols in shared objects even
|
|
||||||
when no_undefined is set to disallow undefined symbols. The net
|
|
||||||
result will be that undefined symbols in regular objects will
|
|
||||||
still trigger an error, but undefined symbols in shared objects
|
|
||||||
will be ignored. The implementation of no_undefined makes the
|
|
||||||
assumption that the runtime linker will choke on undefined
|
|
||||||
symbols. However there is at least one system (BeOS) where
|
|
||||||
undefined symbols in shared libraries is normal since the kernel
|
|
||||||
patches them at load time to select which function is most
|
|
||||||
appropriate for the current architecture. I.E. dynamically
|
|
||||||
select an appropriate memset function. Apparently it is also
|
|
||||||
normal for HPPA shared libraries to have undefined symbols. */
|
|
||||||
unsigned int allow_shlib_undefined: 1;
|
|
||||||
|
|
||||||
/* TRUE if ok to have multiple definition. */
|
|
||||||
unsigned int allow_multiple_definition: 1;
|
|
||||||
|
|
||||||
/* TRUE if ok to have version with no definition. */
|
|
||||||
unsigned int allow_undefined_version: 1;
|
|
||||||
|
|
||||||
/* TRUE if symbols should be retained in memory, FALSE if they
|
|
||||||
should be freed and reread. */
|
|
||||||
unsigned int keep_memory: 1;
|
|
||||||
|
|
||||||
/* TRUE if every symbol should be reported back via the notice
|
|
||||||
callback. */
|
|
||||||
unsigned int notice_all: 1;
|
|
||||||
|
|
||||||
/* TRUE if executable should not contain copy relocs.
|
|
||||||
Setting this true may result in a non-sharable text segment. */
|
|
||||||
unsigned int nocopyreloc: 1;
|
|
||||||
|
|
||||||
/* TRUE if the new ELF dynamic tags are enabled. */
|
|
||||||
unsigned int new_dtags: 1;
|
|
||||||
|
|
||||||
/* TRUE if non-PLT relocs should be merged into one reloc section
|
|
||||||
and sorted so that relocs against the same symbol come together. */
|
|
||||||
unsigned int combreloc: 1;
|
|
||||||
|
|
||||||
/* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
|
|
||||||
should be created. */
|
|
||||||
unsigned int eh_frame_hdr: 1;
|
|
||||||
|
|
||||||
/* TRUE if global symbols in discarded sections should be stripped. */
|
|
||||||
unsigned int strip_discarded: 1;
|
|
||||||
|
|
||||||
/* Which symbols to strip. */
|
|
||||||
enum bfd_link_strip strip;
|
|
||||||
|
|
||||||
/* Which local symbols to discard. */
|
|
||||||
enum bfd_link_discard discard;
|
|
||||||
|
|
||||||
/* Criteria for skipping symbols when detemining
|
|
||||||
whether to include an object from an archive. */
|
|
||||||
enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols;
|
|
||||||
|
|
||||||
/* Function callbacks. */
|
|
||||||
const struct bfd_link_callbacks *callbacks;
|
|
||||||
|
|
||||||
/* Hash table handled by BFD. */
|
|
||||||
struct bfd_link_hash_table *hash;
|
|
||||||
|
|
||||||
/* Hash table of symbols to keep. This is NULL unless strip is
|
|
||||||
strip_some. */
|
|
||||||
struct bfd_hash_table *keep_hash;
|
|
||||||
|
|
||||||
/* Hash table of symbols to report back via the notice callback. If
|
|
||||||
this is NULL, and notice_all is FALSE, then no symbols are
|
|
||||||
reported back. */
|
|
||||||
struct bfd_hash_table *notice_hash;
|
|
||||||
|
|
||||||
/* Hash table of symbols which are being wrapped (the --wrap linker
|
|
||||||
option). If this is NULL, no symbols are being wrapped. */
|
|
||||||
struct bfd_hash_table *wrap_hash;
|
|
||||||
|
|
||||||
/* The list of input BFD's involved in the link. These are chained
|
|
||||||
together via the link_next field. */
|
|
||||||
bfd *input_bfds;
|
|
||||||
|
|
||||||
/* If a symbol should be created for each input BFD, this is section
|
|
||||||
where those symbols should be placed. It must be a section in
|
|
||||||
the output BFD. It may be NULL, in which case no such symbols
|
|
||||||
will be created. This is to support CREATE_OBJECT_SYMBOLS in the
|
|
||||||
linker command language. */
|
|
||||||
asection *create_object_symbols_section;
|
|
||||||
|
|
||||||
/* List of global symbol names that are starting points for marking
|
|
||||||
sections against garbage collection. */
|
|
||||||
struct bfd_sym_chain *gc_sym_list;
|
|
||||||
|
|
||||||
/* If a base output file is wanted, then this points to it */
|
|
||||||
PTR base_file;
|
|
||||||
|
|
||||||
/* The function to call when the executable or shared object is
|
|
||||||
loaded. */
|
|
||||||
const char *init_function;
|
|
||||||
|
|
||||||
/* The function to call when the executable or shared object is
|
|
||||||
unloaded. */
|
|
||||||
const char *fini_function;
|
|
||||||
|
|
||||||
/* If non-zero, specifies that branches which are problematic for the
|
|
||||||
MPC860 C0 (or earlier) should be checked for and modified. It gives the
|
|
||||||
number of bytes that should be checked at the end of each text page. */
|
|
||||||
int mpc860c0;
|
|
||||||
|
|
||||||
/* Non-zero if auto-import thunks for DATA items in pei386 DLLs
|
|
||||||
should be generated/linked against. Set to 1 if this feature
|
|
||||||
is explicitly requested by the user, -1 if enabled by default. */
|
|
||||||
int pei386_auto_import;
|
|
||||||
|
|
||||||
/* Non-zero if runtime relocs for DATA items with non-zero addends
|
|
||||||
in pei386 DLLs should be generated. Set to 1 if this feature
|
|
||||||
is explicitly requested by the user, -1 if enabled by default. */
|
|
||||||
int pei386_runtime_pseudo_reloc;
|
|
||||||
|
|
||||||
/* How many spare .dynamic DT_NULL entries should be added? */
|
|
||||||
unsigned int spare_dynamic_tags;
|
|
||||||
|
|
||||||
/* May be used to set DT_FLAGS for ELF. */
|
|
||||||
bfd_vma flags;
|
|
||||||
|
|
||||||
/* May be used to set DT_FLAGS_1 for ELF. */
|
|
||||||
bfd_vma flags_1;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This structures holds a set of callback functions. These are
|
|
||||||
called by the BFD linker routines. The first argument to each
|
|
||||||
callback function is the bfd_link_info structure being used. Each
|
|
||||||
function returns a boolean value. If the function returns FALSE,
|
|
||||||
then the BFD function which called it will return with a failure
|
|
||||||
indication. */
|
|
||||||
|
|
||||||
struct bfd_link_callbacks
|
|
||||||
{
|
|
||||||
/* A function which is called when an object is added from an
|
|
||||||
archive. ABFD is the archive element being added. NAME is the
|
|
||||||
name of the symbol which caused the archive element to be pulled
|
|
||||||
in. */
|
|
||||||
bfd_boolean (*add_archive_element)
|
|
||||||
PARAMS ((struct bfd_link_info *, bfd *abfd, const char *name));
|
|
||||||
/* A function which is called when a symbol is found with multiple
|
|
||||||
definitions. NAME is the symbol which is defined multiple times.
|
|
||||||
OBFD is the old BFD, OSEC is the old section, OVAL is the old
|
|
||||||
value, NBFD is the new BFD, NSEC is the new section, and NVAL is
|
|
||||||
the new value. OBFD may be NULL. OSEC and NSEC may be
|
|
||||||
bfd_com_section or bfd_ind_section. */
|
|
||||||
bfd_boolean (*multiple_definition)
|
|
||||||
PARAMS ((struct bfd_link_info *, const char *name,
|
|
||||||
bfd *obfd, asection *osec, bfd_vma oval,
|
|
||||||
bfd *nbfd, asection *nsec, bfd_vma nval));
|
|
||||||
/* A function which is called when a common symbol is defined
|
|
||||||
multiple times. NAME is the symbol appearing multiple times.
|
|
||||||
OBFD is the BFD of the existing symbol; it may be NULL if this is
|
|
||||||
not known. OTYPE is the type of the existing symbol, which may
|
|
||||||
be bfd_link_hash_defined, bfd_link_hash_defweak,
|
|
||||||
bfd_link_hash_common, or bfd_link_hash_indirect. If OTYPE is
|
|
||||||
bfd_link_hash_common, OSIZE is the size of the existing symbol.
|
|
||||||
NBFD is the BFD of the new symbol. NTYPE is the type of the new
|
|
||||||
symbol, one of bfd_link_hash_defined, bfd_link_hash_common, or
|
|
||||||
bfd_link_hash_indirect. If NTYPE is bfd_link_hash_common, NSIZE
|
|
||||||
is the size of the new symbol. */
|
|
||||||
bfd_boolean (*multiple_common)
|
|
||||||
PARAMS ((struct bfd_link_info *, const char *name,
|
|
||||||
bfd *obfd, enum bfd_link_hash_type otype, bfd_vma osize,
|
|
||||||
bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize));
|
|
||||||
/* A function which is called to add a symbol to a set. ENTRY is
|
|
||||||
the link hash table entry for the set itself (e.g.,
|
|
||||||
__CTOR_LIST__). RELOC is the relocation to use for an entry in
|
|
||||||
the set when generating a relocateable file, and is also used to
|
|
||||||
get the size of the entry when generating an executable file.
|
|
||||||
ABFD, SEC and VALUE identify the value to add to the set. */
|
|
||||||
bfd_boolean (*add_to_set)
|
|
||||||
PARAMS ((struct bfd_link_info *, struct bfd_link_hash_entry *entry,
|
|
||||||
bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec,
|
|
||||||
bfd_vma value));
|
|
||||||
/* A function which is called when the name of a g++ constructor or
|
|
||||||
destructor is found. This is only called by some object file
|
|
||||||
formats. CONSTRUCTOR is TRUE for a constructor, FALSE for a
|
|
||||||
destructor. This will use BFD_RELOC_CTOR when generating a
|
|
||||||
relocateable file. NAME is the name of the symbol found. ABFD,
|
|
||||||
SECTION and VALUE are the value of the symbol. */
|
|
||||||
bfd_boolean (*constructor)
|
|
||||||
PARAMS ((struct bfd_link_info *, bfd_boolean constructor,
|
|
||||||
const char *name, bfd *abfd, asection *sec, bfd_vma value));
|
|
||||||
/* A function which is called to issue a linker warning. For
|
|
||||||
example, this is called when there is a reference to a warning
|
|
||||||
symbol. WARNING is the warning to be issued. SYMBOL is the name
|
|
||||||
of the symbol which triggered the warning; it may be NULL if
|
|
||||||
there is none. ABFD, SECTION and ADDRESS identify the location
|
|
||||||
which trigerred the warning; either ABFD or SECTION or both may
|
|
||||||
be NULL if the location is not known. */
|
|
||||||
bfd_boolean (*warning)
|
|
||||||
PARAMS ((struct bfd_link_info *, const char *warning, const char *symbol,
|
|
||||||
bfd *abfd, asection *section, bfd_vma address));
|
|
||||||
/* A function which is called when a relocation is attempted against
|
|
||||||
an undefined symbol. NAME is the symbol which is undefined.
|
|
||||||
ABFD, SECTION and ADDRESS identify the location from which the
|
|
||||||
reference is made. FATAL indicates whether an undefined symbol is
|
|
||||||
a fatal error or not. In some cases SECTION may be NULL. */
|
|
||||||
bfd_boolean (*undefined_symbol)
|
|
||||||
PARAMS ((struct bfd_link_info *, const char *name, bfd *abfd,
|
|
||||||
asection *section, bfd_vma address, bfd_boolean fatal));
|
|
||||||
/* A function which is called when a reloc overflow occurs. NAME is
|
|
||||||
the name of the symbol or section the reloc is against,
|
|
||||||
RELOC_NAME is the name of the relocation, and ADDEND is any
|
|
||||||
addend that is used. ABFD, SECTION and ADDRESS identify the
|
|
||||||
location at which the overflow occurs; if this is the result of a
|
|
||||||
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
|
|
||||||
ABFD will be NULL. */
|
|
||||||
bfd_boolean (*reloc_overflow)
|
|
||||||
PARAMS ((struct bfd_link_info *, const char *name, const char *reloc_name,
|
|
||||||
bfd_vma addend, bfd *abfd, asection *section, bfd_vma address));
|
|
||||||
/* A function which is called when a dangerous reloc is performed.
|
|
||||||
The canonical example is an a29k IHCONST reloc which does not
|
|
||||||
follow an IHIHALF reloc. MESSAGE is an appropriate message.
|
|
||||||
ABFD, SECTION and ADDRESS identify the location at which the
|
|
||||||
problem occurred; if this is the result of a
|
|
||||||
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
|
|
||||||
ABFD will be NULL. */
|
|
||||||
bfd_boolean (*reloc_dangerous)
|
|
||||||
PARAMS ((struct bfd_link_info *, const char *message,
|
|
||||||
bfd *abfd, asection *section, bfd_vma address));
|
|
||||||
/* A function which is called when a reloc is found to be attached
|
|
||||||
to a symbol which is not being written out. NAME is the name of
|
|
||||||
the symbol. ABFD, SECTION and ADDRESS identify the location of
|
|
||||||
the reloc; if this is the result of a
|
|
||||||
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
|
|
||||||
ABFD will be NULL. */
|
|
||||||
bfd_boolean (*unattached_reloc)
|
|
||||||
PARAMS ((struct bfd_link_info *, const char *name,
|
|
||||||
bfd *abfd, asection *section, bfd_vma address));
|
|
||||||
/* A function which is called when a symbol in notice_hash is
|
|
||||||
defined or referenced. NAME is the symbol. ABFD, SECTION and
|
|
||||||
ADDRESS are the value of the symbol. If SECTION is
|
|
||||||
bfd_und_section, this is a reference. */
|
|
||||||
bfd_boolean (*notice)
|
|
||||||
PARAMS ((struct bfd_link_info *, const char *name,
|
|
||||||
bfd *abfd, asection *section, bfd_vma address));
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The linker builds link_order structures which tell the code how to
|
|
||||||
include input data in the output file. */
|
|
||||||
|
|
||||||
/* These are the types of link_order structures. */
|
|
||||||
|
|
||||||
enum bfd_link_order_type
|
|
||||||
{
|
|
||||||
bfd_undefined_link_order, /* Undefined. */
|
|
||||||
bfd_indirect_link_order, /* Built from a section. */
|
|
||||||
bfd_data_link_order, /* Set to explicit data. */
|
|
||||||
bfd_section_reloc_link_order, /* Relocate against a section. */
|
|
||||||
bfd_symbol_reloc_link_order /* Relocate against a symbol. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This is the link_order structure itself. These form a chain
|
|
||||||
attached to the section whose contents they are describing. */
|
|
||||||
|
|
||||||
struct bfd_link_order
|
|
||||||
{
|
|
||||||
/* Next link_order in chain. */
|
|
||||||
struct bfd_link_order *next;
|
|
||||||
/* Type of link_order. */
|
|
||||||
enum bfd_link_order_type type;
|
|
||||||
/* Offset within output section. */
|
|
||||||
bfd_vma offset;
|
|
||||||
/* Size within output section. */
|
|
||||||
bfd_size_type size;
|
|
||||||
/* Type specific information. */
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
/* Section to include. If this is used, then
|
|
||||||
section->output_section must be the section the
|
|
||||||
link_order is attached to, section->output_offset must
|
|
||||||
equal the link_order offset field, and section->_raw_size
|
|
||||||
must equal the link_order size field. Maybe these
|
|
||||||
restrictions should be relaxed someday. */
|
|
||||||
asection *section;
|
|
||||||
} indirect;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
/* Size of contents, or zero when contents size == size
|
|
||||||
within output section.
|
|
||||||
A non-zero value allows filling of the output section
|
|
||||||
with an arbitrary repeated pattern. */
|
|
||||||
unsigned int size;
|
|
||||||
/* Data to put into file. */
|
|
||||||
bfd_byte *contents;
|
|
||||||
} data;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
/* Description of reloc to generate. Used for
|
|
||||||
bfd_section_reloc_link_order and
|
|
||||||
bfd_symbol_reloc_link_order. */
|
|
||||||
struct bfd_link_order_reloc *p;
|
|
||||||
} reloc;
|
|
||||||
} u;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* A linker order of type bfd_section_reloc_link_order or
|
|
||||||
bfd_symbol_reloc_link_order means to create a reloc against a
|
|
||||||
section or symbol, respectively. This is used to implement -Ur to
|
|
||||||
generate relocs for the constructor tables. The
|
|
||||||
bfd_link_order_reloc structure describes the reloc that BFD should
|
|
||||||
create. It is similar to a arelent, but I didn't use arelent
|
|
||||||
because the linker does not know anything about most symbols, and
|
|
||||||
any asymbol structure it creates will be partially meaningless.
|
|
||||||
This information could logically be in the bfd_link_order struct,
|
|
||||||
but I didn't want to waste the space since these types of relocs
|
|
||||||
are relatively rare. */
|
|
||||||
|
|
||||||
struct bfd_link_order_reloc
|
|
||||||
{
|
|
||||||
/* Reloc type. */
|
|
||||||
bfd_reloc_code_real_type reloc;
|
|
||||||
|
|
||||||
union
|
|
||||||
{
|
|
||||||
/* For type bfd_section_reloc_link_order, this is the section
|
|
||||||
the reloc should be against. This must be a section in the
|
|
||||||
output BFD, not any of the input BFDs. */
|
|
||||||
asection *section;
|
|
||||||
/* For type bfd_symbol_reloc_link_order, this is the name of the
|
|
||||||
symbol the reloc should be against. */
|
|
||||||
const char *name;
|
|
||||||
} u;
|
|
||||||
|
|
||||||
/* Addend to use. The object file should contain zero. The BFD
|
|
||||||
backend is responsible for filling in the contents of the object
|
|
||||||
file correctly. For some object file formats (e.g., COFF) the
|
|
||||||
addend must be stored into in the object file, and for some
|
|
||||||
(e.g., SPARC a.out) it is kept in the reloc. */
|
|
||||||
bfd_vma addend;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Allocate a new link_order for a section. */
|
|
||||||
extern struct bfd_link_order *bfd_new_link_order PARAMS ((bfd *, asection *));
|
|
||||||
|
|
||||||
/* These structures are used to describe version information for the
|
|
||||||
ELF linker. These structures could be manipulated entirely inside
|
|
||||||
BFD, but it would be a pain. Instead, the regular linker sets up
|
|
||||||
these structures, and then passes them into BFD. */
|
|
||||||
|
|
||||||
/* Regular expressions for a version. */
|
|
||||||
|
|
||||||
struct bfd_elf_version_expr
|
|
||||||
{
|
|
||||||
/* Next regular expression for this version. */
|
|
||||||
struct bfd_elf_version_expr *next;
|
|
||||||
/* Regular expression. */
|
|
||||||
const char *pattern;
|
|
||||||
/* Matching function. */
|
|
||||||
int (*match) PARAMS ((struct bfd_elf_version_expr *, const char *));
|
|
||||||
/* Defined by ".symver". */
|
|
||||||
unsigned int symver: 1;
|
|
||||||
/* Defined by version script. */
|
|
||||||
unsigned int script : 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Version dependencies. */
|
|
||||||
|
|
||||||
struct bfd_elf_version_deps
|
|
||||||
{
|
|
||||||
/* Next dependency for this version. */
|
|
||||||
struct bfd_elf_version_deps *next;
|
|
||||||
/* The version which this version depends upon. */
|
|
||||||
struct bfd_elf_version_tree *version_needed;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* A node in the version tree. */
|
|
||||||
|
|
||||||
struct bfd_elf_version_tree
|
|
||||||
{
|
|
||||||
/* Next version. */
|
|
||||||
struct bfd_elf_version_tree *next;
|
|
||||||
/* Name of this version. */
|
|
||||||
const char *name;
|
|
||||||
/* Version number. */
|
|
||||||
unsigned int vernum;
|
|
||||||
/* Regular expressions for global symbols in this version. */
|
|
||||||
struct bfd_elf_version_expr *globals;
|
|
||||||
/* Regular expressions for local symbols in this version. */
|
|
||||||
struct bfd_elf_version_expr *locals;
|
|
||||||
/* List of versions which this version depends upon. */
|
|
||||||
struct bfd_elf_version_deps *deps;
|
|
||||||
/* Index of the version name. This is used within BFD. */
|
|
||||||
unsigned int name_indx;
|
|
||||||
/* Whether this version tree was used. This is used within BFD. */
|
|
||||||
int used;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,3 +0,0 @@
|
|||||||
#ifndef REPORT_BUGS_TO
|
|
||||||
#define REPORT_BUGS_TO "bug-binutils@gnu.org"
|
|
||||||
#endif
|
|
191
include/bout.h
191
include/bout.h
@ -1,191 +0,0 @@
|
|||||||
/* This file is a modified version of 'a.out.h'. It is to be used in all
|
|
||||||
GNU tools modified to support the i80960 (or tools that operate on
|
|
||||||
object files created by such tools).
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/* All i80960 development is done in a CROSS-DEVELOPMENT environment. I.e.,
|
|
||||||
object code is generated on, and executed under the direction of a symbolic
|
|
||||||
debugger running on, a host system. We do not want to be subject to the
|
|
||||||
vagaries of which host it is or whether it supports COFF or a.out format,
|
|
||||||
or anything else. We DO want to:
|
|
||||||
|
|
||||||
o always generate the same format object files, regardless of host.
|
|
||||||
|
|
||||||
o have an 'a.out' header that we can modify for our own purposes
|
|
||||||
(the 80960 is typically an embedded processor and may require
|
|
||||||
enhanced linker support that the normal a.out.h header can't
|
|
||||||
accommodate).
|
|
||||||
|
|
||||||
As for byte-ordering, the following rules apply:
|
|
||||||
|
|
||||||
o Text and data that is actually downloaded to the target is always
|
|
||||||
in i80960 (little-endian) order.
|
|
||||||
|
|
||||||
o All other numbers (in the header, symbols, relocation directives)
|
|
||||||
are in host byte-order: object files CANNOT be lifted from a
|
|
||||||
little-end host and used on a big-endian (or vice versa) without
|
|
||||||
modification.
|
|
||||||
==> THIS IS NO LONGER TRUE USING BFD. WE CAN GENERATE ANY BYTE ORDER
|
|
||||||
FOR THE HEADER, AND READ ANY BYTE ORDER. PREFERENCE WOULD BE TO
|
|
||||||
USE LITTLE-ENDIAN BYTE ORDER THROUGHOUT, REGARDLESS OF HOST. <==
|
|
||||||
|
|
||||||
o The downloader ('comm960') takes care to generate a pseudo-header
|
|
||||||
with correct (i80960) byte-ordering before shipping text and data
|
|
||||||
off to the NINDY monitor in the target systems. Symbols and
|
|
||||||
relocation info are never sent to the target. */
|
|
||||||
|
|
||||||
#define BMAGIC 0415
|
|
||||||
/* We don't accept the following (see N_BADMAG macro).
|
|
||||||
They're just here so GNU code will compile. */
|
|
||||||
#define OMAGIC 0407 /* old impure format */
|
|
||||||
#define NMAGIC 0410 /* read-only text */
|
|
||||||
#define ZMAGIC 0413 /* demand load format */
|
|
||||||
|
|
||||||
/* FILE HEADER
|
|
||||||
All 'lengths' are given as a number of bytes.
|
|
||||||
All 'alignments' are for relinkable files only; an alignment of
|
|
||||||
'n' indicates the corresponding segment must begin at an
|
|
||||||
address that is a multiple of (2**n). */
|
|
||||||
struct external_exec
|
|
||||||
{
|
|
||||||
/* Standard stuff */
|
|
||||||
unsigned char e_info[4]; /* Identifies this as a b.out file */
|
|
||||||
unsigned char e_text[4]; /* Length of text */
|
|
||||||
unsigned char e_data[4]; /* Length of data */
|
|
||||||
unsigned char e_bss[4]; /* Length of uninitialized data area */
|
|
||||||
unsigned char e_syms[4]; /* Length of symbol table */
|
|
||||||
unsigned char e_entry[4]; /* Runtime start address */
|
|
||||||
unsigned char e_trsize[4]; /* Length of text relocation info */
|
|
||||||
unsigned char e_drsize[4]; /* Length of data relocation info */
|
|
||||||
|
|
||||||
/* Added for i960 */
|
|
||||||
unsigned char e_tload[4]; /* Text runtime load address */
|
|
||||||
unsigned char e_dload[4]; /* Data runtime load address */
|
|
||||||
unsigned char e_talign[1]; /* Alignment of text segment */
|
|
||||||
unsigned char e_dalign[1]; /* Alignment of data segment */
|
|
||||||
unsigned char e_balign[1]; /* Alignment of bss segment */
|
|
||||||
unsigned char e_relaxable[1];/* Assembled with enough info to allow linker to relax */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define EXEC_BYTES_SIZE (sizeof (struct external_exec))
|
|
||||||
|
|
||||||
/* These macros use the a_xxx field names, since they operate on the exec
|
|
||||||
structure after it's been byte-swapped and realigned on the host machine. */
|
|
||||||
#define N_BADMAG(x) (((x).a_info)!=BMAGIC)
|
|
||||||
#define N_TXTOFF(x) EXEC_BYTES_SIZE
|
|
||||||
#define N_DATOFF(x) ( N_TXTOFF(x) + (x).a_text )
|
|
||||||
#define N_TROFF(x) ( N_DATOFF(x) + (x).a_data )
|
|
||||||
#define N_TRELOFF N_TROFF
|
|
||||||
#define N_DROFF(x) ( N_TROFF(x) + (x).a_trsize )
|
|
||||||
#define N_DRELOFF N_DROFF
|
|
||||||
#define N_SYMOFF(x) ( N_DROFF(x) + (x).a_drsize )
|
|
||||||
#define N_STROFF(x) ( N_SYMOFF(x) + (x).a_syms )
|
|
||||||
#define N_DATADDR(x) ( (x).a_dload )
|
|
||||||
|
|
||||||
/* Address of text segment in memory after it is loaded. */
|
|
||||||
#if !defined (N_TXTADDR)
|
|
||||||
#define N_TXTADDR(x) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* A single entry in the symbol table. */
|
|
||||||
struct nlist
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
char* n_name;
|
|
||||||
struct nlist * n_next;
|
|
||||||
long n_strx; /* Index into string table */
|
|
||||||
} n_un;
|
|
||||||
|
|
||||||
unsigned char n_type; /* See below */
|
|
||||||
char n_other; /* Used in i80960 support -- see below */
|
|
||||||
short n_desc;
|
|
||||||
unsigned long n_value;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* Legal values of n_type. */
|
|
||||||
#define N_UNDF 0 /* Undefined symbol */
|
|
||||||
#define N_ABS 2 /* Absolute symbol */
|
|
||||||
#define N_TEXT 4 /* Text symbol */
|
|
||||||
#define N_DATA 6 /* Data symbol */
|
|
||||||
#define N_BSS 8 /* BSS symbol */
|
|
||||||
#define N_FN 31 /* Filename symbol */
|
|
||||||
|
|
||||||
#define N_EXT 1 /* External symbol (OR'd in with one of above) */
|
|
||||||
#define N_TYPE 036 /* Mask for all the type bits */
|
|
||||||
#define N_STAB 0340 /* Mask for all bits used for SDB entries */
|
|
||||||
|
|
||||||
/* MEANING OF 'n_other'
|
|
||||||
|
|
||||||
If non-zero, the 'n_other' fields indicates either a leaf procedure or
|
|
||||||
a system procedure, as follows:
|
|
||||||
|
|
||||||
1 <= n_other <= 32 :
|
|
||||||
The symbol is the entry point to a system procedure.
|
|
||||||
'n_value' is the address of the entry, as for any other
|
|
||||||
procedure. The system procedure number (which can be used in
|
|
||||||
a 'calls' instruction) is (n_other-1). These entries come from
|
|
||||||
'.sysproc' directives.
|
|
||||||
|
|
||||||
n_other == N_CALLNAME
|
|
||||||
the symbol is the 'call' entry point to a leaf procedure.
|
|
||||||
The *next* symbol in the symbol table must be the corresponding
|
|
||||||
'bal' entry point to the procedure (see following). These
|
|
||||||
entries come from '.leafproc' directives in which two different
|
|
||||||
symbols are specified (the first one is represented here).
|
|
||||||
|
|
||||||
|
|
||||||
n_other == N_BALNAME
|
|
||||||
the symbol is the 'bal' entry point to a leaf procedure.
|
|
||||||
These entries result from '.leafproc' directives in which only
|
|
||||||
one symbol is specified, or in which the same symbol is
|
|
||||||
specified twice.
|
|
||||||
|
|
||||||
Note that an N_CALLNAME entry *must* have a corresponding N_BALNAME entry,
|
|
||||||
but not every N_BALNAME entry must have an N_CALLNAME entry. */
|
|
||||||
#define N_CALLNAME ((char)-1)
|
|
||||||
#define N_BALNAME ((char)-2)
|
|
||||||
#define IS_CALLNAME(x) (N_CALLNAME == (x))
|
|
||||||
#define IS_BALNAME(x) (N_BALNAME == (x))
|
|
||||||
#define IS_OTHER(x) ((x)>0 && (x) <=32)
|
|
||||||
|
|
||||||
#define b_out_relocation_info relocation_info
|
|
||||||
struct relocation_info
|
|
||||||
{
|
|
||||||
int r_address; /* File address of item to be relocated. */
|
|
||||||
unsigned
|
|
||||||
#define r_index r_symbolnum
|
|
||||||
r_symbolnum:24, /* Index of symbol on which relocation is based,
|
|
||||||
if r_extern is set. Otherwise set to
|
|
||||||
either N_TEXT, N_DATA, or N_BSS to
|
|
||||||
indicate section on which relocation is
|
|
||||||
based. */
|
|
||||||
r_pcrel:1, /* 1 => relocate PC-relative; else absolute
|
|
||||||
On i960, pc-relative implies 24-bit
|
|
||||||
address, absolute implies 32-bit. */
|
|
||||||
r_length:2, /* Number of bytes to relocate:
|
|
||||||
0 => 1 byte
|
|
||||||
1 => 2 bytes -- used for 13 bit pcrel
|
|
||||||
2 => 4 bytes. */
|
|
||||||
r_extern:1,
|
|
||||||
r_bsr:1, /* Something for the GNU NS32K assembler. */
|
|
||||||
r_disp:1, /* Something for the GNU NS32K assembler. */
|
|
||||||
r_callj:1, /* 1 if relocation target is an i960 'callj'. */
|
|
||||||
r_relaxable:1; /* 1 if enough info is left to relax the data. */
|
|
||||||
};
|
|
File diff suppressed because it is too large
Load Diff
@ -1,148 +0,0 @@
|
|||||||
/* COFF spec for AMD 290*0
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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.
|
|
||||||
|
|
||||||
Contributed by David Wood @ New York University. */
|
|
||||||
|
|
||||||
#ifndef AMD
|
|
||||||
# define AMD
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define L_LNNO_SIZE 2
|
|
||||||
#include "coff/external.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Magic numbers for Am29000
|
|
||||||
** (AT&T will assign the "real" magic number)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define SIPFBOMAGIC 0572 /* Am29000 (Byte 0 is MSB) */
|
|
||||||
#define SIPRBOMAGIC 0573 /* Am29000 (Byte 0 is LSB) */
|
|
||||||
|
|
||||||
#define A29K_MAGIC_BIG SIPFBOMAGIC
|
|
||||||
#define A29K_MAGIC_LITTLE SIPRBOMAGIC
|
|
||||||
#define A29KBADMAG(x) ( ((x).f_magic != A29K_MAGIC_BIG) && \
|
|
||||||
((x).f_magic != A29K_MAGIC_LITTLE))
|
|
||||||
|
|
||||||
#define OMAGIC A29K_MAGIC_BIG
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** File header flags currently known to us.
|
|
||||||
**
|
|
||||||
** Am29000 will use the F_AR32WR and F_AR32W flags to indicate
|
|
||||||
** the byte ordering in the file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
/* aouthdr magic numbers */
|
|
||||||
#define NMAGIC 0410 /* separate i/d executable */
|
|
||||||
#define SHMAGIC 0406 /* NYU/Ultra3 shared data executable
|
|
||||||
(writable text) */
|
|
||||||
#undef _ETEXT
|
|
||||||
#define _ETEXT "_etext"
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
/* More names of "special" sections. */
|
|
||||||
#define _LIT ".lit"
|
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Section types - with additional section type for global
|
|
||||||
** registers which will be relocatable for the Am29000.
|
|
||||||
**
|
|
||||||
** In instances where it is necessary for a linker to produce an
|
|
||||||
** output file which contains text or data not based at virtual
|
|
||||||
** address 0, e.g. for a ROM, then the linker should accept
|
|
||||||
** address base information as command input and use PAD sections
|
|
||||||
** to skip over unused addresses.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define STYP_BSSREG 0x1200 /* Global register area (like STYP_INFO) */
|
|
||||||
#define STYP_ENVIR 0x2200 /* Environment (like STYP_INFO) */
|
|
||||||
#define STYP_ABS 0x4000 /* Absolute (allocated, not reloc, loaded) */
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Relocation information declaration and related definitions
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct external_reloc
|
|
||||||
{
|
|
||||||
char r_vaddr[4]; /* (virtual) address of reference */
|
|
||||||
char r_symndx[4]; /* index into symbol table */
|
|
||||||
char r_type[2]; /* relocation type */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
|
||||||
#define RELSZ 10 /* sizeof (RELOC) */
|
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Relocation types for the Am29000
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define R_ABS 0 /* reference is absolute */
|
|
||||||
|
|
||||||
#define R_IREL 030 /* instruction relative (jmp/call) */
|
|
||||||
#define R_IABS 031 /* instruction absolute (jmp/call) */
|
|
||||||
#define R_ILOHALF 032 /* instruction low half (const) */
|
|
||||||
#define R_IHIHALF 033 /* instruction high half (consth) part 1 */
|
|
||||||
#define R_IHCONST 034 /* instruction high half (consth) part 2 */
|
|
||||||
/* constant offset of R_IHIHALF relocation */
|
|
||||||
#define R_BYTE 035 /* relocatable byte value */
|
|
||||||
#define R_HWORD 036 /* relocatable halfword value */
|
|
||||||
#define R_WORD 037 /* relocatable word value */
|
|
||||||
|
|
||||||
#define R_IGLBLRC 040 /* instruction global register RC */
|
|
||||||
#define R_IGLBLRA 041 /* instruction global register RA */
|
|
||||||
#define R_IGLBLRB 042 /* instruction global register RB */
|
|
||||||
|
|
||||||
/*
|
|
||||||
NOTE:
|
|
||||||
All the "I" forms refer to 29000 instruction formats. The linker is
|
|
||||||
expected to know how the numeric information is split and/or aligned
|
|
||||||
within the instruction word(s). R_BYTE works for instructions, too.
|
|
||||||
|
|
||||||
If the parameter to a CONSTH instruction is a relocatable type, two
|
|
||||||
relocation records are written. The first has an r_type of R_IHIHALF
|
|
||||||
(33 octal) and a normal r_vaddr and r_symndx. The second relocation
|
|
||||||
record has an r_type of R_IHCONST (34 octal), a normal r_vaddr (which
|
|
||||||
is redundant), and an r_symndx containing the 32-bit constant offset
|
|
||||||
to the relocation instead of the actual symbol table index. This
|
|
||||||
second record is always written, even if the constant offset is zero.
|
|
||||||
The constant fields of the instruction are set to zero.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Storage class definitions - new classes for global registers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define C_GLBLREG 19 /* global register */
|
|
||||||
#define C_EXTREG 20 /* external global register */
|
|
||||||
#define C_DEFREG 21 /* ext. def. of global register */
|
|
@ -1,382 +0,0 @@
|
|||||||
/* ECOFF support on Alpha machines.
|
|
||||||
coff/ecoff.h must be included before this file.
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
/********************** FILE HEADER **********************/
|
|
||||||
|
|
||||||
struct external_filehdr
|
|
||||||
{
|
|
||||||
unsigned char f_magic[2]; /* magic number */
|
|
||||||
unsigned char f_nscns[2]; /* number of sections */
|
|
||||||
unsigned char f_timdat[4]; /* time & date stamp */
|
|
||||||
unsigned char f_symptr[8]; /* file pointer to symtab */
|
|
||||||
unsigned char f_nsyms[4]; /* number of symtab entries */
|
|
||||||
unsigned char f_opthdr[2]; /* sizeof(optional hdr) */
|
|
||||||
unsigned char f_flags[2]; /* flags */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Magic numbers are defined in coff/ecoff.h. */
|
|
||||||
#define ALPHA_ECOFF_BADMAG(x) \
|
|
||||||
((x).f_magic != ALPHA_MAGIC && (x).f_magic != ALPHA_MAGIC_BSD)
|
|
||||||
|
|
||||||
/* The object type is encoded in the f_flags. */
|
|
||||||
#define F_ALPHA_OBJECT_TYPE_MASK 0x3000
|
|
||||||
#define F_ALPHA_NO_SHARED 0x1000
|
|
||||||
#define F_ALPHA_SHARABLE 0x2000
|
|
||||||
#define F_ALPHA_CALL_SHARED 0x3000
|
|
||||||
|
|
||||||
#define FILHDR struct external_filehdr
|
|
||||||
#define FILHSZ 24
|
|
||||||
|
|
||||||
/********************** AOUT "OPTIONAL HEADER" **********************/
|
|
||||||
|
|
||||||
typedef struct external_aouthdr
|
|
||||||
{
|
|
||||||
unsigned char magic[2]; /* type of file */
|
|
||||||
unsigned char vstamp[2]; /* version stamp */
|
|
||||||
unsigned char bldrev[2]; /* ?? */
|
|
||||||
unsigned char padding[2]; /* pad to quadword boundary */
|
|
||||||
unsigned char tsize[8]; /* text size in bytes */
|
|
||||||
unsigned char dsize[8]; /* initialized data " " */
|
|
||||||
unsigned char bsize[8]; /* uninitialized data " " */
|
|
||||||
unsigned char entry[8]; /* entry pt. */
|
|
||||||
unsigned char text_start[8]; /* base of text used for this file */
|
|
||||||
unsigned char data_start[8]; /* base of data used for this file */
|
|
||||||
unsigned char bss_start[8]; /* base of bss used for this file */
|
|
||||||
unsigned char gprmask[4]; /* bitmask of general registers used */
|
|
||||||
unsigned char fprmask[4]; /* bitmask of floating point registers used */
|
|
||||||
unsigned char gp_value[8]; /* value for gp register */
|
|
||||||
} AOUTHDR;
|
|
||||||
|
|
||||||
/* compute size of a header */
|
|
||||||
|
|
||||||
#define AOUTSZ 80
|
|
||||||
#define AOUTHDRSZ 80
|
|
||||||
|
|
||||||
/********************** SECTION HEADER **********************/
|
|
||||||
|
|
||||||
struct external_scnhdr
|
|
||||||
{
|
|
||||||
unsigned char s_name[8]; /* section name */
|
|
||||||
unsigned char s_paddr[8]; /* physical address, aliased s_nlib */
|
|
||||||
unsigned char s_vaddr[8]; /* virtual address */
|
|
||||||
unsigned char s_size[8]; /* section size */
|
|
||||||
unsigned char s_scnptr[8]; /* file ptr to raw data for section */
|
|
||||||
unsigned char s_relptr[8]; /* file ptr to relocation */
|
|
||||||
unsigned char s_lnnoptr[8]; /* file ptr to line numbers */
|
|
||||||
unsigned char s_nreloc[2]; /* number of relocation entries */
|
|
||||||
unsigned char s_nlnno[2]; /* number of line number entries*/
|
|
||||||
unsigned char s_flags[4]; /* flags */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define SCNHDR struct external_scnhdr
|
|
||||||
#define SCNHSZ 64
|
|
||||||
|
|
||||||
/********************** RELOCATION DIRECTIVES **********************/
|
|
||||||
|
|
||||||
struct external_reloc
|
|
||||||
{
|
|
||||||
unsigned char r_vaddr[8];
|
|
||||||
unsigned char r_symndx[4];
|
|
||||||
unsigned char r_bits[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
|
||||||
#define RELSZ 16
|
|
||||||
|
|
||||||
/* Constants to unpack the r_bits field. The Alpha seems to always be
|
|
||||||
little endian, so I haven't bothered to define big endian variants
|
|
||||||
of these. */
|
|
||||||
|
|
||||||
#define RELOC_BITS0_TYPE_LITTLE 0xff
|
|
||||||
#define RELOC_BITS0_TYPE_SH_LITTLE 0
|
|
||||||
|
|
||||||
#define RELOC_BITS1_EXTERN_LITTLE 0x01
|
|
||||||
|
|
||||||
#define RELOC_BITS1_OFFSET_LITTLE 0x7e
|
|
||||||
#define RELOC_BITS1_OFFSET_SH_LITTLE 1
|
|
||||||
|
|
||||||
#define RELOC_BITS1_RESERVED_LITTLE 0x80
|
|
||||||
#define RELOC_BITS1_RESERVED_SH_LITTLE 7
|
|
||||||
#define RELOC_BITS2_RESERVED_LITTLE 0xff
|
|
||||||
#define RELOC_BITS2_RESERVED_SH_LEFT_LITTLE 1
|
|
||||||
#define RELOC_BITS3_RESERVED_LITTLE 0x03
|
|
||||||
#define RELOC_BITS3_RESERVED_SH_LEFT_LITTLE 9
|
|
||||||
|
|
||||||
#define RELOC_BITS3_SIZE_LITTLE 0xfc
|
|
||||||
#define RELOC_BITS3_SIZE_SH_LITTLE 2
|
|
||||||
|
|
||||||
/* The r_type field in a reloc is one of the following values. */
|
|
||||||
#define ALPHA_R_IGNORE 0
|
|
||||||
#define ALPHA_R_REFLONG 1
|
|
||||||
#define ALPHA_R_REFQUAD 2
|
|
||||||
#define ALPHA_R_GPREL32 3
|
|
||||||
#define ALPHA_R_LITERAL 4
|
|
||||||
#define ALPHA_R_LITUSE 5
|
|
||||||
#define ALPHA_R_GPDISP 6
|
|
||||||
#define ALPHA_R_BRADDR 7
|
|
||||||
#define ALPHA_R_HINT 8
|
|
||||||
#define ALPHA_R_SREL16 9
|
|
||||||
#define ALPHA_R_SREL32 10
|
|
||||||
#define ALPHA_R_SREL64 11
|
|
||||||
#define ALPHA_R_OP_PUSH 12
|
|
||||||
#define ALPHA_R_OP_STORE 13
|
|
||||||
#define ALPHA_R_OP_PSUB 14
|
|
||||||
#define ALPHA_R_OP_PRSHIFT 15
|
|
||||||
#define ALPHA_R_GPVALUE 16
|
|
||||||
#define ALPHA_R_GPRELHIGH 17
|
|
||||||
#define ALPHA_R_GPRELLOW 18
|
|
||||||
#define ALPHA_R_IMMED 19
|
|
||||||
|
|
||||||
/* Overloaded reloc value used by Net- and OpenBSD. */
|
|
||||||
#define ALPHA_R_LITERALSLEAZY 17
|
|
||||||
|
|
||||||
/* With ALPHA_R_LITUSE, the r_size field is one of the following values. */
|
|
||||||
#define ALPHA_R_LU_BASE 1
|
|
||||||
#define ALPHA_R_LU_BYTOFF 2
|
|
||||||
#define ALPHA_R_LU_JSR 3
|
|
||||||
|
|
||||||
/* With ALPHA_R_IMMED, the r_size field is one of the following values. */
|
|
||||||
#define ALPHA_R_IMMED_GP_16 1
|
|
||||||
#define ALPHA_R_IMMED_GP_HI32 2
|
|
||||||
#define ALPHA_R_IMMED_SCN_HI32 3
|
|
||||||
#define ALPHA_R_IMMED_BR_HI32 4
|
|
||||||
#define ALPHA_R_IMMED_LO32 5
|
|
||||||
|
|
||||||
/********************** SYMBOLIC INFORMATION **********************/
|
|
||||||
|
|
||||||
/* Written by John Gilmore. */
|
|
||||||
|
|
||||||
/* ECOFF uses COFF-like section structures, but its own symbol format.
|
|
||||||
This file defines the symbol format in fields whose size and alignment
|
|
||||||
will not vary on different host systems. */
|
|
||||||
|
|
||||||
/* File header as a set of bytes */
|
|
||||||
|
|
||||||
struct hdr_ext
|
|
||||||
{
|
|
||||||
unsigned char h_magic[2];
|
|
||||||
unsigned char h_vstamp[2];
|
|
||||||
unsigned char h_ilineMax[4];
|
|
||||||
unsigned char h_idnMax[4];
|
|
||||||
unsigned char h_ipdMax[4];
|
|
||||||
unsigned char h_isymMax[4];
|
|
||||||
unsigned char h_ioptMax[4];
|
|
||||||
unsigned char h_iauxMax[4];
|
|
||||||
unsigned char h_issMax[4];
|
|
||||||
unsigned char h_issExtMax[4];
|
|
||||||
unsigned char h_ifdMax[4];
|
|
||||||
unsigned char h_crfd[4];
|
|
||||||
unsigned char h_iextMax[4];
|
|
||||||
unsigned char h_cbLine[8];
|
|
||||||
unsigned char h_cbLineOffset[8];
|
|
||||||
unsigned char h_cbDnOffset[8];
|
|
||||||
unsigned char h_cbPdOffset[8];
|
|
||||||
unsigned char h_cbSymOffset[8];
|
|
||||||
unsigned char h_cbOptOffset[8];
|
|
||||||
unsigned char h_cbAuxOffset[8];
|
|
||||||
unsigned char h_cbSsOffset[8];
|
|
||||||
unsigned char h_cbSsExtOffset[8];
|
|
||||||
unsigned char h_cbFdOffset[8];
|
|
||||||
unsigned char h_cbRfdOffset[8];
|
|
||||||
unsigned char h_cbExtOffset[8];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* File descriptor external record */
|
|
||||||
|
|
||||||
struct fdr_ext
|
|
||||||
{
|
|
||||||
unsigned char f_adr[8];
|
|
||||||
unsigned char f_cbLineOffset[8];
|
|
||||||
unsigned char f_cbLine[8];
|
|
||||||
unsigned char f_cbSs[8];
|
|
||||||
unsigned char f_rss[4];
|
|
||||||
unsigned char f_issBase[4];
|
|
||||||
unsigned char f_isymBase[4];
|
|
||||||
unsigned char f_csym[4];
|
|
||||||
unsigned char f_ilineBase[4];
|
|
||||||
unsigned char f_cline[4];
|
|
||||||
unsigned char f_ioptBase[4];
|
|
||||||
unsigned char f_copt[4];
|
|
||||||
unsigned char f_ipdFirst[4];
|
|
||||||
unsigned char f_cpd[4];
|
|
||||||
unsigned char f_iauxBase[4];
|
|
||||||
unsigned char f_caux[4];
|
|
||||||
unsigned char f_rfdBase[4];
|
|
||||||
unsigned char f_crfd[4];
|
|
||||||
unsigned char f_bits1[1];
|
|
||||||
unsigned char f_bits2[3];
|
|
||||||
unsigned char f_padding[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define FDR_BITS1_LANG_BIG 0xF8
|
|
||||||
#define FDR_BITS1_LANG_SH_BIG 3
|
|
||||||
#define FDR_BITS1_LANG_LITTLE 0x1F
|
|
||||||
#define FDR_BITS1_LANG_SH_LITTLE 0
|
|
||||||
|
|
||||||
#define FDR_BITS1_FMERGE_BIG 0x04
|
|
||||||
#define FDR_BITS1_FMERGE_LITTLE 0x20
|
|
||||||
|
|
||||||
#define FDR_BITS1_FREADIN_BIG 0x02
|
|
||||||
#define FDR_BITS1_FREADIN_LITTLE 0x40
|
|
||||||
|
|
||||||
#define FDR_BITS1_FBIGENDIAN_BIG 0x01
|
|
||||||
#define FDR_BITS1_FBIGENDIAN_LITTLE 0x80
|
|
||||||
|
|
||||||
#define FDR_BITS2_GLEVEL_BIG 0xC0
|
|
||||||
#define FDR_BITS2_GLEVEL_SH_BIG 6
|
|
||||||
#define FDR_BITS2_GLEVEL_LITTLE 0x03
|
|
||||||
#define FDR_BITS2_GLEVEL_SH_LITTLE 0
|
|
||||||
|
|
||||||
/* We ignore the `reserved' field in bits2. */
|
|
||||||
|
|
||||||
/* Procedure descriptor external record */
|
|
||||||
|
|
||||||
struct pdr_ext {
|
|
||||||
unsigned char p_adr[8];
|
|
||||||
unsigned char p_cbLineOffset[8];
|
|
||||||
unsigned char p_isym[4];
|
|
||||||
unsigned char p_iline[4];
|
|
||||||
unsigned char p_regmask[4];
|
|
||||||
unsigned char p_regoffset[4];
|
|
||||||
unsigned char p_iopt[4];
|
|
||||||
unsigned char p_fregmask[4];
|
|
||||||
unsigned char p_fregoffset[4];
|
|
||||||
unsigned char p_frameoffset[4];
|
|
||||||
unsigned char p_lnLow[4];
|
|
||||||
unsigned char p_lnHigh[4];
|
|
||||||
unsigned char p_gp_prologue[1];
|
|
||||||
unsigned char p_bits1[1];
|
|
||||||
unsigned char p_bits2[1];
|
|
||||||
unsigned char p_localoff[1];
|
|
||||||
unsigned char p_framereg[2];
|
|
||||||
unsigned char p_pcreg[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define PDR_BITS1_GP_USED_BIG 0x80
|
|
||||||
#define PDR_BITS1_REG_FRAME_BIG 0x40
|
|
||||||
#define PDR_BITS1_PROF_BIG 0x20
|
|
||||||
#define PDR_BITS1_RESERVED_BIG 0x1f
|
|
||||||
#define PDR_BITS1_RESERVED_SH_LEFT_BIG 8
|
|
||||||
#define PDR_BITS2_RESERVED_BIG 0xff
|
|
||||||
#define PDR_BITS2_RESERVED_SH_BIG 0
|
|
||||||
|
|
||||||
#define PDR_BITS1_GP_USED_LITTLE 0x01
|
|
||||||
#define PDR_BITS1_REG_FRAME_LITTLE 0x02
|
|
||||||
#define PDR_BITS1_PROF_LITTLE 0x04
|
|
||||||
#define PDR_BITS1_RESERVED_LITTLE 0xf8
|
|
||||||
#define PDR_BITS1_RESERVED_SH_LITTLE 3
|
|
||||||
#define PDR_BITS2_RESERVED_LITTLE 0xff
|
|
||||||
#define PDR_BITS2_RESERVED_SH_LEFT_LITTLE 5
|
|
||||||
|
|
||||||
/* Line numbers */
|
|
||||||
|
|
||||||
struct line_ext {
|
|
||||||
unsigned char l_line[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Symbol external record */
|
|
||||||
|
|
||||||
struct sym_ext {
|
|
||||||
unsigned char s_value[8];
|
|
||||||
unsigned char s_iss[4];
|
|
||||||
unsigned char s_bits1[1];
|
|
||||||
unsigned char s_bits2[1];
|
|
||||||
unsigned char s_bits3[1];
|
|
||||||
unsigned char s_bits4[1];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define SYM_BITS1_ST_BIG 0xFC
|
|
||||||
#define SYM_BITS1_ST_SH_BIG 2
|
|
||||||
#define SYM_BITS1_ST_LITTLE 0x3F
|
|
||||||
#define SYM_BITS1_ST_SH_LITTLE 0
|
|
||||||
|
|
||||||
#define SYM_BITS1_SC_BIG 0x03
|
|
||||||
#define SYM_BITS1_SC_SH_LEFT_BIG 3
|
|
||||||
#define SYM_BITS1_SC_LITTLE 0xC0
|
|
||||||
#define SYM_BITS1_SC_SH_LITTLE 6
|
|
||||||
|
|
||||||
#define SYM_BITS2_SC_BIG 0xE0
|
|
||||||
#define SYM_BITS2_SC_SH_BIG 5
|
|
||||||
#define SYM_BITS2_SC_LITTLE 0x07
|
|
||||||
#define SYM_BITS2_SC_SH_LEFT_LITTLE 2
|
|
||||||
|
|
||||||
#define SYM_BITS2_RESERVED_BIG 0x10
|
|
||||||
#define SYM_BITS2_RESERVED_LITTLE 0x08
|
|
||||||
|
|
||||||
#define SYM_BITS2_INDEX_BIG 0x0F
|
|
||||||
#define SYM_BITS2_INDEX_SH_LEFT_BIG 16
|
|
||||||
#define SYM_BITS2_INDEX_LITTLE 0xF0
|
|
||||||
#define SYM_BITS2_INDEX_SH_LITTLE 4
|
|
||||||
|
|
||||||
#define SYM_BITS3_INDEX_SH_LEFT_BIG 8
|
|
||||||
#define SYM_BITS3_INDEX_SH_LEFT_LITTLE 4
|
|
||||||
|
|
||||||
#define SYM_BITS4_INDEX_SH_LEFT_BIG 0
|
|
||||||
#define SYM_BITS4_INDEX_SH_LEFT_LITTLE 12
|
|
||||||
|
|
||||||
/* External symbol external record */
|
|
||||||
|
|
||||||
struct ext_ext {
|
|
||||||
struct sym_ext es_asym;
|
|
||||||
unsigned char es_bits1[1];
|
|
||||||
unsigned char es_bits2[3];
|
|
||||||
unsigned char es_ifd[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define EXT_BITS1_JMPTBL_BIG 0x80
|
|
||||||
#define EXT_BITS1_JMPTBL_LITTLE 0x01
|
|
||||||
|
|
||||||
#define EXT_BITS1_COBOL_MAIN_BIG 0x40
|
|
||||||
#define EXT_BITS1_COBOL_MAIN_LITTLE 0x02
|
|
||||||
|
|
||||||
#define EXT_BITS1_WEAKEXT_BIG 0x20
|
|
||||||
#define EXT_BITS1_WEAKEXT_LITTLE 0x04
|
|
||||||
|
|
||||||
/* Dense numbers external record */
|
|
||||||
|
|
||||||
struct dnr_ext {
|
|
||||||
unsigned char d_rfd[4];
|
|
||||||
unsigned char d_index[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Relative file descriptor */
|
|
||||||
|
|
||||||
struct rfd_ext {
|
|
||||||
unsigned char rfd[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Optimizer symbol external record */
|
|
||||||
|
|
||||||
struct opt_ext {
|
|
||||||
unsigned char o_bits1[1];
|
|
||||||
unsigned char o_bits2[1];
|
|
||||||
unsigned char o_bits3[1];
|
|
||||||
unsigned char o_bits4[1];
|
|
||||||
struct rndx_ext o_rndx;
|
|
||||||
unsigned char o_offset[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define OPT_BITS2_VALUE_SH_LEFT_BIG 16
|
|
||||||
#define OPT_BITS2_VALUE_SH_LEFT_LITTLE 0
|
|
||||||
|
|
||||||
#define OPT_BITS3_VALUE_SH_LEFT_BIG 8
|
|
||||||
#define OPT_BITS3_VALUE_SH_LEFT_LITTLE 8
|
|
||||||
|
|
||||||
#define OPT_BITS4_VALUE_SH_LEFT_BIG 0
|
|
||||||
#define OPT_BITS4_VALUE_SH_LEFT_LITTLE 16
|
|
@ -1,124 +0,0 @@
|
|||||||
/* coff information for Apollo M68K
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#define DO_NOT_DEFINE_AOUTHDR
|
|
||||||
#define L_LNNO_SIZE 2
|
|
||||||
#include "coff/external.h"
|
|
||||||
|
|
||||||
/* Motorola 68000/68008/68010/68020 */
|
|
||||||
#define MC68MAGIC 0520
|
|
||||||
#define MC68KWRMAGIC 0520 /* writeable text segments */
|
|
||||||
#define MC68TVMAGIC 0521
|
|
||||||
#define MC68KROMAGIC 0521 /* readonly shareable text segments */
|
|
||||||
#define MC68KPGMAGIC 0522 /* demand paged text segments */
|
|
||||||
#define M68MAGIC 0210
|
|
||||||
#define M68TVMAGIC 0211
|
|
||||||
|
|
||||||
/* Apollo 68000-based machines have a different magic number. This comes
|
|
||||||
* from /usr/include/apollo/filehdr.h
|
|
||||||
*/
|
|
||||||
#define APOLLOM68KMAGIC 0627
|
|
||||||
|
|
||||||
#define OMAGIC M68MAGIC
|
|
||||||
#define M68KBADMAG(x) (((x).f_magic!=MC68MAGIC) && ((x).f_magic!=MC68KWRMAGIC) && ((x).f_magic!=MC68TVMAGIC) && \
|
|
||||||
((x).f_magic!=MC68KROMAGIC) && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) && ((x).f_magic!=M68TVMAGIC) && \
|
|
||||||
((x).f_magic!=APOLLOM68KMAGIC) )
|
|
||||||
|
|
||||||
/********************** AOUT "OPTIONAL HEADER" **********************/
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
char magic[2]; /* type of file */
|
|
||||||
char vstamp[2]; /* version stamp */
|
|
||||||
char tsize[4]; /* text size in bytes, padded to FW bdry*/
|
|
||||||
char dsize[4]; /* initialized data " " */
|
|
||||||
char bsize[4]; /* uninitialized data " " */
|
|
||||||
char entry[4]; /* entry pt. */
|
|
||||||
char text_start[4]; /* base of text used for this file */
|
|
||||||
char data_start[4]; /* base of data used for this file */
|
|
||||||
char o_sri[4]; /* Apollo specific - .sri data pointer */
|
|
||||||
char o_inlib[4]; /* Apollo specific - .inlib data pointer */
|
|
||||||
char vid[8]; /* Apollo specific - 64 bit version ID */
|
|
||||||
}
|
|
||||||
AOUTHDR;
|
|
||||||
|
|
||||||
#define APOLLO_COFF_VERSION_NUMBER 1 /* the value of the aouthdr magic */
|
|
||||||
#define AOUTHDRSZ 44
|
|
||||||
#define AOUTSZ 44
|
|
||||||
|
|
||||||
/* Apollo allowa for larger section names by allowing
|
|
||||||
them to be in the string table. */
|
|
||||||
|
|
||||||
/* If s_zeores is all zeroes, s_offset gives the real
|
|
||||||
location of the name in the string table. */
|
|
||||||
|
|
||||||
#define s_zeroes section_name.s_name
|
|
||||||
#define s_offset (section_name.s_name+4)
|
|
||||||
|
|
||||||
/* More names of "special" sections. */
|
|
||||||
#define _TV ".tv"
|
|
||||||
#define _INIT ".init"
|
|
||||||
#define _FINI ".fini"
|
|
||||||
#define _LINES ".lines"
|
|
||||||
#define _BLOCKS ".blocks"
|
|
||||||
#define _SRI ".sri" /* Static Resource Information (systype,
|
|
||||||
et al.) */
|
|
||||||
#define _MIR ".mir" /* Module Information Records */
|
|
||||||
#define _APTV ".aptv" /* Apollo-style transfer vectors. */
|
|
||||||
#define _INLIB ".inlib" /* Shared Library information */
|
|
||||||
#define _RWDI ".rwdi" /* Read/write data initialization directives for
|
|
||||||
compressed sections */
|
|
||||||
#define _UNWIND ".unwind" /* Stack unwind information */
|
|
||||||
|
|
||||||
/********************** RELOCATION DIRECTIVES **********************/
|
|
||||||
|
|
||||||
struct external_reloc
|
|
||||||
{
|
|
||||||
char r_vaddr[4];
|
|
||||||
char r_symndx[4];
|
|
||||||
char r_type[2];
|
|
||||||
#ifdef M68K_COFF_OFFSET
|
|
||||||
char r_offset[4];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
|
||||||
|
|
||||||
#ifdef M68K_COFF_OFFSET
|
|
||||||
#define RELSZ 14
|
|
||||||
#else
|
|
||||||
#define RELSZ 10
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Apollo specific STYP flags */
|
|
||||||
|
|
||||||
#define STYP_RELOCATED_NOT_LOADED 0x00010000 /* Section is relocated normally during linking, but need
|
|
||||||
not be loaded during program execution */
|
|
||||||
#define STYP_DEBUG 0x00020000 /* debug section */
|
|
||||||
#define STYP_OVERLAY 0x00040000 /* Section is overlayed */
|
|
||||||
#define STYP_INSTRUCTION 0x00200000 /* Section contains executable code */
|
|
||||||
|
|
||||||
#define STYP_ZERO 0x00800000 /* Section is initialized to zero */
|
|
||||||
#define STYP_INSTALLED 0x02000000 /* Section should be installable in KGT */
|
|
||||||
#define STYP_LOOK_INSTALLED 0x04000000 /* Look for section in KGT */
|
|
||||||
#define STYP_SECALIGN1 0x08000000 /* Specially aligned section */
|
|
||||||
#define STYP_SECALIGN2 0x10000000 /* " " " */
|
|
||||||
#define STYP_COMPRESSED 0x20000000 /* No section data per se (s_scnptr = 0), but there are
|
|
||||||
initialization directives for it in .rwdi section
|
|
||||||
(used in conjunction with STYP_BSS) */
|
|
@ -1,128 +0,0 @@
|
|||||||
/* ARM COFF support for BFD.
|
|
||||||
Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#define COFFARM 1
|
|
||||||
|
|
||||||
#define L_LNNO_SIZE 2
|
|
||||||
#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
|
|
||||||
#include "coff/external.h"
|
|
||||||
|
|
||||||
/* Bits for f_flags:
|
|
||||||
F_RELFLG relocation info stripped from file
|
|
||||||
F_EXEC file is executable (no unresolved external references)
|
|
||||||
F_LNNO line numbers stripped from file
|
|
||||||
F_LSYMS local symbols stripped from file
|
|
||||||
F_INTERWORK file supports switching between ARM and Thumb instruction sets
|
|
||||||
F_INTERWORK_SET the F_INTERWORK bit is valid
|
|
||||||
F_APCS_FLOAT code passes float arguments in float registers
|
|
||||||
F_PIC code is reentrant/position-independent
|
|
||||||
F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax)
|
|
||||||
F_APCS_26 file uses 26 bit ARM Procedure Calling Standard
|
|
||||||
F_APCS_SET the F_APCS_26, F_APCS_FLOAT and F_PIC bits have been initialised
|
|
||||||
F_SOFT_FLOAT code does not use floating point instructions. */
|
|
||||||
|
|
||||||
#define F_RELFLG (0x0001)
|
|
||||||
#define F_EXEC (0x0002)
|
|
||||||
#define F_LNNO (0x0004)
|
|
||||||
#define F_LSYMS (0x0008)
|
|
||||||
#define F_INTERWORK (0x0010)
|
|
||||||
#define F_INTERWORK_SET (0x0020)
|
|
||||||
#define F_APCS_FLOAT (0x0040)
|
|
||||||
#undef F_AR16WR
|
|
||||||
#define F_PIC (0x0080)
|
|
||||||
#define F_AR32WR (0x0100)
|
|
||||||
#define F_APCS_26 (0x0400)
|
|
||||||
#define F_APCS_SET (0x0800)
|
|
||||||
#define F_SOFT_FLOAT (0x2000)
|
|
||||||
#define F_VFP_FLOAT (0x4000)
|
|
||||||
|
|
||||||
/* Bits stored in flags field of the internal_f structure */
|
|
||||||
|
|
||||||
#define F_INTERWORK (0x0010)
|
|
||||||
#define F_APCS_FLOAT (0x0040)
|
|
||||||
#define F_PIC (0x0080)
|
|
||||||
#define F_APCS26 (0x1000)
|
|
||||||
#define F_ARM_ARCHITECTURE_MASK (0x4000+0x0800+0x0400)
|
|
||||||
#define F_ARM_2 (0x0400)
|
|
||||||
#define F_ARM_2a (0x0800)
|
|
||||||
#define F_ARM_3 (0x0c00)
|
|
||||||
#define F_ARM_3M (0x4000)
|
|
||||||
#define F_ARM_4 (0x4400)
|
|
||||||
#define F_ARM_4T (0x4800)
|
|
||||||
#define F_ARM_5 (0x4c00)
|
|
||||||
|
|
||||||
/*
|
|
||||||
ARMMAGIC ought to encoded the procesor type,
|
|
||||||
but it is too late to change it now, instead
|
|
||||||
the flags field of the internal_f structure
|
|
||||||
is used as shown above.
|
|
||||||
|
|
||||||
XXX - NC 5/6/97. */
|
|
||||||
|
|
||||||
#define ARMMAGIC 0xa00 /* I just made this up */
|
|
||||||
|
|
||||||
#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC))
|
|
||||||
|
|
||||||
#define ARMPEMAGIC 0x1c0
|
|
||||||
#define THUMBPEMAGIC 0x1c2
|
|
||||||
|
|
||||||
#undef ARMBADMAG
|
|
||||||
#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC) && ((x).f_magic != ARMPEMAGIC) && ((x).f_magic != THUMBPEMAGIC))
|
|
||||||
|
|
||||||
#define OMAGIC 0404 /* object files, eg as output */
|
|
||||||
#define ZMAGIC 0413 /* demand load format, eg normal ld output */
|
|
||||||
#define STMAGIC 0401 /* target shlib */
|
|
||||||
#define SHMAGIC 0443 /* host shlib */
|
|
||||||
|
|
||||||
/* define some NT default values */
|
|
||||||
/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
|
|
||||||
#define NT_SECTION_ALIGNMENT 0x1000
|
|
||||||
#define NT_FILE_ALIGNMENT 0x200
|
|
||||||
#define NT_DEF_RESERVE 0x100000
|
|
||||||
#define NT_DEF_COMMIT 0x1000
|
|
||||||
|
|
||||||
/* We use the .rdata section to hold read only data. */
|
|
||||||
#define _LIT ".rdata"
|
|
||||||
|
|
||||||
/********************** RELOCATION DIRECTIVES **********************/
|
|
||||||
#ifdef ARM_WINCE
|
|
||||||
struct external_reloc
|
|
||||||
{
|
|
||||||
char r_vaddr[4];
|
|
||||||
char r_symndx[4];
|
|
||||||
char r_type[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
|
||||||
#define RELSZ 10
|
|
||||||
|
|
||||||
#else
|
|
||||||
struct external_reloc
|
|
||||||
{
|
|
||||||
char r_vaddr[4];
|
|
||||||
char r_symndx[4];
|
|
||||||
char r_type[2];
|
|
||||||
char r_offset[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
|
||||||
#define RELSZ 14
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ARM_NOTE_SECTION ".note"
|
|
@ -1,48 +0,0 @@
|
|||||||
/* Modifications of internal.h and m68k.h needed by A/UX
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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.
|
|
||||||
|
|
||||||
Suggested by Ian Lance Taylor <ian@cygnus.com> */
|
|
||||||
|
|
||||||
#ifndef GNU_COFF_AUX_H
|
|
||||||
#define GNU_COFF_AUX_H 1
|
|
||||||
|
|
||||||
#include "coff/internal.h"
|
|
||||||
#include "coff/m68k.h"
|
|
||||||
|
|
||||||
/* Section contains 64-byte padded pathnames of shared libraries */
|
|
||||||
#undef STYP_LIB
|
|
||||||
#define STYP_LIB 0x200
|
|
||||||
|
|
||||||
/* Section contains shared library initialization code */
|
|
||||||
#undef STYP_INIT
|
|
||||||
#define STYP_INIT 0x400
|
|
||||||
|
|
||||||
/* Section contains .ident information */
|
|
||||||
#undef STYP_IDENT
|
|
||||||
#define STYP_IDENT 0x800
|
|
||||||
|
|
||||||
/* Section types used by bfd and gas not defined (directly) by A/UX */
|
|
||||||
#undef STYP_OVER
|
|
||||||
#define STYP_OVER 0
|
|
||||||
#undef STYP_INFO
|
|
||||||
#define STYP_INFO STYP_IDENT
|
|
||||||
|
|
||||||
/* Traditional name of the section tagged with STYP_LIB */
|
|
||||||
#define _LIB ".lib"
|
|
||||||
|
|
||||||
#endif /* GNU_COFF_AUX_H */
|
|
@ -1,437 +0,0 @@
|
|||||||
/* Generic ECOFF support.
|
|
||||||
This does not include symbol information, found in sym.h and
|
|
||||||
symconst.h.
|
|
||||||
|
|
||||||
Copyright 2001, 2002 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef ECOFF_H
|
|
||||||
#define ECOFF_H
|
|
||||||
|
|
||||||
/* Mips magic numbers used in filehdr. MIPS_MAGIC_LITTLE is used on
|
|
||||||
little endian machines. MIPS_MAGIC_BIG is used on big endian
|
|
||||||
machines. Where is MIPS_MAGIC_1 from? */
|
|
||||||
#define MIPS_MAGIC_1 0x0180
|
|
||||||
#define MIPS_MAGIC_LITTLE 0x0162
|
|
||||||
#define MIPS_MAGIC_BIG 0x0160
|
|
||||||
|
|
||||||
/* These are the magic numbers used for MIPS code compiled at ISA
|
|
||||||
level 2. */
|
|
||||||
#define MIPS_MAGIC_LITTLE2 0x0166
|
|
||||||
#define MIPS_MAGIC_BIG2 0x0163
|
|
||||||
|
|
||||||
/* These are the magic numbers used for MIPS code compiled at ISA
|
|
||||||
level 3. */
|
|
||||||
#define MIPS_MAGIC_LITTLE3 0x142
|
|
||||||
#define MIPS_MAGIC_BIG3 0x140
|
|
||||||
|
|
||||||
/* Alpha magic numbers used in filehdr. */
|
|
||||||
#define ALPHA_MAGIC 0x183
|
|
||||||
#define ALPHA_MAGIC_BSD 0x185
|
|
||||||
|
|
||||||
/* Magic numbers used in a.out header. */
|
|
||||||
#define ECOFF_AOUT_OMAGIC 0407 /* not demand paged (ld -N). */
|
|
||||||
#define ECOFF_AOUT_ZMAGIC 0413 /* demand load format, eg normal ld output */
|
|
||||||
|
|
||||||
/* Names of special sections. */
|
|
||||||
#define _TEXT ".text"
|
|
||||||
#define _DATA ".data"
|
|
||||||
#define _BSS ".bss"
|
|
||||||
#define _RDATA ".rdata"
|
|
||||||
#define _SDATA ".sdata"
|
|
||||||
#define _SBSS ".sbss"
|
|
||||||
#define _LITA ".lita"
|
|
||||||
#define _LIT4 ".lit4"
|
|
||||||
#define _LIT8 ".lit8"
|
|
||||||
#define _LIB ".lib"
|
|
||||||
#define _INIT ".init"
|
|
||||||
#define _FINI ".fini"
|
|
||||||
#define _PDATA ".pdata"
|
|
||||||
#define _XDATA ".xdata"
|
|
||||||
#define _GOT ".got"
|
|
||||||
#define _HASH ".hash"
|
|
||||||
#define _DYNSYM ".dynsym"
|
|
||||||
#define _DYNSTR ".dynstr"
|
|
||||||
#define _RELDYN ".rel.dyn"
|
|
||||||
#define _CONFLIC ".conflic"
|
|
||||||
#define _COMMENT ".comment"
|
|
||||||
#define _LIBLIST ".liblist"
|
|
||||||
#define _DYNAMIC ".dynamic"
|
|
||||||
#define _RCONST ".rconst"
|
|
||||||
|
|
||||||
/* ECOFF uses some additional section flags. */
|
|
||||||
#define STYP_RDATA 0x100
|
|
||||||
#define STYP_SDATA 0x200
|
|
||||||
#define STYP_SBSS 0x400
|
|
||||||
#define STYP_GOT 0x1000
|
|
||||||
#define STYP_DYNAMIC 0x2000
|
|
||||||
#define STYP_DYNSYM 0x4000
|
|
||||||
#define STYP_RELDYN 0x8000
|
|
||||||
#define STYP_DYNSTR 0x10000
|
|
||||||
#define STYP_HASH 0x20000
|
|
||||||
#define STYP_LIBLIST 0x40000
|
|
||||||
#define STYP_CONFLIC 0x100000
|
|
||||||
#define STYP_ECOFF_FINI 0x1000000
|
|
||||||
#define STYP_EXTENDESC 0x2000000 /* 0x02FFF000 bits => scn type, rest clr */
|
|
||||||
#define STYP_LITA 0x4000000
|
|
||||||
#define STYP_LIT8 0x8000000
|
|
||||||
#define STYP_LIT4 0x10000000
|
|
||||||
#define STYP_ECOFF_LIB 0x40000000
|
|
||||||
#define STYP_ECOFF_INIT 0x80000000
|
|
||||||
#define STYP_OTHER_LOAD (STYP_ECOFF_INIT | STYP_ECOFF_FINI)
|
|
||||||
|
|
||||||
/* extended section types */
|
|
||||||
#define STYP_COMMENT 0x2100000
|
|
||||||
#define STYP_RCONST 0x2200000
|
|
||||||
#define STYP_XDATA 0x2400000
|
|
||||||
#define STYP_PDATA 0x2800000
|
|
||||||
|
|
||||||
/* The linker needs a section to hold small common variables while
|
|
||||||
linking. There is no convenient way to create it when the linker
|
|
||||||
needs it, so we always create one for each BFD. We then avoid
|
|
||||||
writing it out. */
|
|
||||||
#define SCOMMON ".scommon"
|
|
||||||
|
|
||||||
/* If the extern bit in a reloc is 1, then r_symndx is an index into
|
|
||||||
the external symbol table. If the extern bit is 0, then r_symndx
|
|
||||||
indicates a section, and is one of the following values. */
|
|
||||||
#define RELOC_SECTION_NONE 0
|
|
||||||
#define RELOC_SECTION_TEXT 1
|
|
||||||
#define RELOC_SECTION_RDATA 2
|
|
||||||
#define RELOC_SECTION_DATA 3
|
|
||||||
#define RELOC_SECTION_SDATA 4
|
|
||||||
#define RELOC_SECTION_SBSS 5
|
|
||||||
#define RELOC_SECTION_BSS 6
|
|
||||||
#define RELOC_SECTION_INIT 7
|
|
||||||
#define RELOC_SECTION_LIT8 8
|
|
||||||
#define RELOC_SECTION_LIT4 9
|
|
||||||
#define RELOC_SECTION_XDATA 10
|
|
||||||
#define RELOC_SECTION_PDATA 11
|
|
||||||
#define RELOC_SECTION_FINI 12
|
|
||||||
#define RELOC_SECTION_LITA 13
|
|
||||||
#define RELOC_SECTION_ABS 14
|
|
||||||
#define RELOC_SECTION_RCONST 15
|
|
||||||
|
|
||||||
#define NUM_RELOC_SECTIONS 16
|
|
||||||
|
|
||||||
/********************** STABS **********************/
|
|
||||||
|
|
||||||
/* gcc uses mips-tfile to output type information in special stabs
|
|
||||||
entries. These must match the corresponding definition in
|
|
||||||
gcc/config/mips.h. At some point, these should probably go into a
|
|
||||||
shared include file, but currently gcc and gdb do not share any
|
|
||||||
directories. */
|
|
||||||
#define CODE_MASK 0x8F300
|
|
||||||
#define ECOFF_IS_STAB(sym) (((sym)->index & 0xFFF00) == CODE_MASK)
|
|
||||||
#define ECOFF_MARK_STAB(code) ((code)+CODE_MASK)
|
|
||||||
#define ECOFF_UNMARK_STAB(code) ((code)-CODE_MASK)
|
|
||||||
#define STABS_SYMBOL "@stabs"
|
|
||||||
|
|
||||||
/********************** COFF **********************/
|
|
||||||
|
|
||||||
/* gcc also uses mips-tfile to output COFF debugging information.
|
|
||||||
These are the values it uses when outputting the .type directive.
|
|
||||||
These should also be in a shared include file. */
|
|
||||||
#define N_BTMASK (017)
|
|
||||||
#define N_TMASK (060)
|
|
||||||
#define N_BTSHFT (4)
|
|
||||||
#define N_TSHIFT (2)
|
|
||||||
|
|
||||||
/********************** AUX **********************/
|
|
||||||
|
|
||||||
/* The auxiliary type information is the same on all known ECOFF
|
|
||||||
targets. I can't see any reason that it would ever change, so I am
|
|
||||||
going to gamble and define the external structures here, in the
|
|
||||||
target independent ECOFF header file. The internal forms are
|
|
||||||
defined in coff/sym.h, which was originally donated by MIPS
|
|
||||||
Computer Systems. */
|
|
||||||
|
|
||||||
/* Type information external record */
|
|
||||||
|
|
||||||
struct tir_ext {
|
|
||||||
unsigned char t_bits1[1];
|
|
||||||
unsigned char t_tq45[1];
|
|
||||||
unsigned char t_tq01[1];
|
|
||||||
unsigned char t_tq23[1];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define TIR_BITS1_FBITFIELD_BIG ((unsigned int) 0x80)
|
|
||||||
#define TIR_BITS1_FBITFIELD_LITTLE ((unsigned int) 0x01)
|
|
||||||
|
|
||||||
#define TIR_BITS1_CONTINUED_BIG ((unsigned int) 0x40)
|
|
||||||
#define TIR_BITS1_CONTINUED_LITTLE ((unsigned int) 0x02)
|
|
||||||
|
|
||||||
#define TIR_BITS1_BT_BIG ((unsigned int) 0x3F)
|
|
||||||
#define TIR_BITS1_BT_SH_BIG 0
|
|
||||||
#define TIR_BITS1_BT_LITTLE ((unsigned int) 0xFC)
|
|
||||||
#define TIR_BITS1_BT_SH_LITTLE 2
|
|
||||||
|
|
||||||
#define TIR_BITS_TQ4_BIG ((unsigned int) 0xF0)
|
|
||||||
#define TIR_BITS_TQ4_SH_BIG 4
|
|
||||||
#define TIR_BITS_TQ5_BIG ((unsigned int) 0x0F)
|
|
||||||
#define TIR_BITS_TQ5_SH_BIG 0
|
|
||||||
#define TIR_BITS_TQ4_LITTLE ((unsigned int) 0x0F)
|
|
||||||
#define TIR_BITS_TQ4_SH_LITTLE 0
|
|
||||||
#define TIR_BITS_TQ5_LITTLE ((unsigned int) 0xF0)
|
|
||||||
#define TIR_BITS_TQ5_SH_LITTLE 4
|
|
||||||
|
|
||||||
#define TIR_BITS_TQ0_BIG ((unsigned int) 0xF0)
|
|
||||||
#define TIR_BITS_TQ0_SH_BIG 4
|
|
||||||
#define TIR_BITS_TQ1_BIG ((unsigned int) 0x0F)
|
|
||||||
#define TIR_BITS_TQ1_SH_BIG 0
|
|
||||||
#define TIR_BITS_TQ0_LITTLE ((unsigned int) 0x0F)
|
|
||||||
#define TIR_BITS_TQ0_SH_LITTLE 0
|
|
||||||
#define TIR_BITS_TQ1_LITTLE ((unsigned int) 0xF0)
|
|
||||||
#define TIR_BITS_TQ1_SH_LITTLE 4
|
|
||||||
|
|
||||||
#define TIR_BITS_TQ2_BIG ((unsigned int) 0xF0)
|
|
||||||
#define TIR_BITS_TQ2_SH_BIG 4
|
|
||||||
#define TIR_BITS_TQ3_BIG ((unsigned int) 0x0F)
|
|
||||||
#define TIR_BITS_TQ3_SH_BIG 0
|
|
||||||
#define TIR_BITS_TQ2_LITTLE ((unsigned int) 0x0F)
|
|
||||||
#define TIR_BITS_TQ2_SH_LITTLE 0
|
|
||||||
#define TIR_BITS_TQ3_LITTLE ((unsigned int) 0xF0)
|
|
||||||
#define TIR_BITS_TQ3_SH_LITTLE 4
|
|
||||||
|
|
||||||
/* Relative symbol external record */
|
|
||||||
|
|
||||||
struct rndx_ext {
|
|
||||||
unsigned char r_bits[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RNDX_BITS0_RFD_SH_LEFT_BIG 4
|
|
||||||
#define RNDX_BITS1_RFD_BIG ((unsigned int) 0xF0)
|
|
||||||
#define RNDX_BITS1_RFD_SH_BIG 4
|
|
||||||
|
|
||||||
#define RNDX_BITS0_RFD_SH_LEFT_LITTLE 0
|
|
||||||
#define RNDX_BITS1_RFD_LITTLE ((unsigned int) 0x0F)
|
|
||||||
#define RNDX_BITS1_RFD_SH_LEFT_LITTLE 8
|
|
||||||
|
|
||||||
#define RNDX_BITS1_INDEX_BIG ((unsigned int) 0x0F)
|
|
||||||
#define RNDX_BITS1_INDEX_SH_LEFT_BIG 16
|
|
||||||
#define RNDX_BITS2_INDEX_SH_LEFT_BIG 8
|
|
||||||
#define RNDX_BITS3_INDEX_SH_LEFT_BIG 0
|
|
||||||
|
|
||||||
#define RNDX_BITS1_INDEX_LITTLE ((unsigned int) 0xF0)
|
|
||||||
#define RNDX_BITS1_INDEX_SH_LITTLE 4
|
|
||||||
#define RNDX_BITS2_INDEX_SH_LEFT_LITTLE 4
|
|
||||||
#define RNDX_BITS3_INDEX_SH_LEFT_LITTLE 12
|
|
||||||
|
|
||||||
/* Auxiliary symbol information external record */
|
|
||||||
|
|
||||||
union aux_ext {
|
|
||||||
struct tir_ext a_ti;
|
|
||||||
struct rndx_ext a_rndx;
|
|
||||||
unsigned char a_dnLow[4];
|
|
||||||
unsigned char a_dnHigh[4];
|
|
||||||
unsigned char a_isym[4];
|
|
||||||
unsigned char a_iss[4];
|
|
||||||
unsigned char a_width[4];
|
|
||||||
unsigned char a_count[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define AUX_GET_ANY(bigend, ax, field) \
|
|
||||||
((bigend) ? bfd_getb32 ((ax)->field) : bfd_getl32 ((ax)->field))
|
|
||||||
|
|
||||||
#define AUX_GET_DNLOW(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_dnLow)
|
|
||||||
#define AUX_GET_DNHIGH(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_dnHigh)
|
|
||||||
#define AUX_GET_ISYM(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_isym)
|
|
||||||
#define AUX_GET_ISS(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_iss)
|
|
||||||
#define AUX_GET_WIDTH(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_width)
|
|
||||||
#define AUX_GET_COUNT(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_count)
|
|
||||||
|
|
||||||
#define AUX_PUT_ANY(bigend, val, ax, field) \
|
|
||||||
((bigend) \
|
|
||||||
? (bfd_putb32 ((bfd_vma) (val), (ax)->field), 0) \
|
|
||||||
: (bfd_putl32 ((bfd_vma) (val), (ax)->field), 0))
|
|
||||||
|
|
||||||
#define AUX_PUT_DNLOW(bigend, val, ax) \
|
|
||||||
AUX_PUT_ANY ((bigend), (val), (ax), a_dnLow)
|
|
||||||
#define AUX_PUT_DNHIGH(bigend, val, ax) \
|
|
||||||
AUX_PUT_ANY ((bigend), (val), (ax), a_dnHigh)
|
|
||||||
#define AUX_PUT_ISYM(bigend, val, ax) \
|
|
||||||
AUX_PUT_ANY ((bigend), (val), (ax), a_isym)
|
|
||||||
#define AUX_PUT_ISS(bigend, val, ax) \
|
|
||||||
AUX_PUT_ANY ((bigend), (val), (ax), a_iss)
|
|
||||||
#define AUX_PUT_WIDTH(bigend, val, ax) \
|
|
||||||
AUX_PUT_ANY ((bigend), (val), (ax), a_width)
|
|
||||||
#define AUX_PUT_COUNT(bigend, val, ax) \
|
|
||||||
AUX_PUT_ANY ((bigend), (val), (ax), a_count)
|
|
||||||
|
|
||||||
/********************** SYMBOLS **********************/
|
|
||||||
|
|
||||||
/* For efficiency, gdb deals directly with the unswapped symbolic
|
|
||||||
information (that way it only takes the time to swap information
|
|
||||||
that it really needs to read). gdb originally retrieved the
|
|
||||||
information directly from the BFD backend information, but that
|
|
||||||
strategy, besides being sort of ugly, does not work for MIPS ELF,
|
|
||||||
which also uses ECOFF debugging information. This structure holds
|
|
||||||
pointers to the (mostly) unswapped symbolic information. */
|
|
||||||
|
|
||||||
struct ecoff_debug_info
|
|
||||||
{
|
|
||||||
/* The swapped ECOFF symbolic header. */
|
|
||||||
HDRR symbolic_header;
|
|
||||||
|
|
||||||
/* Pointers to the unswapped symbolic information. Note that the
|
|
||||||
pointers to external structures point to different sorts of
|
|
||||||
information on different ECOFF targets. The ecoff_debug_swap
|
|
||||||
structure provides the sizes of the structures and the functions
|
|
||||||
needed to swap the information in and out. These pointers are
|
|
||||||
all pointers to arrays, not single structures. They will be NULL
|
|
||||||
if there are no instances of the relevant structure. These
|
|
||||||
fields are also used by the assembler to output ECOFF debugging
|
|
||||||
information. */
|
|
||||||
unsigned char *line;
|
|
||||||
PTR external_dnr; /* struct dnr_ext */
|
|
||||||
PTR external_pdr; /* struct pdr_ext */
|
|
||||||
PTR external_sym; /* struct sym_ext */
|
|
||||||
PTR external_opt; /* struct opt_ext */
|
|
||||||
union aux_ext *external_aux;
|
|
||||||
char *ss;
|
|
||||||
char *ssext;
|
|
||||||
PTR external_fdr; /* struct fdr_ext */
|
|
||||||
PTR external_rfd; /* struct rfd_ext */
|
|
||||||
PTR external_ext; /* struct ext_ext */
|
|
||||||
|
|
||||||
/* These fields are used when linking. They may disappear at some
|
|
||||||
point. */
|
|
||||||
char *ssext_end;
|
|
||||||
PTR external_ext_end;
|
|
||||||
|
|
||||||
/* When linking, this field holds a mapping from the input FDR
|
|
||||||
numbers to the output numbers, and is used when writing out the
|
|
||||||
external symbols. It is NULL if no mapping is required. */
|
|
||||||
RFDT *ifdmap;
|
|
||||||
|
|
||||||
/* The swapped FDR information. Currently this is never NULL, but
|
|
||||||
code using this structure should probably double-check in case
|
|
||||||
this changes in the future. This is a pointer to an array, not a
|
|
||||||
single structure. */
|
|
||||||
FDR *fdr;
|
|
||||||
|
|
||||||
/* When relaxing MIPS embedded PIC code, we may need to adjust
|
|
||||||
symbol values when they are output. This is a linked list of
|
|
||||||
structures indicating how values should be adjusted. There is no
|
|
||||||
requirement that the entries be in any order, or that they not
|
|
||||||
overlap. This field is normally NULL, in which case no
|
|
||||||
adjustments need to be made. */
|
|
||||||
struct ecoff_value_adjust *adjust;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This structure describes how to adjust symbol values when
|
|
||||||
outputting MIPS embedded PIC code. These adjustments only apply to
|
|
||||||
the internal symbols, as the external symbol values will come from
|
|
||||||
the hash table and have already been adjusted. */
|
|
||||||
|
|
||||||
struct ecoff_value_adjust
|
|
||||||
{
|
|
||||||
/* Next entry on adjustment list. */
|
|
||||||
struct ecoff_value_adjust *next;
|
|
||||||
/* Starting VMA of adjustment. This is the VMA in the ECOFF file,
|
|
||||||
not the offset from the start of the section. Thus it should
|
|
||||||
indicate a particular section. */
|
|
||||||
bfd_vma start;
|
|
||||||
/* Ending VMA of adjustment. */
|
|
||||||
bfd_vma end;
|
|
||||||
/* Adjustment. This should be added to the value of the symbol, or
|
|
||||||
FDR. This is zero for the last entry in the array. */
|
|
||||||
long adjust;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* These structures are used by the ECOFF find_nearest_line function. */
|
|
||||||
|
|
||||||
struct ecoff_fdrtab_entry
|
|
||||||
{
|
|
||||||
/* Base address in .text of this FDR. */
|
|
||||||
bfd_vma base_addr;
|
|
||||||
FDR *fdr;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ecoff_find_line
|
|
||||||
{
|
|
||||||
/* Allocated memory to hold function and file names. */
|
|
||||||
char *find_buffer;
|
|
||||||
|
|
||||||
/* FDR table, sorted by address: */
|
|
||||||
long fdrtab_len;
|
|
||||||
struct ecoff_fdrtab_entry *fdrtab;
|
|
||||||
|
|
||||||
/* Cache entry for most recently found line information. The sect
|
|
||||||
field is NULL if this cache does not contain valid information. */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
asection *sect;
|
|
||||||
bfd_vma start;
|
|
||||||
bfd_vma stop;
|
|
||||||
const char *filename;
|
|
||||||
const char *functionname;
|
|
||||||
unsigned int line_num;
|
|
||||||
} cache;
|
|
||||||
};
|
|
||||||
|
|
||||||
/********************** SWAPPING **********************/
|
|
||||||
|
|
||||||
/* The generic ECOFF code needs to be able to swap debugging
|
|
||||||
information in and out in the specific format used by a particular
|
|
||||||
ECOFF implementation. This structure provides the information
|
|
||||||
needed to do this. */
|
|
||||||
|
|
||||||
struct ecoff_debug_swap
|
|
||||||
{
|
|
||||||
/* Symbol table magic number. */
|
|
||||||
int sym_magic;
|
|
||||||
/* Alignment of debugging information. E.g., 4. */
|
|
||||||
bfd_size_type debug_align;
|
|
||||||
/* Sizes of external symbolic information. */
|
|
||||||
bfd_size_type external_hdr_size;
|
|
||||||
bfd_size_type external_dnr_size;
|
|
||||||
bfd_size_type external_pdr_size;
|
|
||||||
bfd_size_type external_sym_size;
|
|
||||||
bfd_size_type external_opt_size;
|
|
||||||
bfd_size_type external_fdr_size;
|
|
||||||
bfd_size_type external_rfd_size;
|
|
||||||
bfd_size_type external_ext_size;
|
|
||||||
/* Functions to swap in external symbolic data. */
|
|
||||||
void (*swap_hdr_in) PARAMS ((bfd *, PTR, HDRR *));
|
|
||||||
void (*swap_dnr_in) PARAMS ((bfd *, PTR, DNR *));
|
|
||||||
void (*swap_pdr_in) PARAMS ((bfd *, PTR, PDR *));
|
|
||||||
void (*swap_sym_in) PARAMS ((bfd *, PTR, SYMR *));
|
|
||||||
void (*swap_opt_in) PARAMS ((bfd *, PTR, OPTR *));
|
|
||||||
void (*swap_fdr_in) PARAMS ((bfd *, PTR, FDR *));
|
|
||||||
void (*swap_rfd_in) PARAMS ((bfd *, PTR, RFDT *));
|
|
||||||
void (*swap_ext_in) PARAMS ((bfd *, PTR, EXTR *));
|
|
||||||
void (*swap_tir_in) PARAMS ((int, const struct tir_ext *, TIR *));
|
|
||||||
void (*swap_rndx_in) PARAMS ((int, const struct rndx_ext *, RNDXR *));
|
|
||||||
/* Functions to swap out external symbolic data. */
|
|
||||||
void (*swap_hdr_out) PARAMS ((bfd *, const HDRR *, PTR));
|
|
||||||
void (*swap_dnr_out) PARAMS ((bfd *, const DNR *, PTR));
|
|
||||||
void (*swap_pdr_out) PARAMS ((bfd *, const PDR *, PTR));
|
|
||||||
void (*swap_sym_out) PARAMS ((bfd *, const SYMR *, PTR));
|
|
||||||
void (*swap_opt_out) PARAMS ((bfd *, const OPTR *, PTR));
|
|
||||||
void (*swap_fdr_out) PARAMS ((bfd *, const FDR *, PTR));
|
|
||||||
void (*swap_rfd_out) PARAMS ((bfd *, const RFDT *, PTR));
|
|
||||||
void (*swap_ext_out) PARAMS ((bfd *, const EXTR *, PTR));
|
|
||||||
void (*swap_tir_out) PARAMS ((int, const TIR *, struct tir_ext *));
|
|
||||||
void (*swap_rndx_out) PARAMS ((int, const RNDXR *, struct rndx_ext *));
|
|
||||||
/* Function to read symbol data and set up pointers in
|
|
||||||
ecoff_debug_info structure. The section argument is used for
|
|
||||||
ELF, not straight ECOFF. */
|
|
||||||
bfd_boolean (*read_debug_info)
|
|
||||||
PARAMS ((bfd *, asection *, struct ecoff_debug_info *));
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* ! defined (ECOFF_H) */
|
|
@ -1,254 +0,0 @@
|
|||||||
/* external.h -- External COFF structures
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#ifndef COFF_EXTERNAL_H
|
|
||||||
#define COFF_EXTERNAL_H
|
|
||||||
|
|
||||||
#ifndef DO_NOT_DEFINE_FILHDR
|
|
||||||
/********************** FILE HEADER **********************/
|
|
||||||
|
|
||||||
struct external_filehdr
|
|
||||||
{
|
|
||||||
char f_magic[2]; /* magic number */
|
|
||||||
char f_nscns[2]; /* number of sections */
|
|
||||||
char f_timdat[4]; /* time & date stamp */
|
|
||||||
char f_symptr[4]; /* file pointer to symtab */
|
|
||||||
char f_nsyms[4]; /* number of symtab entries */
|
|
||||||
char f_opthdr[2]; /* sizeof(optional hdr) */
|
|
||||||
char f_flags[2]; /* flags */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define FILHDR struct external_filehdr
|
|
||||||
#define FILHSZ 20
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef DO_NOT_DEFINE_AOUTHDR
|
|
||||||
/********************** AOUT "OPTIONAL HEADER" **********************/
|
|
||||||
|
|
||||||
typedef struct external_aouthdr
|
|
||||||
{
|
|
||||||
char magic[2]; /* type of file */
|
|
||||||
char vstamp[2]; /* version stamp */
|
|
||||||
char tsize[4]; /* text size in bytes, padded to FW bdry*/
|
|
||||||
char dsize[4]; /* initialized data " " */
|
|
||||||
char bsize[4]; /* uninitialized data " " */
|
|
||||||
char entry[4]; /* entry pt. */
|
|
||||||
char text_start[4]; /* base of text used for this file */
|
|
||||||
char data_start[4]; /* base of data used for this file */
|
|
||||||
}
|
|
||||||
AOUTHDR;
|
|
||||||
|
|
||||||
#define AOUTHDRSZ 28
|
|
||||||
#define AOUTSZ 28
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef DO_NOT_DEFINE_SCNHDR
|
|
||||||
/********************** SECTION HEADER **********************/
|
|
||||||
|
|
||||||
struct external_scnhdr
|
|
||||||
{
|
|
||||||
char s_name[8]; /* section name */
|
|
||||||
char s_paddr[4]; /* physical address, aliased s_nlib */
|
|
||||||
char s_vaddr[4]; /* virtual address */
|
|
||||||
char s_size[4]; /* section size */
|
|
||||||
char s_scnptr[4]; /* file ptr to raw data for section */
|
|
||||||
char s_relptr[4]; /* file ptr to relocation */
|
|
||||||
char s_lnnoptr[4]; /* file ptr to line numbers */
|
|
||||||
char s_nreloc[2]; /* number of relocation entries */
|
|
||||||
char s_nlnno[2]; /* number of line number entries */
|
|
||||||
char s_flags[4]; /* flags */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define SCNHDR struct external_scnhdr
|
|
||||||
#define SCNHSZ 40
|
|
||||||
|
|
||||||
/* Names of "special" sections. */
|
|
||||||
|
|
||||||
#define _TEXT ".text"
|
|
||||||
#define _DATA ".data"
|
|
||||||
#define _BSS ".bss"
|
|
||||||
#define _COMMENT ".comment"
|
|
||||||
#define _LIB ".lib"
|
|
||||||
#endif /* not DO_NOT_DEFINE_SCNHDR */
|
|
||||||
|
|
||||||
#ifndef DO_NOT_DEFINE_LINENO
|
|
||||||
|
|
||||||
/********************** LINE NUMBERS **********************/
|
|
||||||
|
|
||||||
#ifndef L_LNNO_SIZE
|
|
||||||
#error L_LNNO_SIZE needs to be defined
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* 1 line number entry for every "breakpointable" source line in a section.
|
|
||||||
Line numbers are grouped on a per function basis; first entry in a function
|
|
||||||
grouping will have l_lnno = 0 and in place of physical address will be the
|
|
||||||
symbol table index of the function name. */
|
|
||||||
struct external_lineno
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
|
|
||||||
char l_paddr[4]; /* (physical) address of line number */
|
|
||||||
} l_addr;
|
|
||||||
|
|
||||||
char l_lnno[L_LNNO_SIZE]; /* line number */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define LINENO struct external_lineno
|
|
||||||
#define LINESZ (4 + L_LNNO_SIZE)
|
|
||||||
|
|
||||||
#if L_LNNO_SIZE == 4
|
|
||||||
#define GET_LINENO_LNNO(abfd, ext) H_GET_32 (abfd, (ext->l_lnno))
|
|
||||||
#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_32 (abfd, val, (ext->l_lnno))
|
|
||||||
#endif
|
|
||||||
#if L_LNNO_SIZE == 2
|
|
||||||
#define GET_LINENO_LNNO(abfd, ext) H_GET_16 (abfd, (ext->l_lnno))
|
|
||||||
#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_16 (abfd, val, (ext->l_lnno))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* not DO_NOT_DEFINE_LINENO */
|
|
||||||
|
|
||||||
#ifndef DO_NOT_DEFINE_SYMENT
|
|
||||||
/********************** SYMBOLS **********************/
|
|
||||||
|
|
||||||
#define E_SYMNMLEN 8 /* # characters in a symbol name */
|
|
||||||
#ifndef E_FILNMLEN
|
|
||||||
#define E_FILNMLEN 14
|
|
||||||
#endif
|
|
||||||
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
|
|
||||||
|
|
||||||
struct external_syment
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
char e_name[E_SYMNMLEN];
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
char e_zeroes[4];
|
|
||||||
char e_offset[4];
|
|
||||||
} e;
|
|
||||||
} e;
|
|
||||||
|
|
||||||
char e_value[4];
|
|
||||||
char e_scnum[2];
|
|
||||||
char e_type[2];
|
|
||||||
char e_sclass[1];
|
|
||||||
char e_numaux[1];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define SYMENT struct external_syment
|
|
||||||
#define SYMESZ 18
|
|
||||||
|
|
||||||
#ifndef N_BTMASK
|
|
||||||
#define N_BTMASK 0xf
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef N_TMASK
|
|
||||||
#define N_TMASK 0x30
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef N_BTSHFT
|
|
||||||
#define N_BTSHFT 4
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef N_TSHIFT
|
|
||||||
#define N_TSHIFT 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* not DO_NOT_DEFINE_SYMENT */
|
|
||||||
|
|
||||||
#ifndef DO_NOT_DEFINE_AUXENT
|
|
||||||
|
|
||||||
union external_auxent
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
char x_tagndx[4]; /* str, un, or enum tag indx */
|
|
||||||
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
char x_lnno[2]; /* declaration line number */
|
|
||||||
char x_size[2]; /* str/union/array size */
|
|
||||||
} x_lnsz;
|
|
||||||
|
|
||||||
char x_fsize[4]; /* size of function */
|
|
||||||
|
|
||||||
} x_misc;
|
|
||||||
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct /* if ISFCN, tag, or .bb */
|
|
||||||
{
|
|
||||||
char x_lnnoptr[4]; /* ptr to fcn line # */
|
|
||||||
char x_endndx[4]; /* entry ndx past block end */
|
|
||||||
} x_fcn;
|
|
||||||
|
|
||||||
struct /* if ISARY, up to 4 dimen. */
|
|
||||||
{
|
|
||||||
char x_dimen[E_DIMNUM][2];
|
|
||||||
} x_ary;
|
|
||||||
|
|
||||||
} x_fcnary;
|
|
||||||
|
|
||||||
char x_tvndx[2]; /* tv index */
|
|
||||||
|
|
||||||
} x_sym;
|
|
||||||
|
|
||||||
union
|
|
||||||
{
|
|
||||||
char x_fname[E_FILNMLEN];
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
char x_zeroes[4];
|
|
||||||
char x_offset[4];
|
|
||||||
} x_n;
|
|
||||||
|
|
||||||
} x_file;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
char x_scnlen[4]; /* section length */
|
|
||||||
char x_nreloc[2]; /* # relocation entries */
|
|
||||||
char x_nlinno[2]; /* # line numbers */
|
|
||||||
#ifdef INCLUDE_COMDAT_FIELDS_IN_AUXENT
|
|
||||||
char x_checksum[4]; /* section COMDAT checksum */
|
|
||||||
char x_associated[2]; /* COMDAT associated section index */
|
|
||||||
char x_comdat[1]; /* COMDAT selection number */
|
|
||||||
#endif
|
|
||||||
} x_scn;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
char x_tvfill[4]; /* tv fill value */
|
|
||||||
char x_tvlen[2]; /* length of .tv */
|
|
||||||
char x_tvran[2][2]; /* tv range */
|
|
||||||
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define AUXENT union external_auxent
|
|
||||||
#define AUXESZ 18
|
|
||||||
|
|
||||||
#define _ETEXT "etext"
|
|
||||||
|
|
||||||
#endif /* not DO_NOT_DEFINE_AUXENT */
|
|
||||||
|
|
||||||
#endif /* COFF_EXTERNAL_H */
|
|
@ -1,37 +0,0 @@
|
|||||||
/* COFF information for PC running go32.
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#define STUBSIZE 2048
|
|
||||||
|
|
||||||
struct external_filehdr_go32_exe
|
|
||||||
{
|
|
||||||
char stub[STUBSIZE];/* the stub to load the image */
|
|
||||||
/* the standard COFF header */
|
|
||||||
char f_magic[2]; /* magic number */
|
|
||||||
char f_nscns[2]; /* number of sections */
|
|
||||||
char f_timdat[4]; /* time & date stamp */
|
|
||||||
char f_symptr[4]; /* file pointer to symtab */
|
|
||||||
char f_nsyms[4]; /* number of symtab entries */
|
|
||||||
char f_opthdr[2]; /* sizeof(optional hdr) */
|
|
||||||
char f_flags[2]; /* flags */
|
|
||||||
};
|
|
||||||
|
|
||||||
#undef FILHDR
|
|
||||||
#define FILHDR struct external_filehdr_go32_exe
|
|
||||||
#undef FILHSZ
|
|
||||||
#define FILHSZ STUBSIZE+20
|
|
@ -1,50 +0,0 @@
|
|||||||
/* coff information for Renesas H8/300 and H8/300-H
|
|
||||||
|
|
||||||
Copyright 2001, 2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#define L_LNNO_SIZE 4
|
|
||||||
#include "coff/external.h"
|
|
||||||
|
|
||||||
#define H8300MAGIC 0x8300
|
|
||||||
#define H8300HMAGIC 0x8301
|
|
||||||
#define H8300SMAGIC 0x8302
|
|
||||||
|
|
||||||
#define H8300BADMAG(x) (((x).f_magic != H8300MAGIC))
|
|
||||||
#define H8300HBADMAG(x) (((x).f_magic != H8300HMAGIC))
|
|
||||||
#define H8300SBADMAG(x) (((x).f_magic != H8300SMAGIC))
|
|
||||||
|
|
||||||
/********************** RELOCATION DIRECTIVES **********************/
|
|
||||||
|
|
||||||
/* The external reloc has an offset field, because some of the reloc
|
|
||||||
types on the h8 don't have room in the instruction for the entire
|
|
||||||
offset - eg the strange jump and high page addressing modes. */
|
|
||||||
|
|
||||||
struct external_reloc
|
|
||||||
{
|
|
||||||
char r_vaddr[4];
|
|
||||||
char r_symndx[4];
|
|
||||||
char r_offset[4];
|
|
||||||
char r_type[2];
|
|
||||||
char r_stuff[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
|
||||||
#define RELSZ 16
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
|||||||
/* coff information for Renesas H8/500
|
|
||||||
|
|
||||||
Copyright 2001, 2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#define L_LNNO_SIZE 4
|
|
||||||
#include "coff/external.h"
|
|
||||||
|
|
||||||
#define H8500MAGIC 0x8500
|
|
||||||
|
|
||||||
#define H8500BADMAG(x) ((0xffff && ((x).f_magic) != H8500MAGIC))
|
|
||||||
|
|
||||||
/********************** RELOCATION DIRECTIVES **********************/
|
|
||||||
|
|
||||||
/* The external reloc has an offset field, because some of the reloc
|
|
||||||
types on the h8 don't have room in the instruction for the entire
|
|
||||||
offset - eg the strange jump and high page addressing modes. */
|
|
||||||
|
|
||||||
struct external_reloc
|
|
||||||
{
|
|
||||||
char r_vaddr[4];
|
|
||||||
char r_symndx[4];
|
|
||||||
char r_offset[4];
|
|
||||||
char r_type[2];
|
|
||||||
char r_stuff[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
|
||||||
#define RELSZ 16
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
|||||||
/* coff information for Intel 386/486.
|
|
||||||
|
|
||||||
Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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. */
|
|
||||||
|
|
||||||
#define L_LNNO_SIZE 2
|
|
||||||
#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
|
|
||||||
#include "coff/external.h"
|
|
||||||
|
|
||||||
/* Bits for f_flags:
|
|
||||||
F_RELFLG relocation info stripped from file
|
|
||||||
F_EXEC file is executable (no unresolved external references)
|
|
||||||
F_LNNO line numbers stripped from file
|
|
||||||
F_LSYMS local symbols stripped from file
|
|
||||||
F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax). */
|
|
||||||
|
|
||||||
#define F_RELFLG (0x0001)
|
|
||||||
#define F_EXEC (0x0002)
|
|
||||||
#define F_LNNO (0x0004)
|
|
||||||
#define F_LSYMS (0x0008)
|
|
||||||
|
|
||||||
#define I386MAGIC 0x14c
|
|
||||||
#define I386PTXMAGIC 0x154
|
|
||||||
#define I386AIXMAGIC 0x175
|
|
||||||
|
|
||||||
/* This is Lynx's all-platform magic number for executables. */
|
|
||||||
|
|
||||||
#define LYNXCOFFMAGIC 0415
|
|
||||||
|
|
||||||
#define I386BADMAG(x) ( ((x).f_magic != I386MAGIC) \
|
|
||||||
&& (x).f_magic != I386AIXMAGIC \
|
|
||||||
&& (x).f_magic != I386PTXMAGIC \
|
|
||||||
&& (x).f_magic != LYNXCOFFMAGIC)
|
|
||||||
|
|
||||||
#define OMAGIC 0404 /* object files, eg as output */
|
|
||||||
#define ZMAGIC 0413 /* demand load format, eg normal ld output */
|
|
||||||
#define STMAGIC 0401 /* target shlib */
|
|
||||||
#define SHMAGIC 0443 /* host shlib */
|
|
||||||
|
|
||||||
/* define some NT default values */
|
|
||||||
/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
|
|
||||||
#define NT_SECTION_ALIGNMENT 0x1000
|
|
||||||
#define NT_FILE_ALIGNMENT 0x200
|
|
||||||
#define NT_DEF_RESERVE 0x100000
|
|
||||||
#define NT_DEF_COMMIT 0x1000
|
|
||||||
|
|
||||||
/********************** RELOCATION DIRECTIVES **********************/
|
|
||||||
|
|
||||||
struct external_reloc
|
|
||||||
{
|
|
||||||
char r_vaddr[4];
|
|
||||||
char r_symndx[4];
|
|
||||||
char r_type[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
|
||||||
#define RELSZ 10
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user