diff options
author | Jeff Law <law@gcc.gnu.org> | 1998-08-02 00:46:43 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-08-02 00:46:43 -0600 |
commit | d70283ce50dc333f6b2e8650e2f85981d8c34a2f (patch) | |
tree | 2c9482e989f07f5c43b7f84ae447bf43769f5641 | |
parent | 19b7a780f4aa53761e35aea1c963a06b454e0f7e (diff) | |
download | gcc-d70283ce50dc333f6b2e8650e2f85981d8c34a2f.tar.gz |
Initial revision
From-SVN: r21536
-rw-r--r-- | gcc/ABOUT-GCC-NLS | 542 | ||||
-rwxr-xr-x | gcc/exgettext | 118 | ||||
-rw-r--r-- | gcc/tmp-emsgids.c | 96 |
3 files changed, 756 insertions, 0 deletions
diff --git a/gcc/ABOUT-GCC-NLS b/gcc/ABOUT-GCC-NLS new file mode 100644 index 00000000000..b70a7c8df67 --- /dev/null +++ b/gcc/ABOUT-GCC-NLS @@ -0,0 +1,542 @@ +Notes on GCC's Native Language Support + +GCC's Native Language Support (NLS) is relatively new and +experimental, so NLS is currently disabled by default. Use +configure's --enable-nls option to enable it. Eventually, NLS will be +enabled by default, and you'll need --disable-nls to disable it. You +must enable NLS in order to make a GCC distribution. + +By and large, only diagnostic messages have been internationalized. +Some work remains in other areas; for example, GCC does not yet allow +non-ASCII letters in identifiers. + +Not all of GCC's diagnostic messages have been internationalized. +Programs like `enquire' and `genattr' are not internationalized, as +their users are GCC maintainers who typically need to be able to read +English anyway; internationalizing them would thus entail needless +work for the human translators. And no one has yet gotten around to +internationalizing the messages in the C++ compiler, or in the +specialized MIPS-specific programs mips-tdump and mips-tfile. + +The GCC library should not contain any messages that need +internationalization, because it operates below the +internationalization library. + +Currently, the only language translation supplied is en_UK (British English). + +Unlike some other GNU programs, the GCC sources contain few instances +of explicit translation calls like _("string"). Instead, the +diagnostic printing routines automatically translate their arguments. +For example, GCC source code should not contain calls like `error +(_("unterminated comment"))'; it should contain calls like `error +("unterminated comment")' instead, as it is the `error' function's +responsibility to translate the message before the user sees it. + +By convention, any function parameter in the GCC sources whose name +ends in `msgid' is expected to be a message requiring translation. +For example, the `error' function's first parameter is named `msgid'. +GCC's exgettext script uses this convention to determine which +function parameter strings need to be translated. The exgettext +script also assumes that any occurrence of `%eMSGID}' on a source +line, where MSGID does not contain `%' or `}', corresponds to a +message MSGID that requires translation; this is needed to identify +diagnostics in GCC spec strings. + +If you enable NLS and modify source files, you'll need to use a +special version of the GNU gettext package to propagate the +modifications to the translation tables. Apply the following patch +(use `patch -p0') to GNU gettext 0.10.35, which you can retrieve from: + +ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz + +This patch has been submitted to the GNU gettext maintainer, so +eventually we shouldn't need this special gettext version. + +This patch 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. + +This patch is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this patch; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. + +1998-07-26 Paul Eggert <eggert@twinsun.com> + + * po/Makefile.in.in (maintainer-clean): Remove cat-id-tbl.c and + stamp-cat-id. + +1998-07-24 Paul Eggert <eggert@twinsun.com> + + * po/Makefile.in.in (cat-id-tbl.o): Depend on + $(top_srcdir)/intl/libgettext.h, not ../intl/libgettext.h. + +1998-07-20 Paul Eggert <eggert@twinsun.com> + + * po/Makefile.in.in (.po.pox, all-yes, $(srcdir)/cat-id-tbl.c, + $(srcdir)/stamp-cat-id, update-po): Prepend `$(srcdir)/' to + files built in the source directory; this is needed for + VPATH-based make in Solaris 2.6. + +1998-07-17 Paul Eggert <eggert@twinsun.com> + + Add support for user-specified argument numbers for keywords. + Extract all strings from a keyword arg, not just the first one. + Handle parenthesized commas inside keyword args correctly. + Warn about nested keywords. + + * doc/gettext.texi: Document --keyword=id:argnum. + + * src/xgettext.c (scan_c_file): + Warn about nested keywords, e.g. _(_("xxx")). + Warn also about not-yet-implemented but allowed nesting, e.g. + dcgettext(..._("xxx")..., "yyy"). + Get all strings in a keyword arg, not just the first one. + Handle parenthesized commas inside keyword args correctly. + + * src/xget-lex.h (enum xgettext_token_type_ty): + Replace xgettext_token_type_keyword1 and + xgettext_token_type_keyword2 with just plain + xgettext_token_type_keyword; it now has argnum value. + Add xgettext_token_type_rp. + (struct xgettext_token_ty): Add argnum member. + line_number and file_name are now also set for + xgettext_token_type_keyword. + (xgettext_lex_keyword): Arg is const char *. + + * src/xget-lex.c: Include "hash.h". + (enum token_type_ty): Add token_type_rp. + (keywords): Now a hash table. + (phase5_get): Return token_type_rp for ')'. + (xgettext_lex, xgettext_lex_keyword): Add support for keyword argnums. + (xgettext_lex): Return xgettext_token_type_rp for ')'. + Report keyword argnum, line number, and file name back to caller. + +1998-07-09 Paul Eggert <eggert@twinsun.com> + + * intl/Makefile.in (uninstall): + Do nothing unless $(PACKAGE) is gettext. + +=================================================================== +RCS file: doc/gettext.texi,v +retrieving revision 0.10.35.0 +retrieving revision 0.10.35.1 +diff -pu -r0.10.35.0 -r0.10.35.1 +--- doc/gettext.texi 1998/05/01 05:53:32 0.10.35.0 ++++ doc/gettext.texi 1998/07/18 00:25:15 0.10.35.1 +@@ -1854,13 +1854,19 @@ List of directories searched for input f + Join messages with existing file. + + @item -k @var{word} +-@itemx --keyword[=@var{word}] +-Additonal keyword to be looked for (without @var{word} means not to ++@itemx --keyword[=@var{keywordspec}] ++Additonal keyword to be looked for (without @var{keywordspec} means not to + use default keywords). + +-The default keywords, which are always looked for if not explicitly +-disabled, are @code{gettext}, @code{dgettext}, @code{dcgettext} and +-@code{gettext_noop}. ++If @var{keywordspec} is a C identifer @var{id}, @code{xgettext} looks ++for strings in the first argument of each call to the function or macro ++@var{id}. If @var{keywordspec} is of the form ++@samp{@var{id}:@var{argnum}}, @code{xgettext} looks for strings in the ++@var{argnum}th argument of the call. ++ ++The default keyword specifications, which are always looked for if not ++explicitly disabled, are @code{gettext}, @code{dgettext:2}, ++@code{dcgettext:2} and @code{gettext_noop}. + + @item -m [@var{string}] + @itemx --msgstr-prefix[=@var{string}] +=================================================================== +RCS file: intl/Makefile.in,v +retrieving revision 0.10.35.0 +retrieving revision 0.10.35.1 +diff -pu -r0.10.35.0 -r0.10.35.1 +--- intl/Makefile.in 1998/04/27 21:53:18 0.10.35.0 ++++ intl/Makefile.in 1998/07/09 21:39:18 0.10.35.1 +@@ -143,10 +143,14 @@ install-data: all + installcheck: + + uninstall: +- dists="$(DISTFILES.common)"; \ +- for file in $$dists; do \ +- rm -f $(gettextsrcdir)/$$file; \ +- done ++ if test "$(PACKAGE)" = "gettext"; then \ ++ dists="$(DISTFILES.common)"; \ ++ for file in $$dists; do \ ++ rm -f $(gettextsrcdir)/$$file; \ ++ done ++ else \ ++ : ; \ ++ fi + + info dvi: + +=================================================================== +RCS file: src/xget-lex.c,v +retrieving revision 0.10.35.0 +retrieving revision 0.10.35.1 +diff -pu -r0.10.35.0 -r0.10.35.1 +--- src/xget-lex.c 1998/07/09 22:49:48 0.10.35.0 ++++ src/xget-lex.c 1998/07/18 00:25:15 0.10.35.1 +@@ -33,6 +33,7 @@ + #include "error.h" + #include "system.h" + #include "libgettext.h" ++#include "hash.h" + #include "str-list.h" + #include "xget-lex.h" + +@@ -83,6 +84,7 @@ enum token_type_ty + token_type_eoln, + token_type_hash, + token_type_lp, ++ token_type_rp, + token_type_comma, + token_type_name, + token_type_number, +@@ -109,7 +111,7 @@ static FILE *fp; + static int trigraphs; + static int cplusplus_comments; + static string_list_ty *comment; +-static string_list_ty *keywords; ++static hash_table keywords; + static int default_keywords = 1; + + /* These are for tracking whether comments count as immediately before +@@ -941,6 +943,10 @@ phase5_get (tp) + tp->type = token_type_lp; + return; + ++ case ')': ++ tp->type = token_type_rp; ++ return; ++ + case ',': + tp->type = token_type_comma; + return; +@@ -1179,6 +1185,7 @@ xgettext_lex (tp) + while (1) + { + token_ty token; ++ void *keyword_value; + + phase8_get (&token); + switch (token.type) +@@ -1213,17 +1220,20 @@ xgettext_lex (tp) + if (default_keywords) + { + xgettext_lex_keyword ("gettext"); +- xgettext_lex_keyword ("dgettext"); +- xgettext_lex_keyword ("dcgettext"); ++ xgettext_lex_keyword ("dgettext:2"); ++ xgettext_lex_keyword ("dcgettext:2"); + xgettext_lex_keyword ("gettext_noop"); + default_keywords = 0; + } + +- if (string_list_member (keywords, token.string)) +- { +- tp->type = (strcmp (token.string, "dgettext") == 0 +- || strcmp (token.string, "dcgettext") == 0) +- ? xgettext_token_type_keyword2 : xgettext_token_type_keyword1; ++ if (find_entry (&keywords, token.string, strlen (token.string), ++ &keyword_value) ++ == 0) ++ { ++ tp->type = xgettext_token_type_keyword; ++ tp->argnum = (int) keyword_value; ++ tp->line_number = token.line_number; ++ tp->file_name = logical_file_name; + } + else + tp->type = xgettext_token_type_symbol; +@@ -1236,6 +1246,12 @@ xgettext_lex (tp) + tp->type = xgettext_token_type_lp; + return; + ++ case token_type_rp: ++ last_non_comment_line = newline_count; ++ ++ tp->type = xgettext_token_type_rp; ++ return; ++ + case token_type_comma: + last_non_comment_line = newline_count; + +@@ -1263,16 +1279,32 @@ xgettext_lex (tp) + + void + xgettext_lex_keyword (name) +- char *name; ++ const char *name; + { + if (name == NULL) + default_keywords = 0; + else + { +- if (keywords == NULL) +- keywords = string_list_alloc (); ++ int argnum; ++ size_t len; ++ const char *sp; ++ ++ if (keywords.table == NULL) ++ init_hash (&keywords, 100); ++ ++ sp = strchr (name, ':'); ++ if (sp) ++ { ++ len = sp - name; ++ argnum = atoi (sp + 1); ++ } ++ else ++ { ++ len = strlen (name); ++ argnum = 1; ++ } + +- string_list_append_unique (keywords, name); ++ insert_entry (&keywords, name, len, (void *) argnum); + } + } + +=================================================================== +RCS file: src/xget-lex.h,v +retrieving revision 0.10.35.0 +retrieving revision 0.10.35.1 +diff -pu -r0.10.35.0 -r0.10.35.1 +--- src/xget-lex.h 1998/07/09 22:49:48 0.10.35.0 ++++ src/xget-lex.h 1998/07/18 00:25:15 0.10.35.1 +@@ -23,9 +23,9 @@ Foundation, Inc., 59 Temple Place - Suit + enum xgettext_token_type_ty + { + xgettext_token_type_eof, +- xgettext_token_type_keyword1, +- xgettext_token_type_keyword2, ++ xgettext_token_type_keyword, + xgettext_token_type_lp, ++ xgettext_token_type_rp, + xgettext_token_type_comma, + xgettext_token_type_string_literal, + xgettext_token_type_symbol +@@ -37,8 +37,14 @@ struct xgettext_token_ty + { + xgettext_token_type_ty type; + +- /* These 3 are only set for xgettext_token_type_string_literal. */ ++ /* This 1 is set only for xgettext_token_type_keyword. */ ++ int argnum; ++ ++ /* This 1 is set only for xgettext_token_type_string_literal. */ + char *string; ++ ++ /* These 2 are set only for xgettext_token_type_keyword and ++ xgettext_token_type_string_literal. */ + int line_number; + char *file_name; + }; +@@ -50,7 +56,7 @@ void xgettext_lex PARAMS ((xgettext_toke + const char *xgettext_lex_comment PARAMS ((size_t __n)); + void xgettext_lex_comment_reset PARAMS ((void)); + /* void xgettext_lex_filepos PARAMS ((char **, int *)); FIXME needed? */ +-void xgettext_lex_keyword PARAMS ((char *__name)); ++void xgettext_lex_keyword PARAMS ((const char *__name)); + void xgettext_lex_cplusplus PARAMS ((void)); + void xgettext_lex_trigraphs PARAMS ((void)); + +=================================================================== +RCS file: src/xgettext.c,v +retrieving revision 0.10.35.0 +retrieving revision 0.10.35.1 +diff -pu -r0.10.35.0 -r0.10.35.1 +--- src/xgettext.c 1998/07/09 22:49:48 0.10.35.0 ++++ src/xgettext.c 1998/07/18 00:25:15 0.10.35.1 +@@ -835,6 +835,8 @@ scan_c_file(filename, mlp, is_cpp_file) + int is_cpp_file; + { + int state; ++ int commas_to_skip; /* defined only when in states 1 and 2 */ ++ int paren_nesting; /* defined only when in state 2 */ + + /* Inform scanner whether we have C++ files or not. */ + if (is_cpp_file) +@@ -854,63 +856,79 @@ scan_c_file(filename, mlp, is_cpp_file) + { + xgettext_token_ty token; + +- /* A simple state machine is used to do the recognising: ++ /* A state machine is used to do the recognising: + State 0 = waiting for something to happen +- State 1 = seen one of our keywords with string in first parameter +- State 2 = was in state 1 and now saw a left paren +- State 3 = seen one of our keywords with string in second parameter +- State 4 = was in state 3 and now saw a left paren +- State 5 = waiting for comma after being in state 4 +- State 6 = saw comma after being in state 5 */ ++ State 1 = seen one of our keywords ++ State 2 = waiting for part of an argument */ + xgettext_lex (&token); + switch (token.type) + { +- case xgettext_token_type_keyword1: ++ case xgettext_token_type_keyword: ++ if (!extract_all && state == 2) ++ { ++ if (commas_to_skip == 0) ++ { ++ error (0, 0, ++ _("%s:%d: warning: keyword nested in keyword arg"), ++ token.file_name, token.line_number); ++ continue; ++ } ++ ++ /* Here we should nest properly, but this would require a ++ potentially unbounded stack. We haven't run across an ++ example that needs this functionality yet. For now, ++ we punt and forget the outer keyword. */ ++ error (0, 0, ++ _("%s:%d: warning: keyword between outer keyword and its arg"), ++ token.file_name, token.line_number); ++ } ++ commas_to_skip = token.argnum - 1; + state = 1; + continue; + +- case xgettext_token_type_keyword2: +- state = 3; +- continue; +- + case xgettext_token_type_lp: + switch (state) + { + case 1: ++ paren_nesting = 0; + state = 2; + break; +- case 3: +- state = 4; ++ case 2: ++ paren_nesting++; + break; +- default: +- state = 0; + } + continue; + ++ case xgettext_token_type_rp: ++ if (state == 2 && paren_nesting != 0) ++ paren_nesting--; ++ else ++ state = 0; ++ continue; ++ + case xgettext_token_type_comma: +- state = state == 5 ? 6 : 0; ++ if (state == 2 && commas_to_skip != 0) ++ commas_to_skip -= paren_nesting == 0; ++ else ++ state = 0; + continue; + + case xgettext_token_type_string_literal: +- if (extract_all || state == 2 || state == 6) +- { +- remember_a_message (mlp, &token); +- state = 0; +- } ++ if (extract_all || (state == 2 && commas_to_skip == 0)) ++ remember_a_message (mlp, &token); + else + { + free (token.string); +- state = (state == 4 || state == 5) ? 5 : 0; ++ state = state == 2 ? 2 : 0; + } + continue; + + case xgettext_token_type_symbol: +- state = (state == 4 || state == 5) ? 5 : 0; ++ state = state == 2 ? 2 : 0; + continue; + + default: +- state = 0; +- continue; ++ abort (); + + case xgettext_token_type_eof: + break; +=================================================================== +RCS file: po/Makefile.in.in,v +retrieving revision 0.10.35.0 +retrieving revision 0.10.35.5 +diff -u -r0.10.35.0 -r0.10.35.5 +--- po/Makefile.in.in 1998/07/20 20:20:38 0.10.35.0 ++++ po/Makefile.in.in 1998/07/26 09:07:52 0.10.35.5 +@@ -62,7 +62,7 @@ + $(COMPILE) $< + + .po.pox: +- $(MAKE) $(PACKAGE).pot ++ $(MAKE) $(srcdir)/$(PACKAGE).pot + $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox + + .po.mo: +@@ -79,7 +79,7 @@ + + all: all-@USE_NLS@ + +-all-yes: cat-id-tbl.c $(CATALOGS) ++all-yes: $(srcdir)/cat-id-tbl.c $(CATALOGS) + all-no: + + $(srcdir)/$(PACKAGE).pot: $(POTFILES) +@@ -90,8 +90,8 @@ + || ( rm -f $(srcdir)/$(PACKAGE).pot \ + && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) + +-$(srcdir)/cat-id-tbl.c: stamp-cat-id; @: +-$(srcdir)/stamp-cat-id: $(PACKAGE).pot ++$(srcdir)/cat-id-tbl.c: $(srcdir)/stamp-cat-id; @: ++$(srcdir)/stamp-cat-id: $(srcdir)/$(PACKAGE).pot + rm -f cat-id-tbl.tmp + sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ + | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp +@@ -180,7 +180,8 @@ + + check: all + +-cat-id-tbl.o: ../intl/libgettext.h ++cat-id-tbl.o: $(srcdir)/cat-id-tbl.c $(top_srcdir)/intl/libgettext.h ++ $(COMPILE) $(srcdir)/cat-id-tbl.c + + dvi info tags TAGS ID: + +@@ -196,7 +197,7 @@ + maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." +- rm -f $(GMOFILES) ++ rm -f $(GMOFILES) cat-id-tbl.c stamp-cat-id + + distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) + dist distdir: update-po $(DISTFILES) +@@ -207,7 +208,7 @@ + done + + update-po: Makefile +- $(MAKE) $(PACKAGE).pot ++ $(MAKE) $(srcdir)/$(PACKAGE).pot + PATH=`pwd`/../src:$$PATH; \ + cd $(srcdir); \ + catalogs='$(CATALOGS)'; \ diff --git a/gcc/exgettext b/gcc/exgettext new file mode 100755 index 00000000000..93d553cba76 --- /dev/null +++ b/gcc/exgettext @@ -0,0 +1,118 @@ +#! /bin/sh +# Wrapper around gettext for GCC sources. +# Copyright 1998 Free Software Foundation, Inc. + +# Written by Paul Eggert <eggert@twinsun.com>. + +# This file is part of GNU CC. + +# GNU CC is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# GNU CC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with GNU CC; see the file COPYING. If not, write to +# the Free Software Foundation, 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# Set environment to default value, if not already set. +: ${AWK=awk} + +# The argument to this wrapper is the xgettext command to be executed. +# Extract the xgettext program name from the rest of the command. +xgettext=${1?} +shift + +# Save work if we're just wrapping a no-op. +case $xgettext in +:) exit;; +esac + +# Find the files to be scanned, and the directory to scan them from. +directory=. +files= +for i +do + case $i in + --directory=*) + directory=`expr " $i" : ' --directory=\(.*\)'`;; + --files-from=*) + files_from=`expr " $i" : ' --files-from=\(.*\)'` + files=`$AWK '/^[^#]/ { print }' $files_from`;; + esac +done + +# Generate keyword options for xgettext, +# by scanning for declarations of functions +# whose parameter names end in "msgid". +generate_keyword_options=' + /^[A-Z_a-z].*\(.*msgid[,)]/ { + + paren_index = index($0, "(") + + name = substr($0, 1, paren_index - 1) + sub(/[^0-9A-Z_a-z]*$/, "", name) + sub(/[ ]+PARAMS/, "", name) + sub(/[ ]+VPROTO/, "", name) + sub(/.*[^0-9A-Z_a-z]/, "", name) + + args = substr($0, paren_index) + sub(/msgid[,)].*/, "", args) + for (n = 1; sub(/^[^,]*,/, "", args); n++) { + continue; + } + + if (n == 1) { + keyword = name + } else { + keyword = name ":" n + } + + if (! keyword_seen[keyword]++) { + print "--keyword=" keyword + } + } +' +keyword_options=`( + cd $directory && + $AWK "$generate_keyword_options" $files < /dev/null +)` || exit + +# Generate temporary file reflecting the %e strings in the scanned files. +tmp=tmp-emsgids.c + +generate_emsgids=' + /%e.*}/ { + line = $0 + while ((percent_index = index(line, "%e")) != 0) { + line = substr(line, percent_index + 2) + bracket_index = index(line, "}") + if (bracket_index == 0) { + continue + } + msgid = substr(line, 1, bracket_index - 1) + if (index(msgid, "%") != 0) { + continue + } + printf "#line %d \"%s\"\n", FNR, FILENAME + printf "_(\"%s\")\n", msgid + line = substr(line, bracket_index + 1) + } + } +' +(cd $directory && + $AWK "$generate_emsgids" $files < /dev/null +) > $directory/$tmp || exit + +# Run the xgettext command, with temporary added as a file to scan. +"$xgettext" $keyword_options ${1+"$@"} $tmp || exit + +# Clean up. +# If we don't get here, `make clean' will remove this file later. +rm -f $directory/$tmp diff --git a/gcc/tmp-emsgids.c b/gcc/tmp-emsgids.c new file mode 100644 index 00000000000..67e8adbd86b --- /dev/null +++ b/gcc/tmp-emsgids.c @@ -0,0 +1,96 @@ +#line 59 "config/arc/arc.h" +_("may not use both -EB and -EL") +#line 176 "config/arm/arm.h" +_("-mapcs-26 and -mapcs-32 may not be used together") +#line 187 "config/arm/arm.h" +_("-msoft-float and -mhard_float may not be used together") +#line 198 "config/arm/arm.h" +_("-mbig-endian and -mlittle-endian may not be used together") +#line 72 "config/arm/riscix.h" +_("-mbsd and -pedantic incompatible") +#line 73 "config/arm/riscix.h" +_("-mbsd and -mxopen incompatible") +#line 74 "config/arm/riscix.h" +_("-mxopen and -pedantic incompatible") +#line 133 "config/arm/riscix.h" +_("-mbsd and -pedantic incompatible") +#line 134 "config/arm/riscix.h" +_("-mbsd and -mxopen incompatible") +#line 135 "config/arm/riscix.h" +_("-mxopen and -pedantic incompatible") +#line 126 "config/dsp16xx/dsp16xx.h" +_("A -ifile option requires a -map option") +#line 135 "config/dsp16xx/dsp16xx.h" +_("A -ifile option requires a -map option") +#line 809 "config/i386/sco5.h" +_("-static not valid with -mcoff") +#line 810 "config/i386/sco5.h" +_("-shared not valid with -mcoff") +#line 811 "config/i386/sco5.h" +_("-symbolic not valid with -mcoff") +#line 847 "config/i386/sco5.h" +_("-fpic is not valid with -mcoff") +#line 848 "config/i386/sco5.h" +_("-fPIC is not valid with -mcoff") +#line 882 "config/i386/sco5.h" +_("-static not valid with -mcoff") +#line 883 "config/i386/sco5.h" +_("-shared not valid with -mcoff") +#line 884 "config/i386/sco5.h" +_("-symbolic not valid with -mcoff") +#line 885 "config/i386/sco5.h" +_("-fpic not valid with -mcoff") +#line 886 "config/i386/sco5.h" +_("-fPIC not valid with -mcoff") +#line 305 "config/i860/fx2800.h" +_("-p option not supported: use -pg instead") +#line 674 "config/mips/mips.h" +_("-pipe is not supported.") +#line 811 "config/mips/mips.h" +_("may not use both -mfp64 and -msingle-float") +#line 812 "config/mips/mips.h" +_("may not use both -mfp64 and -m4650") +#line 815 "config/mips/mips.h" +_("may not use both -EB and -EL") +#line 27 "config/mips/r3900.h" +_("-mhard-float not supported.") +#line 29 "config/mips/r3900.h" +_("-msingle-float and -msoft-float can not both be specified.") +#line 41 "config/mips/r3900.h" +_("-mhard-float not supported.") +#line 43 "config/mips/r3900.h" +_("-msingle-float and -msoft-float can not both be specified.") +#line 166 "config/nextstep.h" +_("-p profiling is no longer supported. Use -pg instead.") +#line 169 "config/nextstep.h" +_("-p profiling is no longer supported. Use -pg instead.") +#line 36 "config/vax/vax.h" +_("profiling not supported with -mg\n") +#line 37 "config/vax/vax.h" +_("profiling not supported with -mg\n") +#line 32 "cp/lang-specs.h" +_("GNU C++ does not support -C without using -E") +#line 45 "cp/lang-specs.h" +_("-pg and -fomit-frame-pointer are incompatible") +#line 56 "cp/lang-specs.h" +_("-pg and -fomit-frame-pointer are incompatible") +#line 603 "gcc.c" +_("GNU C does not support -C without using -E") +#line 617 "gcc.c" +_("-pg and -fomit-frame-pointer are incompatible") +#line 624 "gcc.c" +_("GNU C does not support -C without using -E") +#line 633 "gcc.c" +_("-E required when input is from standard input") +#line 637 "gcc.c" +_("GNU C does not support -C without using -E") +#line 652 "gcc.c" +_("-pg and -fomit-frame-pointer are incompatible") +#line 659 "gcc.c" +_("Compilation of header file requested") +#line 661 "gcc.c" +_("GNU C does not support -C without using -E") +#line 676 "gcc.c" +_("-pg and -fomit-frame-pointer are incompatible") +#line 689 "gcc.c" +_("GNU C does not support -C without using -E") |