diff options
author | Geoffrey Keating <geoffk@apple.com> | 2004-11-05 04:49:19 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2004-11-05 04:49:19 +0000 |
commit | 53c7ffe7dd1c281bc4d8b0eb1f2d59e4dd37c8a8 (patch) | |
tree | 9c0488dfa9919d3ba6f1c976082a924834f13942 /gcc | |
parent | 9a3990559f9f8d09ce6fae8ef38e93c2e2b8abca (diff) | |
download | gcc-53c7ffe7dd1c281bc4d8b0eb1f2d59e4dd37c8a8.zip gcc-53c7ffe7dd1c281bc4d8b0eb1f2d59e4dd37c8a8.tar.gz gcc-53c7ffe7dd1c281bc4d8b0eb1f2d59e4dd37c8a8.tar.bz2 |
Index: ChangeLog
2004-11-04 Geoffrey Keating <geoffk@apple.com>
* Makefile.def: Build fixincludes for the host, too.
* Makefile.in: Regenerate.
* configure.in (host_tools): Add fixincludes.
* configure: Regenerate.
Index: fixincludes/ChangeLog
2004-11-04 Geoffrey Keating <geoffk@apple.com>
* configure.ac: Add code to determine noncanonical_target,
local_prefix, gcc_version; process mkheaders.in to make mkheaders.
* configure: Regenerate.
* fixinc.in: Move here from gcc/; fix many cross-hosting bugs.
* mkfixinc.sh: Move here from gcc/; update for changes to fixinc.in.
* mkheaders.in: Move here from gcc/; remove some unnecessary macros;
update for changes to fixinc.in.
* Makefile.in: Add many new macros.
(install): New target.
(mkheaders): New target.
(fixinc.sh): New target.
(all): Add mkheaders and fixinc.sh.
* README-fixinc: Move here from gcc/.
Index: gcc/ChangeLog
2004-11-04 Geoffrey Keating <geoffk@apple.com>
* Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
(install-mkheaders): Install the version built for the
host, not for the build machine.
* configure.ac: Always run fixincludes.
(all_outputs): Remove mkheaders.
* configure: Regenerate.
* fixinc.in: Move to fixincludes/.
* mkfixinc.sh: Likewise.
* mkheaders.in: Likewise.
* README-fixinc: Likewise.
From-SVN: r90117
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/Makefile.in | 80 | ||||
-rw-r--r-- | gcc/README-fixinc | 14 | ||||
-rwxr-xr-x | gcc/configure | 10 | ||||
-rw-r--r-- | gcc/configure.ac | 10 | ||||
-rwxr-xr-x | gcc/fixinc.in | 506 | ||||
-rwxr-xr-x | gcc/mkfixinc.sh | 44 | ||||
-rw-r--r-- | gcc/mkheaders.in | 105 |
8 files changed, 41 insertions, 741 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7a384a3..a3cb64e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2004-11-04 Geoffrey Keating <geoffk@apple.com> + + * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory. + (install-mkheaders): Install the version built for the + host, not for the build machine. + * configure.ac: Always run fixincludes. + (all_outputs): Remove mkheaders. + * configure: Regenerate. + * fixinc.in: Move to fixincludes/. + * mkfixinc.sh: Likewise. + * mkheaders.in: Likewise. + * README-fixinc: Likewise. + 2004-11-05 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com> PR target/18263 diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 125dee4..1c4fcc7 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -1080,9 +1080,6 @@ gccbug: $(srcdir)/gccbug.in mklibgcc: $(srcdir)/mklibgcc.in CONFIG_FILES=mklibgcc CONFIG_HEADERS= ./config.status -mkheaders: $(srcdir)/mkheaders.in - CONFIG_FILES=mkheaders CONFIG_HEADERS= ./config.status - # cstamp-h.in controls rebuilding of config.in. # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't # delete it. A stamp file is needed as autoheader won't update the file if @@ -2783,31 +2780,24 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) xlimits.h chmod a+r include/limits.h # Install the README rm -f include/README - cp $(srcdir)/README-fixinc include/README + cp $(srcdir)/../fixincludes/README-fixinc include/README chmod a+r include/README $(STAMP) $@ -# fixinc.sh depends on this, not on specs directly. -# The idea is to make sure specs gets built, but not rerun fixinc.sh -# after each stage just because specs' mtime has changed. -# It also depends on cc1 since fixinc.sh uses it. -specs.ready: specs cc1$(exeext) - -if [ -f specs.ready ] ; then \ - true; \ - else \ - $(STAMP) specs.ready; \ - fi - -fixinc.sh: mkfixinc.sh fixinc.in - build_subdir="$(build_subdir)" srcdir="$(srcdir)" \ - $(SHELL) $(srcdir)/mkfixinc.sh $(build) $(target) - .PHONY: install-gcc-tooldir install-gcc-tooldir: $(mkinstalldirs) $(DESTDIR)$(gcc_tooldir) +macro_list : $(GCC_PASSES) + echo | $(GCC_FOR_TARGET) -E -dM - | \ + sed -n 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p ; \ + s/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \ + sort -u > $@ + # Build fixed copies of system files. -stmp-fixinc: fixinc.sh gsyslimits.h specs.ready +stmp-fixinc: gsyslimits.h macro_list \ + ../$(build_subdir)/fixincludes/fixincl \ + ../$(build_subdir)/fixincludes/fixinc.sh @if test ! -d ${SYSTEM_HEADER_DIR}; then \ echo The directory that should contain system headers does not exist: >&2 ; \ echo " ${SYSTEM_HEADER_DIR}" >&2 ; \ @@ -2817,24 +2807,20 @@ stmp-fixinc: fixinc.sh gsyslimits.h specs.ready rm -rf include; mkdir include -chmod a+rx include (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \ - SHELL='$(SHELL)' ;\ - export TARGET_MACHINE srcdir SHELL ; \ - $(SHELL) ./fixinc.sh `${PWD_COMMAND}`/include $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); \ - rm -f include/syslimits.h; \ + SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \ + export TARGET_MACHINE srcdir SHELL MACRO_LIST && \ + cd ../$(build_subdir)/fixincludes && \ + $(SHELL) ./fixinc.sh ../../gcc/include \ + $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ) + rm -f include/syslimits.h if [ -f include/limits.h ]; then \ mv include/limits.h include/syslimits.h; \ else \ cp $(srcdir)/gsyslimits.h include/syslimits.h; \ - fi; \ - chmod a+r include/syslimits.h) + fi + chmod a+r include/syslimits.h $(STAMP) stmp-fixinc -# We can't run fixinc (it's being built for a different host), but we still -# need to install it so that the user can run it when the compiler is -# installed. -stmp-install-fixinc: fixinc.sh gsyslimits.h - $(STAMP) $@ - # Files related to the fixproto script. # gen-protos and fix-header are compiled with CC_FOR_BUILD, but they are only # used in native and host-x-target builds, so it's safe to link them with @@ -3065,10 +3051,8 @@ mostlyclean: lang.mostlyclean -rm -f specs $(SPECS) SYSCALLS.c.X SYSCALLS.c -rm -f collect collect2 mips-tfile mips-tdump # Delete files generated for fixproto - -rm -rf fix-header$(build_exeext) xsys-protos.h deduced.h tmp-deduced.h \ + -rm -rf $(build_exeext) xsys-protos.h deduced.h tmp-deduced.h \ gen-protos$(build_exeext) fixproto.list fixtmp.* fixhdr.ready -# Delete files generated for fixincl - -rm -rf fixinc.sh specs.ready # Delete unwanted output files from TeX. -rm -f *.toc *.log *.vr *.fn *.cp *.tp *.ky *.pg -rm -f */*.toc */*.log */*.vr */*.fn */*.cp */*.tp */*.ky */*.pg @@ -3126,12 +3110,11 @@ distclean: clean lang.distclean -cd testsuite && rm -f *.out *.gcov *$(coverageexts) -rm -rf ${QMTEST_DIR} stamp-qmtest -rm -f cxxmain.c - -rm -f mklibgcc mkheaders gccbug .gdbinit configargs.h + -rm -f mklibgcc gccbug .gdbinit configargs.h -rm -f gcov.pod - -rm -f fixinc/Makefile # Delete po/*.gmo only if we are not building in the source directory. -if [ ! -f po/exgettext ]; then rm -f po/*.gmo; fi - -rmdir ada cp f java objc fixinc intl po testsuite 2>/dev/null + -rmdir ada cp f java objc intl po testsuite 2>/dev/null # Get rid of every file that's generated from some other file, except for `configure'. # Most of these files ARE PRESENT in the GCC distribution. @@ -3361,28 +3344,18 @@ install-headers-cp: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir itoolsdir = $(libexecsubdir)/install-tools itoolsdatadir = $(libsubdir)/install-tools -# Don't install the headers. Instead, install appropriate scripts -# and supporting files for fixincludes to be run later. +# Install supporting files for fixincludes to be run later. install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir \ - mkheaders xlimits.h - -rm -rf $(DESTDIR)$(itoolsdir) $(DESTDIR)$(itoolsdatadir) - $(mkinstalldirs) $(DESTDIR)$(itoolsdatadir)/include - $(mkinstalldirs) $(DESTDIR)$(itoolsdir) + macro_list xlimits.h for file in $(USER_H); do \ realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \ $(INSTALL_DATA) $$file \ $(DESTDIR)$(itoolsdatadir)/include/$$realfile ; \ done $(INSTALL_DATA) xlimits.h $(DESTDIR)$(itoolsdatadir)/include/limits.h - if [ x$(STMP_FIXINC) != x ] ; then \ - $(INSTALL_DATA) $(srcdir)/README-fixinc \ - $(DESTDIR)$(itoolsdatadir)/include/README ; \ - $(INSTALL_SCRIPT) fixinc.sh $(DESTDIR)$(itoolsdir)/fixinc.sh ; \ - $(INSTALL_PROGRAM) ../$(build_subdir)/fixincludes/fixincl$(build_exeext) \ - $(DESTDIR)$(itoolsdir)/fixincl ; \ - $(INSTALL_DATA) $(srcdir)/gsyslimits.h \ - $(DESTDIR)$(itoolsdatadir)/gsyslimits.h ; \ - else :; fi + $(INSTALL_DATA) $(srcdir)/gsyslimits.h \ + $(DESTDIR)$(itoolsdatadir)/gsyslimits.h + $(INSTALL_DATA) macro_list $(DESTDIR)$(itoolsdatadir)/macro_list if [ x$(STMP_FIXPROTO) != x ] ; then \ $(INSTALL_SCRIPT) $(mkinstalldirs) \ $(DESTDIR)$(itoolsdir)/mkinstalldirs ; \ @@ -3390,7 +3363,6 @@ install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir \ $(INSTALL_PROGRAM) build/fix-header$(build_exeext) \ $(DESTDIR)$(itoolsdir)/fix-header$(build_exeext) ; \ else :; fi - $(INSTALL_SCRIPT) mkheaders $(DESTDIR)$(itoolsdir)/mkheaders echo 'SYSTEM_HEADER_DIR="'"$(SYSTEM_HEADER_DIR)"'"' \ > $(DESTDIR)$(itoolsdatadir)/mkheaders.conf echo 'OTHER_FIXINCLUDES_DIRS="$(OTHER_FIXINCLUDES_DIRS)"' \ diff --git a/gcc/README-fixinc b/gcc/README-fixinc deleted file mode 100644 index 7086a77..0000000 --- a/gcc/README-fixinc +++ /dev/null @@ -1,14 +0,0 @@ -This README file is copied into the directory for GCC-only header files -when fixincludes is run by the makefile for GCC. - -Many of the files in this directory were automatically edited from the -standard system header files by the fixincludes process. They are -system-specific, and will not work on any other kind of system. They -are also not part of GCC. The reason we have to do this is because -GCC requires ANSI C headers and many vendors supply ANSI-incompatible -headers. - -Because this is an automated process, sometimes headers get "fixed" -that do not, strictly speaking, need a fix. As long as nothing is broken -by the process, it is just an unfortunate collateral inconvenience. -We would like to rectify it, if it is not "too inconvenient". diff --git a/gcc/configure b/gcc/configure index 2b71fedf..8d1683a 100755 --- a/gcc/configure +++ b/gcc/configure @@ -12683,20 +12683,12 @@ then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' if test "x$TARGET_SYSTEM_ROOT" = x; then - STMP_FIXINC=stmp-install-fixinc if "x$STMP_FIXPROTO" != x ; then STMP_FIXPROTO=stmp-install-fixproto fi fi fi -# When bootstrapping from the toplevel, only run fixincludes during stage1 -if test -d ../prev-gcc -then - STMP_FIXINC=stmp-install-fixinc - cp -R ../prev-gcc/include include -fi - # Expand extra_headers to include complete path. # This substitutes for lots of t-* files. extra_headers_list= @@ -14992,7 +14984,7 @@ all_languages= all_boot_languages= all_compilers= all_stagestuff= -all_outputs='Makefile gccbug mklibgcc mkheaders libada-mk' +all_outputs='Makefile gccbug mklibgcc libada-mk' # List of language makefile fragments. all_lang_makefrags= # List of language subdirectory makefiles. Deprecated. diff --git a/gcc/configure.ac b/gcc/configure.ac index e5be4ee..e137985 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1684,20 +1684,12 @@ then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' if test "x$TARGET_SYSTEM_ROOT" = x; then - STMP_FIXINC=stmp-install-fixinc if [ "x$STMP_FIXPROTO" != x ] ; then STMP_FIXPROTO=stmp-install-fixproto fi fi fi -# When bootstrapping from the toplevel, only run fixincludes during stage1 -if test -d ../prev-gcc -then - STMP_FIXINC=stmp-install-fixinc - cp -R ../prev-gcc/include include -fi - # Expand extra_headers to include complete path. # This substitutes for lots of t-* files. extra_headers_list= @@ -3034,7 +3026,7 @@ all_languages= all_boot_languages= all_compilers= all_stagestuff= -all_outputs='Makefile gccbug mklibgcc mkheaders libada-mk' +all_outputs='Makefile gccbug mklibgcc libada-mk' # List of language makefile fragments. all_lang_makefrags= # List of language subdirectory makefiles. Deprecated. diff --git a/gcc/fixinc.in b/gcc/fixinc.in deleted file mode 100755 index 8e0a270..0000000 --- a/gcc/fixinc.in +++ /dev/null @@ -1,506 +0,0 @@ -#!/bin/sh -# -# Install modified versions of certain ANSI-incompatible system header -# files which are fixed to work correctly with ANSI C and placed in a -# directory that GCC will search. -# -# See README-fixinc for more information. -# -# fixincludes copyright (c) 1998, 1999, 2000, 2002 -# The Free Software Foundation, Inc. -# -# fixincludes is free software. -# -# You may redistribute it and/or modify it under the terms of the -# GNU General Public License, as published by the Free Software -# Foundation; either version 2, or (at your option) any later version. -# -# fixincludes is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with fixincludes. See the file "COPYING". If not, -# write to: The Free Software Foundation, Inc., -# 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. -# -# # # # # # # # # # # # # # # # # # # # # - -# Usage: fixinc.sh output-dir input-dir -# -# Directory in which to store the results. -# Fail if no arg to specify a directory for the output. -if [ "x$1" = "x" ] -then - echo fixincludes: no output directory specified - exit 1 -fi - -LIB=${1} -shift - -# Make sure it exists. -if [ ! -d $LIB ]; then - mkdir $LIB || { - echo fixincludes: output dir '`'$LIB"' cannot be created" - exit 1 - } -else - ( cd $LIB && touch DONE && rm DONE ) || { - echo fixincludes: output dir '`'$LIB"' is an invalid directory" - exit 1 - } -fi - -if test -z "$VERBOSE" -then - VERBOSE=2 - export VERBOSE -else - case "$VERBOSE" in - [0-9] ) : ;; - * ) VERBOSE=3 ;; - esac -fi - -# Define what target system we're fixing. -# -if test -r ./Makefile; then - target_canonical="`sed -n -e 's,^target[ ]*=[ ]*\(.*\)$,\1,p' < Makefile`" -fi - -# If not from the Makefile, then try config.guess -# -if test -z "${target_canonical}" ; then - if test -x ./config.guess ; then - target_canonical="`config.guess`" ; fi - test -z "${target_canonical}" && target_canonical=unknown -fi -export target_canonical - -# # # # # # # # # # # # # # # # # # # # # -# -# Define PWDCMD as a command to use to get the working dir -# in the form that we want. -PWDCMD=${PWDCMD-pwd} - -case "`$PWDCMD`" in -//*) - # On an Apollo, discard everything before `/usr'. - PWDCMD="eval pwd | sed -e 's,.*/usr/,/usr/,'" - ;; -esac - -# Original directory. -ORIGDIR=`${PWDCMD}` -export ORIGDIR -FIXINCL="@FIXINCL@" -if [ ! -x $FIXINCL ] ; then - echo "Cannot find working fixincl" >&2 - exit 1 -fi -export FIXINCL - -# Make LIB absolute only if needed to avoid problems with the amd. -case $LIB in -/*) - ;; -*) - cd $LIB; LIB=`${PWDCMD}` - ;; -esac - -if test $VERBOSE -gt 0 -then echo Fixing headers into ${LIB} for ${target_canonical} target ; fi - -# Determine whether this system has symbolic links. -if test -n "$DJDIR"; then - LINKS=false -elif ln -s X $LIB/ShouldNotExist 2>/dev/null; then - rm -f $LIB/ShouldNotExist - LINKS=true -elif ln -s X /tmp/ShouldNotExist 2>/dev/null; then - rm -f /tmp/ShouldNotExist - LINKS=true -else - LINKS=false -fi - -# # # # # # # # # # # # # # # # # # # # # -# -# Extract from the gcc -dM and from the specs file all the predefined -# macros that are not in the C89 reserved namespace (the reserved -# namespace is all identifiers beginnning with two underscores or one -# underscore followed by a capital letter). The specs file is in -# ${ORIGDIR}, as is cc1. A regular expression to find any of those -# macros in a header file is written to MN_NAME_PAT. -# -# Note dependency on ASCII. \012 = newline. -# tr ' ' '\n' is, alas, not portable. - -echo | ${ORIGDIR}/cc1 -quiet -dM -E - | - sed -n 's/^#define \([a-zA-Z][a-zA-Z0-9_]*\).*/\1/p' > mn.T -tr -s '\040\011' '\012\012' < ${ORIGDIR}/specs | - sed -n 's/^.*-D\([a-zA-Z_][a-zA-Z0-9_]*\).*/\1/p' >> mn.T - -if sort -u mn.T | grep -v '^_[_A-Z]' > mn.U -then - if test $VERBOSE -gt 0 - then echo "Forbidden identifiers: `tr '\012' ' ' <mn.U`" ; fi - sed 's/^/\\\\</; s/$/\\\\>/; $!s/$/|/' < mn.U | tr -d '\012' > mn.V - MN_NAME_PAT="`cat mn.V`" - export MN_NAME_PAT -else - if test $VERBOSE -gt 0 - then echo "No forbidden identifiers defined by this target" ; fi -fi -rm -f mn.[TUV] - -# # # # # # # # # # # # # # # # # # # # # -# -# Search each input directory for broken header files. -# This loop ends near the end of the file. -# -if test $# -eq 0 -then - INPUTLIST="/usr/include" -else - INPUTLIST="$@" -fi - -for INPUT in ${INPUTLIST} ; do - -cd ${ORIGDIR} - -# Make sure a directory exists before changing into it, -# otherwise Solaris2 will fail-exit the script. -# -if [ ! -d ${INPUT} ]; then - continue -fi -cd ${INPUT} - -INPUT=`${PWDCMD}` -export INPUT - -# -# # # # # # # # # # # # # # # # # # # # # -# -if test $VERBOSE -gt 1 -then echo Finding directories and links to directories ; fi - -# Find all directories and all symlinks that point to directories. -# Put the list in $all_dirs. -# Each time we find a symlink, add it to newdirs -# so that we do another find within the dir the link points to. -# Note that $all_dirs may have duplicates in it; -# later parts of this file are supposed to ignore them. -dirs="." -levels=2 -all_dirs="" -search_dirs="" - -while [ -n "$dirs" ] && [ $levels -gt 0 ] -do - levels=`expr $levels - 1` - newdirs= - for d in $dirs - do - if test $VERBOSE -gt 1 - then echo " Searching $INPUT/$d" ; fi - - # Find all directories under $d, relative to $d, excluding $d itself. - # (The /. is needed after $d in case $d is a symlink.) - all_dirs="$all_dirs `find $d/. -type d -print | \ - sed -e '/\/\.$/d' -e 's@/./@/@g'`" - # Find all links to directories. - # Using `-exec test -d' in find fails on some systems, - # and trying to run test via sh fails on others, - # so this is the simplest alternative left. - # First find all the links, then test each one. - theselinks= - $LINKS && \ - theselinks=`find $d/. -type l -print | sed -e 's@/./@/@g'` - for d1 in $theselinks --dummy-- - do - # If the link points to a directory, - # add that dir to $newdirs - if [ -d $d1 ] - then - all_dirs="$all_dirs $d1" - if [ "`ls -ld $d1 | sed -n 's/.*-> //p'`" != "." ] - then - newdirs="$newdirs $d1" - search_dirs="$search_dirs $d1" - fi - fi - done - done - - dirs="$newdirs" -done - -# # # # # # # # # # # # # # # # # # # # # -# -dirs= -if test $VERBOSE -gt 2 -then echo "All directories (including links to directories):" - echo $all_dirs -fi - -for file in $all_dirs; do - rm -rf $LIB/$file - if [ ! -d $LIB/$file ] - then mkdir $LIB/$file - fi -done -mkdir $LIB/root - -# # # # # # # # # # # # # # # # # # # # # -# -# treetops gets an alternating list -# of old directories to copy -# and the new directories to copy to. -treetops=". ${LIB}" - -if $LINKS; then - if test $VERBOSE -gt 1 - then echo 'Making symbolic directory links' ; fi - cwd=`${PWDCMD}` - - for sym_link in $search_dirs; do - cd ${INPUT} - dest=`ls -ld ${sym_link} | sed -n 's/.*-> //p'` - - # In case $dest is relative, get to ${sym_link}'s dir first. - # - cd ./`echo ${sym_link} | sed 's;/[^/]*$;;'` - - # Check that the target directory exists. - # Redirections changed to avoid bug in sh on Ultrix. - # - (cd $dest) > /dev/null 2>&1 - if [ $? = 0 ]; then - cd $dest - - # full_dest_dir gets the dir that the link actually leads to. - # - full_dest_dir=`${PWDCMD}` - - # Canonicalize ${INPUT} now to minimize the time an - # automounter has to change the result of ${PWDCMD}. - # - cinput=`cd ${INPUT}; ${PWDCMD}` - - # If a link points to ., make a similar link to . - # - if [ ${full_dest_dir} = ${cinput} ]; then - if test $VERBOSE -gt 2 - then echo ${sym_link} '->' . ': Making self link' ; fi - rm -fr ${LIB}/${sym_link} > /dev/null 2>&1 - ln -s . ${LIB}/${sym_link} > /dev/null 2>&1 - - # If link leads back into ${INPUT}, - # make a similar link here. - # - elif expr ${full_dest_dir} : "${cinput}/.*" > /dev/null; then - # Y gets the actual target dir name, relative to ${INPUT}. - y=`echo ${full_dest_dir} | sed -n "s&${cinput}/&&p"` - # DOTS is the relative path from ${LIB}/${sym_link} back to ${LIB}. - dots=`echo "${sym_link}" | - sed -e 's@^./@@' -e 's@/./@/@g' -e 's@[^/][^/]*@..@g' -e 's@..$@@'` - if test $VERBOSE -gt 2 - then echo ${sym_link} '->' $dots$y ': Making local link' ; fi - rm -fr ${LIB}/${sym_link} > /dev/null 2>&1 - ln -s $dots$y ${LIB}/${sym_link} > /dev/null 2>&1 - - else - # If the link is to a dir $target outside ${INPUT}, - # repoint the link at ${INPUT}/root$target - # and process $target into ${INPUT}/root$target - # treat this directory as if it actually contained the files. - # - if test $VERBOSE -gt 2 - then echo ${sym_link} '->' root${full_dest_dir} ': Making rooted link' - fi - if [ -d $LIB/root${full_dest_dir} ] - then true - else - dirname=root${full_dest_dir}/ - dirmade=. - cd $LIB - while [ x$dirname != x ]; do - component=`echo $dirname | sed -e 's|/.*$||'` - mkdir $component >/dev/null 2>&1 - cd $component - dirmade=$dirmade/$component - dirname=`echo $dirname | sed -e 's|[^/]*/||'` - done - fi - - # Duplicate directory structure created in ${LIB}/${sym_link} in new - # root area. - # - for file2 in $all_dirs; do - case $file2 in - ${sym_link}/*) - dupdir=${LIB}/root${full_dest_dir}/`echo $file2 | - sed -n "s|^${sym_link}/||p"` - if test $VERBOSE -gt 2 - then echo "Duplicating ${sym_link}'s ${dupdir}" ; fi - if [ -d ${dupdir} ] - then true - else - mkdir ${dupdir} - fi - ;; - *) - ;; - esac - done - - # Get the path from ${LIB} to ${sym_link}, accounting for symlinks. - # - parent=`echo "${sym_link}" | sed -e 's@/[^/]*$@@'` - libabs=`cd ${LIB}; ${PWDCMD}` - file2=`cd ${LIB}; cd $parent; ${PWDCMD} | sed -e "s@^${libabs}@@"` - - # DOTS is the relative path from ${LIB}/${sym_link} back to ${LIB}. - # - dots=`echo "$file2" | sed -e 's@/[^/]*@../@g'` - rm -fr ${LIB}/${sym_link} > /dev/null 2>&1 - ln -s ${dots}root${full_dest_dir} ${LIB}/${sym_link} > /dev/null 2>&1 - treetops="$treetops ${sym_link} ${LIB}/root${full_dest_dir}" - fi - fi - done -fi - -# # # # # # # # # # # # # # # # # # # # # -# -required= -set x $treetops -shift -while [ $# != 0 ]; do - # $1 is an old directory to copy, and $2 is the new directory to copy to. - # - SRCDIR=`cd ${INPUT} ; cd $1 ; ${PWDCMD}` - export SRCDIR - - FIND_BASE=$1 - export FIND_BASE - shift - - DESTDIR=`cd $1;${PWDCMD}` - export DESTDIR - shift - - # The same dir can appear more than once in treetops. - # There's no need to scan it more than once. - # - if [ -f ${DESTDIR}/DONE ] - then continue ; fi - - touch ${DESTDIR}/DONE - if test $VERBOSE -gt 1 - then echo Fixing directory ${SRCDIR} into ${DESTDIR} ; fi - - # Check files which are symlinks as well as those which are files. - # - cd ${INPUT} - required="$required `if $LINKS; then - find ${FIND_BASE}/. -name '*.h' \( -type f -o -type l \) -print - else - find ${FIND_BASE}/. -name '*.h' -type f -print - fi | \ - sed -e 's;/\./;/;g' -e 's;//*;/;g' | \ - ${FIXINCL}`" -done - -## Make sure that any include files referenced using double quotes -## exist in the fixed directory. This comes last since otherwise -## we might end up deleting some of these files "because they don't -## need any change." -set x `echo $required` -shift -while [ $# != 0 ]; do - newreq= - while [ $# != 0 ]; do - # $1 is the directory to copy from, - # $2 is the unfixed file, - # $3 is the fixed file name. - # - cd ${INPUT} - cd $1 - if [ -f $2 ] ; then - if [ -r $2 ] && [ ! -r $3 ]; then - cp $2 $3 >/dev/null 2>&1 || echo "Can't copy $2" >&2 - chmod +w $3 2>/dev/null - chmod a+r $3 2>/dev/null - if test $VERBOSE -gt 2 - then echo Copied $2 ; fi - for include in `egrep '^[ ]*#[ ]*include[ ]*"[^/]' $3 | - sed -e 's/^[ ]*#[ ]*include[ ]*"\([^"]*\)".*$/\1/'` - do - dir=`echo $2 | sed -e s'|/[^/]*$||'` - dir2=`echo $3 | sed -e s'|/[^/]*$||'` - newreq="$newreq $1 $dir/$include $dir2/$include" - done - fi - fi - shift; shift; shift - done - set x $newreq - shift -done - -if test $VERBOSE -gt 2 -then echo 'Cleaning up DONE files.' ; fi -cd $LIB -# Look for files case-insensitively, for the benefit of -# DOS/Windows filesystems. -find . -name '[Dd][Oo][Nn][Ee]' -exec rm -f '{}' ';' - -if test $VERBOSE -gt 1 -then echo 'Cleaning up unneeded directories:' ; fi -cd $LIB -all_dirs=`find . -type d \! -name '.' -print | sort -r` -for file in $all_dirs; do - if rmdir $LIB/$file > /dev/null - then - test $VERBOSE -gt 3 && echo " removed $file" - fi -done 2> /dev/null - -# On systems which don't support symlinks, `find' may barf -# if called with "-type l" predicate. So only use that if -# we know we should look for symlinks. -if $LINKS; then - test $VERBOSE -gt 2 && echo "Removing unused symlinks" - - all_dirs=`find . -type l -print` - for file in $all_dirs - do - if test ! -d $file - then - rm -f $file - test $VERBOSE -gt 3 && echo " removed $file" - rmdir `dirname $file` > /dev/null && \ - test $VERBOSE -gt 3 && \ - echo " removed `dirname $file`" - fi - done 2> /dev/null -fi - -if test $VERBOSE -gt 0 -then echo fixincludes is done ; fi - -# # # # # # # # # # # # # # # # # # # # # -# -# End of for INPUT directories -# -done -# -# # # # # # # # # # # # # # # # # # # # # diff --git a/gcc/mkfixinc.sh b/gcc/mkfixinc.sh deleted file mode 100755 index 509aa35..0000000 --- a/gcc/mkfixinc.sh +++ /dev/null @@ -1,44 +0,0 @@ -#! /bin/sh - -if [ $# -ne 2 ] -then - echo "Usage: $0 <build-mach-triplet> <target-mach-triplet>" - exit 1 -fi - -build=$1 -machine=$2 -target=fixinc.sh - -# Check for special fix rules for particular targets -case $machine in - alpha*-dec-*vms* | \ - arm-semi-aof | \ - hppa1.1-*-osf* | \ - hppa1.1-*-bsd* | \ - i370-*-openedition | \ - i?86-moss-msdos* | \ - i?86-*-moss* | \ - i?86-*-pe | \ - i?86-*-cygwin* | \ - i?86-*-mingw32* | \ - i?86-*-uwin* | \ - i?86-*-interix* | \ - powerpc-*-eabiaix* | \ - powerpc-*-eabisim* | \ - powerpc-*-eabi* | \ - powerpc-*-rtems* | \ - powerpcle-*-eabisim* | \ - powerpcle-*-eabi* ) - # IF there is no include fixing, - # THEN create a no-op fixer and exit - (echo "#! /bin/sh" ; echo "exit 0" ) > ${target} - ;; - - *) - ../${build_subdir}/fixincludes/fixincl -v < /dev/null - sed "s,@FIXINCL@,\${ORIGDIR}/../${build_subdir}/fixincludes/fixincl,g" \ - ${srcdir}/fixinc.in > ${target} - ;; -esac -chmod 755 ${target} diff --git a/gcc/mkheaders.in b/gcc/mkheaders.in deleted file mode 100644 index 74376c3..0000000 --- a/gcc/mkheaders.in +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2002 Free Software Foundation, Inc. - -#This file is part of GCC. - -#GCC is free software; you can redistribute it and/or modify it under -#the terms of the GNU General Public License as published by the Free -#Software Foundation; either version 2, or (at your option) any later -#version. - -#GCC is distributed in the hope that it will be useful, but WITHOUT -#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -#for more details. - -#You should have received a copy of the GNU General Public License -#along with GCC; see the file COPYING. If not, write to the Free -#Software Foundation, 59 Temple Place - Suite 330, Boston, MA -#02111-1307, USA. - -# Basic information -target=@target@ -target_noncanonical=@target_noncanonical@ -version=@gcc_version@ - -VERBOSE=0 -while [ x$1 = x-v ] ; do - shift - VERBOSE=`expr $VERBOSE + 1` -done -export VERBOSE - -if [ x$1 = x--help ] ; then - echo "Usage: mkheaders [options] [prefix]" - echo "Options:" - echo " -v Print more output (may be repeated for even more output)" - echo " --help This help" - echo " --version Print version information" - exit 0 -fi - -if [ x$1 = x--version ] ; then - echo "mkheaders (GCC) version $version" - echo "Copyright 2002 Free Software Foundation, Inc." - echo "This program is free software; you may redistribute it under the" - echo "terms of the GNU General Public License. This program has" - echo "absolutely no warranty." - exit 0 -fi - -# Common prefix for installation directories. -if [ x$1 != x ] ; then - prefix=$1 -else - prefix=@prefix@ -fi -# Directory in which to put localized header files. On the systems with -# gcc as the native cc, `local_prefix' may not be `prefix' which is -# `/usr'. -# NOTE: local_prefix *should not* default from prefix. -local_prefix=@local_prefix@ -# Directory in which to put host dependent programs and libraries -exec_prefix=@exec_prefix@ -# Directory in which to put the directories used by the compiler. -libdir=@libdir@ -libexecdir=@libexecdir@ -# Directory in which the compiler finds libraries, etc. -libsubdir=${libdir}/gcc/${target_noncanonical}/${version} -# Directory in which the compiler finds executables -libexecsubdir=${libexecdir}/gcc/${target_noncanonical}/${version} -# Since gcc_tooldir does not exist at build-time, use -B${build_tooldir}/bin/ -build_tooldir=${exec_prefix}/${target_noncanonical} -# Directory to search for site-specific includes. -local_includedir=${local_prefix}/include -includedir=${prefix}/include - -itoolsdir=${libexecsubdir}/install-tools -itoolsdatadir=${libsubdir}/install-tools -incdir=${libsubdir}/include - -. ${itoolsdatadir}/mkheaders.conf - -cd ${itoolsdir} -rm -rf ${incdir}/* - -if [ x${STMP_FIXINC} != x ] ; then - TARGET_MACHINE="${target}" target_canonical="${target}" \ - ${SHELL} ./fixinc.sh ${incdir} \ - ${SYSTEM_HEADER_DIR} ${OTHER_FIXINCLUDES_DIRS} - rm -f ${incdir}/syslimits.h - if [ -f ${incdir}/limits.h ]; then - mv ${incdir}/limits.h ${incdir}/syslimits.h - else - cp ${itoolsdatadir}/gsyslimits.h ${incdir}/syslimits.h - fi -fi - -cp ${itoolsdatadir}/include/* ${incdir} - -if [ x${STMP_FIXPROTO} != x ] ; then - mkinstalldirs="${SHELL} ${itoolsdir}/mkinstalldirs" - export FIXPROTO_DEFINES mkinstalldirs - ${SHELL} fixproto ${incdir} ${incdir} ${SYSTEM_HEADER_DIR} || exit 1 -fi |