* som.c (struct som_misc_symbol_info): Add is_comdat, is_common and
[deliverable/binutils-gdb.git] / gas / config / tc-hppa.h
index bb40d59852bfeb65fec6242d6b9f90548b574c91..64d0644233171475b1a6bd3509ec274ab9c55a7c 100644 (file)
@@ -1,6 +1,6 @@
 /* tc-hppa.h -- Header file for the PA
-   Copyright (C) 1989, 93, 94, 95, 96, 97, 98, 99, 2000
-   Free Software Foundation, Inc.
+   Copyright 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002,
+   2003 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
 #ifdef OBJ_ELF
 #if TARGET_ARCH_SIZE == 64
 #include "bfd/elf64-hppa.h"
-#define TARGET_FORMAT "elf64-hppa"
+#if defined (TE_LINUX) || defined (TE_NetBSD)
+#define TARGET_FORMAT "elf64-hppa-linux"
 #else
+#define TARGET_FORMAT "elf64-hppa"
+#endif
+#else /* TARGET_ARCH_SIZE == 32 */
 #include "bfd/elf32-hppa.h"
+#if defined (TE_LINUX) || defined (TE_NetBSD)
+#define TARGET_FORMAT "elf32-hppa-linux"
+#else
 #define TARGET_FORMAT "elf32-hppa"
 #endif
 #endif
+#endif
 
 #ifdef OBJ_SOM
 #include "bfd/som.h"
 #define TARGET_FORMAT "som"
 #endif
 
-#ifdef TE_LINUX
+#if defined(TE_LINUX) || defined(TE_NetBSD)
 /* Define to compile in an extra assembler option, -c, which enables a
    warning (once per file) when a comment is encountered.
    The hppa comment char is a `;' which tends to occur in random C asm
@@ -91,6 +99,9 @@ extern void pa_check_eof PARAMS ((void));
 
 #define tc_frob_label(sym) pa_define_label (sym)
 
+extern const char      hppa_symbol_chars[];
+#define tc_symbol_chars        hppa_symbol_chars
+
 /* The PA does not need support for either of these.  */
 #define tc_crawl_symbol_chain(headers) {;}
 #define tc_headers_hook(headers) {;}
@@ -118,10 +129,15 @@ extern void pa_check_eof PARAMS ((void));
 int hppa_fix_adjustable PARAMS((struct fix *));
 #define tc_fix_adjustable hppa_fix_adjustable
 
+#define EXTERN_FORCE_RELOC 1
+
 /* Because of the strange PA calling conventions, it is sometimes
    necessary to emit a relocation for a call even though it would
    normally appear safe to handle it completely within GAS.  */
-#define TC_FORCE_RELOCATION(FIXP) hppa_force_relocation (FIXP)
+#define TC_FORCE_RELOCATION(FIX) hppa_force_relocation (FIX)
+
+/* Values passed to md_apply_fix3 don't include the symbol value.  */
+#define MD_APPLY_SYM_VALUE(FIX) 0
 
 #ifdef OBJ_SOM
 /* If a symbol is imported, but never used, then the symbol should
@@ -145,9 +161,7 @@ int hppa_fix_adjustable PARAMS((struct fix *));
 #endif
 
 #ifdef OBJ_ELF
-/* It's OK to subtract two symbols in the same section without
-   emitting a relocation.  */
-#define TC_FORCE_RELOCATION_SECTION(FIXP, SEC) 0
+#define DIFF_EXPR_OK 1
 
 /* Handle .type psuedo.  Given a type string of `millicode', set the
    internal elf symbol type to STT_PARISC_MILLI, and return
@@ -162,7 +176,8 @@ int hppa_fix_adjustable PARAMS((struct fix *));
 
 #define tc_frob_symbol(sym,punt) \
   { \
-    if ((S_GET_SEGMENT (sym) == &bfd_und_section && ! symbol_used_p (sym)) \
+    if ((S_GET_SEGMENT (sym) == &bfd_und_section && ! symbol_used_p (sym) && \
+        ELF_ST_VISIBILITY (S_GET_OTHER (sym)) == STV_DEFAULT) \
        || (S_GET_SEGMENT (sym) == &bfd_abs_section \
            && ! S_IS_EXTERNAL (sym)) \
        || strcmp (S_GET_NAME (sym), "$global$") == 0 \
@@ -186,6 +201,6 @@ int hppa_force_reg_syms_absolute
   PARAMS ((expressionS *, operatorT, expressionS *));
 
 #define TC_FIX_TYPE PTR
-#define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL)
+#define TC_INIT_FIX_DATA(FIX) ((FIX)->tc_fix_data = NULL)
 
 #endif /* _TC_HPPA_H */
This page took 0.025677 seconds and 4 git commands to generate.