obsolete xc16x

Alan Modra amodra@gmail.com
Wed Jul 1 00:43:42 GMT 2020


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.

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/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)

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list