How does the Coldfire m68k subtarget and sure that displacements in PIC
code are within the addressable range?
We have a source file in glibc that fails at assembly because it
contains a branch that is out of range with -fpic. The GAS error is:
…/iso-2022-jp.s: Fatal error: Tried to convert PC relative branch to absolute
jump
(Not sure if this is actually a branch, the diagnostic isn't really
helpful.)
The -fPIC option does not help, and -fpic -mpcrel ICEs at the end of
m68k.cc:sched_attr_op_type. The op variable at this point is:
(mem/u:HI (const:SI (plus:SI (symbol_ref:SI ("__jisx0212_to_ucs_idx") [flags
0x40] <var_decl 0x7ffff761df30 __jisx0212_to_ucs_idx>)
(const_int 2 [0x2]))) [2 MEM[(const struct jisx0212_idx
*)&__jisx0212_to_ucs_idx].end
The iso-2022-jp.c source file has some large data tables, so it's
probably not surprising that -fpic doesn't work.
Thanks,
Florian