From 3443489c65e10d54c001f36602c1031134c2548c Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 1 Jul 2020 09:15:34 +0930 Subject: [PATCH] obsolete xc16x 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. --- bfd/ChangeLog | 4 ++++ bfd/config.bfd | 1 + gas/ChangeLog | 4 ++++ gas/config/tc-xc16x.c | 2 ++ 4 files changed, 11 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fa4799a6bc..318a8ad0fb 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2020-07-01 Alan Modra + + * config.bfd: Obsolete xc16x. + 2020-06-30 H.J. Lu * archures.c (bfd_mach_i386_nacl): Removed. diff --git a/bfd/config.bfd b/bfd/config.bfd index 2fa2acb8a3..14523caf0c 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -54,6 +54,7 @@ case $targ in exit 1 ;; powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin* | \ + xc16x-*-* | \ null) if test "x$enable_obsolete" != xyes; then echo "*** Configuration $targ is obsolete." >&2 diff --git a/gas/ChangeLog b/gas/ChangeLog index b9840ab54e..88c5451ba0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2020-07-01 Alan Modra + + * config/tc-xc16x.c (md_apply_fix): Add FIXME. + 2020-07-01 Alan Modra * testsuite/gas/all/eqv-dot.d: xfail targets that set linkrelax diff --git a/gas/config/tc-xc16x.c b/gas/config/tc-xc16x.c index de2befc43f..3d78dc57c2 100644 --- a/gas/config/tc-xc16x.c +++ b/gas/config/tc-xc16x.c @@ -323,6 +323,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) 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)