The xc16x md_apply_fix code is just so broken that in my opinion the
target should never have been accepted, and from a quick look at
commit logs for the target it appears that no one has ever contributed
fixes for anything. This target has just been a 14 year burden on
global binutils and cgen maintainers. That's not how free software is
supposed to work.
bfd/
* config.bfd: Obsolete xc16x.
gas/
* config/tc-xc16x.c (md_apply_fix): Add FIXME.
+2020-07-01 Alan Modra <amodra@gmail.com>
+
+ * config.bfd: Obsolete xc16x.
+
2020-06-30 H.J. Lu <hongjiu.lu@intel.com>
* archures.c (bfd_mach_i386_nacl): Removed.
exit 1
;;
powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin* | \
+ xc16x-*-* | \
null)
if test "x$enable_obsolete" != xyes; then
echo "*** Configuration $targ is obsolete." >&2
+2020-07-01 Alan Modra <amodra@gmail.com>
+
+ * config/tc-xc16x.c (md_apply_fix): Add FIXME.
+
2020-07-01 Alan Modra <amodra@gmail.com>
* testsuite/gas/all/eqv-dot.d: xfail targets that set linkrelax
void
md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
{
+ /* FIXME: This absolute nonsense apparently is to make relative
+ jumps "work". Of course, it breaks any other type of fixup. */
if (!strstr (seg->name,".debug"))
{
if (*valP < 128)