Add some files from Progressive shich shouldn't be lost.
This commit is contained in:
parent
d81eea83fb
commit
5898af2c4b
983
Install.in
Executable file
983
Install.in
Executable file
@ -0,0 +1,983 @@
|
||||
#!/bin/sh
|
||||
### Copyright (C) 1991, 1992, Cygnus Support
|
||||
### All Rights Reserved.
|
||||
|
||||
### This really needs to nestle up snuggly to the Release notes. If you change
|
||||
### this script, please be sure the release notes get coordinated too.
|
||||
|
||||
set -e
|
||||
|
||||
### this is our version number.
|
||||
VERSION=cygnus-sol2-||RELNO||
|
||||
|
||||
### this is the default installation repository. We use this to test whether or
|
||||
### not GCC_EXEC_PREFIX should be set when doing "Install test comp-tools".
|
||||
#INSTALLDIR_DEFAULT=/giga/rich/tmp/installdir
|
||||
INSTALLDIR_REAL=/opt
|
||||
INSTALLDIR_DEFAULT=${INSTALLDIR_REAL}
|
||||
### this is where we install into. (useful for testing).
|
||||
INSTALLDIR=${INSTALLDIR_DEFAULT}
|
||||
|
||||
### where to write the log files
|
||||
LOGDIR=${INSTALLDIR}/${VERSION}
|
||||
|
||||
### who to call in bad situations
|
||||
HOTLINE="the Cygnus Support Hotline at +1 415 322 7836"
|
||||
|
||||
### what the release doc is called and a few sections thereof
|
||||
NOTES="the Installation Notes"
|
||||
CHANGING_PATHS="\"Changing the Paths\""
|
||||
NO_ACCESS="\"No Access to ${INSTALLDIR}\?\""
|
||||
MIGHT_WRONG="\"Some Things that Might go Wrong\""
|
||||
WHY_FIXINCLUDES="Why Convert System Header Files\?"
|
||||
ANOTHER_TAPE="\"Steps to install with another machine\'s tape drive\""
|
||||
|
||||
### for debugging
|
||||
#PATH=/bin:/usr/bin ; export PATH
|
||||
|
||||
### default the tape device
|
||||
case "${TAPE}" in
|
||||
"") TAPE=||DEVdflt||
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac # ${TAPE}
|
||||
|
||||
### clear and/or initialize some variables
|
||||
ARCH=
|
||||
TOOLS=
|
||||
FTPRELEASE=no
|
||||
|
||||
REMOVE=no
|
||||
EXTRACT=no
|
||||
FIXINCLUDES=no
|
||||
TESTINSTALLATION=no
|
||||
|
||||
INSTALLHOST=default
|
||||
ERROR=
|
||||
|
||||
### where the binaries are in the release
|
||||
#EXECDIR=${VERSION}/H-${INSTALLHOST}
|
||||
EXECDIR=${VERSION}
|
||||
|
||||
### some tool defaults
|
||||
### perhaps these should be hard coded to absolute paths instead?
|
||||
TAR=tar
|
||||
TARKEYS="xvvopf -"
|
||||
SED=sed
|
||||
MT=mt
|
||||
|
||||
### trigger words on the command line are:
|
||||
### bin, src
|
||||
### emacs, comp-tools
|
||||
### -tape=/dev/device
|
||||
### -installdir=/foo
|
||||
### extract, fixincludes, test-installation, remove
|
||||
|
||||
for arg in $* ; do
|
||||
case "${arg}" in
|
||||
### options
|
||||
-tape=* | --tape=* | --tap=* | --ta=* | --t=*)
|
||||
TAPE=`echo ${arg} | ${SED} 's/-*t[a-z]*=//'`
|
||||
;;
|
||||
|
||||
-installdir=* | --installdir=* | --installdi=* | --installd=* | --install=* | --instal=* | --insta=* | --inst=* | --ins=* | --in=* | --i=*)
|
||||
INSTALLDIR=`echo ${arg} | ${SED} 's/-*i[a-z]*=//'`
|
||||
# we will make it an absolute path shortly.
|
||||
;;
|
||||
|
||||
### actions
|
||||
*remove* | rm | -rm | --rm) ACTIONS="${ACTIONS} rm" ;;
|
||||
*extract*) ACTIONS="${ACTIONS} extract" ;;
|
||||
*fix*) ACTIONS="${ACTIONS} fix" ;;
|
||||
*test*) ACTIONS="${ACTIONS} test" ;;
|
||||
### hosts
|
||||
*src* | *sour*) ARCH="${ARCH} src" ;;
|
||||
*bin*) ARCH="${ARCH} bin" ;;
|
||||
|
||||
### packages
|
||||
*emacs*) TOOLS="${TOOLS} emacs" ;;
|
||||
*comp*) TOOLS="${TOOLS} comp" ;;
|
||||
*help*) ERROR=true ;;
|
||||
*)
|
||||
echo '***' I do not understand the option \"${arg}\".
|
||||
ERROR=true
|
||||
;;
|
||||
esac # ${arg}
|
||||
done # arg in $*
|
||||
|
||||
###
|
||||
###
|
||||
### check for a myriad of sins
|
||||
###
|
||||
###
|
||||
|
||||
if [ ! -d "${INSTALLDIR}" ] ; then
|
||||
echo '*** ' Can not cd to \"${INSTALLDIR}\" because it does not exist.
|
||||
echo '*** ' Try creating it with \"mkdir ${INSTALLDIR}\" and then try running Install again.
|
||||
exit 1
|
||||
else
|
||||
if (cd "${INSTALLDIR}") ; then
|
||||
true
|
||||
else
|
||||
echo '*** ' Can not cd to \"${INSTALLDIR}\" because I do not have execute permission.
|
||||
ls -lad ${INSTALLDIR}
|
||||
echo '*** ' Please fix this and then try running Install again.
|
||||
exit 1
|
||||
fi # ! cd ${INSTALLDIR}
|
||||
fi # ! -d ${INSTALLDIR}
|
||||
|
||||
# Make INSTALLDIR absolute (parts below might need it that way).
|
||||
# FIXME, do they really?
|
||||
# FIXME, handle pwd failure from upper dir permission
|
||||
INSTALLDIR=`cd ${INSTALLDIR} ; pwd`
|
||||
LOGDIR=${INSTALLDIR}/${VERSION}
|
||||
|
||||
case "${ERROR}" in
|
||||
"")
|
||||
### default tools
|
||||
case "${TOOLS}" in
|
||||
"") TOOLS="||BUNDLE||" ;;
|
||||
*) ;;
|
||||
esac # ${TOOLS}
|
||||
|
||||
INSTALLHOST=
|
||||
|
||||
### decide where we are: try arch first.
|
||||
if (arch) > /dev/null 2>&1 ; then
|
||||
MAYBE=`arch`
|
||||
else
|
||||
true
|
||||
fi # (arch)
|
||||
|
||||
case "${MAYBE}" in
|
||||
sun3) INSTALLHOST=${MAYBE}
|
||||
;;
|
||||
*)
|
||||
### next try uname
|
||||
if (uname > /dev/null) 2>&1 ; then
|
||||
UNAME=`echo \`uname -s\`\`uname -m\`\`uname -r\``
|
||||
else
|
||||
UNAME="machine without a uname command (type of machine unknown)"
|
||||
fi # (uname)
|
||||
|
||||
### map into names we recognize
|
||||
case "${UNAME}" in
|
||||
AIX*)
|
||||
INSTALLHOST=rs6000
|
||||
MT=tctl
|
||||
;;
|
||||
ULTRIXRISC) INSTALLHOST=decstation ;;
|
||||
SunOSsun4*5*) INSTALLHOST=sparc-sun-solaris2 ;;
|
||||
SunOSsun4*) INSTALLHOST=sun4 ;;
|
||||
SunOSsun3*) INSTALLHOST=sun3 ;;
|
||||
IRIX*) INSTALLHOST=iris4 ;;
|
||||
*) INSTALLHOST=unknown ;;
|
||||
esac # ${UNAME}
|
||||
;;
|
||||
esac # ${MAYBE}
|
||||
|
||||
### default arch
|
||||
case "${ARCH}" in
|
||||
"") ARCH="bin src" ;;
|
||||
*) ;;
|
||||
esac # ${ARCH}
|
||||
|
||||
### default actions
|
||||
|
||||
case "${ACTIONS}" in
|
||||
"")
|
||||
case "${FTPRELEASE}" in
|
||||
"yes") ACTIONS="test" ;;
|
||||
"no" ) ACTIONS="extract test" ;;
|
||||
esac # ${FTPRELEASE}
|
||||
|
||||
|
||||
### fixincludes only if comp-tools
|
||||
for tool in ${TOOLS} ; do
|
||||
case ${tool} in
|
||||
comp)
|
||||
if echo ${ARCH} | grep bin > /dev/null 2>&1 ; then
|
||||
ACTIONS="${ACTIONS} fix"
|
||||
fi
|
||||
;;
|
||||
*) ;;
|
||||
esac # ${TOOLS}
|
||||
done # for tool in ${TOOLS}
|
||||
;;
|
||||
*) ;;
|
||||
esac # ${ACTIONS}
|
||||
;;
|
||||
*) ;;
|
||||
esac # ${ERROR}
|
||||
|
||||
case "${ERROR}" in
|
||||
"")
|
||||
### if binaries are not intended for this machine
|
||||
case "${INSTALLHOST}" in
|
||||
"||HOSTstr||") ### binaries are intended for this machine
|
||||
for action in ${ACTIONS} ; do
|
||||
case ${action} in
|
||||
test)
|
||||
for tool in ${TOOLS} ; do
|
||||
OURWD=`(cd ${INSTALLDIR}; pwd) 2>/dev/null`
|
||||
DEFAULTWD=`(cd ${INSTALLDIR_REAL}; pwd) 2>/dev/null`
|
||||
case ${tool} in
|
||||
comp)
|
||||
case "${OURWD}" in
|
||||
"${DEFAULTWD}") ;;
|
||||
*)
|
||||
echo '***' If you want to use the compilation tools in an alternate
|
||||
echo '*** ' directory, GCC_EXEC_PREFIX must be set. You probably
|
||||
echo '*** ' want to set it with:
|
||||
echo GCC_EXEC_PREFIX=${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/ ; export GCC_EXEC_PREFIX
|
||||
GCC_EXEC_PREFIX=${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/ ; export GCC_EXEC_PREFIX
|
||||
echo '*** ' This is what I will use for the installation tests.
|
||||
# skip C++ msg on Solaris
|
||||
case "${INSTALLHOST}" in
|
||||
sparc-sun-solaris2) ;;
|
||||
*)
|
||||
echo '*** ' And for g++ I will use the options:
|
||||
echo '*** ' -I${INSTALLDIR}/${EXECDIR}/lib/g++-include
|
||||
echo '*** ' -L${INSTALLDIR}/${EXECDIR}/lib
|
||||
;;
|
||||
esac # ${INSTALLHOST}
|
||||
echo '*** ' For further help, please refer to ${CHANGING_PATHS}
|
||||
echo '*** ' in ${NOTES}.
|
||||
|
||||
GPLUSOPTIONS="-I${INSTALLDIR}/${EXECDIR}/lib/g++-include -L${INSTALLDIR}/${EXECDIR}/lib"
|
||||
;;
|
||||
esac # ${INSTALLDIR}
|
||||
;;
|
||||
emacs)
|
||||
case "${OURWD}" in
|
||||
"${DEFAULTWD}") ;;
|
||||
*)
|
||||
echo '***' I cannot test Emacs.
|
||||
echo '*** ' The provided Emacs binary can only run from the default
|
||||
echo '*** ' installation directory. If you wish to run emacs, please
|
||||
echo '*** ' refer to ${CHANGING_PATHS} in ${NOTES}.
|
||||
exit 1
|
||||
;;
|
||||
esac # ${INSTALLDIR}
|
||||
;;
|
||||
*) true ;;
|
||||
esac # ${tool}
|
||||
done # for tool in ${TOOLS}
|
||||
;;
|
||||
*) true ;;
|
||||
esac # ${action}
|
||||
done # for action in ${ACTIONS}
|
||||
;;
|
||||
|
||||
*)
|
||||
for action in ${ACTIONS} ; do
|
||||
case ${action} in
|
||||
rm | extract) true ;;
|
||||
fix)
|
||||
if echo ${TOOLS} | grep comp > /dev/null ; then
|
||||
NOTFIXED="fixincludes"
|
||||
if echo ${ACTIONS} | grep test > /dev/null ; then
|
||||
JOINER=" or "
|
||||
else
|
||||
true
|
||||
fi # echo ${ACTIONS}
|
||||
else
|
||||
# echo '***' If you only install Emacs you do not need to run fixincludes.
|
||||
# ERROR=true
|
||||
true
|
||||
fi # echo ${TOOLS}
|
||||
;;
|
||||
test) NOTTESTED="the installation tests" ;;
|
||||
esac # ${action}
|
||||
done # for action in ${ACTIONS}
|
||||
;;
|
||||
esac # ${INSTALLHOST}
|
||||
;;
|
||||
*) ;;
|
||||
esac # ${ERROR}
|
||||
|
||||
if [ -n "${NOTFIXED}" -o -n "${NOTTESTED}" ] ; then
|
||||
case "${INSTALLHOST}" in
|
||||
"||HOSTstr||") ;;
|
||||
*)
|
||||
echo '*** ' This machine appears to be a \"${INSTALLHOST}\".
|
||||
echo '*** ' You may still run \"$0 -extract ...\" on this machine and then
|
||||
echo '*** ' run the other steps on the machine on which you wish to install.
|
||||
echo '*** ' You will need to do these steps separately.
|
||||
echo '*** ' For more information, please refer to
|
||||
echo '*** ' ${ANOTHER_TAPE} in ${NOTES}.
|
||||
ERROR=true
|
||||
;;
|
||||
esac # ${INSTALLHOST}
|
||||
fi # [ -n ${NOTFIXED -o -n ${NOTTESTED} ]
|
||||
|
||||
### if we can't read the tape drive...
|
||||
popdir=`pwd`
|
||||
|
||||
if [ ! -d "${LOGDIR}" ] ; then
|
||||
if mkdir ${LOGDIR}; then
|
||||
true
|
||||
else
|
||||
echo '*** ' Can not write logs to \"${LOGDIR}\" because it does not exist.
|
||||
echo '*** ' Try creating it with \"mkdir ${LOGDIR}\" and then try running Install again.
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ ! -w "${LOGDIR}" ] ; then
|
||||
echo '*** ' Can not write logs to \"${LOGDIR}\" because I do not have write permission.
|
||||
ls -lad ${LOGDIR}
|
||||
echo '*** ' Please fix this and then try running Install again.
|
||||
exit 1
|
||||
fi # ! -r ${LOGDIR}
|
||||
fi # ! -d ${LOGDIR}
|
||||
|
||||
|
||||
cd ${INSTALLDIR}
|
||||
|
||||
### There is a window here that I don't know how to handle gracefully from
|
||||
### shell. If the directory DID exist and WAS executable but dissappeared
|
||||
### before we could cd into it, we're kinda hosed. If you get a call about
|
||||
### this, make sure the directory exists, is readable, is executable, is the
|
||||
### either the default installation directory or the -installdir=directory
|
||||
### given on the command line. Then ask them to just try again. A few times.
|
||||
### If you get the same error every time, we've got a very strange bug. I
|
||||
### can't help you.
|
||||
|
||||
if [ "$?" != "0" ] ; then
|
||||
echo '***' Cannot cd to \"${INSTALLDIR}\". This is a problem.
|
||||
echo '*** ' For further help, please refer to
|
||||
echo '*** ' ${NO_ACCESS} in ${NOTES} or call
|
||||
echo '*** ' ${HOTLINE}
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if echo ${ACTIONS} | grep extract > /dev/null ; then
|
||||
if [ -z "${ERROR}" -a ! -r "${TAPE}" ] ; then
|
||||
### try checking for a relative tape path
|
||||
if [ -r ${popdir}/${TAPE} ] ; then
|
||||
TAPE=${popdir}/${TAPE}
|
||||
echo '***' Using TAPE device \"${TAPE}\".
|
||||
else
|
||||
echo '***' Can not read from TAPE device, \"${TAPE}\".
|
||||
cd ${popdir} ; ls -lasd ${TAPE}
|
||||
echo '*** ' Try using \"./Install -tape=/dev/something ...\" to name your tape
|
||||
echo '*** ' drive or refer to ${MIGHT_WRONG} in
|
||||
echo '*** ' ${NOTES}.
|
||||
exit 1
|
||||
fi # ! -r ${popdir}/${TAPE}
|
||||
fi # -z ${ERROR}
|
||||
fi # extract in ${ACTIONS}
|
||||
|
||||
cd ${popdir}
|
||||
|
||||
### bail out
|
||||
|
||||
case "${ERROR}" in
|
||||
"") ;;
|
||||
*)
|
||||
cat <<EOF
|
||||
You may supply at least one format on the command line. Recognized formats
|
||||
are:
|
||||
binaries for binaries
|
||||
source for source code
|
||||
The default is both source and binaries.
|
||||
|
||||
You may also supply actions. Recognized actions are:
|
||||
extract read the appropriate files from tape
|
||||
fixincludes build a directory of corrected header files for comp-tools
|
||||
test run a very brief verification of your installation
|
||||
Default actions are extract, fixincludes, and test, although fixincludes is not
|
||||
necessary for emacs.
|
||||
|
||||
There are two other options:
|
||||
-tape=DEVICE asks Install to read the necessary files from DEVICE. The
|
||||
default DEVICE is ||DEVdflt||, the ||TAPdflt||, cartridge tape
|
||||
drive on most ||HOSTstr||s.
|
||||
-installdir=DIRECTORY asks Install to install files into DIRECTORY.
|
||||
The default DIRECTORY is ${INSTALLDIR_DEFAULT}.
|
||||
No action has been taken.
|
||||
EOF
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
###
|
||||
###
|
||||
### build a file list
|
||||
### (easy this round because we have only one package).
|
||||
###
|
||||
|
||||
FILE_LIST=
|
||||
TRIGGERS=
|
||||
|
||||
for arch in ${ARCH} ; do
|
||||
case ${arch} in
|
||||
bin)
|
||||
FILE_LIST="${FILE_LIST} \
|
||||
${VERSION}/Install \
|
||||
${VERSION}/CYGNUS \
|
||||
${EXECDIR}/lib \
|
||||
${EXECDIR}/bin \
|
||||
${VERSION}/include \
|
||||
${VERSION}/info \
|
||||
${VERSION}/lib \
|
||||
${VERSION}/man"
|
||||
for tool in ${TOOLS} ; do
|
||||
case ${tool} in
|
||||
comp) TRIGGERS="${TRIGGERS} ${EXECDIR}/bin/gcc" ;;
|
||||
emacs) TRIGGERS="${TRIGGERS} ${EXECDIR}/bin/emacs" ;;
|
||||
*)
|
||||
echo '***' Oops. Sanity failure on triggers for binaries for ${tool}.
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
src)
|
||||
FILE_LIST="${FILE_LIST} \
|
||||
${VERSION}/Install \
|
||||
${VERSION}/CYGNUS \
|
||||
${VERSION}/src"
|
||||
for tool in ${TOOLS} ; do
|
||||
case ${tool} in
|
||||
comp) TRIGGERS="${TRIGGERS} ${VERSION}/src/gcc/gcc.c" ;;
|
||||
emacs) TRIGGERS="${TRIGGERS} ${VERSION}/src/emacs/src/emacs.c" ;;
|
||||
*)
|
||||
echo '***' Oops. Sanity failure on triggers for source for ${tool}.
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
*)
|
||||
echo '***' Oops. Sanity failure on triggers for arch ${arch}.
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
###
|
||||
###
|
||||
### removal
|
||||
###
|
||||
###
|
||||
|
||||
if echo ${ACTIONS} | grep rm > /dev/null 2>&1 ; then
|
||||
if [ ! -d "${INSTALLDIR}" ] ; then
|
||||
echo '***' Cannot remove anything from \"${INSTALLDIR}\" because it does not exist.
|
||||
echo '*** ' You probably do not need to remove anything.
|
||||
else
|
||||
popdir=`pwd`
|
||||
if [ ! -d "${INSTALLDIR}" ] ; then
|
||||
echo '***' Can not cd to \"${INSTALLDIR}\" because it does not exist.
|
||||
echo '*** ' You probably do not need to remove anything.
|
||||
exit 1
|
||||
else
|
||||
if [ ! -r "${INSTALLDIR}" ] ; then
|
||||
echo '***' Can not cd to \"${INSTALLDIR}\" because I do not have execute permission.
|
||||
ls -lad ${INSTALLDIR}
|
||||
echo '*** ' Please fix this and then try running Install again. For
|
||||
echo '*** ' more information, please refer to ${NO_ACCESS}
|
||||
echo '*** ' in ${NOTES}.
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ${INSTALLDIR}
|
||||
|
||||
### see also the above note about the timing window.
|
||||
|
||||
if [ "$?" != "0" ] ; then
|
||||
echo '***' Cannot cd to \"${INSTALLDIR}\". This is a problem.
|
||||
echo '*** ' For further help, please refer to
|
||||
echo '*** ' ${NO_ACCESS} in ${NOTES} or call
|
||||
echo '*** ' ${HOTLINE}
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
if [ ! -d "${VERSION}" ] ; then
|
||||
echo '***' Cannot remove anything from \"${INSTALLDIR}/${VERSION}\" because it does not exist.
|
||||
echo '*** ' You probably do not need to remove anything.
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
echo Removing from \"${INSTALLDIR}\"...
|
||||
|
||||
if rm -rf ${FILE_LIST} ; then
|
||||
# if neither binaries nor source are installed, remove installdir
|
||||
if [ -d ${INSTALLDIR}/${EXECDIR} \
|
||||
-o -d ${INSTALLDIR}/${VERSION}/src ] ; then
|
||||
true
|
||||
else
|
||||
if rm -rf "${INSTALLDIR}/${VERSION}" ; then
|
||||
true
|
||||
else
|
||||
if [ ! -w "${INSTALLDIR}" ] ; then
|
||||
echo '***' I can not remove ${INSTALLDIR}/${VERSION}
|
||||
echo '*** ' because I do not have write access to \"${INSTALLDIR}\"
|
||||
echo '*** ' Please fix this and try running Install again. For more information
|
||||
echo '*** ' please refer to ${NO_ACCESS} in ${NOTES}.
|
||||
exit 1
|
||||
else
|
||||
echo '***' I do not know why I can not remove ${INSTALLDIR}/${VERSION}. This is
|
||||
echo '*** ' probably not a problem.
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo Removed.
|
||||
else
|
||||
echo '***' There appears to have been a removal error.
|
||||
echo '*** ' Chances are that this is not a problem, but you might try removing
|
||||
echo '*** ' again.
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo Cygnus Support software distribution removed!
|
||||
else
|
||||
true
|
||||
fi # if removing
|
||||
|
||||
###
|
||||
###
|
||||
### extraction
|
||||
###
|
||||
###
|
||||
|
||||
if echo ${ACTIONS} | grep extract > /dev/null 2>&1 ; then
|
||||
if [ ! -d "${INSTALLDIR}" ] ; then
|
||||
echo Trying to create \"${INSTALLDIR}\"...
|
||||
if mkdir ${INSTALLDIR} ; then
|
||||
echo Created \"${INSTALLDIR}\".
|
||||
else
|
||||
echo '***' I can not make directory, \"${INSTALLDIR}\".
|
||||
|
||||
### attempt to diagnose...
|
||||
|
||||
DIR=`echo ${INSTALLDIR} | ${SED} -e 's:/[^/]*$::'`
|
||||
if [ ! -d "${DIR}" ] ; then
|
||||
echo '*** ' It looks as though \"${DIR}\" does not even exist.
|
||||
exit 1
|
||||
else
|
||||
if [ ! -w "${DIR}" ] ; then
|
||||
echo '*** ' It looks as though you do not have write access to \"${DIR}\".
|
||||
echo '*** ' Please fix this and try running Install again. For more information
|
||||
echo '*** ' please refer to ${NO_ACCESS} in ${NOTES}.
|
||||
exit 1
|
||||
else
|
||||
echo '*** ' I do not know why I can not create \"${INSTALLDIR}\". This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi # ! -w ${DIR}
|
||||
fi # ! -d ${DIR}
|
||||
fi # mkdir ${INSTALLDIR}
|
||||
else
|
||||
true
|
||||
fi # ! -d ${INSTALLDIR}
|
||||
|
||||
cd ${INSTALLDIR}
|
||||
|
||||
if [ "$?" = "0" ] ; then
|
||||
for trigger in ${TRIGGERS} ; do
|
||||
if [ -r "${trigger}" ] ; then
|
||||
echo '***' \"${INSTALLDIR}/${trigger}\" exists and I will not overwrite it.
|
||||
echo '*** ' If you really want to install it again, please remove it first.
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi # -r ${trigger}
|
||||
done # for trigger
|
||||
else
|
||||
echo '***' I can not cd to \"${INSTALLDIR}\".
|
||||
|
||||
### attempt to diagnose...
|
||||
|
||||
if [ ! -r "${INSTALLDIR}" ] ; then
|
||||
echo '*** ' It looks as though you do not have execute permission to \"${INSTALLDIR}\".
|
||||
else
|
||||
true
|
||||
fi # ! -r ${INSTALLDIR}
|
||||
|
||||
echo '*** ' For further help, please refer to
|
||||
echo '*** ' ${NO_ACCESS} in ${NOTES}.
|
||||
exit 1
|
||||
fi # status is zero
|
||||
|
||||
|
||||
### remove redundant names from the list
|
||||
echo ${FILE_LIST} ${COMMONS} ${EMACSHIBIN} | tr ' ' '
|
||||
' | sort | uniq > ${LOGDIR}/extract_list
|
||||
|
||||
echo It will take some time for me to read the tape.
|
||||
echo Verbose output will be saved in ${LOGDIR}/tar.log
|
||||
echo Extracting into \"${INSTALLDIR}\"...
|
||||
|
||||
### make sure things come off the tape as they were written, but minus what could be a security hole.
|
||||
umask 0
|
||||
|
||||
### using the no rewind device, so rewind and fsf to be sure.
|
||||
|
||||
if ${MT} -f ${TAPE} rewind > /dev/null 2>&1 ; then
|
||||
if ${MT} -f ${TAPE} fsf 1 ; then
|
||||
true
|
||||
else
|
||||
echo '***' Could not forward space tape device \"${TAPE}\".
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if test -r ${TAPE} ; then
|
||||
true
|
||||
else
|
||||
echo '***' Could not rewind tape device \"${TAPE}\".
|
||||
exit 1
|
||||
fi
|
||||
fi # mt ${TAPE} rewind
|
||||
|
||||
if dd if=${TAPE} bs=124b | compress -d | ${TAR} ${TARKEYS} `cat ${LOGDIR}/extract_list` > ${LOGDIR}/tar.log 2>&1 && test -d ${VERSION} ; then
|
||||
if [ -d ${INSTALLDIR}/${EXECDIR}/bin ] ; then
|
||||
echo Extracted.
|
||||
else
|
||||
echo '***' The extraction has failed. The directory
|
||||
echo '***' ${INSTALLDIR}/${EXECDIR}/bin was not extracted.
|
||||
echo '*** ' The output from the tar command has been logged in ${LOGDIR}/tar.log
|
||||
echo '*** ' I do not know how to continue until this problem has been
|
||||
echo '*** ' corrected. If you do not know how to fix it either, please
|
||||
echo '*** ' call ${HOTLINE}.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if (${MT} -f ${TAPE} rewind > /dev/null 2>&1) ; then
|
||||
true
|
||||
else
|
||||
true
|
||||
fi # mt rewind
|
||||
else
|
||||
echo '***' There appears to have been an extraction error.
|
||||
echo '*** ' The output from the tar command has been logged in ${LOGDIR}/tar.log
|
||||
echo '*** ' I do not know how to continue until this problem has been
|
||||
echo '*** ' corrected. If you do not know how to fix it either, please
|
||||
echo '*** ' call ${HOTLINE}.
|
||||
exit 1
|
||||
fi # dd | compress | tar ....
|
||||
|
||||
rm -f ${LOGDIR}/extract_list
|
||||
echo Cygnus Support software distribution extracted!
|
||||
else
|
||||
true
|
||||
fi # extraction in actions
|
||||
|
||||
###
|
||||
###
|
||||
### fixincludes
|
||||
###
|
||||
###
|
||||
|
||||
if echo ${ACTIONS} | grep fix > /dev/null 2>&1 ; then
|
||||
echo Running fixincludes for ${INSTALLHOST}.
|
||||
echo Verbose output will be stored in ${LOGDIR}/fixincludes.log
|
||||
echo This will take some time.
|
||||
LIB=${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include ; export LIB
|
||||
|
||||
if mkdir ${LIB}/tmpdir && mv ${LIB}/*.h ${LIB}/tmpdir ; then
|
||||
if ${INSTALLDIR}/${VERSION}/lib/fixincludes ${LIB} /usr/include ${INSTALLDIR}/${VERSION}/src/gcc > ${LOGDIR}/fixincludes.log ; then
|
||||
mv ${LIB}/tmpdir/* ${LIB} && rmdir ${LIB}/tmpdir
|
||||
echo Finished with fixincludes.
|
||||
else
|
||||
echo '***' There seems to have been a problem with fixincludes.
|
||||
echo '*** ' The verbose output from the fixincludes script has been logged in
|
||||
echo '*** ' ${INSTALLDIR}/${VERSION}/fixincludes.log.
|
||||
echo '*** ' I do not know how to continue until this problem has been
|
||||
echo '*** ' corrected. If you do not know how to fix it either, please
|
||||
echo '*** ' call ${HOTLINE}.
|
||||
mv ${LIB}/tmpdir/* ${LIB} && rmdir ${LIB}/tmpdir
|
||||
exit 1
|
||||
fi #
|
||||
else
|
||||
echo '***' Not able to create the temporary include dir
|
||||
echo '*** ' Please ensure that write permissions for
|
||||
echo '*** ' ${LIB} are allowed.
|
||||
echo '*** ' Or call ${HOTLINE} for more information.
|
||||
exit 1
|
||||
fi
|
||||
echo Fixed include files installed!
|
||||
else
|
||||
true
|
||||
fi # fix in actions
|
||||
|
||||
###
|
||||
###
|
||||
### testing the installation
|
||||
###
|
||||
###
|
||||
|
||||
if echo ${ACTIONS} | grep test > /dev/null 2>&1 && echo ${ARCH} | grep bin > /dev/null 2>&1 ; then
|
||||
popdir=`pwd`
|
||||
cd ${LOGDIR}
|
||||
for tool in ${TOOLS} ; do
|
||||
case ${tool} in
|
||||
comp)
|
||||
if [ -f ${INSTALLDIR}/${EXECDIR}/bin/gcc ] ; then
|
||||
cat > ${LOGDIR}/hello.c <<'e!o!f'
|
||||
#include <stdio.h>
|
||||
|
||||
extern int printf();
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
(void) printf("hello: The compilation tools appear to be installed correctly on your %s.\n",
|
||||
MACHINE);
|
||||
return(0);
|
||||
} /* main() */
|
||||
e!o!f
|
||||
if ${INSTALLDIR}/${EXECDIR}/bin/gcc -Wall -O -g \
|
||||
-DMACHINE=\"${INSTALLHOST}\" ${LOGDIR}/hello.c -o ${LOGDIR}/hello ; then
|
||||
if ${LOGDIR}/hello ; then
|
||||
echo This is good.
|
||||
else
|
||||
echo '***' Hello.c fails to run. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi # ./hello
|
||||
else
|
||||
echo '***' Hello.c fails to compile. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi # run gcc
|
||||
|
||||
### now check for fixed includes.
|
||||
cat > ${LOGDIR}/test-ioctl.c << 'e!o!f'
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <math.h>
|
||||
|
||||
double atof(const char *);
|
||||
|
||||
#ifdef __sun__
|
||||
#include <sys/filio.h>
|
||||
|
||||
extern int ioctl();
|
||||
extern int perror();
|
||||
#endif /* __sun__ */
|
||||
|
||||
extern int printf();
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
#ifdef __sun__
|
||||
long l;
|
||||
int fd;
|
||||
int retval;
|
||||
|
||||
if ((fd = open("/dev/tty", O_RDONLY)) == -1) {
|
||||
(void) perror("test-ioctl: can't open /dev/null");
|
||||
return(1);
|
||||
} else if ((retval = ioctl(fd, FIONREAD, &l)) != 0) {
|
||||
(void) perror("test-ioctl: ioctl failed");
|
||||
(void) printf("test-ioctl: Most likely, you have not run \"Install fixincludes\" on this machine.\n");
|
||||
return(2);
|
||||
}
|
||||
#endif /* __sun__ */
|
||||
|
||||
printf("test-ioctl: Ansi versions of the system header files, (the fixed includes),\n");
|
||||
printf("test-ioctl: appear to be installed correctly.\n");
|
||||
|
||||
/* that's right. If closing /dev/tty fails, I don't want to know about it. */
|
||||
|
||||
return(0);
|
||||
}
|
||||
e!o!f
|
||||
|
||||
case "||HOSTstr||" in
|
||||
sun3 | sun4 | decstation)
|
||||
if ${INSTALLDIR}/${EXECDIR}/bin/gcc -Wall -O -g \
|
||||
-DMACHINE=\"${INSTALLHOST}\" ${LOGDIR}/test-ioctl.c -o ${LOGDIR}/test-ioctl ; then
|
||||
if ${LOGDIR}/test-ioctl ; then
|
||||
echo This is good.
|
||||
else
|
||||
case "$?" in
|
||||
1)
|
||||
echo '***' test-ioctl.c fails to read /dev/tty. If you were running Install
|
||||
echo '*** ' in batch or from a daemon, please try running it again interactively.
|
||||
echo '*** ' If not, please call ${HOTLINE}
|
||||
exit 1
|
||||
;;
|
||||
2)
|
||||
echo '***' test-ioctl.c fails to ioctl.
|
||||
echo '*** ' Most likely you need to run \"Install fixincludes\".
|
||||
echo '*** ' Please run \"Install fixincludes\" and
|
||||
echo '*** ' then try this test again. For an explanation see
|
||||
echo '*** ' ${WHY_FIXINCLUDES} in ${NOTES}.
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo '***' test-ioctl.c fails to run. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
;;
|
||||
esac # $?
|
||||
exit 1
|
||||
fi # test-ioctl
|
||||
else
|
||||
### this presupposes that hello.c DID compile.
|
||||
echo '***' test-ioctl.c fails to compile. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi # run gcc
|
||||
;;
|
||||
iris4)
|
||||
if [ ! -f ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/sys/cfeiroute.h ]
|
||||
then
|
||||
echo '***' You seem to be missing ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/sys/cfeiroute.h.
|
||||
echo '*** ' Most likely you need to run \"Install fixincludes\".
|
||||
echo '*** ' Please run \"Install fixincludes\" and
|
||||
echo '*** ' then try this test again. For an explanation see
|
||||
echo '*** ' ${WHY_FIXINCLUDES} in ${NOTES}.
|
||||
exit 1
|
||||
fi # test fixincluded file
|
||||
;;
|
||||
sparc-sun-solaris2)
|
||||
if [ ! -f ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/ieeefp.h ]
|
||||
then
|
||||
echo '***' You seem to be missing ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/ieeefp.h.
|
||||
echo '*** ' Most likely you need to run \"Install fixincludes\".
|
||||
echo '*** ' Please run \"Install fixincludes\" and
|
||||
echo '*** ' then try this test again. For an explanation see
|
||||
echo '*** ' ${WHY_FIXINCLUDES} in ${NOTES}.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
rs6000)
|
||||
if [ ! -f ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/piostruct.h ]
|
||||
then
|
||||
echo '***' You seem to be missing ${INSTALLDIR}/${EXECDIR}/lib/gcc-lib/||HOSTstr||/||GCCvn||/include/piostruct.h.
|
||||
echo '*** ' Most likely you need to run \"Install fixincludes\".
|
||||
echo '*** ' Please run \"Install fixincludes\" and
|
||||
echo '*** ' then try this test again. For an explanation see
|
||||
echo '*** ' ${WHY_FIXINCLUDES} in ${NOTES}.
|
||||
exit 1
|
||||
fi # test fixincluded file
|
||||
;;
|
||||
esac # ||HOSTstr||
|
||||
else
|
||||
true
|
||||
fi # test if gcc present
|
||||
|
||||
### now check for g++.
|
||||
if [ -f ${INSTALLDIR}/${EXECDIR}/bin/g++ ] ; then
|
||||
cat > ${LOGDIR}/hello.C << 'e!o!f'
|
||||
#include <iostream.h>
|
||||
|
||||
int main(int argc, char**argv)
|
||||
{
|
||||
char *machine = MACHINE;
|
||||
cout << "hello: g++ appears to be installed correctly on your "
|
||||
<< machine << ".\n";
|
||||
return(0);
|
||||
}
|
||||
e!o!f
|
||||
if ${INSTALLDIR}/${EXECDIR}/bin/gcc ${GPLUSOPTIONS} -Wall -O -g \
|
||||
-DMACHINE=\"${INSTALLHOST}\" ${LOGDIR}/hello.C -o ${LOGDIR}/Hello -lg++ ; then
|
||||
if ${LOGDIR}/Hello ; then
|
||||
echo This is good.
|
||||
else
|
||||
echo '***' hello.C fails to run. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi # ./Hello
|
||||
else
|
||||
### this presupposes that hello.c DID compile.
|
||||
echo '***' hello.C fails to compile. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi # run g++
|
||||
|
||||
### now check for static initialization.
|
||||
cat > ${LOGDIR}/static-init.C << 'e!o!f'
|
||||
#include <iostream.h>
|
||||
int Three;
|
||||
|
||||
struct Foo {
|
||||
Foo(int i) { Three = i; }
|
||||
};
|
||||
|
||||
Foo foo(3);
|
||||
|
||||
int main(int argc, char**argv)
|
||||
{
|
||||
if (Three != 3) {
|
||||
cout << "static-init: static initialization fails.\n";
|
||||
return(1);
|
||||
}
|
||||
|
||||
cout << "static-init: static initialization appears to work.\n";
|
||||
return(0);
|
||||
}
|
||||
e!o!f
|
||||
if ${INSTALLDIR}/${EXECDIR}/bin/gcc ${GPLUSOPTIONS} -Wall -O -g \
|
||||
-DMACHINE=\"${INSTALLHOST}\" ${LOGDIR}/static-init.C -o ${LOGDIR}/static-init -lg++ ; then
|
||||
if ${LOGDIR}/static-init ; then
|
||||
echo This is good.
|
||||
else
|
||||
echo '***' Static initialization is not working. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi # run static-init
|
||||
else
|
||||
### this presupposes that it DID compile.
|
||||
echo '***' static-init.c fails to compile. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi # run g++
|
||||
else # no g++, so don't test it
|
||||
true
|
||||
fi # no g++
|
||||
;;
|
||||
emacs)
|
||||
cat > ${LOGDIR}/hello.el <<'e!o!f'
|
||||
(server-start)
|
||||
(message "Emacs appears to be installed correctly.")
|
||||
(kill-emacs 0)
|
||||
e!o!f
|
||||
if ${INSTALLDIR}/${EXECDIR}/bin/emacs -batch -l ${LOGDIR}/hello.el ; then
|
||||
echo This is good.
|
||||
else
|
||||
echo '***' Emacs fails to run. This is a problem.
|
||||
echo '*** ' Please call ${HOTLINE}
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
src) # if anyone can tell me how to test the installation of source...
|
||||
true
|
||||
;;
|
||||
*)
|
||||
echo '***' I do not know how to test for tool \"${tool}\" because I have never
|
||||
echo '*** ' heard of it. This is a problem. Please call ${HOTLINE}.
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
rm -f hello* test-ioctl* static-init* Hello*
|
||||
cd ${popdir}
|
||||
echo Cygnus Support software distribution tested!
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
echo Done.
|
||||
|
||||
exit 0
|
||||
|
||||
###
|
||||
### Local Variables:
|
||||
### comment-column: 0
|
||||
### fill-column: 131
|
||||
### End:
|
||||
###
|
||||
|
||||
### End of Install
|
67
Pack-A-Progressive
Executable file
67
Pack-A-Progressive
Executable file
@ -0,0 +1,67 @@
|
||||
#!/bin/sh
|
||||
CC=gcc
|
||||
|
||||
set -x
|
||||
set -e
|
||||
|
||||
if [ $# != 3 ] ; then
|
||||
echo Usage: $0 release host /dev/norewindtape
|
||||
exit 1
|
||||
fi
|
||||
|
||||
release=$1
|
||||
host=$2
|
||||
tape=$3
|
||||
|
||||
cd ${host}
|
||||
mt -f ${tape} ret
|
||||
mt -f ${tape} rew
|
||||
/bin/tar cf ${tape} Install
|
||||
|
||||
cat > /tmp/blockit.c <<'e!o!f'
|
||||
#include <stdio.h>
|
||||
|
||||
#define BLOCKSIZE (1024 * 62)
|
||||
|
||||
main() {
|
||||
long c;
|
||||
long i = 0;
|
||||
long j;
|
||||
|
||||
setvbuf (stdout, (char *)NULL, _IOFBF, BLOCKSIZE);
|
||||
|
||||
while ((c = getchar()) != EOF) {
|
||||
if (ferror(stdin)) {
|
||||
perror("on getchar");
|
||||
return(1);
|
||||
} /* on error */
|
||||
|
||||
putchar(c);
|
||||
|
||||
if (ferror(stdout)) {
|
||||
perror("on putchar");
|
||||
return(1);
|
||||
} /* on error */
|
||||
|
||||
++i;
|
||||
} /* while there is input */
|
||||
|
||||
for (j = (BLOCKSIZE - (i % BLOCKSIZE)); j; --j) {
|
||||
putchar(0);
|
||||
|
||||
if (ferror(stdout)) {
|
||||
perror("on putchar");
|
||||
return(1);
|
||||
} /* on error */
|
||||
} /* pad */
|
||||
|
||||
return(0);
|
||||
}
|
||||
e!o!f
|
||||
(cd /tmp; ${CC} -o blockit blockit.c)
|
||||
/bin/tar cf - ${release} | compress -vV | /tmp/blockit > ${tape}
|
||||
mt -f ${tape} asf 0
|
||||
tar tvf ${tape}
|
||||
dd bs=62k if=${tape} | compress -d | /bin/tar tvvf -
|
||||
rm -f /tmp/blockit /tmp/blockit.c
|
||||
mt -f ${tape} rew
|
2077
install-texi.in
Normal file
2077
install-texi.in
Normal file
File diff suppressed because it is too large
Load Diff
453
intro.texi
Normal file
453
intro.texi
Normal file
@ -0,0 +1,453 @@
|
||||
\input texinfo
|
||||
@c $Id$
|
||||
@setfilename intro.info
|
||||
@settitle Introduction
|
||||
@iftex
|
||||
@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
|
||||
@c implements Cygnus modifications to the texinfo manual style.
|
||||
@input texiplus
|
||||
@c The include file "smpklug.texi" is a kluge to deal with local
|
||||
@c document production issues at Cygnus; it's safe to comment out this
|
||||
@c line if you don't have (or don't want) the file.
|
||||
@input smpklug.texi
|
||||
@smallbook
|
||||
@cropmarks
|
||||
@finalout
|
||||
@c We don't actually want a titlepage; HEADINGSon is usually called by
|
||||
@c @end titlepage to turn on footers and headers.
|
||||
@setchapternewpage odd
|
||||
@HEADINGSon
|
||||
@end iftex
|
||||
|
||||
@node Top,,,
|
||||
@unnumbered Introduction
|
||||
|
||||
This Developer's Kit puts at your disposal, in a single coordinated
|
||||
and tested release, some of the best software development tools
|
||||
available:
|
||||
|
||||
@table @t
|
||||
@item gcc
|
||||
C compiler
|
||||
|
||||
@item g++
|
||||
C++ compiler
|
||||
|
||||
@item gdb
|
||||
Debugger
|
||||
|
||||
@item make
|
||||
Automates building and installing your programs
|
||||
|
||||
@item gprof
|
||||
Performance analyzer
|
||||
|
||||
@item byacc
|
||||
Parser generator
|
||||
|
||||
@item flex
|
||||
Fast lexical analyzer generator
|
||||
|
||||
@item libg++.a
|
||||
Class library for C++
|
||||
|
||||
@item send_pr
|
||||
Script to send structured problem reports to Cygnus
|
||||
|
||||
@item diff
|
||||
Compares source files
|
||||
|
||||
@item patch
|
||||
Installs source fixes
|
||||
|
||||
@item info
|
||||
@itemx makeinfo
|
||||
Online documentation tools
|
||||
|
||||
@item texinfo.tex
|
||||
@itemx texindex
|
||||
Documentation printing tools
|
||||
@end table
|
||||
|
||||
On most host systems, the following are also included (to see if
|
||||
they are available on your host, @pxref{Contents, Release Contents,
|
||||
Release Contents, README.info, Installation Notes}).
|
||||
|
||||
@table @t
|
||||
@item gas
|
||||
Assembler
|
||||
|
||||
@item ld
|
||||
Linker
|
||||
|
||||
@item ar
|
||||
Manages object code archives
|
||||
|
||||
@item nm
|
||||
Lists object file symbol tables
|
||||
|
||||
@item objdump
|
||||
Displays object file information
|
||||
|
||||
@item ranlib
|
||||
Generates archive index
|
||||
|
||||
@item size
|
||||
Lists section and total sizes
|
||||
|
||||
@item strip
|
||||
Discards symbols
|
||||
@end table
|
||||
|
||||
These tools are free software; most of them are from the GNU project,
|
||||
produced by the Free Software Foundation (FSF). ``GNU'' is the name of
|
||||
the FSF's evolving system (in speech, the `G' is sounded). Cygnus
|
||||
Support collaborates with the FSF in developing these tools. In this,
|
||||
our @dfn{Progressive} product, we've assembled the most recent forms of
|
||||
the development tools, tested them, made sure they work well together,
|
||||
made them easy to install---the installation tape comes with binaries
|
||||
already compiled for your system---and made them easy to reconfigure and
|
||||
recompile from source.
|
||||
|
||||
Cygnus Support exists to help our clients exploit their freedom in
|
||||
using, adapting, or enhancing this software. @xref{Cygnus,,About Cygnus
|
||||
Support}, for more information.
|
||||
|
||||
@page
|
||||
@node Copying,,,
|
||||
@section Free Software
|
||||
If you find our Developer's Kit useful, please feel free to give or sell
|
||||
copies of the software and documentation to anyone you like.
|
||||
|
||||
Cygnus products are @dfn{free software}, protected by the @sc{gnu} General
|
||||
Public License (GPL). The GPL gives you the freedom to copy or adapt any
|
||||
program it licenses---but every person getting a copy also gets with it the
|
||||
freedom to modify that copy (which means that they must get access to
|
||||
the source code), and the freedom to distribute further copies. Typical
|
||||
software companies use copyrights to limit your freedoms; the GPL is
|
||||
designed to preserve your freedoms.
|
||||
|
||||
Fundamentally, the General Public License is a license which grants you
|
||||
these freedoms, and only imposes restrictions to ensure that no one can
|
||||
take these freedoms away from anyone else.
|
||||
|
||||
For full details, see the @strong{LICENSE} section in this manual
|
||||
set.
|
||||
|
||||
@page
|
||||
@node Manuals,,,
|
||||
@section Manuals
|
||||
@noindent
|
||||
These printed manuals are included in your Cygnus Progressive Release:
|
||||
@display
|
||||
|
||||
@cite{Using the @sc{gnu} C Compiler}
|
||||
|
||||
@cite{The C Preprocessor}
|
||||
|
||||
@cite{GDB: The @sc{gnu} Source-Level Debugger}
|
||||
|
||||
@cite{Using @code{as}: The @sc{gnu} Assembler}
|
||||
|
||||
@cite{The @sc{gnu} Binary Utilities}
|
||||
|
||||
@cite{@code{gld}, the @sc{gnu} Linker}
|
||||
|
||||
@cite{@sc{gnu} Make: A Program for Directing Recompilation}
|
||||
|
||||
@cite{User's Guide to the @sc{GNU} C++ Class Library}
|
||||
|
||||
@end display
|
||||
|
||||
The manuals are designed for easy online browsing (@pxref{Info,,Online
|
||||
Documentation}). For online use, the accompanying software distribution
|
||||
tape includes all the printed manuals, and also the following documents:
|
||||
|
||||
@table @emph
|
||||
@item FLEX: A Fast Lexical Analyzer Generator
|
||||
Generates lexical analyzers suitable for GCC and other compilers.
|
||||
|
||||
@item Info: Documentation Browsing System
|
||||
Full details on the @code{info} browser.
|
||||
|
||||
@item Texinfo: The @sc{gnu} Documentation Format
|
||||
How you can use @TeX{} to print these manuals, and how to write your own
|
||||
manuals in this style.
|
||||
|
||||
@item Using and Porting @sc{gnu cc}
|
||||
Detailed information about what's needed to put @sc{gnu cc} on different
|
||||
platforms, or to modify @sc{gnu cc}. Also includes all the
|
||||
information in the printed manual @cite{Using the @sc{gnu} C Compiler}.
|
||||
@end table
|
||||
|
||||
@noindent
|
||||
Finally, @code{man} pages are included for all the programs in the release.
|
||||
|
||||
You have the freedom to copy the manuals, like the software they cover;
|
||||
each manual's copyright statement includes the necessary permissions.
|
||||
The manuals themselves are also free software, and the source for them
|
||||
is also available on the tape.
|
||||
|
||||
@node Info,,,
|
||||
@section Using Online Documentation
|
||||
|
||||
You can browse through the online documentation using either @sc{gnu} Emacs,
|
||||
or the program @code{info} included on the accompanying tape.
|
||||
Online, the manuals are organized into @dfn{nodes}, which correspond to
|
||||
the chapters and sections of a printed book. You can follow them in
|
||||
sequence, if you wish, just like in the printed book---but there are
|
||||
also other choices. The documents have menus that let you go quickly to
|
||||
the node that has the information you need. @code{info} has ``hot''
|
||||
references; if one section refers to another, you can tell @code{info}
|
||||
to take you immediately to that other section---and you can get back
|
||||
again easily to take up your reading where you left off. Naturally, you
|
||||
can also search for particular words or phrases.
|
||||
|
||||
The best way to get started with the online documentation system is to
|
||||
run the browser @code{info}. After the Progressive Release is installed on
|
||||
your system, you can get into @code{info} by just typing its name---no
|
||||
options or arguments are necessary---at your shell's prompt (shown as
|
||||
@samp{eg%} here):
|
||||
@example
|
||||
eg% info
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@code{info} will display its first screen, a menu of the documentation
|
||||
available, and will await your input. Typing the single letter
|
||||
@example
|
||||
h
|
||||
@end example
|
||||
@noindent
|
||||
requests a tutorial, designed to teach you how to use @code{info}.
|
||||
|
||||
If you already use Emacs, you may want to get into the documentation
|
||||
browsing mode, instead, by typing @kbd{C-h i} inside Emacs.
|
||||
|
||||
You can get out of @code{info} at any time by typing the single letter
|
||||
@kbd{q}.
|
||||
|
||||
@page
|
||||
Here is a summary of all the @code{info} commands; @code{info} itself
|
||||
can display a summary like this at any time, when you type the single
|
||||
character @kbd{?}.
|
||||
|
||||
@smallexample
|
||||
@cartouche
|
||||
h @r{Invoke the Info tutorial.}
|
||||
q @r{Quit Info}
|
||||
|
||||
@i{Selecting other nodes:}
|
||||
n @r{Move to the ``next'' node of this node.}
|
||||
p @r{Move to the ``previous'' node of this node.}
|
||||
u @r{Move ``up'' from this node.}
|
||||
m @r{Pick menu item specified by name (or abbreviation).}
|
||||
@r{Picking a menu item moves to the corresponding node.}
|
||||
f @r{Follow a cross reference. Reads name of reference.}
|
||||
l @r{Move to the last node you were looking at.}
|
||||
|
||||
@i{Moving within a node:}
|
||||
Space @r{scroll forward a page.}
|
||||
DEL @r{scroll backward a page.}
|
||||
b @r{Go to beginning of this node.}
|
||||
|
||||
@i{Advanced commands:}
|
||||
1 @r{Pick first item in node's menu.}
|
||||
2 - 5 @r{Pick second ... fifth item in node's menu.}
|
||||
g @r{Move to node specified by name.}
|
||||
@r{You may include a filename as well, as @code{(@var{FILENAME})@var{NODENAME}}.}
|
||||
s @r{Search through this Info file for a specified string,}
|
||||
@r{and select the node in which the next occurrence is found.}
|
||||
Ctl-p @r{Print the contents of this node using @samp{lpr}.}
|
||||
@end cartouche
|
||||
@end smallexample
|
||||
|
||||
@page
|
||||
@node Bugs,,,
|
||||
@section Reporting Trouble
|
||||
We've tried to make the programs in your Progressive Release as
|
||||
trouble-free as possible. If you do encounter trouble, however, we'd
|
||||
like to be able to diagnose and fix the problem as quickly as possible.
|
||||
You can help us do that by using the script @code{send_pr} to send us your
|
||||
problem reports.
|
||||
|
||||
@code{send_pr} invokes an editor on a problem report form (after
|
||||
trying to fill in some fields with reasonable default values). After
|
||||
you exit the editor, @code{send_pr} sends the filled out form to the
|
||||
problem report management system (PRMS) at Cygnus Support. You can
|
||||
use the environment variable @code{EDITOR} to specify what editor to
|
||||
use (the default is @code{vi}).
|
||||
|
||||
@code{send_pr} attempts to send your problem report to Cygnus via
|
||||
electronic mail. If your site cannot support this, you can still use
|
||||
the problem report form: use @samp{send_pr -p} to capture a copy of the
|
||||
blank problem-report form and fill it in. (You can also photocopy the
|
||||
blank form at the end of this section to fill in.) In either case you
|
||||
can FAX the problem report to Cygnus at @w{+1 415 322 3270}.
|
||||
|
||||
At Cygnus Support, the problem report is assigned a unique number and is
|
||||
stored in the PRMS database according to its category and your
|
||||
customer-id. PRMS automatically replies with an acknowledgement, citing
|
||||
the category and the PR number. As the next step, Cygnus staff inspects
|
||||
the bugreport (if you've marked your report as high priority, we respond
|
||||
with an analysis of the problem in less than one business day). We'll
|
||||
offer a solution as soon as possible, and await your feedback. As a
|
||||
matter of policy, we do not consider your problem report closed until
|
||||
you've agreed with a solution we offer.
|
||||
|
||||
To ensure that a problem report is handled promptly, it must contain
|
||||
your (unique) customer-id and one of the available categories, shown as
|
||||
comments in the problem report form, to identify the problem area. As a
|
||||
Cygnus Support customer, you can obtain your customer-id by invoking
|
||||
@code{send_pr} with the @samp{-request-id} option.
|
||||
|
||||
@page
|
||||
@subsection Filling out a problem report
|
||||
Problem reports are structured so that a program can manage them. When
|
||||
filling out the form, please remember the following guidelines:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Each PR needs a valid customer-id and category.
|
||||
|
||||
@item
|
||||
Describe only one problem with one PR.
|
||||
|
||||
@item
|
||||
For follow-up mail, use the same subject line as the one in the
|
||||
automatic acknowledgent. It shows the category, the PR number and the
|
||||
original synopsis line. This allows Cygnus Support to make sure mail on
|
||||
the same problem report stays together.
|
||||
|
||||
@item
|
||||
Please try to make the subject or synopsis line as informative
|
||||
as possible. For misbehaving software, you might use a sentence of
|
||||
the form ``with input foo, component xyz produces bar''.
|
||||
|
||||
@item
|
||||
You don't need to delete the comment lines while editing the PR form;
|
||||
this is done by @code{send_pr}. Put your information before or
|
||||
after the comment.
|
||||
@end itemize
|
||||
|
||||
@page
|
||||
For full details on @code{send_pr} and the supporting form, see the man
|
||||
page @code{send_pr}(1). Here is a sample blank problem-report form; if
|
||||
electronic mail from your site does not reach Cygnus, you can send us
|
||||
problem reports by photocopying this sample, filling it out, and sending
|
||||
it by FAX to @w{+1 415 322 3270}.
|
||||
|
||||
@iftex
|
||||
@widen{28pt}
|
||||
@end iftex
|
||||
|
||||
@smallexample
|
||||
SEND_PR: Choose from the following categories:
|
||||
SEND_PR:
|
||||
SEND_PR: bfd binutils bison clib config cvs
|
||||
SEND_PR: diff doc emacs g++ gas gcc
|
||||
SEND_PR: gdb grep ispell ld libg++ libiberty
|
||||
SEND_PR: libiberty make rcs readline send_pr texinfo
|
||||
SEND_PR: other
|
||||
SEND_PR:
|
||||
|
||||
To: cygnus-bugs@@cygnus.com
|
||||
|
||||
Subject:
|
||||
|
||||
From:
|
||||
|
||||
Reply-To:
|
||||
|
||||
X-send-pr-version: send_pr: 1.15
|
||||
|
||||
|
||||
>Customer-Id:
|
||||
|
||||
>Originator: <name of the PR author (one line)>
|
||||
|
||||
>Organization: <organization of PR author (multiple lines)>
|
||||
|
||||
|
||||
|
||||
>Confidential: <[ yes | no ] (one line)>
|
||||
|
||||
>Synopsis: <synopsis of the problem (one line)>
|
||||
|
||||
>Severity: <[ non-critical | serious | critical ] (one line)>
|
||||
|
||||
>Priority: <[ low | medium | high ] (one line)>
|
||||
|
||||
>Category: <name of the product (one line)>
|
||||
|
||||
>Class: <[ sw-bug | doc-bug | change-request | support ] (one line)>
|
||||
|
||||
>Release: <release number or tag (one line)>
|
||||
|
||||
>Environment:
|
||||
<machine, os, target, libraries (multiple lines)>
|
||||
|
||||
|
||||
|
||||
>Description:
|
||||
<precise description of the problem (multiple lines)>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
>How-To-Repeat:
|
||||
<code/input/activities to reproduce the problem (multiple lines)>
|
||||
@end smallexample
|
||||
|
||||
@iftex
|
||||
@widen{-28pt}
|
||||
@end iftex
|
||||
|
||||
@page
|
||||
@node Cygnus,,,
|
||||
@section About Cygnus Support
|
||||
Cygnus Support was founded in 1989 to provide commercial support for
|
||||
free software. Cygnus supplies products and services that benefit
|
||||
advanced development groups by allowing them to use state-of-the-art
|
||||
tools without having to maintain them. With Cygnus Support, sites that
|
||||
once were forced to do their own tool support can recover that valuable
|
||||
staff time. Former users of proprietary software now may choose
|
||||
supported free software, combining the advantages of both worlds.
|
||||
|
||||
Free software is faster, more powerful, and more portable than its
|
||||
proprietary counterparts. It evolves faster because users who want to
|
||||
make improvements are free to do so. Cygnus tracks these
|
||||
improvements and integrates them into tested, stable versions ready
|
||||
for commercial use, then backs this software with comprehensive
|
||||
support.
|
||||
|
||||
With Cygnus Support as your partner, you will have the software and
|
||||
the support you need to meet your business objectives. Cygnus
|
||||
is intimately familiar with this software from extensive experience
|
||||
using, debugging, and implementing it. You get direct access to the
|
||||
most qualified support people: the authors of that software.
|
||||
|
||||
We provide up-to-the minute ``progressive'' releases, for those who need
|
||||
the very latest version---or ``vintage'' releases: stable versions which
|
||||
have been through extensive use and testing.
|
||||
|
||||
Because all our improvements are also free software, you can
|
||||
distribute them widely within your organization, or to your customers,
|
||||
without extra cost.
|
||||
|
||||
@sp 4
|
||||
|
||||
@display
|
||||
Cygnus Support
|
||||
814 University Avenue
|
||||
Palo Alto, CA 94301, USA
|
||||
|
||||
+1 415 322 3811
|
||||
|
||||
email: @code{info@@cygnus.com}
|
||||
fax: +1 415 322 3270
|
||||
@end display
|
||||
|
||||
@bye
|
315
sol-Build-A-Release.mk
Normal file
315
sol-Build-A-Release.mk
Normal file
@ -0,0 +1,315 @@
|
||||
### Makefile for preparing a progressive release.
|
||||
###
|
||||
### This makefile is distinct from the makefile for three-staging for
|
||||
### several reasons. First, this version builds a "stage4" using src
|
||||
### directories that have no CVS directories. Second, the binaries
|
||||
### are build from independent copies of the source. That is, each
|
||||
### host release will have it's own copy of the src directory.
|
||||
###
|
||||
### This file was written and is maintained by K. Richard Pixley
|
||||
###
|
||||
|
||||
RELNO = 1.0
|
||||
|
||||
PWD = $(shell pwd)
|
||||
CVS = $(PWD)/cirdancvs
|
||||
tree = progressive
|
||||
rooting = /opt/cygnus-sol2-$(RELNO)
|
||||
cvs_module = progressive-solaris
|
||||
gccflags = "-O"
|
||||
release_tag = solaris-1-0
|
||||
release_dir = cygnus-sol2-1.0
|
||||
|
||||
|
||||
|
||||
host_release = ${host}/cygnus-sol2-$(RELNO)
|
||||
objdir = ${host_release}/objdir
|
||||
|
||||
|
||||
# prefixes are passed as arguments to configure, they have to start with -
|
||||
prefixes = -prefix=$(rooting)
|
||||
|
||||
# inst_prefixes are passed as arguments to make, without the -
|
||||
inst_prefixes = prefix=$(PWD)/$(host_release)
|
||||
|
||||
### What are these for?
|
||||
create =
|
||||
restart =
|
||||
usage =
|
||||
|
||||
## which C compiler to use
|
||||
#CC = $(rooting)/bin/gcc
|
||||
CC = /opt/cygnus-sol2-1.0/bin/gcc
|
||||
C_COMPILER = "CC=$(CC) ${gccflags}"
|
||||
|
||||
all: .${host}-done fluff
|
||||
chmod -R a-w $(host)
|
||||
chmod -R go=u $(host)
|
||||
find $(host) -type d -print | xargs chmod u+w
|
||||
|
||||
testfile: all blockit ${host}+.Z
|
||||
${host}+.Z:
|
||||
(cd ${host} ; tar cf - ${release_dir} \
|
||||
| compress -vV \
|
||||
| ../blockit \
|
||||
> ../$@)
|
||||
|
||||
.${host}-done: .${host}-install .${host}-install-info
|
||||
rm -rf ${objdir}
|
||||
touch $@
|
||||
|
||||
.${host}-install: .${host}-all
|
||||
${MAKE} -C ${objdir} -w install-no-fixedincludes \
|
||||
$(inst_prefixes) $(C_COMPILER)
|
||||
touch $@
|
||||
|
||||
.${host}-install-info: .${host}-info
|
||||
${MAKE} -C ${objdir} -w install-info $(inst_prefixes) $(C_COMPILER)
|
||||
touch $@
|
||||
|
||||
.${host}-all: .${host}-config
|
||||
${MAKE} -C ${objdir} -w all $(C_COMPILER)
|
||||
touch $@
|
||||
|
||||
.${host}-info: .${host}-config
|
||||
${MAKE} -C ${objdir} -w info $(C_COMPILER)
|
||||
touch $@
|
||||
|
||||
.${host}-config: .${host}-src
|
||||
cd ${objdir} ; \
|
||||
../src/configure ${host} $(prefixes)
|
||||
touch $@
|
||||
|
||||
.${host}-src: .${release_tag}-co .${host}-dirs
|
||||
rm -rf ${host_release}/src
|
||||
(tar cf - ${release_dir} | (cd ${host_release} ; tar xvf -) ; true)
|
||||
(cd ${host_release}/${release_dir} ; find . \( -name CVS -o -name CVS.adm \) -depth -exec rm -rf {} \; )
|
||||
mv ${host_release}/${release_dir} ${host_release}/src
|
||||
touch $@
|
||||
|
||||
.${host}-dirs:
|
||||
[ -d ${host} ] || mkdir ${host}
|
||||
[ -d ${host_release} ] || mkdir ${host_release}
|
||||
[ -d ${objdir} ] || mkdir ${objdir}
|
||||
touch $@
|
||||
|
||||
.${release_tag}-co: .${release_tag}-tagged
|
||||
${CVS} co -r ${release_tag} ${cvs_module}
|
||||
mv ${tree} ${release_dir}
|
||||
touch $@
|
||||
|
||||
.${release_tag}-tagged:
|
||||
${CVS} rtag ${release_tag} ${cvs_module}
|
||||
touch $@
|
||||
|
||||
fluff: ${host_release}/src/Build-A-Release.mk \
|
||||
${host_release}/src/Pack-A-Progressive \
|
||||
${host_release}/lib/fixincludes \
|
||||
${host_release}/src/INSTALL \
|
||||
${host_release}/README \
|
||||
${host}/Install \
|
||||
${host}/install.dvi \
|
||||
${host_release}/CYGNUS
|
||||
|
||||
${host}/install.dvi: ${host_release}/src/install.texinfo
|
||||
cp $< ${host}/install.texinfo
|
||||
(cd ${host} ; tex install.texinfo)
|
||||
(cd ${host} ; tex install.texinfo)
|
||||
(cd ${host} ; tex install.texinfo)
|
||||
rm ${host}/install.texinfo
|
||||
|
||||
install-notes: ${host}/install.dvi
|
||||
lpr $^
|
||||
|
||||
clean-fluff:
|
||||
rm -f ${host_release}/src/Build-A-Release.mk \
|
||||
${host_release}/src/Pack-A-Progressive \
|
||||
${host_release}/lib/fixincludes \
|
||||
${host_release}/Install \
|
||||
${host_release}/src/install-texi.in \
|
||||
${host_release}/src/install.texinfo \
|
||||
${host_release}/src/Install.in \
|
||||
|
||||
${host_release}/src/Build-A-Release.mk: ${release_dir}/Build-A-Release.mk
|
||||
rm -f $@; cp $< $@
|
||||
|
||||
${host_release}/src/Pack-A-Progressive: ${release_dir}/Pack-A-Progressive
|
||||
rm -f $@; cp $< $@
|
||||
|
||||
${host_release}/src/Install.in: ${release_dir}/Install.in
|
||||
rm -f $@; cp $< $@
|
||||
|
||||
${host_release}/src/CYGNUS: ${release_dir}/CYGNUS
|
||||
rm -f $@; cp $< $@
|
||||
|
||||
${host_release}/CYGNUS: ${host_release}/src/CYGNUS
|
||||
rm -f $@; cp $< $@
|
||||
|
||||
${host_release}/src/install-texi.in: ${release_dir}/sol-inst.texi
|
||||
rm -f $@; cp $< $@
|
||||
|
||||
${host_release}/lib/fixincludes: ${host_release}/src/gcc/fixincludes
|
||||
rm -f $@; cp $< $@
|
||||
chmod a+x $@
|
||||
|
||||
${host}/Install: ${host_release}/Install
|
||||
rm -f $@; cp $< $@
|
||||
chmod a+x $@
|
||||
|
||||
${host_release}/Install: ${host_release}/src/Install
|
||||
rm -f $@; cp $< $@
|
||||
chmod a+x $@
|
||||
|
||||
${host_release}/src/install.texinfo: ${host_release}/src/install-texi.in
|
||||
$(MAKE) process -f Build-A-Release.mk IN=$< OUT=$@ relno=`echo ${release_dir} | sed "/${tree}-/s///"`
|
||||
|
||||
${host_release}/README: ${host_release}/src/README-bin
|
||||
rm -f $@; cp $< $@
|
||||
|
||||
${host_release}/src/INSTALL: ${host_release}/src/install.texinfo
|
||||
-makeinfo +no-headers +no-split $< -o $@
|
||||
### remove tags table
|
||||
sed -e '/^Tag Table/,$$d' $@ | sed -e '$$d' > $@.new
|
||||
mv -f $@.new $@
|
||||
|
||||
${host_release}/src/Install: ${host_release}/src/Install.in
|
||||
$(MAKE) process -f Build-A-Release.mk IN=$< OUT=$@ relno=`echo ${release_dir} | sed "/${tree}-/s///"`
|
||||
chmod a+x $@
|
||||
|
||||
process: process-${host}
|
||||
@if grep '||' ${OUT}.new ; then \
|
||||
echo $0 missed at least one of the triggers. 1>&2 ; \
|
||||
exit 1 ; \
|
||||
else \
|
||||
true ; \
|
||||
fi
|
||||
mv -f ${OUT}.new ${OUT}
|
||||
|
||||
process-sun4:
|
||||
sed -e "/^@clear HOSTsun4/s::@set HOSTsun4:" \
|
||||
-e "/^@set HOSTsun3/s::@clear HOSTsun3:" \
|
||||
-e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \
|
||||
-e "/^@set HOSTiris/s::@clear HOSTiris:" \
|
||||
-e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \
|
||||
-e "/^@set FIXMES/s::@clear FIXMES:" \
|
||||
-e "/\|\|RELNO\|\|/s::${relno}:g" \
|
||||
-e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
|
||||
-e "/\|\|DEVdflt\|\|/s::/dev/nrst8:g" \
|
||||
-e "/\|\|BD\|\|/s::35:g" \
|
||||
-e "/\|\|SD\|\|/s::34:g" \
|
||||
-e "/\|\|DF\|\|/s::69:g" \
|
||||
-e "/\|\|HOST\|\|/s::Sun-4:g" \
|
||||
-e "/\|\|HOSTstr\|\|/s::sun4:g" \
|
||||
-e "/\|\|TARGET\|\|/s::sun4:g" \
|
||||
-e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
|
||||
< ${IN} > ${OUT}.new
|
||||
|
||||
|
||||
process-sparc-sun-solaris2:
|
||||
sed \
|
||||
-e "/^@set FIXMES/s::@clear FIXMES:" \
|
||||
-e "/^@clear CUSTOMER/s::@set CUSTOMER:" \
|
||||
-e "/^@set CDROMinst/s::@clear CDROMinst:" \
|
||||
-e "/^@clear TAPEinst/s::@set TAPEinst:" \
|
||||
-e "/^@set FTPsingle/s::@clear FTPsingle:" \
|
||||
-e "/^@set FTPsplit/s::@clear FTPsplit:" \
|
||||
-e "/\|\|MEDIUM\|\|/s::tape:g" \
|
||||
-e "/\|\|MEDstr\|\|/s::/dev/rmt/0ln:g" \
|
||||
-e "/\|\|DEVdflt\|\|/s::/dev/rmt/0ln:g" \
|
||||
-e "/\|\|MEDvar\|\|/s::/dev/@var{tape}:g" \
|
||||
-e "/\|\|TAPdflt\|\|/s::/dev/@var{tape}:g" \
|
||||
-e "/\|\|RELNO\|\|/s::1.0:g" \
|
||||
-e "/\|\|BD\|\|/s::20:g" \
|
||||
-e "/\|\|SD\|\|/s::28:g" \
|
||||
-e "/\|\|DF\|\|/s::48:g" \
|
||||
-e "/\|\|BUNDLE\|\|/s::comp:g" \
|
||||
-e "/\|\|HOST\|\|/s::SPARC computer:g" \
|
||||
-e "/\|\|HOSTstr\|\|/s::sparc-sun-solaris2:g" \
|
||||
-e "/\|\|TARGET\|\|/s::sparc-sun-solaris2:g" \
|
||||
-e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
|
||||
< $(IN) > $(OUT).new
|
||||
|
||||
process-sun3:
|
||||
sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \
|
||||
-e "/^@clear HOSTsun3/s::@set HOSTsun3:" \
|
||||
-e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \
|
||||
-e "/^@set HOSTiris/s::@clear HOSTiris:" \
|
||||
-e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \
|
||||
-e "/^@set FIXMES/s::@clear FIXMES:" \
|
||||
-e "/\|\|RELNO\|\|/s::${relno}:g" \
|
||||
-e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
|
||||
-e "/\|\|DEVdflt\|\|/s::/dev/nrst8:g" \
|
||||
-e "/\|\|BD\|\|/s::32:g" \
|
||||
-e "/\|\|SD\|\|/s::34:g" \
|
||||
-e "/\|\|DF\|\|/s::65:g" \
|
||||
-e "/\|\|HOST\|\|/s::Sun-3:g" \
|
||||
-e "/\|\|HOSTstr\|\|/s::sun3:g" \
|
||||
-e "/\|\|TARGET\|\|/s::sun3:g" \
|
||||
-e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
|
||||
< ${IN} > ${OUT}.new
|
||||
|
||||
process-decstation:
|
||||
sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \
|
||||
-e "/^@set HOSTsun3/s::@clear HOSTsun3:" \
|
||||
-e "/^@clear HOSTdecstation/s::@set HOSTdecstation:" \
|
||||
-e "/^@set HOSTiris/s::@clear HOSTiris:" \
|
||||
-e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \
|
||||
-e "/^@set FIXMES/s::@clear FIXMES:" \
|
||||
-e "/\|\|RELNO\|\|/s::${relno}:g" \
|
||||
-e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
|
||||
-e "/\|\|DEVdflt\|\|/s::/dev/nrmt0:g" \
|
||||
-e "/\|\|BD\|\|/s::27:g" \
|
||||
-e "/\|\|SD\|\|/s::34:g" \
|
||||
-e "/\|\|DF\|\|/s::61:g" \
|
||||
-e "/\|\|HOST\|\|/s::Decstation:g" \
|
||||
-e "/\|\|HOSTstr\|\|/s::decstation:g" \
|
||||
-e "/\|\|TARGET\|\|/s::decstation:g" \
|
||||
-e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
|
||||
< ${IN} > ${OUT}.new
|
||||
true
|
||||
|
||||
process-iris4:
|
||||
sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \
|
||||
-e "/^@set HOSTsun3/s::@clear HOSTsun3:" \
|
||||
-e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \
|
||||
-e "/^@clear HOSTiris/s::@set HOSTiris:" \
|
||||
-e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \
|
||||
-e "/^@set FIXMES/s::@clear FIXMES:" \
|
||||
-e "/\|\|RELNO\|\|/s::${relno}:g" \
|
||||
-e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
|
||||
-e "/\|\|DEVdflt\|\|/s::/dev/mt/tps0d0nrns:g" \
|
||||
-e "/\|\|BD\|\|/s::25:g" \
|
||||
-e "/\|\|SD\|\|/s::34:g" \
|
||||
-e "/\|\|DF\|\|/s::59:g" \
|
||||
-e "/\|\|HOST\|\|/s::Iris:g" \
|
||||
-e "/\|\|HOSTstr\|\|/s::iris4:g" \
|
||||
-e "/\|\|TARGET\|\|/s::iris4:g" \
|
||||
-e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
|
||||
< ${IN} > ${OUT}.new
|
||||
|
||||
process-rs6000:
|
||||
sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \
|
||||
-e "/^@set HOSTsun3/s::@clear HOSTsun3:" \
|
||||
-e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \
|
||||
-e "/^@set HOSTiris/s::@clear HOSTiris:" \
|
||||
-e "/^@clear HOSTrs6000/s::@set HOSTrs6000:" \
|
||||
-e "/^@set FIXMES/s::@clear FIXMES:" \
|
||||
-e "/\|\|RELNO\|\|/s::${relno}:g" \
|
||||
-e "/\|\|TAPdflt\|\|/s::QIC-24:g" \
|
||||
-e "/\|\|DEVdflt\|\|/s::/dev/rmt0.1:g" \
|
||||
-e "/\|\|BD\|\|/s::36:g" \
|
||||
-e "/\|\|SD\|\|/s::34:g" \
|
||||
-e "/\|\|DF\|\|/s::70:g" \
|
||||
-e "/\|\|HOST\|\|/s::RS/6000:g" \
|
||||
-e "/\|\|HOSTstr\|\|/s::rs6000:g" \
|
||||
-e "/\|\|TARGET\|\|/s::rs6000:g" \
|
||||
-e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
|
||||
< ${IN} > ${OUT}.new
|
||||
|
||||
pclean:
|
||||
rm -rf ${host}
|
||||
|
||||
blockit: blockit.c
|
||||
|
||||
|
||||
|
222
sol-GNUmakefile
Executable file
222
sol-GNUmakefile
Executable file
@ -0,0 +1,222 @@
|
||||
#!/usr/latest/bin/make -f
|
||||
#
|
||||
# Makefile used to three-stage build a tree of source code, usually devo.
|
||||
#
|
||||
|
||||
# Every invocation of this Makefile needs to have a variable set (host),
|
||||
# which is the named used for ./configure, and also the prefix for the
|
||||
# various files and directories used in a three stage.
|
||||
#
|
||||
|
||||
ifndef host
|
||||
error:
|
||||
@echo
|
||||
@echo
|
||||
@echo You must set the variable \"host\" to use this Makefile
|
||||
@echo
|
||||
@echo
|
||||
@exit 1
|
||||
else
|
||||
|
||||
#
|
||||
# from here to very near the end of the file is the real guts of this
|
||||
# Makefile, and it is not seen if the variable 'host' is not set
|
||||
#
|
||||
|
||||
TREE := progressive
|
||||
ROOTING := /opt/cygnus-sol2-1.0
|
||||
CVS_MODULE := progressive-solaris
|
||||
TAG_DATE := 920615
|
||||
RELEASE_TAG := $(CVS_MODULE)-$(TAG_DATE)
|
||||
release_root := $(ROOTING)
|
||||
|
||||
TIME := time
|
||||
NICE := nice -17
|
||||
MF := -w
|
||||
GNUC := gcc -g
|
||||
|
||||
SHELL := /bin/sh
|
||||
|
||||
INSTDIR := $(shell pwd)/$(host)
|
||||
PREFIXES := prefix=$(ROOTING)
|
||||
|
||||
ifdef target
|
||||
arch=$(host)=$(target)
|
||||
endif
|
||||
|
||||
.PHONY: all
|
||||
all: do1 do2 do3
|
||||
|
||||
.PHONY: configuration
|
||||
configuration: $(TREE) $(host)-stamp-stage1-configured
|
||||
|
||||
.PHONY: comparison
|
||||
comparison:
|
||||
for i in `cd $(host)-objdir.3 ; find . -name \*.o -print` ; do \
|
||||
cmp $(host)-objdir.2/$$i $(host)-objdir.3/$$i ; \
|
||||
done
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(host)-$(TREE)-holes $(host)-objdir $(host)-objdir.[123] $(host)-stamp-stage[123]* $(host)-stamp-holes *~
|
||||
|
||||
.PHONY: very
|
||||
very:
|
||||
rm -rf $(TREE)
|
||||
|
||||
$(TREE):
|
||||
$(TIME) cvs co $(CVS_TAG) $(CVS_MODULE)
|
||||
|
||||
.PHONY: do1
|
||||
do1: $(host)-$(TREE)-holes $(host)-stamp-stage1
|
||||
|
||||
$(host)-stamp-stage1: $(host)-objdir.1
|
||||
touch $(host)-stamp-stage1
|
||||
|
||||
$(host)-objdir.1: $(TREE) $(host)-stamp-stage1-configured
|
||||
(cd $(host)-objdir ; $(TIME) make $(MF) all info host=$(host))
|
||||
@echo CONFIGURE: make all completed for $(host)
|
||||
(cd $(host)-objdir ; $(TIME) make $(MF) install install-info host=$(host))
|
||||
@echo CONFIGURE: make install-all completed for $(host)
|
||||
mv $(host)-objdir $(host)-objdir.1
|
||||
|
||||
$(host)-stamp-stage1-configured:
|
||||
[ -d $(host)-objdir ] || mkdir $(host)-objdir
|
||||
(cd $(host)-objdir ; \
|
||||
$(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \
|
||||
-prefix=$(ROOTING))
|
||||
touch $@
|
||||
|
||||
.PHONY: do2
|
||||
do2: $(host)-$(TREE)-holes $(host)-stamp-stage2
|
||||
|
||||
$(host)-stamp-stage2: $(host)-objdir.2
|
||||
PATH=$(release_root)/bin:`pwd`/$(host)-$(TREE)-holes ; \
|
||||
export PATH ; \
|
||||
echo $$PATH ; \
|
||||
SHELL=sh ; export SHELL ; \
|
||||
$(TIME) make $(host)-objdir.2 host=$(host)
|
||||
touch $(host)-stamp-stage2
|
||||
|
||||
$(host)-objdir.2: $(TREE) $(host)-stamp-stage2-configured
|
||||
[ -d $(host)-objdir ] || mkdir $(host)-objdir
|
||||
(cd $(host)-objdir ; $(TIME) make $(MF) all info "CC=$(GNUC)" host=$(host))
|
||||
(cd $(host)-objdir ; $(TIME) make $(MF) $(PREFIXES) install install-info "CC=$(GNUC)" host=$(host))
|
||||
mv $(host)-objdir $(host)-objdir.2
|
||||
|
||||
$(host)-stamp-stage2-configured:
|
||||
[ -d $(host)-objdir ] || mkdir $(host)-objdir
|
||||
(cd $(host)-objdir ; \
|
||||
$(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \
|
||||
-prefix=$(ROOTING))
|
||||
touch $@
|
||||
|
||||
.PHONY: do3
|
||||
do3: $(host)-$(TREE)-holes $(host)-stamp-stage3
|
||||
|
||||
$(host)-stamp-stage3: $(host)-objdir.3
|
||||
PATH=$(release_root)/bin:`pwd`/$(host)-$(TREE)-holes ; \
|
||||
export PATH ; \
|
||||
SHELL=sh ; export SHELL ; \
|
||||
$(TIME) make $(host)-objdir.3 host=$(host)
|
||||
touch $(host)-stamp-stage3
|
||||
|
||||
$(host)-objdir.3: $(TREE) $(host)-stamp-stage3-configured
|
||||
[ -d $(host)-objdir ] || mkdir $(host)-objdir
|
||||
(cd $(host)-objdir ; $(TIME) make $(MF) all info "CC=$(GNUC)" host=$(host))
|
||||
(cd $(host)-objdir ; $(TIME) make $(MF) install-no-fixedincludes install-info "CC=$(GNUC)" host=$(host))
|
||||
mv $(host)-objdir $(host)-objdir.3
|
||||
|
||||
$(host)-stamp-stage3-configured:
|
||||
[ -d $(host)-objdir ] || mkdir $(host)-objdir
|
||||
(cd $(host)-objdir ; \
|
||||
$(TIME) ../$(TREE)/configure $(host) -v -srcdir=../$(TREE) \
|
||||
-prefix=$(ROOTING))
|
||||
touch $@
|
||||
|
||||
HOLES := [ \
|
||||
ar \
|
||||
as \
|
||||
awk \
|
||||
basename \
|
||||
cat \
|
||||
cc \
|
||||
chmod \
|
||||
cmp \
|
||||
cp \
|
||||
date \
|
||||
echo \
|
||||
egrep \
|
||||
ex \
|
||||
expr \
|
||||
find \
|
||||
grep \
|
||||
hostname \
|
||||
install \
|
||||
ld \
|
||||
lex \
|
||||
ln \
|
||||
ls \
|
||||
mkdir \
|
||||
mv \
|
||||
pwd \
|
||||
ranlib \
|
||||
rm \
|
||||
rmdir \
|
||||
sed \
|
||||
sh \
|
||||
sort \
|
||||
time \
|
||||
touch \
|
||||
tr \
|
||||
true \
|
||||
whoami
|
||||
|
||||
PARTIAL_HOLES := \
|
||||
gcc \
|
||||
make
|
||||
|
||||
|
||||
$(host)-$(TREE)-holes: $(host)-stamp-holes
|
||||
|
||||
$(host)-stamp-holes:
|
||||
-rm -rf $(host)-$(TREE)-holes
|
||||
-mkdir $(host)-$(TREE)-holes
|
||||
for i in $(HOLES) ; do \
|
||||
if [ -x $(host)-$(TREE)-holes/$$i ] ; then \
|
||||
echo "$$i already present" ; \
|
||||
else if [ -x /bin/$$i ] ; then \
|
||||
cp /bin/$$i $(host)-$(TREE)-holes ; \
|
||||
echo $$i from /bin ; \
|
||||
else if [ -x /usr/bin/$$i ] ; then \
|
||||
cp /usr/bin/$$i $(host)-$(TREE)-holes ; \
|
||||
echo $$i from /usr/bin ; \
|
||||
else if [ -x /usr/ccs/bin/$$i ] ; then \
|
||||
cp /usr/ccs/bin/$$i $(host)-$(TREE)-holes ; \
|
||||
echo $$i from /usr/ccs/bin ; \
|
||||
else if [ -x /usr/unsupported/bin/$$i ] ; then \
|
||||
cp /usr/unsupported/bin/$$i $(host)-$(TREE)-holes ; \
|
||||
echo $$i from /usr/unsupported/bin ; \
|
||||
else \
|
||||
echo $$i is NOT found ; \
|
||||
fi; fi ; fi ; fi ; fi ; true ; \
|
||||
done
|
||||
for i in $(PARTIAL_HOLES) ; do \
|
||||
if [ -x /usr/latest/bin/$$i ] ; then \
|
||||
cp /usr/latest/bin/$$i $(host)-$(TREE)-holes ; \
|
||||
echo $$i from /usr/latest/bin ; \
|
||||
else if [ -x /usr/unsupported/bin/$$i ] ; then \
|
||||
cp /usr/unsupported/bin/$$i $(host)-$(TREE)-holes ; \
|
||||
echo $$i from /usr/unsupported/bin ; \
|
||||
fi; fi; \
|
||||
done
|
||||
touch $(host)-stamp-holes
|
||||
|
||||
force:
|
||||
|
||||
endif # host
|
||||
|
||||
### Local Variables:
|
||||
### fill-column: 131
|
||||
### End:
|
||||
|
2238
sol-inst.texi
Normal file
2238
sol-inst.texi
Normal file
File diff suppressed because it is too large
Load Diff
436
sol-intro.texi
Normal file
436
sol-intro.texi
Normal file
@ -0,0 +1,436 @@
|
||||
\input texinfo
|
||||
@c $Id$
|
||||
@setfilename intro.info
|
||||
@settitle Introduction
|
||||
@iftex
|
||||
@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
|
||||
@c implements Cygnus modifications to the texinfo manual style.
|
||||
@input texiplus
|
||||
@c The include file "smpklug.texi" is a kluge to deal with local
|
||||
@c document production issues at Cygnus; it's safe to comment out this
|
||||
@c line if you don't have (or don't want) the file.
|
||||
@input smpklug.texi
|
||||
@smallbook
|
||||
@cropmarks
|
||||
@finalout
|
||||
@end iftex
|
||||
@titlepage
|
||||
@title Introduction
|
||||
@sp 3
|
||||
@subtitle Cygnus Support Developer's Kit for Solaris 2.0
|
||||
@author Cygnus Support
|
||||
@page
|
||||
|
||||
@tex
|
||||
\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
|
||||
\xdef\manvers{\$Revision$} % for use in headers, footers
|
||||
{\parskip=0pt \hfill Cygnus Support\par \hfill {\it Introduction (Solaris-2)}, \manvers\par \hfill
|
||||
\TeX{}info \texinfoversion\par }
|
||||
@end tex
|
||||
|
||||
@vskip 0pt plus 1filll
|
||||
Copyright @copyright{} 1991, 1992 Cygnus Support
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of
|
||||
this manual provided the copyright notice and this permission notice
|
||||
are preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified versions of this
|
||||
manual under the conditions for verbatim copying, provided also that
|
||||
the entire resulting derived work is distributed under the terms of a
|
||||
permission notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this manual
|
||||
into another language, under the above conditions for modified versions.
|
||||
|
||||
@end titlepage
|
||||
|
||||
@node Top
|
||||
@unnumbered Introduction
|
||||
|
||||
This Developer's Kit puts at your disposal, in a single coordinated
|
||||
and tested release, some of the best software development tools
|
||||
available:
|
||||
|
||||
@table @t
|
||||
@item gcc
|
||||
C compiler (and its supporting programs and libraries)
|
||||
|
||||
@item gdb
|
||||
Debugger
|
||||
|
||||
@item gprof
|
||||
Performance analyzer
|
||||
|
||||
@item byacc
|
||||
Parser generator
|
||||
|
||||
@item flex
|
||||
Fast lexical analyzer generator
|
||||
|
||||
@item send_pr
|
||||
Cygnus problem-reporting utillity
|
||||
|
||||
@item patch
|
||||
Source-code update utility
|
||||
|
||||
@item info
|
||||
@itemx makeinfo
|
||||
Online documentation tools
|
||||
|
||||
@item texinfo.tex
|
||||
@itemx texindex
|
||||
Documentation printing tools
|
||||
@end table
|
||||
|
||||
These tools are free software; many of them are from the Free Software
|
||||
Foundation (FSF) GNU project (in speech, the `G' in GNU is sounded).
|
||||
Others were developed by the University of California, Berkeley and its
|
||||
contributors.
|
||||
|
||||
Cygnus Support collaborates with the FSF in developing these tools. In
|
||||
this product, we've ported recent forms of the development tools to
|
||||
Solaris 2, tested them, made sure they work well together, and made them
|
||||
easy to install---the installation package comes with binaries already
|
||||
compiled for your system.
|
||||
|
||||
Cygnus Support exists to help our clients exploit their freedom in
|
||||
using, adapting, or enhancing this software. @xref{Cygnus,,About Cygnus
|
||||
Support}, for more information.
|
||||
|
||||
@menu
|
||||
* Copying:: Free Software
|
||||
* Manuals:: Printed and Online Manuals
|
||||
* Info:: Using Online Documentation
|
||||
* Bugs:: Reporting Trouble
|
||||
* Cygnus:: About Cygnus Support
|
||||
@end menu
|
||||
|
||||
@page
|
||||
@node Copying
|
||||
@section Free Software
|
||||
If you find our Developer's Kit useful, please feel free to give or sell
|
||||
copies of the software and documentation to anyone you like.
|
||||
|
||||
Cygnus products are @dfn{free software}, protected by the @sc{gnu} General
|
||||
Public License (GPL). The GPL gives you the freedom to copy or adapt any
|
||||
program it licenses---but every person getting a copy also gets with it the
|
||||
freedom to modify that copy (which means that they must get access to
|
||||
the source code), and the freedom to distribute further copies. Typical
|
||||
software companies use copyrights to limit your freedoms; the GPL is
|
||||
designed to preserve your freedoms.
|
||||
|
||||
Fundamentally, the General Public License is a license which grants you
|
||||
these freedoms, and only imposes restrictions to ensure that no one can
|
||||
take these freedoms away from anyone else.
|
||||
|
||||
For full details, see the @strong{LICENSE} section in this manual
|
||||
set.
|
||||
|
||||
@page
|
||||
@node Manuals
|
||||
@section Manuals
|
||||
@noindent
|
||||
These printed manuals are included in your Cygnus Progressive Release:
|
||||
@display
|
||||
|
||||
@cite{Using the @sc{gnu} C Compiler}
|
||||
|
||||
@cite{The C Preprocessor}
|
||||
|
||||
@cite{GDB: The @sc{gnu} Source-Level Debugger}
|
||||
|
||||
@end display
|
||||
|
||||
The manuals are also designed for easy online browsing (@pxref{Info,,Online
|
||||
Documentation}). For online use, the accompanying software distribution
|
||||
includes all the printed manuals, and also the following documents:
|
||||
|
||||
@table @emph
|
||||
@item FLEX: A Fast Lexical Analyzer Generator
|
||||
Generates lexical analyzers suitable for GCC and other compilers.
|
||||
|
||||
@item Info: Documentation Browsing System
|
||||
Full details on the @code{info} browser.
|
||||
|
||||
@item Texinfo: The @sc{gnu} Documentation Format
|
||||
How you can use @TeX{} to print these manuals, and how to write your own
|
||||
manuals in this style.
|
||||
|
||||
@item Using and Porting @sc{gnu cc}
|
||||
Detailed information about what's needed to put @sc{gnu cc} on different
|
||||
platforms, or to modify @sc{gnu cc}. Also includes all the
|
||||
information in the printed manual @cite{Using the @sc{gnu} C Compiler}.
|
||||
@end table
|
||||
|
||||
@noindent
|
||||
Finally, @code{man} pages are included for all the programs in the release.
|
||||
|
||||
You have the freedom to copy the manuals, like the software they cover;
|
||||
each manual's copyright statement includes the necessary permissions.
|
||||
The manuals themselves are also free software, and the source for them
|
||||
is also available in the installation package.
|
||||
|
||||
@node Info
|
||||
@section Using Online Documentation
|
||||
|
||||
You can browse through the online documentation using either @sc{gnu} Emacs,
|
||||
or the (included) program @code{info}.
|
||||
Online, the manuals are organized into @dfn{nodes}, which correspond to
|
||||
the chapters and sections of a printed book. You can follow them in
|
||||
sequence, if you wish, just like in the printed book---but there are
|
||||
also other choices. The documents have menus that let you go quickly to
|
||||
the node that has the information you need. @code{info} has ``hot''
|
||||
references; if one section refers to another, you can tell @code{info}
|
||||
to take you immediately to that other section---and you can get back
|
||||
again easily to take up your reading where you left off. Naturally, you
|
||||
can also search for particular words or phrases.
|
||||
|
||||
The best way to get started with the online documentation system is to
|
||||
run the browser @code{info}. After the Progressive Release is installed on
|
||||
your system, you can get into @code{info} by just typing its name---no
|
||||
options or arguments are necessary---at your shell's prompt (shown as
|
||||
@samp{eg%} here):
|
||||
@example
|
||||
eg% info
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@code{info} will display its first screen, a menu of the documentation
|
||||
available, and will await your input. Typing the single letter
|
||||
@example
|
||||
h
|
||||
@end example
|
||||
@noindent
|
||||
requests a tutorial, designed to teach you how to use @code{info}.
|
||||
|
||||
If you already use Emacs, you may want to get into the documentation
|
||||
browsing mode, instead, by typing @kbd{C-h i} inside Emacs.
|
||||
|
||||
You can get out of @code{info} at any time by typing the single letter
|
||||
@kbd{q}.
|
||||
|
||||
@page
|
||||
Here is a summary of all the @code{info} commands; @code{info} itself
|
||||
can display a summary like this at any time, when you type the single
|
||||
character @kbd{?}.
|
||||
|
||||
@smallexample
|
||||
@cartouche
|
||||
h @r{Invoke the Info tutorial.}
|
||||
q @r{Quit Info}
|
||||
|
||||
@i{Selecting other nodes:}
|
||||
n @r{Move to the ``next'' node of this node.}
|
||||
p @r{Move to the ``previous'' node of this node.}
|
||||
u @r{Move ``up'' from this node.}
|
||||
m @r{Pick menu item specified by name (or abbreviation).}
|
||||
@r{Picking a menu item moves to the corresponding node.}
|
||||
f @r{Follow a cross reference. Reads name of reference.}
|
||||
l @r{Move to the last node you were looking at.}
|
||||
|
||||
@i{Moving within a node:}
|
||||
Space @r{scroll forward a page.}
|
||||
DEL @r{scroll backward a page.}
|
||||
b @r{Go to beginning of this node.}
|
||||
|
||||
@i{Advanced commands:}
|
||||
1 @r{Pick first item in node's menu.}
|
||||
2 - 5 @r{Pick second ... fifth item in node's menu.}
|
||||
g @r{Move to node specified by name.}
|
||||
@r{You may include a filename as well, as @code{(@var{FILENAME})@var{NODENAME}}.}
|
||||
s @r{Search through this Info file for a specified string,}
|
||||
@r{and select the node in which the next occurrence is found.}
|
||||
Ctl-p @r{Print the contents of this node using @samp{lpr}.}
|
||||
@end cartouche
|
||||
@end smallexample
|
||||
|
||||
@page
|
||||
@node Bugs
|
||||
@section Reporting Trouble
|
||||
We've tried to make the programs in your Progressive Release as
|
||||
trouble-free as possible. If you do encounter trouble, however, we'd
|
||||
like to be able to diagnose and fix the problem as quickly as possible.
|
||||
You can help us do that by using the script @code{send_pr} to send us your
|
||||
problem reports.
|
||||
|
||||
@code{send_pr} invokes an editor on a problem report form (after
|
||||
trying to fill in some fields with reasonable default values). After
|
||||
you exit the editor, @code{send_pr} sends the filled out form to the
|
||||
problem report management system (PRMS) at Cygnus Support. You can
|
||||
use the environment variable @code{EDITOR} to specify what editor to
|
||||
use (the default is @code{vi}).
|
||||
|
||||
@code{send_pr} attempts to send your problem report to Cygnus via
|
||||
electronic mail. If your site cannot support this, you can still use
|
||||
the problem report form: use @samp{send_pr -p} to capture a copy of the
|
||||
blank problem-report form and fill it in. (You can also photocopy the
|
||||
blank form at the end of this section to fill in.) In either case you
|
||||
can FAX the problem report to Cygnus at @w{+1 415 322 3270}.
|
||||
|
||||
At Cygnus Support, the problem report is assigned a unique number and is
|
||||
stored in the PRMS database according to its category and your
|
||||
customer ID. PRMS automatically replies with an acknowledgement, citing
|
||||
the category and the PR number. As the next step, Cygnus staff inspects
|
||||
the bug report (if you've marked your report as high priority, we respond
|
||||
with an analysis of the problem in less than five business days). We'll
|
||||
offer a solution as soon as possible, and await your feedback. As a
|
||||
matter of policy, we do not consider your problem report closed until
|
||||
you've agreed with a solution we offer.
|
||||
|
||||
To ensure that a problem report is handled promptly, it must contain
|
||||
your (unique) customer ID and one of the available categories, shown as
|
||||
comments in the problem report form, to identify the problem area. As a
|
||||
Cygnus Support customer, you can obtain your customer ID by invoking
|
||||
@code{send_pr} with the @samp{-request-id} option.
|
||||
|
||||
@page
|
||||
@subsection Filling out a problem report
|
||||
Problem reports are structured so that a program can manage them. When
|
||||
filling out the form, please remember the following guidelines:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Each PR needs a valid customer ID and category.
|
||||
|
||||
@item
|
||||
Describe only one problem with one PR.
|
||||
|
||||
@item
|
||||
For follow-up mail, use the same subject line as the one in the
|
||||
automatic acknowledgent. It shows the category, the PR number and the
|
||||
original synopsis line. This allows Cygnus Support to make sure mail on
|
||||
the same problem report stays together.
|
||||
|
||||
@item
|
||||
Please try to make the subject or synopsis line as informative
|
||||
as possible. For misbehaving software, you might use a sentence of
|
||||
the form ``with input foo, component xyz produces bar''.
|
||||
|
||||
@item
|
||||
You don't need to delete the comment lines while editing the PR form;
|
||||
this is done by @code{send_pr}. Put your information before or
|
||||
after the comment.
|
||||
@end itemize
|
||||
|
||||
@page
|
||||
For full details on @code{send_pr} and the supporting form, see the man
|
||||
page @code{send_pr}(1). Here is a sample blank problem-report form; if
|
||||
electronic mail from your site cannot reach Cygnus, you can send us
|
||||
problem reports by photocopying this sample, filling it out, and sending
|
||||
it by FAX to @w{+1 415 322 3270}.
|
||||
|
||||
@iftex
|
||||
@widen{28pt}
|
||||
@end iftex
|
||||
|
||||
@smallexample
|
||||
SEND_PR: Choose from the following categories:
|
||||
SEND_PR:
|
||||
SEND_PR: bfd binutils bison clib config cvs
|
||||
SEND_PR: diff doc emacs g++ gas gcc
|
||||
SEND_PR: gdb grep ispell ld libg++ libiberty
|
||||
SEND_PR: libiberty make rcs readline send_pr texinfo
|
||||
SEND_PR: other
|
||||
SEND_PR:
|
||||
|
||||
To: cygnus-bugs@@cygnus.com
|
||||
|
||||
Subject:
|
||||
|
||||
From:
|
||||
|
||||
Reply-To:
|
||||
|
||||
X-send-pr-version: send_pr: 1.15
|
||||
|
||||
|
||||
>Customer-Id:
|
||||
|
||||
>Originator: <name of the PR author (one line)>
|
||||
|
||||
>Organization: <organization of PR author (multiple lines)>
|
||||
|
||||
|
||||
|
||||
>Confidential: <[ yes | no ] (one line)>
|
||||
|
||||
>Synopsis: <synopsis of the problem (one line)>
|
||||
|
||||
>Severity: <[ non-critical | serious | critical ] (one line)>
|
||||
|
||||
>Priority: <[ low | medium | high ] (one line)>
|
||||
|
||||
>Category: <name of the product (one line)>
|
||||
|
||||
>Class: <[ sw-bug | doc-bug | change-request | support ] (one line)>
|
||||
|
||||
>Release: <release number or tag (one line)>
|
||||
|
||||
>Environment:
|
||||
<machine, os, target, libraries (multiple lines)>
|
||||
|
||||
|
||||
|
||||
>Description:
|
||||
<precise description of the problem (multiple lines)>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
>How-To-Repeat:
|
||||
<code/input/activities to reproduce the problem (multiple lines)>
|
||||
@end smallexample
|
||||
|
||||
@iftex
|
||||
@widen{-28pt}
|
||||
@end iftex
|
||||
|
||||
@page
|
||||
@node Cygnus
|
||||
@section About Cygnus Support
|
||||
Cygnus Support was founded in 1989 to provide commercial support for
|
||||
free software. Cygnus supplies products and services that benefit
|
||||
advanced development groups by allowing them to use state-of-the-art
|
||||
tools without having to maintain them. With Cygnus Support, sites that
|
||||
once were forced to do their own tool support can recover that valuable
|
||||
staff time. Former users of proprietary software now may choose
|
||||
supported free software, combining the advantages of both worlds.
|
||||
|
||||
Free software is faster, more powerful, and more portable than its
|
||||
proprietary counterparts. It evolves faster because users who want to
|
||||
make improvements are free to do so. Cygnus tracks these
|
||||
improvements and integrates them into tested, stable versions ready
|
||||
for commercial use, then backs this software with comprehensive
|
||||
support.
|
||||
|
||||
With Cygnus Support as your partner, you will have the software and
|
||||
the support you need to meet your business objectives. Cygnus
|
||||
is intimately familiar with this software from extensive experience
|
||||
using, debugging, and implementing it. You get direct access to the
|
||||
most qualified support people: the authors of that software.
|
||||
|
||||
We provide up-to-the minute ``progressive'' releases, for those who need
|
||||
the very latest version---or ``vintage'' releases: stable versions which
|
||||
have been through extensive use and testing.
|
||||
|
||||
Because all our improvements are also free software, you can
|
||||
distribute them widely within your organization, or to your customers,
|
||||
without extra cost.
|
||||
|
||||
@sp 4
|
||||
|
||||
@display
|
||||
Cygnus Support
|
||||
814 University Avenue
|
||||
Palo Alto, CA 94301, USA
|
||||
|
||||
+1 415 322 3811
|
||||
|
||||
email: @code{info@@cygnus.com}
|
||||
fax: +1 415 322 3270
|
||||
@end display
|
||||
|
||||
@bye
|
8
sol-make-ftp
Normal file
8
sol-make-ftp
Normal file
@ -0,0 +1,8 @@
|
||||
BINFILES=cygnus-sol2-1.0/{Install,README,bin,lib,info,include,man}
|
||||
SRCFILES=cygnus-sol2-1.0/{README,src}
|
||||
|
||||
cd sparc-sun-solaris2
|
||||
tar cf cygnus-sol2-1.0.bin.tar ${BINFILES}
|
||||
tar cf cygnus-sol2-1.0.src.tar ${SRCFILES}
|
||||
tar cf cygnus-sol2-1.0.tar ${BINFILES} ${SRCFILES}
|
||||
|
503
sol-rel.texi
Normal file
503
sol-rel.texi
Normal file
@ -0,0 +1,503 @@
|
||||
\input texinfo
|
||||
@c
|
||||
@c This file may require a nonstandard texinfo.tex to format; if you
|
||||
@c need it, please contact Cygnus Support (email editor-in-chief@cygnus.com)
|
||||
@setfilename SOLARIS2.info
|
||||
@c
|
||||
@c This file describes a Cygnus Solaris Release (Developer's Kit).
|
||||
@c
|
||||
@c Copyright (C) 1991, 1992 Cygnus Support
|
||||
@c This text may be freely distributed under the terms of the GNU
|
||||
@c General Public License.
|
||||
@c
|
||||
@c $Id$
|
||||
@c
|
||||
@iftex
|
||||
@c The include file "texiplus.tex" is in the texinfo/cygnus dir, and
|
||||
@c implements Cygnus modifications to the texinfo manual style.
|
||||
@input texiplus
|
||||
@c The include file "smpklug.texi" is a kluge to deal with local
|
||||
@c document production issues at Cygnus; it's safe to comment out this
|
||||
@c line if you don't have (or don't want) the file.
|
||||
@input smpklug.texi
|
||||
@smallbook
|
||||
@cropmarks
|
||||
@finalout
|
||||
@settitle Release Notes
|
||||
@setchapternewpage on
|
||||
@c
|
||||
@end iftex
|
||||
|
||||
@titlepage
|
||||
@title Release Notes
|
||||
@sp 3
|
||||
@table @strong
|
||||
@item Cygnus Support Developer's Kit
|
||||
@item Release 1.0 for Solaris-2
|
||||
@end table
|
||||
@author Cygnus Support
|
||||
@page
|
||||
|
||||
@tex
|
||||
\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
|
||||
\xdef\Rmanvers{{\it Release Notes (Solaris-2 Developer's Kit)}, \$Revision$} % *NOT* for use in headers, footers
|
||||
{\parskip=0pt \hfill Cygnus Support\par \hfill \Rmanvers\par \hfill
|
||||
\TeX{}info \texinfoversion\par }
|
||||
\global\def\manvers{Solaris-2 Rel 1.0}
|
||||
@end tex
|
||||
|
||||
@vskip 0pt plus 1filll
|
||||
This product includes software developed by the University of
|
||||
California, Berkeley and its contributors.
|
||||
|
||||
This note is copyright @copyright{} 1992 Cygnus Support
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of
|
||||
this manual provided the copyright notice and this permission notice
|
||||
are preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified versions of this
|
||||
manual under the conditions for verbatim copying, provided also that
|
||||
the entire resulting derived work is distributed under the terms of a
|
||||
permission notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this manual
|
||||
into another language, under the above conditions for modified versions.
|
||||
|
||||
@end titlepage
|
||||
|
||||
@c PROOFREADING: set FIXMES to include FIXME text in formatted
|
||||
@c output
|
||||
@clear FIXMES
|
||||
|
||||
@ifinfo
|
||||
@node Top
|
||||
@top Solaris-2 Developer's Kit release 1.0
|
||||
|
||||
@menu
|
||||
* Introduction:: Overview
|
||||
* Contributors:: GCC for Solaris-2 exists thanks to these people
|
||||
* Versions:: Closest FSF Versions
|
||||
* New:: New in This Release
|
||||
* Limits:: Limitations and Warnings
|
||||
@end menu
|
||||
|
||||
This product includes software developed by the University of
|
||||
California, Berkeley and its contributors.
|
||||
|
||||
This file is copyright @copyright{} 1992 Cygnus Support
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of
|
||||
this manual provided the copyright notice and this permission notice
|
||||
are preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified versions of this
|
||||
manual under the conditions for verbatim copying, provided also that
|
||||
the entire resulting derived work is distributed under the terms of a
|
||||
permission notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this manual
|
||||
into another language, under the above conditions for modified versions
|
||||
@end ifinfo
|
||||
|
||||
@node Introduction
|
||||
@chapter Overview
|
||||
|
||||
@table @strong
|
||||
@item Cygnus Support Developer's Kit
|
||||
@item Solaris-2 Release 1.0
|
||||
@end table
|
||||
|
||||
Sun has unbunded its compilers---selling them separately from the
|
||||
Solaris 2.0 operating system. Many Sun users were unhappy that their
|
||||
next upgrade might take away their C compiler.
|
||||
|
||||
In response, Cygnus Support ported the GNU C compiler and supporting
|
||||
tools to Solaris 2.0. The result is a full set of development
|
||||
tools---ANSI and traditional C compiler (with supporting libraries),
|
||||
debugger, parser generator, and lexical analyzer generator---freely
|
||||
available to everyone.
|
||||
|
||||
The GNU C compiler can be used to compile any kind of program: public
|
||||
domain, copyleft, or proprietary. Your binaries have the same
|
||||
copyright status as your sources and libraries. The only provision of
|
||||
the GNU General Public License that applies to users of the compiler
|
||||
(as opposed to people who make copies of the compiler, or modify it)
|
||||
is the lack of warranty (section 11 and 12). FSF does not provide a
|
||||
warranty to anyone, but Cygnus gives a 1-year limited warranty (a year
|
||||
of support) to customers.
|
||||
|
||||
@node Contributors
|
||||
@chapter Contributors to GNU C for Solaris-2
|
||||
|
||||
Cygnus Support and the FSF are grateful to the forward-looking individuals and
|
||||
organizations that sponsored this project.
|
||||
|
||||
@noindent
|
||||
We are glad to be able to thank publicly:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Amoco Production Company (Houston, Texas)
|
||||
|
||||
@item
|
||||
BBN Communications (Cambridge, Massachusetts)
|
||||
|
||||
@item
|
||||
Boston Technology (Wakefield, Massachusetts)
|
||||
|
||||
@item
|
||||
Cirrus Logic (Fremont, California)
|
||||
|
||||
@item
|
||||
Compaq Computer Corporation (Houston, Texas)
|
||||
|
||||
@item
|
||||
Deere & Company (Moline, Illinois)
|
||||
|
||||
@item
|
||||
ELF Commnuications (San Francisco, California)
|
||||
|
||||
@item
|
||||
European Computer-Industry Research Centre GMBH (Munich)
|
||||
|
||||
@item
|
||||
Fidelity Investments (Boston, Massachusetts)
|
||||
|
||||
@item
|
||||
FTP Software, Inc. (Wakefield, Massachusetts)
|
||||
|
||||
@item
|
||||
Gallagher & Robertson (Oslo, Norway)
|
||||
|
||||
@item
|
||||
GTE Laboratories (Waltham, Massachusetts)
|
||||
|
||||
@item
|
||||
Ingres Corporation (Alameda, California)
|
||||
|
||||
@item
|
||||
Inland Sea (Dexter, Michigan)
|
||||
|
||||
@item
|
||||
Los Alamos National Laboratory (Los Alamos, New Mexico)
|
||||
|
||||
@item
|
||||
Miller/Howard Investures (Cobleskill, New York)
|
||||
|
||||
@item
|
||||
MIT Lincoln Laboratory (Lexington, Massachusetts)
|
||||
|
||||
@item
|
||||
NASA Lewis Research Center (Cleveland, Ohio)
|
||||
|
||||
@item
|
||||
Optimation Software (Melbourne, Australia)
|
||||
|
||||
@item
|
||||
PFU Limited (Tokyo)
|
||||
|
||||
@item
|
||||
Philips Laboratories (Briarcliff Manor, New York)
|
||||
|
||||
@item
|
||||
Pure Software (Los Altos, California)
|
||||
|
||||
@item
|
||||
Qualix Group, Inc. (San Mateo, California)
|
||||
|
||||
@item
|
||||
Schlumberger-Doll Research (Ridgefield, Connecticut)
|
||||
|
||||
@item
|
||||
Kevin Sheehan (Melbourne, Australia and elsewhere)
|
||||
|
||||
@item
|
||||
State University of New York (SUNY) at Buffalo
|
||||
|
||||
@item
|
||||
SunSoft, Inc. (Mountain View, California)
|
||||
|
||||
@item
|
||||
@tex
|
||||
Technische Universit\"at M\"unchen (Munich)
|
||||
@end tex
|
||||
@ifinfo
|
||||
Technische Universitaet Muenchen (Munich)
|
||||
@end ifinfo
|
||||
|
||||
@item
|
||||
Telecom Finland (Helsinki)
|
||||
|
||||
@item
|
||||
Telecom Research Labs (Victoria, Australia)
|
||||
|
||||
@item
|
||||
Union Bank of Switzerland (Zurich)
|
||||
|
||||
@item University of Pennsylvania (Philadelphia)
|
||||
|
||||
@item
|
||||
University of Washington (Seattle)
|
||||
|
||||
@item
|
||||
UUNET Technologies, Inc. (Falls Church, Virginia)
|
||||
|
||||
@item
|
||||
Warwick University (Coventry, England)
|
||||
|
||||
@item
|
||||
Xerox Palo Alto Research Center (Palo Alto, California)
|
||||
@end itemize
|
||||
|
||||
We are also grateful to six other organizations and individuals who
|
||||
contributed to this project, but prefer to remain anonymous.
|
||||
|
||||
@node Versions
|
||||
@chapter Closest FSF Versions
|
||||
|
||||
Cygnus Support devotes much of its effort to integrating and improving
|
||||
free software. In fact, Cygnus employees are the primary developers
|
||||
of several important components of the GNU tool-chain (on behalf of
|
||||
the Free Software Foundation). However, especially for programs whose
|
||||
FSF releases are issued elsewhere, our releases are often slightly
|
||||
ahead of the nearest corresponding FSF version (and sometimes slightly
|
||||
behind it). We reintegrate our sources with the FSF as frequently as
|
||||
possible without compromising the stability of the integrated
|
||||
toolchain.
|
||||
|
||||
These are the nearest corresponding FSF releases of the GNU development
|
||||
tools:
|
||||
|
||||
@table @sc
|
||||
@item @emph{Program}
|
||||
@emph{Last merged with FSF version}
|
||||
@item gcc
|
||||
2.0 (but many improvements from 2.1 and 2.2 incorporated)
|
||||
|
||||
@item gdb
|
||||
4.6 (maintained at Cygnus)
|
||||
|
||||
@end table
|
||||
|
||||
@node New
|
||||
@chapter New in This Release
|
||||
|
||||
@table @strong
|
||||
@item GCC
|
||||
Near command-line compatibility with the SVID specification for
|
||||
@code{cc}, and with the SVr4 @code{cc}. ELF output (with embedded
|
||||
@code{stabs} format debugging information; this is compatible with Sun's
|
||||
compilers). Many bug-fixes (from the base FSF level, and from our
|
||||
Progressive--920318 release for SunOS).
|
||||
|
||||
@item CPP
|
||||
New directive @code{#assert}; you can use this directive, together with
|
||||
enhancements to @code{#if}, to declare and test for particular system
|
||||
properties.
|
||||
|
||||
@item GDB
|
||||
GDB understands the debugging format used by Solaris-2 compilers (both
|
||||
ours and Sun's): @code{stabs} debugging information embedded in ELF
|
||||
object files.
|
||||
|
||||
Since our Progressive--920318 release for SunOS, we have also made these
|
||||
improvements to GDB:
|
||||
|
||||
Many bug fixes.
|
||||
|
||||
GDB now uses a new memory manager called @code{mmalloc}, an enhancement
|
||||
of @sc{GNU} @code{malloc}. It can greatly speed up the startup of GDB
|
||||
by using a pre-parsed symbol table in a @code{mmalloc}-managed heap.
|
||||
Since memory-mapped files are available on Solaris-2 through the @code{mmap}
|
||||
system call, you can have GDB write the symbols from your program into a
|
||||
reusable file.
|
||||
|
||||
@item FLEX and BYACC
|
||||
Release 1.0 for Solaris 2 includes @code{flex}, the fast lexical analyzer
|
||||
generator, and @code{byacc}, the parser generator---both from UC
|
||||
Berkeley. There are no restrictions on what use you can make of lexical
|
||||
analyzers generated by @code{flex}, or parser generators built by
|
||||
@code{byacc}.
|
||||
|
||||
Since @code{flex} and @code{byacc} are of interest only to a specialized
|
||||
audience, we ship only on-line documentation for them.
|
||||
@inforef{Top,,flex.info}, or the @code{man} pages @samp{flex.1} and
|
||||
@samp{byacc.1}.
|
||||
|
||||
@item Problem Reports
|
||||
The script @code{install_cid} is now available to record your Cygnus
|
||||
customer ID for the problem-reporting utility, @code{send_pr}, on your
|
||||
system.
|
||||
|
||||
A blank Problem Report form is now included in the @cite{Introduction}
|
||||
to your Developer's Kit manuals, in case FAX is more convenient than
|
||||
electronic mail to send us problem reports.
|
||||
|
||||
Since these programs are free software, many people who receive them
|
||||
will not get them directly from Cygnus Support. We will be glad to
|
||||
support you no matter where you got the software. If you have not yet
|
||||
bought support from Cygnus for this set of tools, you can call us at
|
||||
@w{+1 415 322 3811} for a support contract, and start reporting problems
|
||||
and getting fixes.
|
||||
@end table
|
||||
|
||||
@node Limits
|
||||
@chapter Limitations and Warnings
|
||||
|
||||
Our major goals in this release was compatibility: with the System V
|
||||
Interface Definition (@sc{svid}), with other Solaris-2 tools, and with
|
||||
the @sc{sparc} Application Binary Interface (@sc{abi}).
|
||||
|
||||
We have been largely successful: our toolchain complies with the
|
||||
@sc{svid} specifications for compilation tools, most of the tools are
|
||||
also command-line compatible with the Sun offerings (even in cases where
|
||||
these go beyond the @sc{svid}), and we know of only one violation of the
|
||||
@sc{abi}.
|
||||
|
||||
The following sections give details on the few remaining compatibility
|
||||
issues.
|
||||
|
||||
@menu
|
||||
* gcc-options:: Some Solaris-2 cc options not accepted
|
||||
* cc-gdb:: Using gdb on Sun compiler output
|
||||
* long double:: The long double datatype violates the ABI
|
||||
* ABI:: No independent verification of ABI compliance
|
||||
@end menu
|
||||
|
||||
@node gcc-options
|
||||
@section Some Solaris-2 @code{cc} options are not accepted
|
||||
|
||||
In porting the @sc{gnu} C compiler to Solaris-2, we wanted to have
|
||||
command-line compatibility with several compilers:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
@sc{svid} specification for @code{cc}
|
||||
|
||||
@item
|
||||
Other @sc{gcc} configurations
|
||||
|
||||
@item
|
||||
Unix SVr4 implementation of @code{cc}
|
||||
|
||||
@item
|
||||
Sun compiler for Solaris-2
|
||||
|
||||
@end itemize
|
||||
|
||||
@noindent
|
||||
Unfortunately, these specifications are not altogether compatible; we
|
||||
have compromised in some areas, giving the most weight to the @sc{svid}
|
||||
specification and to @sc{gcc} on other platforms.
|
||||
|
||||
Here is a list of command line options @emph{not} accepted by
|
||||
@code{gcc}, but meaningful in one of the other command-line
|
||||
specifications listed:
|
||||
|
||||
@table @code
|
||||
@item -Bstatic
|
||||
@itemx -Bdynamic
|
||||
Use @samp{-static} or @samp{-symbolic} instead. (@samp{-Bstatic} and
|
||||
@samp{-Bdynamic} are supported by Sun compilers, but are not in the
|
||||
@sc{svid}.)
|
||||
|
||||
@item -dy
|
||||
@itemx -dn
|
||||
These Solaris-2 linker options conflict with @sc{gcc} debugging options.
|
||||
Again, use @samp{-symbolic} or @samp{-static} instead; or pass the
|
||||
linker options directly to the linker using @samp{-Xlinker} or
|
||||
@samp{-W}.
|
||||
|
||||
@item -f
|
||||
@sc{gcc} has a large family of options that begin with @samp{-f}. All
|
||||
of these options are supported as in other versions of @sc{gcc}. The
|
||||
SVr4 specification describes this option as accepted, but ignored; in
|
||||
the @sc{svid}, it is used to specify floating-point emulation.
|
||||
|
||||
@item -J sfm
|
||||
This SVr4 option appears to specify linking against a special-purpose
|
||||
subroutine library. It is not in the @sc{svid}, and @sc{gcc} does not
|
||||
support it.
|
||||
|
||||
@item -K
|
||||
@sc{gcc} does not support @samp{-K}. To specify position-independent
|
||||
code output, use @samp{-pic}.
|
||||
|
||||
@item -P
|
||||
This preprocessor option retains its usual @sc{gcc} meaning, which is
|
||||
slightly different from the @sc{svid} and SVr4 descriptions (which are
|
||||
not quite identical with one another). It is used to generate
|
||||
preprocessor output---similar to @samp{-E}, but without embedding
|
||||
@code{#line} directives. However, for @sc{gcc}, the output still goes
|
||||
to @file{stdout} rather than to a @samp{.i} file. To place output in a
|
||||
@samp{.i} file, use command-line output redirection.
|
||||
|
||||
@item -q
|
||||
This option is defined as implementation-specific by the @sc{svid}.
|
||||
This implementation does not include it.
|
||||
|
||||
@item -V
|
||||
Displays version information for @emph{only} the assembler and linker.
|
||||
|
||||
@item -v
|
||||
Displays the full invocation of each compiler pass, as usual for
|
||||
@sc{gcc}. This option is not defined in the @sc{svid}, but the SVr4
|
||||
documentation describes it as similar to the @sc{gcc} options
|
||||
@samp{-pedantic} or @samp{-pedantic-errors}. We recommend using those
|
||||
options instead.
|
||||
|
||||
@item -W
|
||||
@itemx -Y
|
||||
In this implementation, @samp{-W} and @samp{Y} are restricted to
|
||||
controlling the assembler and linker (the other compiler passes used by
|
||||
@sc{gcc} do not exactly correspond to those in the @sc{svid}).
|
||||
|
||||
@item -X
|
||||
This option is not in the @sc{svid}, but is used in SVr4 to give a
|
||||
little control over the dialect of C. For this purpose, you can use the
|
||||
standard @sc{gcc} options @samp{-traditional}, @samp{-ansi}, or the
|
||||
other options described in @ref{Dialect Options,,Options Controlling
|
||||
Dialect, usegcc.info, Using gcc}.
|
||||
@end table
|
||||
|
||||
For full descriptions of the @sc{gcc} command line options in this
|
||||
release, see the manual @cite{Using gcc}, or the man page @code{gcc.1}.
|
||||
|
||||
@node cc-gdb
|
||||
@section Using @code{gdb} on Sun Compiler Output
|
||||
|
||||
By default, the Sun compiler @code{cc} and the system assembler
|
||||
@code{as} omit debugging information from the final linked output file,
|
||||
assuming the debugger will look in the @samp{.o} files for this
|
||||
information. @code{gdb} will not do this. If you have the Sun compiler
|
||||
@code{cc} and want to debug its output with @code{gdb}, you must include
|
||||
the command-line flag @samp{-xs} when you run @code{cc}, to instruct it
|
||||
to place debugging information where it will be copied to the linked
|
||||
output file. Similarly, if you call the system assembler @code{as}
|
||||
directly, use its command-line option @samp{-s} for the same purpose.
|
||||
|
||||
@node long double
|
||||
@section The @code{long double} datatype violates SPARC ABI
|
||||
|
||||
The @sc{sparc} Application Binary Interface (@sc{abi}) specifies that
|
||||
numbers of type @code{long double} take up 16 bytes. In this release,
|
||||
@code{gcc} only emits 8-byte numbers for @code{long double}.
|
||||
|
||||
This is the only known violation of the @sc{abi}. We will fix this
|
||||
problem in a future release.
|
||||
|
||||
@node ABI
|
||||
@section No independent verification of ABI compliance
|
||||
|
||||
We have made every effort to comply with the @sc{sparc} @sc{abi}, and we
|
||||
are aware of only one violation (noted above). However, there is as yet
|
||||
no independent verification of our compiler's compliance.
|
||||
|
||||
@sc{sparc} International is preparing an ABI compliance test suite, but
|
||||
it won't be available until sometime in the autumn of 1992. We will
|
||||
seek verification of our compiler's compliance as soon as @sc{sparc}
|
||||
International is ready.
|
||||
|
||||
@contents
|
||||
@bye
|
22
sol-subst-strings
Executable file
22
sol-subst-strings
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
sed -e "/^@set FIXMES/s::@clear FIXMES:" \
|
||||
-e "/^@clear CUSTOMER/s::@set CUSTOMER:" \
|
||||
-e "/^@set CDROMinst/s::@clear CDROMinst:" \
|
||||
-e "/^@clear TAPEinst/s::@set TAPEinst:" \
|
||||
-e "/^@set FTPsingle/s::@clear FTPsingle:" \
|
||||
-e "/^@set FTPsplit/s::@clear FTPsplit:" \
|
||||
-e "/\|\|MEDIUM\|\|/s::tape:g" \
|
||||
-e "/\|\|MEDstr\|\|/s::/dev/rmt/0ln:g" \
|
||||
-e "/\|\|DEVdflt\|\|/s::/dev/rmt/0ln:g" \
|
||||
-e "/\|\|MEDvar\|\|/s::/dev/@var{tape}:g" \
|
||||
-e "/\|\|TAPdflt\|\|/s::/dev/@var{tape}:g" \
|
||||
-e "/\|\|RELNO\|\|/s::1.0:g" \
|
||||
-e "/\|\|BD\|\|/s::20:g" \
|
||||
-e "/\|\|SD\|\|/s::28:g" \
|
||||
-e "/\|\|DF\|\|/s::48:g" \
|
||||
-e "/\|\|BUNDLE\|\|/s::comp:g" \
|
||||
-e "/\|\|HOST\|\|/s::SPARC computer:g" \
|
||||
-e "/\|\|HOSTstr\|\|/s::sparc-sun-solaris2:g" \
|
||||
-e "/\|\|TARGET\|\|/s::sparc-sun-solaris2:g" \
|
||||
-e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
|
||||
< $1 > $2
|
24
sol-subst-strings-ftp
Executable file
24
sol-subst-strings-ftp
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
sed -e "/^@set FIXMES/s::@clear FIXMES:" \
|
||||
-e "/^@set CUSTOMER/s::@clear CUSTOMER:" \
|
||||
-e "/^@set CDROMinst/s::@clear CDROMinst:" \
|
||||
-e "/^@set TAPEinst/s::@clear TAPEinst:" \
|
||||
-e "/^@set FTPsingle/s::@clear FTPsingle:" \
|
||||
-e "/^@clear FTPsplit/s::@set FTPsplit:" \
|
||||
-e "/\|\|DEVdflt\|\|/s::/dev/rmt/0ln:g" \
|
||||
-e "/\|\|TAPdflt\|\|/s::/dev/@var{tape}:g" \
|
||||
-e "/\|\|MEDIUM\|\|/s::tape:g" \
|
||||
-e "/\|\|MEDstr\|\|/s::/dev/rmt/0ln:g" \
|
||||
-e "/\|\|MEDvar\|\|/s::/dev/@var{tape}:g" \
|
||||
-e "/\|\|RELNO\|\|/s::1.0:g" \
|
||||
-e "/\|\|BD\|\|/s::20:g" \
|
||||
-e "/\|\|SD\|\|/s::28:g" \
|
||||
-e "/\|\|DF\|\|/s::48:g" \
|
||||
-e "/\|\|BUNDLE\|\|/s::comp:g" \
|
||||
-e "/\|\|HOST\|\|/s::SPARC computer:g" \
|
||||
-e "/\|\|HOSTstr\|\|/s::sparc-sun-solaris2:g" \
|
||||
-e "/\|\|TARGET\|\|/s::sparc-sun-solaris2:g" \
|
||||
-e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \
|
||||
-e "s/^INSTALLDIR_DEFAULT=.*$/INSTALLDIR_DEFAULT=../" \
|
||||
-e "s/^FTPRELEASE=.*/FTPRELEASE=yes/" \
|
||||
< $1 > $2
|
30
tape-labels-tex.in
Normal file
30
tape-labels-tex.in
Normal file
@ -0,0 +1,30 @@
|
||||
\input tapelab
|
||||
\label 0
|
||||
Emacs
|
||||
progressive-||RELNO||\_||TAPdflt||
|
||||
||HOSTstr||
|
||||
\elab
|
||||
\label 1
|
||||
Emacs
|
||||
progressive-||RELNO||\_||TAPdflt||
|
||||
||HOSTstr||
|
||||
\elab
|
||||
\label 2
|
||||
Emacs
|
||||
progressive-||RELNO||\_||TAPdflt||
|
||||
||HOSTstr||
|
||||
\elab
|
||||
\label 3
|
||||
Emacs
|
||||
progressive-||RELNO||\_||TAPdflt||
|
||||
||HOSTstr||
|
||||
\elab
|
||||
\label 4
|
||||
Emacs
|
||||
progressive-||RELNO||\_||TAPdflt||
|
||||
||HOSTstr||
|
||||
\elab
|
||||
\bye
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user