* as.h (LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): If not already defined, define
authorKen Raeburn <raeburn@cygnus>
Thu, 4 May 1995 01:56:40 +0000 (01:56 +0000)
committerKen Raeburn <raeburn@cygnus>
Thu, 4 May 1995 01:56:40 +0000 (01:56 +0000)
them to zero.
* config/tc-*.h, config/te-*.h: If defining them, define them to be 1 instead
of empty.
* expr.c (integer_constant, operand): Test them at run time instead of compile
time.
* read.c (read_a_source_file): Ditto.
* symbols.c (colon): Ditto.
(dollar_*, define_dollar_label, fb_*): Define unconditionally.
* symbols.h (dollar_*, define_dollar_label, fb_*): Declare unconditionally.

gas/ChangeLog
gas/as.h
gas/config/tc-mips.h
gas/config/tc-ppc.h
gas/config/te-generic.h
gas/config/te-hp300.h
gas/config/te-ppcnw.h
gas/read.c

index 333f12577c4887c9a3567a9844158f72555f52a5..e7a8b0c93b3a0b67e0a9e08fa142ba648a4c15bd 100644 (file)
@@ -1,3 +1,17 @@
+Wed May  3 21:38:20 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+       * as.h (LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): If not already
+       defined, define them to zero.
+       * config/tc-*.h, config/te-*.h: If defining them, define them to
+       be 1 instead of empty.
+       * expr.c (integer_constant, operand): Test them at run time
+       instead of compile time.
+       * read.c (read_a_source_file): Ditto.
+       * symbols.c (colon): Ditto.
+       (dollar_*, define_dollar_label, fb_*): Define unconditionally.
+       * symbols.h (dollar_*, define_dollar_label, fb_*): Declare
+       unconditionally.
+
 Wed May  3 13:08:53 1995  Jeff Law  (law@snake.cs.utah.edu)
 
        * config/tc-hppa.c (md_apply_fix): Do nothing for an out of range
index cc8761817a884f2f77eebff00332a5093f7b3fbf..7477388a723a3df202b87b89008da22d9b7a4655 100644 (file)
--- a/gas/as.h
+++ b/gas/as.h
@@ -105,6 +105,7 @@ extern char *strdup (/* const char * */);
 #define __PRETTY_FUNCTION__  ((char*)0)
 #endif
 #if 0
+
 /* Handle lossage with assert.h.  */
 #ifndef BROKEN_ASSERT
 #include <assert.h>
@@ -115,8 +116,13 @@ extern char *strdup (/* const char * */);
 #define assert(p) ((p), 0)
 #endif
 #endif /* BROKEN_ASSERT */
+
 #else
+
 #define assert(P) ((P) ? 0 : (as_assert (__FILE__, __LINE__, __PRETTY_FUNCTION__), 0))
+#undef abort
+#define abort()                as_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
+
 #endif
 
 
@@ -151,6 +157,11 @@ extern int errno;
 #define unlink remove
 #endif
 
+/* Hack to make "gcc -Wall" not complain about obstack macros.  */
+#if !defined (memcpy) && !defined (bcopy)
+#define bcopy(src,dest,size)   memcpy(dest,src,size)
+#endif
+
 #ifdef BFD_ASSEMBLER
 /* This one doesn't get declared, but we're using it anyways.  This
    should be fixed -- either it's part of the external interface or
@@ -309,7 +320,7 @@ COMMON segT now_seg;
 #ifdef BFD_ASSEMBLER
 #define segment_name(SEG)      bfd_get_section_name (stdoutput, SEG)
 #else
-extern char *const seg_name[];
+extern char const *const seg_name[];
 #define segment_name(SEG)      seg_name[(int) (SEG)]
 #endif
 
@@ -498,7 +509,7 @@ extern int listing;
 struct _pseudo_type
   {
     /* assembler mnemonic, lower case, no '.' */
-    char *poc_name;
+    const char *poc_name;
     /* Do the work */
     void (*poc_handler) PARAMS ((int));
     /* Value to pass to handler */
