OSDN Git Service

* pa64-hpux.h (LINK_SPEC): Move "+Accept TypeMismatch" switch to the
[pf3gnuchains/gcc-fork.git] / gcc / config / pa / pa-linux.h
index 86dfabc..5b3c704 100644 (file)
@@ -18,10 +18,6 @@ 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.  */
 
-/* Use DWARF2 debugging info and unwind.  */
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
-#define DWARF2_ASM_LINE_DEBUG_INFO 1
 
 /* A C expression whose value is RTL representing the location of the
    incoming return address at the beginning of any function, before the
@@ -95,10 +91,6 @@ Boston, MA 02111-1307, USA.  */
       %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
       %{static:-static}}"
 
-/* Sibcalls, stubs, and elf sections don't play well.  */
-#undef FUNCTION_OK_FOR_SIBCALL
-#define FUNCTION_OK_FOR_SIBCALL(x) 0
-
 /* glibc's profiling functions don't need gcc to allocate counters.  */
 #define NO_PROFILE_COUNTERS 1
 
@@ -139,18 +131,6 @@ Boston, MA 02111-1307, USA.  */
     }                                                          \
    while (0)
 
-/* Output a definition */
-#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \
-  do                                                           \
-    {                                                          \
-      fprintf ((FILE), "\t%s\t", SET_ASM_OP);                  \
-      assemble_name (FILE, LABEL1);                            \
-      fprintf (FILE, ",");                                     \
-      assemble_name (FILE, LABEL2);                            \
-      fprintf (FILE, "\n");                                    \
-    }                                                          \
-  while (0)
-
 /* We want local labels to start with period if made with asm_fprintf.  */
 #undef LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX "."
@@ -200,6 +180,19 @@ Boston, MA 02111-1307, USA.  */
     }                                                          \
   while (0)
 
+/* As well as globalizing the label, we need to encode the label
+   to ensure a plabel is generated in an indirect call.  */
+
+#undef ASM_OUTPUT_EXTERNAL_LIBCALL
+#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN)                 \
+  do                                                           \
+    {                                                          \
+      if (!FUNCTION_NAME_P (XSTR (FUN, 0)))                    \
+       hppa_encode_label (FUN);                                \
+      (*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0));        \
+    }                                                          \
+  while (0)
+
 /* Linux always uses gas.  */
 #undef TARGET_GAS
 #define TARGET_GAS 1