diff options
-rw-r--r-- | gas/ChangeLog | 9 | ||||
-rw-r--r-- | gas/as.c | 4 | ||||
-rw-r--r-- | gas/config/tc-ia64.c | 7 | ||||
-rw-r--r-- | gas/config/tc-ia64.h | 2 | ||||
-rw-r--r-- | gas/doc/internals.texi | 5 |
5 files changed, 26 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index b2caa0b..261ce4d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2001-11-28 Andreas Schwab <schwab@suse.de> + + * as.c (parse_args): Call md_after_parse_args if defined. + * config/tc-ia64.h (md_after_parse_args): Define. + * config/tc-ia64.c (ia64_after_parse_args): Reject --gstabs. + * doc/internals.texi (CPU backend): Document md_after_parse_args. + 2001-11-23 Jakub Jelinek <jakub@redhat.com> * config/tc-alpha.c (tc_gen_reloc): Remove SEC_MERGE test. @@ -1772,7 +1779,7 @@ Wed Aug 29 12:05:13 2001 J"orn Rennecke <amylaar@redhat.com> TC_FINALIZE_SYMS_BEFORE_SIZE_SEG just before size_segs is called. - * doc/internals.texi; Document + * doc/internals.texi: Document TC_FINALIZE_SYMS_BEFORE_SIZE_SEG. 2001-07-02 Alan Modra <amodra@bigpond.net.au> @@ -762,6 +762,10 @@ the GNU General Public License. This program has absolutely no warranty.\n")); *pargc = new_argc; *pargv = new_argv; + +#ifdef md_after_parse_args + md_after_parse_args (); +#endif } static long start_time; diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index d2523cf..8c98cc2 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -6310,6 +6310,13 @@ IA-64 options:\n\ stream); } +void +ia64_after_parse_args () +{ + if (debug_type == DEBUG_STABS) + as_fatal (_("--gstabs is not supported for ia64")); +} + /* Return true if TYPE fits in TEMPL at SLOT. */ static int diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h index 7921abf..320798b 100644 --- a/gas/config/tc-ia64.h +++ b/gas/config/tc-ia64.h @@ -86,6 +86,7 @@ extern int ia64_elf_section_type PARAMS ((const char *, size_t len)); extern long ia64_pcrel_from_section PARAMS ((struct fix *fix, segT sec)); extern void ia64_md_do_align PARAMS ((int, const char *, int, int)); extern void ia64_handle_align PARAMS ((fragS *f)); +extern void ia64_after_parse_args PARAMS ((void)); #define md_end() ia64_end_of_source () #define md_start_line_hook() ia64_start_line () @@ -114,6 +115,7 @@ extern void ia64_handle_align PARAMS ((fragS *f)); #define md_do_align(n,f,l,m,j) ia64_md_do_align (n,f,l,m) #define HANDLE_ALIGN(f) ia64_handle_align (f) #define md_elf_section_type(str,len) ia64_elf_section_type (str, len) +#define md_after_parse_args() ia64_after_parse_args () #define MAX_MEM_FOR_RS_ALIGN_CODE (15 + 16) diff --git a/gas/doc/internals.texi b/gas/doc/internals.texi index 4abf0d9..e7d3009 100644 --- a/gas/doc/internals.texi +++ b/gas/doc/internals.texi @@ -843,11 +843,13 @@ zero if the target is little endian. @itemx md_longopts_size @itemx md_parse_option @itemx md_show_usage +@itemx md_after_parse_args @cindex md_shortopts @cindex md_longopts @cindex md_longopts_size @cindex md_parse_option @cindex md_show_usage +@cindex md_after_parse_args GAS uses these variables and functions during option processing. @code{md_shortopts} is a @code{const char *} which GAS adds to the machine independent string passed to @code{getopt}. @code{md_longopts} is a @@ -859,6 +861,9 @@ GAS will call @code{md_parse_option} whenever @code{getopt} returns an unrecognized code, presumably indicating a special code value which appears in @code{md_longopts}. GAS will call @code{md_show_usage} when a usage message is printed; it should print a description of the machine specific options. +@code{md_after_pase_args}, if defined, is called after all options are +processed, to let the backend override settings done by the generic option +parsing. @item md_begin @cindex md_begin |