* config/tc-hppa.h (DIFF_EXPR_OK): Define for SOM target. Revise

comment regarding use of difference expressions.
	(TC_FORCE_RELOCATION_SUB_LOCAL): Define to 1.
This commit is contained in:
Dave Anglin
2008-09-08 00:54:26 +00:00
parent 449373d9d0
commit ded49c3ea3
2 changed files with 17 additions and 4 deletions

View File

@ -1,5 +1,9 @@
2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config/tc-hppa.h (DIFF_EXPR_OK): Define for SOM target. Revise
comment regarding use of difference expressions.
(TC_FORCE_RELOCATION_SUB_LOCAL): Define to 1.
* dw2gencfi.c (CFI_DIFF_EXPR_OK): Define if not defined. * dw2gencfi.c (CFI_DIFF_EXPR_OK): Define if not defined.
(dot_cfi_personality): Use CFI_DIFF_EXPR_OK instead of DIFF_EXPR_OK. (dot_cfi_personality): Use CFI_DIFF_EXPR_OK instead of DIFF_EXPR_OK.
(dot_cfi_lsda, output_cie, output_fde): Likewise. (dot_cfi_lsda, output_cie, output_fde): Likewise.

View File

@ -146,14 +146,23 @@ int hppa_fix_adjustable (struct fix *);
two symbols. This includes the difference of two symbols when two symbols. This includes the difference of two symbols when
one of them is undefined (this comes up in PIC code generation). one of them is undefined (this comes up in PIC code generation).
We don't define DIFF_EXPR_OK because it does the wrong thing if We allow the difference of two symbols when the subtract symbol is
the add symbol is undefined and the sub symbol is a symbol in local to the relocation. This is implemented using R_HPPA_COMPLEX.
the same section as the relocation. We also need some way to
specialize some code in adjust_reloc_syms. */ This has some limitations. Difference expressions only work between
symbols in the same segment/quadrant of a module since the HP dynamic
loader relocates the text and data segments independently. Thus, a
difference expression can't be used between text and data symbols,
or between symbols in different executable modules. */
#define DIFF_EXPR_OK 1
#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX) 1
#define UNDEFINED_DIFFERENCE_OK #define UNDEFINED_DIFFERENCE_OK
#endif #endif
#ifdef OBJ_ELF #ifdef OBJ_ELF
/* Difference expressions for the 64-bit HP-UX target have the same
limitations as those for the 32-bit SOM target. */
#define DIFF_EXPR_OK 1 #define DIFF_EXPR_OK 1
/* Handle .type psuedo. Given a type string of `millicode', set the /* Handle .type psuedo. Given a type string of `millicode', set the