re PR target/16952 (GCC for powerpc cross target with -mrelocatable reports error)

PR target/16952
	* config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
	#ifdef RELOCATABLE_NEEDS_FIXUP with if.
	* config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
	of target_flags_explicit.
	* config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
	case.  Define as 0 for non-biarch.

From-SVN: r91605
This commit is contained in:
Alan Modra 2004-12-02 02:21:28 +00:00 committed by Alan Modra
parent 1270d6334a
commit 84dcde01bd
4 changed files with 26 additions and 9 deletions

View File

@ -1,3 +1,13 @@
2004-12-02 Alan Modra <amodra@bigpond.net.au>
PR target/16952
* config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
#ifdef RELOCATABLE_NEEDS_FIXUP with if.
* config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
of target_flags_explicit.
* config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
case. Define as 0 for non-biarch.
2004-12-01 Zack Weinberg <zack@codesourcery.com>
* config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):

View File

@ -99,8 +99,11 @@
#undef TARGET_64BIT
#define TARGET_64BIT 0
/* We don't need to generate entries in .fixup. */
/* 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)
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack

View 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) \

View File

@ -11124,6 +11124,10 @@ print_operand_address (FILE *file, rtx x)
abort ();
}
#ifndef RELOCATABLE_NEEDS_FIXUP
#define RELOCATABLE_NEEDS_FIXUP 0
#endif
/* Target hook for assembling integer objects. The PowerPC version has
to handle fixup entries for relocatable code if RELOCATABLE_NEEDS_FIXUP
is defined. It also needs to handle DI-mode objects on 64-bit
@ -11132,9 +11136,8 @@ print_operand_address (FILE *file, rtx x)
static bool
rs6000_assemble_integer (rtx x, unsigned int size, int aligned_p)
{
#ifdef RELOCATABLE_NEEDS_FIXUP
/* Special handling for SI values. */
if (size == 4 && aligned_p)
if (RELOCATABLE_NEEDS_FIXUP && size == 4 && aligned_p)
{
extern int in_toc_section (void);
static int recurse = 0;
@ -11182,7 +11185,6 @@ rs6000_assemble_integer (rtx x, unsigned int size, int aligned_p)
return true;
}
}
#endif /* RELOCATABLE_NEEDS_FIXUP */
return default_assemble_integer (x, size, aligned_p);
}