@@ -546,6 +557,7 @@ PRINTF_LIKE (as_warn);
 PRINTF_WHERE_LIKE (as_bad_where);
 PRINTF_WHERE_LIKE (as_warn_where);
 void as_assert PARAMS ((const char *, int, const char *));
+void as_abort PARAMS ((const char *, int, const char *));
 
 void fprint_value PARAMS ((FILE *file, addressT value));
 void sprint_value PARAMS ((char *buf, addressT value));
@@ -593,6 +605,7 @@ segT subseg_get PARAMS ((const char *, int));
 struct expressionS;
 struct fix;
 struct symbol;
+struct relax_type;
 
 #ifdef BFD_ASSEMBLER
 /* literal.c */
@@ -616,21 +629,13 @@ valueT add_to_literal_pool PARAMS ((struct symbol *, valueT, segT, int));
 
 #include "listing.h"
 
-#ifdef BFD_ASSEMBLER
-/* Someday perhaps this will be selectable at run-time.  */
-#if defined (OBJ_AOUT) || defined (OBJ_BOUT)
-#define OUTPUT_FLAVOR bfd_target_aout_flavour
-#endif
-#ifdef OBJ_COFF
-#define OUTPUT_FLAVOR bfd_target_coff_flavour
+#ifndef LOCAL_LABELS_DOLLAR
+#define LOCAL_LABELS_DOLLAR 0
 #endif
-#ifdef OBJ_ECOFF
-#define OUTPUT_FLAVOR bfd_target_ecoff_flavour
-#endif
-#ifdef OBJ_ELF
-#define OUTPUT_FLAVOR bfd_target_elf_flavour
+
+#ifndef LOCAL_LABELS_FB
+#define LOCAL_LABELS_FB 0
 #endif
-#endif /* BFD_ASSEMBLER */
 
 #endif /* GAS */
 
index ba6d1b4750f4264442245274ba6c70e4c490e04c..f0f9692bad3455f10c3e819184f1e4c1ec813202 100644 (file)
@@ -31,7 +31,7 @@
 #define REPEAT_CONS_EXPRESSIONS
 #define RELOC_EXPANSION_POSSIBLE
 #define MAX_RELOC_EXPANSION 3
-#define LOCAL_LABELS_FB
+#define LOCAL_LABELS_FB 1
 
 /* The MIPS assembler appears to keep all symbols.  */
 #define LOCAL_LABEL(name) 0
index 82a184107bb37ba9193e2f6bf3b7b329c263d210..03588d9603467b89878ca4b7c5ea2e26bf5669e8 100644 (file)
@@ -37,17 +37,19 @@ extern enum bfd_architecture ppc_arch PARAMS ((void));
 #endif
 
 /* Permit temporary numeric labels.  */
-#define LOCAL_LABELS_FB
+#define LOCAL_LABELS_FB 1
 
 /* $ is used to refer to the current location.  */
 #define DOLLAR_DOT
 
-/* Strings do not use backslash escapes.  */
+/* Strings do not use backslash escapes under COFF.  */
+#ifdef OBJ_COFF
 #define NO_STRING_ESCAPES
+#endif
 
-#ifdef OBJ_COFF
 /* When using COFF, we determine whether or not to output a symbol
    based on sy_tc.output, not on the name.  */
+#ifdef OBJ_COFF
 #define LOCAL_LABEL(name) 0
 #endif
 #ifdef OBJ_ELF
@@ -55,6 +57,7 @@ extern enum bfd_architecture ppc_arch PARAMS ((void));
 #define LOCAL_LABEL(name) (name[0] == '.' \
                           && (name[1] == 'L' || name[1] == '.'))
 #define FAKE_LABEL_NAME ".L0\001"
+#define DIFF_EXPR_OK           /* .-foo gets turned into PC relative relocs */
 #endif
 
 /* Set the endianness we are using.  Default to big endian.  */
@@ -154,4 +157,9 @@ extern void ppc_frob_file PARAMS ((void));
 #ifndef GLOBAL_OFFSET_TABLE_NAME
 #define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
 #endif
-#endif
+#endif /* OBJ_ELF */
+
+/* call md_apply_fix3 with segment instead of md_apply_fix */
+#define MD_APPLY_FIX3
+
+#define md_operand(x)
index 8542dd02b84ba4b162fc0ee040efd6b878ee733d..880ac50e472e9a1426a62b7bdacc718100d01e5f 100644 (file)
@@ -9,8 +9,8 @@
 /* Added these, because if we don't know what we're targetting we may
    need an assembler version of libgcc, and that will use local
    labels.  */
-#define LOCAL_LABELS_DOLLAR
-#define LOCAL_LABELS_FB
+#define LOCAL_LABELS_DOLLAR 1
+#define LOCAL_LABELS_FB 1
 
 /* these define interfaces */
 #include "obj-format.h"
index afc8c5e773b7ea53a8bc0eafd0b6f6c9f04c9fb6..7b053f7aef0c15b7abdd2e55f83798546668a0da 100644 (file)
@@ -17,8 +17,8 @@
    along with GAS; see the file COPYING.  If not, write to
    the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-#define LOCAL_LABELS_DOLLAR
-#define LOCAL_LABELS_FB
+#define LOCAL_LABELS_DOLLAR 1
+#define LOCAL_LABELS_FB 1
 
 #include "obj-format.h"
 
index aa26b5e8b45f1385df418a79f94836edc88fdeae..189dba17e82b8eeb548e74278dc522a72155daba 100644 (file)
@@ -20,8 +20,8 @@
 /* Added these, because if we don't know what we're targetting we may
    need an assembler version of libgcc, and that will use local
    labels.  */
-#define LOCAL_LABELS_DOLLAR
-#define LOCAL_LABELS_FB
+#define LOCAL_LABELS_DOLLAR 1
+#define LOCAL_LABELS_FB 1
 
 /* these define interfaces */
 #include "obj-format.h"
index c06f35418d3a1c7334c912c8cd4f91f4b3936f70..04d6bd2986a36b5a91e6cf6ef34c7324a37575b3 100644 (file)
@@ -573,8 +573,8 @@ read_a_source_file (name)
          if (is_end_of_line[(unsigned char) c])
            continue;
 
-#if defined(LOCAL_LABELS_DOLLAR) || defined(LOCAL_LABELS_FB)
-         if (isdigit (c))
+         if ((LOCAL_LABELS_DOLLAR || LOCAL_LABELS_FB)
+             && isdigit (c))
            {
              /* local label  ("4:") */
              char *backup = input_line_pointer;
@@ -589,8 +589,8 @@ read_a_source_file (name)
                  ++input_line_pointer;
                }               /* read the whole number */
 
-#ifdef LOCAL_LABELS_DOLLAR
-             if (*input_line_pointer == '$'
+             if (LOCAL_LABELS_DOLLAR
+                 && *input_line_pointer == '$'
                  && *(input_line_pointer + 1) == ':')
                {
                  input_line_pointer += 2;
@@ -604,20 +604,17 @@ read_a_source_file (name)
                  colon (dollar_label_name (temp, 0));
                  continue;
                }
-#endif /* LOCAL_LABELS_DOLLAR */
 
-#ifdef LOCAL_LABELS_FB
-             if (*input_line_pointer++ == ':')
+             if (LOCAL_LABELS_FB
+                 && *input_line_pointer++ == ':')
                {
                  fb_label_instance_inc (temp);
                  colon (fb_label_name (temp, 0));
                  continue;
                }
-#endif /* LOCAL_LABELS_FB */
 
              input_line_pointer = backup;
            }                   /* local label  ("4:") */
-#endif /* LOCAL_LABELS_DOLLAR or LOCAL_LABELS_FB */
 
          if (c && strchr (line_comment_chars, c))
            {                   /* Its a comment.  Better say APP or NO_APP */