mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-24 11:24:05 +08:00
Makefile.in (machname.h): Remove.
2004-08-30 Paolo Bonzini <bonzini@gnu.org> * fixinc/Makefile.in (machname.h): Remove. (fixincl.x): Do not pass $@ to genfixes. * fixinc/genfixes: Remove code to produce machname.h. * fixinc/fixincl.sh: Move it here instead. * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence, instead check if pz_mn_name_pat is NULL. Make mn_get_regexps return a bool indicating whether pz_mn_name_pat is NULL. * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence. Declare extern C variables for the ENV_TABLE. * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence, instead use the result of mn_get_regexps. * fixinc/fixtests.c: Likewise. From-SVN: r86771
This commit is contained in:
parent
fc6633e0cf
commit
89b8abbf7d
@ -3,6 +3,21 @@
|
||||
* tree.h (BINFO_PRIMARY_BASE_OF): Remove.
|
||||
(struct tree_binfo): Remove primary field.
|
||||
|
||||
2004-08-30 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* fixinc/Makefile.in (machname.h): Remove.
|
||||
(fixincl.x): Do not pass $@ to genfixes.
|
||||
* fixinc/genfixes: Remove code to produce machname.h.
|
||||
* fixinc/fixincl.sh: Move it here instead.
|
||||
* fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
|
||||
instead check if pz_mn_name_pat is NULL. Make mn_get_regexps
|
||||
return a bool indicating whether pz_mn_name_pat is NULL.
|
||||
* fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
|
||||
Declare extern C variables for the ENV_TABLE.
|
||||
* fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
|
||||
instead use the result of mn_get_regexps.
|
||||
* fixinc/fixtests.c: Likewise.
|
||||
|
||||
2004-08-30 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* configure.ac: Do not run fixincludes after stage1 during
|
||||
|
@ -73,7 +73,7 @@ ALLOBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o \
|
||||
TESTOBJ = fixincl.o fixlib.o fixtests.o
|
||||
FIXOBJ = fixfixes.o fixlib.o
|
||||
|
||||
HDR = server.h fixlib.h machname.h
|
||||
HDR = server.h fixlib.h
|
||||
FI = fixincl@build_exeext@
|
||||
AF = applyfix@build_exeext@
|
||||
|
||||
@ -102,17 +102,11 @@ server.o : server.c
|
||||
procopen.o : procopen.c
|
||||
fixlib.o : fixlib.c
|
||||
|
||||
# 'machname.h' is built in the build directory.
|
||||
# 'fixincl.x' in the source dir.
|
||||
#
|
||||
machname.h: ../specs
|
||||
$(SHELL) $(srcdir)/genfixes $@
|
||||
|
||||
$(srcdir)/fixincl.x: @MAINT@ fixincl.tpl inclhack.def
|
||||
cd $(srcdir) ; $(SHELL) ./genfixes $@
|
||||
cd $(srcdir) ; $(SHELL) ./genfixes
|
||||
|
||||
clean:
|
||||
rm -f *.o *-stamp $(AF) $(FI) machname.h *~
|
||||
rm -f *.o *-stamp $(AF) $(FI) *~
|
||||
|
||||
maintainer-clean : clean
|
||||
rm -f $(srcdir)/fixincl.x
|
||||
@ -129,8 +123,7 @@ install-bin : $(TARGETS)
|
||||
|
||||
Makefile: Makefile.in ../config.status
|
||||
cd .. \
|
||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
|
||||
$(SHELL) ./config.status
|
||||
&& $(SHELL) ./config.status $(subdir)/Makefile
|
||||
|
||||
check : $(TARGETS)
|
||||
autogen -T $(srcdir)/check.tpl $(srcdir)/inclhack.def
|
||||
|
@ -488,9 +488,6 @@ FIX_PROC_HEAD( char_macro_def_fix )
|
||||
|
||||
FIX_PROC_HEAD( machine_name_fix )
|
||||
{
|
||||
#ifndef MN_NAME_PAT
|
||||
fputs( "The target machine has no needed machine name fixes\n", stderr );
|
||||
#else
|
||||
regmatch_t match[2];
|
||||
const char *line, *base, *limit, *p, *q;
|
||||
regex_t *label_re, *name_re;
|
||||
@ -499,7 +496,11 @@ FIX_PROC_HEAD( machine_name_fix )
|
||||
IGNORE_ARG(filname);
|
||||
IGNORE_ARG(p_fixd);
|
||||
|
||||
mn_get_regexps (&label_re, &name_re, "machine_name_fix");
|
||||
if (!mn_get_regexps (&label_re, &name_re, "machine_name_fix"))
|
||||
{
|
||||
fputs( "The target machine has no needed machine name fixes\n", stderr );
|
||||
goto done;
|
||||
}
|
||||
|
||||
scratch[0] = '_';
|
||||
scratch[1] = '_';
|
||||
@ -577,7 +578,6 @@ FIX_PROC_HEAD( machine_name_fix )
|
||||
}
|
||||
}
|
||||
done:
|
||||
#endif
|
||||
fputs (text, stdout);
|
||||
}
|
||||
|
||||
|
@ -131,6 +131,36 @@ 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.
|
||||
|
@ -204,32 +204,30 @@ compile_re( tCC* pat, regex_t* re, int match, tCC* e1, tCC* e2 )
|
||||
|
||||
/* * * * * * * * * * * * *
|
||||
|
||||
Helper routine and data for the machine_name test and fix.
|
||||
machname.h is created by black magic in the Makefile. */
|
||||
|
||||
#ifdef MN_NAME_PAT
|
||||
Helper routine and data for the machine_name test and fix. */
|
||||
|
||||
tSCC mn_label_pat[] = "^[ \t]*#[ \t]*(if|ifdef|ifndef)[ \t]+";
|
||||
static regex_t mn_label_re;
|
||||
|
||||
tSCC mn_name_pat[] = MN_NAME_PAT;
|
||||
static regex_t mn_name_re;
|
||||
|
||||
static int mn_compiled = 0;
|
||||
|
||||
void
|
||||
t_bool
|
||||
mn_get_regexps(regex_t** label_re, regex_t** name_re, tCC* who )
|
||||
{
|
||||
if (! pz_mn_name_pat)
|
||||
return BOOL_FALSE;
|
||||
|
||||
if (! mn_compiled)
|
||||
{
|
||||
compile_re (mn_label_pat, &mn_label_re, 1, "label pattern", who);
|
||||
compile_re (mn_name_pat, &mn_name_re, 1, "name pattern", who);
|
||||
compile_re (pz_mn_name_pat, &mn_name_re, 1, "name pattern", who);
|
||||
mn_compiled++;
|
||||
}
|
||||
*label_re = &mn_label_re;
|
||||
*name_re = &mn_name_re;
|
||||
return BOOL_TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef SEPARATE_FIX_PROC
|
||||
|
@ -33,7 +33,6 @@ Boston, MA 02111-1307, USA. */
|
||||
#include <signal.h>
|
||||
|
||||
#include "xregex.h"
|
||||
#include "machname.h"
|
||||
#include "libiberty.h"
|
||||
|
||||
#ifndef STDIN_FILENO
|
||||
@ -117,12 +116,19 @@ typedef int apply_fix_p_t; /* Apply Fix Predicate Type */
|
||||
_ENV_( pz_dest_dir, BOOL_TRUE, "DESTDIR", \
|
||||
"output directory" ) \
|
||||
\
|
||||
_ENV_( pz_mn_name_pat, BOOL_FALSE, "MN_NAME_PAT", \
|
||||
"regex matching forbidden identifiers" ) \
|
||||
\
|
||||
_ENV_( pz_verbose, BOOL_FALSE, "VERBOSE", \
|
||||
"amount of user entertainment" ) \
|
||||
\
|
||||
_ENV_( pz_find_base, BOOL_TRUE, "FIND_BASE", \
|
||||
"leader to trim from file names" )
|
||||
|
||||
#define _ENV_(v,m,n,t) extern tCC* v;
|
||||
ENV_TABLE
|
||||
#undef _ENV_
|
||||
|
||||
/* Test Descriptor
|
||||
|
||||
Each fix may have associated tests that determine
|
||||
@ -219,7 +225,5 @@ apply_fix_p_t
|
||||
char* make_raw_shell_str ( char* pz_d, tCC* pz_s, size_t smax );
|
||||
#endif
|
||||
|
||||
#ifdef MN_NAME_PAT
|
||||
void mn_get_regexps ( regex_t** label_re, regex_t** name_re, tCC *who );
|
||||
#endif
|
||||
t_bool mn_get_regexps ( regex_t** label_re, regex_t** name_re, tCC *who );
|
||||
#endif /* ! GCC_FIXLIB_H */
|
||||
|
@ -68,15 +68,13 @@ static apply_fix_p_t test ( tCC* fname ATTRIBUTE_UNUSED, \
|
||||
|
||||
TEST_FOR_FIX_PROC_HEAD( machine_name_test )
|
||||
{
|
||||
#ifndef MN_NAME_PAT
|
||||
return SKIP_FIX;
|
||||
#else
|
||||
regex_t *label_re, *name_re;
|
||||
regmatch_t match[2];
|
||||
tCC *base, *limit;
|
||||
IGNORE_ARG(fname);
|
||||
|
||||
mn_get_regexps(&label_re, &name_re, "machine_name_test");
|
||||
if (!mn_get_regexps (&label_re, &name_re, "machine_name_test"))
|
||||
return SKIP_FIX;
|
||||
|
||||
for (base = text;
|
||||
xregexec (label_re, base, 2, match, 0) == 0;
|
||||
@ -114,7 +112,6 @@ TEST_FOR_FIX_PROC_HEAD( machine_name_test )
|
||||
/* Otherwise, keep looking... */
|
||||
}
|
||||
return SKIP_FIX;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -45,11 +45,8 @@ do
|
||||
;;
|
||||
|
||||
'-?' )
|
||||
echo "USAGE: gendefs [ -D<def-name> ... ] [ <output-name> ]"
|
||||
echo "USAGE: gendefs [ -D<def-name> ... ]"
|
||||
echo "WHERE: '<def-name>' specifies a #define test name from inclhack.def"
|
||||
echo " and '<output-name>' is one of:"
|
||||
echo " fixincl.x machine.h"
|
||||
echo "The default is to produce the first three outputs."
|
||||
exit 0
|
||||
;;
|
||||
|
||||
@ -66,53 +63,15 @@ fi
|
||||
AG="autogen $AG"
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
fixincl.x | */fixincl.x )
|
||||
if [ -z "`${AG} -v | fgrep 'Ver. 5.'`" ]
|
||||
then
|
||||
echo "AutoGen appears to be out of date or not correctly installed."
|
||||
echo "Please download and install:"
|
||||
echo " ftp://gcc.gnu.org/pub/gcc/infrastructure/autogen.tar.gz"
|
||||
touch fixincl.x
|
||||
else
|
||||
echo AutoGen-ing fixincl.x
|
||||
$AG inclhack.def
|
||||
fi
|
||||
;;
|
||||
|
||||
machname.h | */machname.h )
|
||||
# This script extracts 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 on standard input.
|
||||
# A #define for a regular expression to find any of those macros in a
|
||||
# header file is written to standard output.
|
||||
|
||||
# Note dependency on ASCII. \040 = space, \011 = tab, \012 = newline.
|
||||
# tr ' ' '\n' is, alas, not portable.
|
||||
|
||||
tr -s '\040\011' '\012\012' < ../specs |
|
||||
sed -n 's/^.*-D\([a-zA-Z_][a-zA-Z0-9_]*\).*$/\1/p' |
|
||||
sort -u > mn.T
|
||||
|
||||
if grep -v '^_[_A-Z]' mn.T > mn.U
|
||||
then
|
||||
echo "Forbidden identifiers: `tr '\012' ' ' <mn.U`" >&2
|
||||
sed 's/^/\\\\</; s/$/\\\\>/' <mn.U | tr '\012' '|' > mn.V
|
||||
echo '' >>mn.V
|
||||
sed 's/^/#define MN_NAME_PAT "/; s/|$/"/' < mn.V > machname.T
|
||||
else
|
||||
echo "No forbidden identifiers defined by this target" >&2
|
||||
echo '#undef MN_NAME_PAT' > machname.T
|
||||
fi
|
||||
rm -f mn.[TUV]
|
||||
mv -f machname.T machname.h
|
||||
;;
|
||||
|
||||
* )
|
||||
echo genfixes cannot create $1
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
if [ -z "`${AG} -v | fgrep 'Ver. 5.'`" ]
|
||||
then
|
||||
echo "AutoGen appears to be out of date or not correctly installed."
|
||||
echo "Please download and install:"
|
||||
echo " ftp://gcc.gnu.org/pub/gcc/infrastructure/autogen.tar.gz"
|
||||
touch fixincl.x
|
||||
else
|
||||
echo AutoGen-ing fixincl.x
|
||||
$AG inclhack.def
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user