obsolete xc16x
authorAlan Modra <amodra@gmail.com>
Tue, 30 Jun 2020 23:45:34 +0000 (09:15 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 1 Jul 2020 00:36:43 +0000 (10:06 +0930)
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
bfd/config.bfd
gas/ChangeLog
gas/config/tc-xc16x.c

index fa4799a6bcc4af17e264acfcc3ae1e3da4472747..318a8ad0fbc7c4ea1db224fbd37695b6f7f4c49e 100644 (file)
@@ -1,3 +1,7 @@
+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.
index 2fa2acb8a32231f5633d61ea8c0a88f68fc6bed9..14523caf0c5f17b3f0f33706d502c247ed42dec9 100644 (file)
@@ -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
index b9840ab54e10678bf720b462aa1eb3114685c993..88c5451ba073013782b9c5d9917244d040b9f639 100644 (file)
@@ -1,3 +1,7 @@
+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
index de2befc43f4ec9c0d4ffad68c45abcc8a5d67458..3d78dc57c26623f2e0c8b7c16ed16f7978ebe7fc 100644 (file)
@@ -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)