- We don't define DIFF_EXPR_OK because it does the wrong thing if
- the add symbol is undefined and the sub symbol is a symbol in
- the same section as the relocation. We also need some way to
- specialize some code in adjust_reloc_syms. */
+ We allow the difference of two symbols when the subtract symbol is
+ local to the relocation. This is implemented using R_HPPA_COMPLEX.
+
+ 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, SEG) 1