re PR target/16952 (GCC for powerpc cross target with -mrelocatable reports error)
[gcc.git] / gcc / config / rs6000 / linux64.h
index 8168cd3413b1b963fff54f011d7ee3f6c469a2e7..2cfabb636d3a33c01716b7d90915a5f14190d362 100644 (file)
@@ -62,8 +62,11 @@ extern int dot_symbols;
 #undef  PROCESSOR_DEFAULT64
 #define PROCESSOR_DEFAULT64 PROCESSOR_POWER4
 
-#undef TARGET_RELOCATABLE
-#define        TARGET_RELOCATABLE (!TARGET_64BIT && (target_flags & MASK_RELOCATABLE))
+/* We don't need to generate entries in .fixup, except when
+   -mrelocatable or -mrelocatable-lib is given.  */
+#undef RELOCATABLE_NEEDS_FIXUP
+#define RELOCATABLE_NEEDS_FIXUP \
+  (target_flags & target_flags_explicit & MASK_RELOCATABLE)
 
 #undef RS6000_ABI_NAME
 #define        RS6000_ABI_NAME "linux"
@@ -198,6 +201,8 @@ extern int dot_symbols;
 #define        TARGET_EABI             0
 #undef TARGET_PROTOTYPE
 #define        TARGET_PROTOTYPE        0
+#undef RELOCATABLE_NEEDS_FIXUP
+#define RELOCATABLE_NEEDS_FIXUP 0
 
 #endif
 
@@ -222,9 +227,6 @@ extern int dot_symbols;
 #define PROFILE_HOOK(LABEL) \
   do { if (TARGET_64BIT) output_profile_hook (LABEL); } while (0)
 
-/* We don't need to generate entries in .fixup.  */
-#undef RELOCATABLE_NEEDS_FIXUP
-
 /* PowerPC64 Linux word-aligns FP doubles when -malign-power is given.  */
 #undef  ADJUST_FIELD_ALIGN
 #define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \