diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 65e0109891..24d454820b 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2020, 2021 Simon South <simon@simonsouth.net>
+;;; Copyright © 2020, 2021, 2022 Simon South <simon@simonsouth.net>
 ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
 ;;;
@@ -1527,7 +1527,7 @@ (define-public ucsim
 (define-public sdcc
   (package
     (name "sdcc")
-    (version "4.1.0")
+    (version "4.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1535,7 +1535,7 @@ (define-public sdcc
                     "/" version "/sdcc-src-" version ".tar.bz2"))
               (sha256
                (base32
-                "0gskzli17ghnn5qllvn4d56qf9bvvclqjh63nnj63p52smvggvc1"))
+                "0ly0m3q9vzjb9kcfjh79s77wpl4w7xhybzy4h9x0bmmw4cfsx6xl"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -1573,9 +1573,9 @@ (define-public sdcc
     (home-page "http://sdcc.sourceforge.net")
     (synopsis "C compiler suite for 8-bit microcontrollers")
     (description "SDCC is a retargetable, optimizing Standard C compiler suite
-that targets 8-bit microcontrollers in the Intel MCS-51 (8051); Motorola
-68HC08; Padauk PDK13, PDK14 and PDK15; STMicroelectronics STM8; and Zilog Z80
-families, plus many of their variants.")
+that targets 8-bit microcontrollers in the Intel MCS-51 (8051); MOS Technology
+6502; Motorola 68HC08; Padauk PDK13, PDK14 and PDK15; STMicroelectronics STM8;
+and Zilog Z80 families, plus many of their variants.")
     (license (list license:gpl2+
                    license:gpl3+
                    license:lgpl2.0+
diff --git a/gnu/packages/patches/sdcc-disable-non-free-code.patch b/gnu/packages/patches/sdcc-disable-non-free-code.patch
index 1c823c3c18..39046ae280 100644
--- a/gnu/packages/patches/sdcc-disable-non-free-code.patch
+++ b/gnu/packages/patches/sdcc-disable-non-free-code.patch
@@ -15,10 +15,10 @@ remove instructions that encourage the use of SDCC with non-free
 software.
 
 diff --git a/Makefile.common.in b/Makefile.common.in
-index 926b761..0362fd5 100644
+index 1a11f67..69d5efe 100644
 --- a/Makefile.common.in
 +++ b/Makefile.common.in
-@@ -71,7 +71,6 @@ OPT_DISABLE_PACKIHX     = @OPT_DISABLE_PACKIHX@
+@@ -73,7 +73,6 @@ OPT_DISABLE_PACKIHX     = @OPT_DISABLE_PACKIHX@
  OPT_DISABLE_SDBINUTILS  = @OPT_DISABLE_SDBINUTILS@
  OPT_DISABLE_SDCPP       = @OPT_DISABLE_SDCPP@
  OPT_DISABLE_UCSIM       = @OPT_DISABLE_UCSIM@
@@ -27,10 +27,10 @@ index 926b761..0362fd5 100644
  SLIB                    = $(top_builddir)/support/util
  
 diff --git a/Makefile.in b/Makefile.in
-index 5485074..3071472 100644
+index d899b62..554a1c3 100644
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -100,9 +100,6 @@ endif
+@@ -105,9 +105,6 @@ endif
  ifeq ($(OPT_DISABLE_DEVICE_LIB), 0)
  TARGETS        += sdcc-device-lib
  PKGS           += device/lib
@@ -40,7 +40,7 @@ index 5485074..3071472 100644
  endif
  
  ifeq ($(OPT_DISABLE_PACKIHX), 0)
-@@ -123,9 +120,6 @@ endif
+@@ -128,9 +125,6 @@ endif
  TARGETS        += sdcc-libs sdcc-cc sdcc-device-inc sdcc-as sdcc-ld sdcc-scripts
  
  PKGS           += $(SDCC_LIBS) src device/include
@@ -50,7 +50,7 @@ index 5485074..3071472 100644
  PKGS           += $(SDCC_AS) sdas/linksrc $(SDCC_SCRIPTS)
  
  PORTS           = $(shell cat ports.build)
-@@ -171,21 +165,12 @@ sdcc-sdbinutils:
+@@ -176,21 +170,12 @@ sdcc-sdbinutils:
  
  sdcc-device-inc:
  	$(MAKE) -C device/include
@@ -73,10 +73,10 @@ index 5485074..3071472 100644
  
  # doc depends on latex and latex2html
 diff --git a/configure b/configure
-index 4c2226b..b8a9251 100755
+index 232d98e..3eeb17c 100755
 --- a/configure
 +++ b/configure
-@@ -632,7 +632,6 @@ LATEX
+@@ -659,7 +659,6 @@ LATEX
  LATEX2HTML
  LYX
  OPT_ENABLE_DOC
@@ -84,7 +84,7 @@ index 4c2226b..b8a9251 100755
  OPT_DISABLE_SDBINUTILS
  OPT_DISABLE_SDCDB
  OPT_DISABLE_SDCPP
-@@ -661,10 +660,7 @@ OPT_DISABLE_R2K
+@@ -690,10 +689,7 @@ OPT_DISABLE_R2K
  OPT_DISABLE_Z180
  OPT_DISABLE_Z80
  OPT_DISABLE_MCS51
@@ -95,7 +95,7 @@ index 4c2226b..b8a9251 100755
  include_dir_suffix
  inclib_dir_suffix
  LIB_TYPE
-@@ -785,7 +781,6 @@ enable_packihx
+@@ -821,7 +817,6 @@ enable_packihx
  enable_sdcpp
  enable_sdcdb
  enable_sdbinutils
@@ -103,7 +103,7 @@ index 4c2226b..b8a9251 100755
  enable_doc
  enable_libgc
  '
-@@ -806,10 +801,7 @@ sdccconf_h_dir_separator
+@@ -842,10 +837,7 @@ sdccconf_h_dir_separator
  LIB_TYPE
  inclib_dir_suffix
  include_dir_suffix
@@ -114,7 +114,7 @@ index 4c2226b..b8a9251 100755
  docdir'
  ac_subdirs_all='support/cpp
  support/packihx
-@@ -817,9 +809,7 @@ sim/ucsim
+@@ -853,9 +845,7 @@ sim/ucsim
  debugger/mcs51
  support/sdbinutils
  device/lib/pic14
@@ -125,7 +125,7 @@ index 4c2226b..b8a9251 100755
  
  # Initialize some variables set by options.
  ac_init_help=
-@@ -1473,7 +1463,6 @@ Optional Features:
+@@ -1509,7 +1499,6 @@ Optional Features:
    --disable-sdcpp         Disables building sdcpp
    --disable-sdcdb         Disables building sdcdb
    --disable-sdbinutils    Disables configuring and building of sdbinutils
@@ -133,7 +133,7 @@ index 4c2226b..b8a9251 100755
    --enable-doc            Enables building the documentation
    --enable-libgc          Use the Bohem memory allocator. Lower runtime
                            footprint.
-@@ -1502,16 +1491,8 @@ Some influential environment variables:
+@@ -1538,16 +1527,8 @@ Some influential environment variables:
                appended to datadir to define SDCC's include/lib directory
    include_dir_suffix
                appended to datadir to define SDCC's include directory
@@ -150,7 +150,7 @@ index 4c2226b..b8a9251 100755
    docdir      documentation installation directory
  
  Use these variables to override the choices made by `configure' or to help
-@@ -7156,19 +7137,6 @@ if test "${include_dir_suffix}" = ""; then
+@@ -7421,19 +7402,6 @@ if test "${include_dir_suffix}" = ""; then
      include_dir_suffix="${inclib_dir_suffix}/include"
  fi
  
@@ -170,7 +170,7 @@ index 4c2226b..b8a9251 100755
  # lib_dir_suffix:
  # *nix default: "sdcc/lib"
  
-@@ -7176,13 +7144,6 @@ if test "${lib_dir_suffix}" = ""; then
+@@ -7441,13 +7409,6 @@ if test "${lib_dir_suffix}" = ""; then
      lib_dir_suffix="${inclib_dir_suffix}/lib"
  fi
  
@@ -184,9 +184,9 @@ index 4c2226b..b8a9251 100755
  # docdir:
  # *nix default: "${datadir}/sdcc/doc"
  
-@@ -7349,24 +7310,6 @@ cat >>confdefs.h <<_ACEOF
- #define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}"
- _ACEOF
+@@ -7600,22 +7561,6 @@ esac
+ 
+ printf "%s\n" "#define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING \"${norm_inc_dir_suffix}\"" >>confdefs.h
  
 -norm_non_free_inc_dir_suffix=${non_free_include_dir_suffix}
 -case ":$norm_non_free_inc_dir_suffix:" in
@@ -202,16 +202,14 @@ index 4c2226b..b8a9251 100755
 - *) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
 -esac
 -
--cat >>confdefs.h <<_ACEOF
--#define NON_FREE_INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_non_free_inc_dir_suffix}"
--_ACEOF
+-printf "%s\n" "#define NON_FREE_INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING \"${norm_non_free_inc_dir_suffix}\"" >>confdefs.h
 -
  
  norm_lib_dir_suffix=${lib_dir_suffix}
  case ":$norm_lib_dir_suffix:" in
-@@ -7386,24 +7329,6 @@ cat >>confdefs.h <<_ACEOF
- #define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}"
- _ACEOF
+@@ -7633,22 +7578,6 @@ esac
+ 
+ printf "%s\n" "#define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING \"${norm_lib_dir_suffix}\"" >>confdefs.h
  
 -norm_non_free_lib_dir_suffix=${non_free_lib_dir_suffix}
 -case ":$norm_non_free_lib_dir_suffix:" in
@@ -227,19 +225,18 @@ index 4c2226b..b8a9251 100755
 - *) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
 -esac
 -
--cat >>confdefs.h <<_ACEOF
--#define NON_FREE_LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_non_free_lib_dir_suffix}"
--_ACEOF
+-printf "%s\n" "#define NON_FREE_LIB_DIR_SUFFIX DIR_SEPARATOR_STRING \"${norm_non_free_lib_dir_suffix}\"" >>confdefs.h
 -
  
  # relative paths
  for _lcl_i in expanded_bindir:expanded_datadir:bin2data_dir; do
-@@ -8513,28 +8438,6 @@ _ACEOF
+@@ -8751,27 +8680,6 @@ printf "%s\n" "#define OPT_DISABLE_SDBINUTILS $OPT_DISABLE_SDBINUTILS" >>confdef
  
  
  
 -  # Check whether --enable-non-free was given.
--if test "${enable_non_free+set}" = set; then :
+-if test ${enable_non_free+y}
+-then :
 -  enableval=$enable_non_free;
 -fi
 -
@@ -253,17 +250,15 @@ index 4c2226b..b8a9251 100755
 -  fi
 -
 -
--cat >>confdefs.h <<_ACEOF
--#define OPT_DISABLE_NON_FREE $OPT_DISABLE_NON_FREE
--_ACEOF
+-printf "%s\n" "#define OPT_DISABLE_NON_FREE $OPT_DISABLE_NON_FREE" >>confdefs.h
 -
 -
 -
 -
  
    # Check whether --enable-doc was given.
- if test "${enable_doc+set}" = set; then :
-@@ -8929,20 +8832,12 @@ if test $OPT_DISABLE_PIC14 = 0; then
+ if test ${enable_doc+y}
+@@ -9199,20 +9107,12 @@ if test $OPT_DISABLE_PIC14 = 0; then
  
    test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic14"
  
@@ -283,8 +278,8 @@ index 4c2226b..b8a9251 100755
 -
  fi
  
- if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0; then
-@@ -9019,15 +8914,9 @@ fi
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_SM83 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0; then
+@@ -9289,15 +9189,9 @@ fi
  
  test $OPT_DISABLE_DEVICE_LIB = 0 && ac_config_files="$ac_config_files device/lib/Makefile"
  
@@ -300,7 +295,7 @@ index 4c2226b..b8a9251 100755
  cat >confcache <<\_ACEOF
  # This file is a shell script that caches the results of configure
  # tests run on this system so they can be shared between configure
-@@ -9768,7 +9657,6 @@ do
+@@ -10037,7 +9931,6 @@ do
      "device/lib/pdk15-stack-auto/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/pdk15-stack-auto/Makefile" ;;
      "sdas/aspdk16/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/aspdk16/Makefile" ;;
      "device/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/Makefile" ;;
@@ -308,7 +303,7 @@ index 4c2226b..b8a9251 100755
      "main.mk") CONFIG_FILES="$CONFIG_FILES main.mk:main_in.mk" ;;
      "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
      "device/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/include/Makefile" ;;
-@@ -9780,7 +9668,6 @@ do
+@@ -10049,7 +9942,6 @@ do
      "support/regression/ports/host/spec.mk") CONFIG_FILES="$CONFIG_FILES support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in" ;;
      "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
      "Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common:Makefile.common.in" ;;
@@ -316,7 +311,7 @@ index 4c2226b..b8a9251 100755
  
    *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
    esac
-@@ -10589,54 +10476,6 @@ esac
+@@ -10856,54 +10748,6 @@ esac
  incPath3=`echo "$incPath3" | sed 's,\\\\\\\\,\\\\,g'`
  
  
@@ -371,7 +366,7 @@ index 4c2226b..b8a9251 100755
  
  libPath1=`echo "/${prefix2data_dir}/${norm_lib_dir_suffix}" | sed 's,/\./,/,g'`
  case ":$libPath1:" in
-@@ -10686,54 +10525,6 @@ esac
+@@ -10953,54 +10797,6 @@ esac
  libPath3=`echo "$libPath3" | sed 's,\\\\\\\\,\\\\,g'`
  
  
@@ -423,18 +418,18 @@ index 4c2226b..b8a9251 100755
 -nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\\\\\\\\,\\\\,g'`
 -
 -
- { $as_echo "$as_me:${as_lineno-$LINENO}: result:
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result:
  sdcc ${VERSION} is now configured for
  
-@@ -10772,7 +10563,6 @@ sdcc ${VERSION} is now configured for
-     pdk15               ${enable_pdk15_port}
-     pdk16               ${enable_pdk16_port}
+@@ -11041,7 +10837,6 @@ sdcc ${VERSION} is now configured for
+     mos6502             ${enable_mos6502_port}
+     mos65c02            ${enable_mos65c02_port}
  
 -  Disable non-free lib: ${OPT_DISABLE_NON_FREE}
    Disable packihx:      ${OPT_DISABLE_PACKIHX}
    Disable ucsim:        ${OPT_DISABLE_UCSIM}
    Disable device lib:   ${OPT_DISABLE_DEVICE_LIB}
-@@ -10787,9 +10577,6 @@ sdcc ${VERSION} is now configured for
+@@ -11056,9 +10851,6 @@ sdcc ${VERSION} is now configured for
      include/library files:  ${datadir}/${inclib_dir_suffix}
      include files:          ${datadir}/${include_dir_suffix}
      library files:          ${datadir}/${lib_dir_suffix}
@@ -444,7 +439,7 @@ index 4c2226b..b8a9251 100755
      documentation:          ${docdir}
  
      prefix:             ${prefix}
-@@ -10801,15 +10588,9 @@ sdcc ${VERSION} is now configured for
+@@ -11070,15 +10862,9 @@ sdcc ${VERSION} is now configured for
      include files:      ${incPath1}
                          path(argv[0])${incPath2}
                          ${incPath3}
@@ -458,17 +453,17 @@ index 4c2226b..b8a9251 100755
 -                        path(argv[0])${nonFreeLibPath2}${dirch}<model>
 -                        ${nonFreeLibPath3}${dirch}<model>
  " >&5
- $as_echo "
+ printf "%s\n" "
  sdcc ${VERSION} is now configured for
-@@ -10849,7 +10630,6 @@ sdcc ${VERSION} is now configured for
-     pdk15               ${enable_pdk15_port}
-     pdk16               ${enable_pdk16_port}
+@@ -11120,7 +10906,6 @@ sdcc ${VERSION} is now configured for
+     mos6502             ${enable_mos6502_port}
+     mos65c02            ${enable_mos65c02_port}
  
 -  Disable non-free lib: ${OPT_DISABLE_NON_FREE}
    Disable packihx:      ${OPT_DISABLE_PACKIHX}
    Disable ucsim:        ${OPT_DISABLE_UCSIM}
    Disable device lib:   ${OPT_DISABLE_DEVICE_LIB}
-@@ -10864,9 +10644,6 @@ sdcc ${VERSION} is now configured for
+@@ -11135,9 +10920,6 @@ sdcc ${VERSION} is now configured for
      include/library files:  ${datadir}/${inclib_dir_suffix}
      include files:          ${datadir}/${include_dir_suffix}
      library files:          ${datadir}/${lib_dir_suffix}
@@ -478,7 +473,7 @@ index 4c2226b..b8a9251 100755
      documentation:          ${docdir}
  
      prefix:             ${prefix}
-@@ -10878,14 +10655,8 @@ sdcc ${VERSION} is now configured for
+@@ -11149,15 +10931,9 @@ sdcc ${VERSION} is now configured for
      include files:      ${incPath1}
                          path(argv[0])${incPath2}
                          ${incPath3}
@@ -493,11 +488,12 @@ index 4c2226b..b8a9251 100755
 -                        ${nonFreeLibPath3}${dirch}<model>
  " >&6; }
  # End of configure/configure.in
+ 
 diff --git a/configure.ac b/configure.ac
-index 455fee1..48e0a20 100644
+index cc5309e..5eb4326 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -548,19 +548,6 @@ if test "${include_dir_suffix}" = ""; then
+@@ -562,19 +562,6 @@ if test "${include_dir_suffix}" = ""; then
      include_dir_suffix="${inclib_dir_suffix}/include"
  fi
  
@@ -517,7 +513,7 @@ index 455fee1..48e0a20 100644
  # lib_dir_suffix:
  # *nix default: "sdcc/lib"
  AC_ARG_VAR([lib_dir_suffix], [appended to datadir to define SDCC's library root directory])
-@@ -568,13 +555,6 @@ if test "${lib_dir_suffix}" = ""; then
+@@ -582,13 +569,6 @@ if test "${lib_dir_suffix}" = ""; then
      lib_dir_suffix="${inclib_dir_suffix}/lib"
  fi
  
@@ -531,7 +527,7 @@ index 455fee1..48e0a20 100644
  # docdir:
  # *nix default: "${datadir}/sdcc/doc"
  AC_ARG_VAR([docdir], [documentation installation directory])
-@@ -615,19 +595,11 @@ norm_inc_dir_suffix=${include_dir_suffix}
+@@ -629,19 +609,11 @@ norm_inc_dir_suffix=${include_dir_suffix}
  adl_NORMALIZE_PATH([norm_inc_dir_suffix], [$sdccconf_h_dir_separator])
  AC_DEFINE_UNQUOTED(INCLUDE_DIR_SUFFIX,
                     DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}", [XXX])
@@ -551,7 +547,7 @@ index 455fee1..48e0a20 100644
  
  # relative paths
  adl_COMPUTE_RELATIVE_PATHS([expanded_bindir:expanded_datadir:bin2data_dir])
-@@ -803,7 +775,6 @@ AC_DO_DISABLER(packihx,    PACKIHX,    [Disables building packihx])
+@@ -819,7 +791,6 @@ AC_DO_DISABLER(packihx,    PACKIHX,    [Disables building packihx])
  AC_DO_DISABLER(sdcpp,      SDCPP,      [Disables building sdcpp])
  AC_DO_DISABLER(sdcdb,      SDCDB,      [Disables building sdcdb])
  AC_DO_DISABLER(sdbinutils, SDBINUTILS, [Disables configuring and building of sdbinutils])
@@ -559,7 +555,7 @@ index 455fee1..48e0a20 100644
  
  AC_DO_ENABLER(doc,   DOC,   [Enables building the documentation])
  AC_CHECK_PROG([LYX],        [lyx],        [lyx],        [:])
-@@ -874,16 +845,10 @@ if test $OPT_DISABLE_PIC14 = 0; then
+@@ -897,16 +868,10 @@ if test $OPT_DISABLE_PIC14 = 0; then
    AC_CONFIG_FILES(src/pic14/Makefile)
    test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/lib/pic14)
  fi
@@ -574,9 +570,9 @@ index 455fee1..48e0a20 100644
 -  test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/non-free/lib/pic16)
 -fi
  
- if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0; then
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_SM83 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0; then
    AC_CONFIG_FILES([src/z80/Makefile])
-@@ -947,7 +912,6 @@ fi
+@@ -970,7 +935,6 @@ fi
  
  
  test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_FILES([device/lib/Makefile])
@@ -584,7 +580,7 @@ index 455fee1..48e0a20 100644
  
  AC_CONFIG_FILES([main.mk:main_in.mk
  src/Makefile
-@@ -961,9 +925,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in
+@@ -984,9 +948,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in
  Makefile
  Makefile.common:Makefile.common.in
  ])
@@ -594,7 +590,7 @@ index 455fee1..48e0a20 100644
  AC_OUTPUT
  
  # I found no better place
-@@ -981,16 +942,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir},                         [binPath],  [
+@@ -1004,16 +965,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir},                         [binPath],  [
  adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_inc_dir_suffix}, [incPath1], [$dirch])
  adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_inc_dir_suffix},    [incPath2], [$dirch])
  adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_inc_dir_suffix}, [incPath3], [$dirch])
@@ -611,15 +607,15 @@ index 455fee1..48e0a20 100644
  
  AC_MSG_RESULT([
  sdcc ${VERSION} is now configured for
-@@ -1030,7 +985,6 @@ sdcc ${VERSION} is now configured for
-     pdk15               ${enable_pdk15_port}
-     pdk16               ${enable_pdk16_port}
+@@ -1055,7 +1010,6 @@ sdcc ${VERSION} is now configured for
+     mos6502             ${enable_mos6502_port}
+     mos65c02            ${enable_mos65c02_port}
  
 -  Disable non-free lib: ${OPT_DISABLE_NON_FREE}
    Disable packihx:      ${OPT_DISABLE_PACKIHX}
    Disable ucsim:        ${OPT_DISABLE_UCSIM}
    Disable device lib:   ${OPT_DISABLE_DEVICE_LIB}
-@@ -1045,9 +999,6 @@ sdcc ${VERSION} is now configured for
+@@ -1070,9 +1024,6 @@ sdcc ${VERSION} is now configured for
      include/library files:  ${datadir}/${inclib_dir_suffix}
      include files:          ${datadir}/${include_dir_suffix}
      library files:          ${datadir}/${lib_dir_suffix}
@@ -629,7 +625,7 @@ index 455fee1..48e0a20 100644
      documentation:          ${docdir}
  
      prefix:             ${prefix}
-@@ -1059,14 +1010,8 @@ sdcc ${VERSION} is now configured for
+@@ -1084,14 +1035,8 @@ sdcc ${VERSION} is now configured for
      include files:      ${incPath1}
                          path(argv[[0]])${incPath2}
                          ${incPath3}
@@ -875,7 +871,7 @@ index 01ad950..62839b9 100644
  
  clean-local:
 diff --git a/device/lib/pic16/Makefile.in b/device/lib/pic16/Makefile.in
-index e4e3abb..730066b 100644
+index 6a4c9cf..4b07384 100644
 --- a/device/lib/pic16/Makefile.in
 +++ b/device/lib/pic16/Makefile.in
 @@ -87,10 +87,7 @@ PRE_UNINSTALL = :
@@ -890,7 +886,7 @@ index e4e3abb..730066b 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
-@@ -295,8 +292,7 @@ top_build_prefix = @top_build_prefix@
+@@ -297,8 +294,7 @@ top_build_prefix = @top_build_prefix@
  top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
  SUBDIRS = debug libc libio libm libsdcc startup
@@ -900,7 +896,7 @@ index e4e3abb..730066b 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -310,11 +306,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -312,11 +308,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
@@ -915,19 +911,40 @@ index e4e3abb..730066b 100644
  all: config.h
  	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 diff --git a/device/lib/pic16/configure b/device/lib/pic16/configure
-index ed8ad06..65baa93 100755
+index add51b9..c451a74 100755
 --- a/device/lib/pic16/configure
 +++ b/device/lib/pic16/configure
-@@ -3657,7 +3657,6 @@ fi
+@@ -3828,7 +3828,6 @@ fi
  
  
  
 -LIBDEV="${srcdir}/../../non-free/lib/pic16/libdev"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking devices supported by gputils" >&5
- $as_echo_n "checking devices supported by gputils... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking devices supported by gputils" >&5
+ printf %s "checking devices supported by gputils... " >&6; }
  GOOD_PICS="";
+@@ -3839,20 +3838,6 @@ N_GOOD=0
+ N_BAD=0
+ mkdir -p ".checkdevices";
+ rm -f "$RESULT";
+-for i in "${LIBDEV}/pic1"*.c; do
+-  p="${i##*pic}";
+-  p="${p%.c}";
+-  P=$(echo "$p" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ);
+-  printf "  include \"p%s.inc\"\n  END" "$p" > "${CHECK}.asm";
+-  if "$mCCAS" -p "$p" -o "${CHECK}.o" -c "${CHECK}.asm" >/dev/null 2>&1 && "$mLD" "${CHECK}.o" >/dev/null 2>&1; then
+-    GOOD_PICS="$GOOD_PICS $p";
+-    N_GOOD=`expr $N_GOOD + 1`;
+-    echo "$P" >> "$RESULT";
+-  else
+-    BAD_PICS="$BAD_PICS $p";
+-    N_BAD=`expr $N_BAD + 1`;
+-  fi;
+-done;
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $N_GOOD devices ($GOOD_PICS)" >&5
+ printf "%s\n" "$N_GOOD devices ($GOOD_PICS)" >&6; }
+ 
 diff --git a/device/lib/pic16/configure.ac b/device/lib/pic16/configure.ac
-index 3966c11..cdbffc7 100644
+index 75bea9d..65e98be 100644
 --- a/device/lib/pic16/configure.ac
 +++ b/device/lib/pic16/configure.ac
 @@ -68,10 +68,6 @@ AC_SUBST(OBJEXT, [o])
@@ -942,7 +959,7 @@ index 3966c11..cdbffc7 100644
  
  # Checks for header files.
 diff --git a/device/lib/pic16/debug/Makefile.in b/device/lib/pic16/debug/Makefile.in
-index 8d5eb80..9dd8bb2 100644
+index 05108a8..a6a94bb 100644
 --- a/device/lib/pic16/debug/Makefile.in
 +++ b/device/lib/pic16/debug/Makefile.in
 @@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -957,7 +974,7 @@ index 8d5eb80..9dd8bb2 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -291,8 +288,7 @@ top_builddir = @top_builddir@
+@@ -292,8 +289,7 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
  lib_LIBRARIES = libdebug.a
  libdebug_a_SOURCES = gstack/gstack.c
@@ -967,7 +984,7 @@ index 8d5eb80..9dd8bb2 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -306,11 +302,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -307,11 +303,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
@@ -982,7 +999,7 @@ index 8d5eb80..9dd8bb2 100644
  
  .SUFFIXES:
 diff --git a/device/lib/pic16/libc/Makefile.in b/device/lib/pic16/libc/Makefile.in
-index 659db72..cbb73bf 100644
+index 49a437d..5579b71 100644
 --- a/device/lib/pic16/libc/Makefile.in
 +++ b/device/lib/pic16/libc/Makefile.in
 @@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -997,7 +1014,7 @@ index 659db72..cbb73bf 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -381,8 +378,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \
+@@ -382,8 +379,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \
  	string/strpbrk.c string/strrchr.c string/strspn.c \
  	string/strstr.c string/strtok.c string/strupr.c \
  	utils/cnvfrac.S utils/cnvint.S utils/cvtdec.S
@@ -1007,7 +1024,7 @@ index 659db72..cbb73bf 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -396,11 +392,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -397,11 +393,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
@@ -1022,7 +1039,7 @@ index 659db72..cbb73bf 100644
  
  .SUFFIXES:
 diff --git a/device/lib/pic16/libio/Makefile.in b/device/lib/pic16/libio/Makefile.in
-index 128ffcc..b298c7c 100644
+index 5b1a9b0..664958f 100644
 --- a/device/lib/pic16/libio/Makefile.in
 +++ b/device/lib/pic16/libio/Makefile.in
 @@ -481,10 +481,7 @@ POST_UNINSTALL = :
@@ -1037,7 +1054,7 @@ index 128ffcc..b298c7c 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -15600,8 +15597,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \
+@@ -15601,8 +15598,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \
  libio18lf8722_a_CFLAGS = -p18lf8722 $(AM_CFLAGS)
  libio18lf8723_a_SOURCES = dummy.c
  libio18lf8723_a_CFLAGS = -p18lf8723 $(AM_CFLAGS)
@@ -1047,7 +1064,7 @@ index 128ffcc..b298c7c 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -15615,11 +15611,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -15616,11 +15612,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
@@ -1107,7 +1124,7 @@ index 211604e..e8896bf 100755
  include \$(top_srcdir)/Makefile.common
  
 diff --git a/device/lib/pic16/libm/Makefile.in b/device/lib/pic16/libm/Makefile.in
-index af29662..05f1c24 100644
+index 285c5b8..ad6c293 100644
 --- a/device/lib/pic16/libm/Makefile.in
 +++ b/device/lib/pic16/libm/Makefile.in
 @@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -1122,7 +1139,7 @@ index af29662..05f1c24 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -312,8 +309,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \
+@@ -313,8 +310,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \
  	frexpf.c isinf.c isnan.c ldexpf.c log10f.c logf.c modff.c \
  	powf.c sincosf.c sincoshf.c sinf.c sinhf.c sqrtf.c tancotf.c \
  	tanf.c tanhf.c
@@ -1132,7 +1149,7 @@ index af29662..05f1c24 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -327,11 +323,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -328,11 +324,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
@@ -1147,7 +1164,7 @@ index af29662..05f1c24 100644
  
  .SUFFIXES:
 diff --git a/device/lib/pic16/libsdcc/Makefile.in b/device/lib/pic16/libsdcc/Makefile.in
-index d384631..01129e3 100644
+index 808b8a5..412dc80 100644
 --- a/device/lib/pic16/libsdcc/Makefile.in
 +++ b/device/lib/pic16/libsdcc/Makefile.in
 @@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -1162,7 +1179,7 @@ index d384631..01129e3 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -413,8 +410,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \
+@@ -414,8 +411,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \
  	int/modsint.c int/moduint.c int/mulint.c long/divslong.c \
  	long/divulong.c long/modslong.c long/modulong.c long/mullong.c \
  	lregs/lrrest.c lregs/lrst.c stack/stack.S
@@ -1172,7 +1189,7 @@ index d384631..01129e3 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -428,11 +424,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -429,11 +425,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
@@ -1187,7 +1204,7 @@ index d384631..01129e3 100644
  
  .SUFFIXES:
 diff --git a/device/lib/pic16/startup/Makefile.in b/device/lib/pic16/startup/Makefile.in
-index 6169096..0172a25 100644
+index d57c254..7394a4c 100644
 --- a/device/lib/pic16/startup/Makefile.in
 +++ b/device/lib/pic16/startup/Makefile.in
 @@ -89,10 +89,7 @@ PRE_UNINSTALL = :
@@ -1202,7 +1219,7 @@ index 6169096..0172a25 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -308,8 +305,7 @@ libcrt0iz_a_SOURCES = crt0iz.c
+@@ -309,8 +306,7 @@ libcrt0iz_a_SOURCES = crt0iz.c
  # Force installation of .o files into $libdir
  crtdir = $(libdir)
  crt_DATA = crt0.o crt0i.o crt0iz.o
@@ -1212,7 +1229,7 @@ index 6169096..0172a25 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -323,11 +319,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -324,11 +320,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
@@ -1227,7 +1244,7 @@ index 6169096..0172a25 100644
  
  .SUFFIXES:
 diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt
-index d630b99..8cd747f 100644
+index 3c4bc1f..0a6fdd5 100644
 --- a/doc/INSTALL.txt
 +++ b/doc/INSTALL.txt
 @@ -18,9 +18,7 @@ To install:
@@ -1261,10 +1278,10 @@ index d630b99..8cd747f 100644
  
  You can test the install by entering:
 diff --git a/doc/README.txt b/doc/README.txt
-index 88f8c98..a36db81 100644
+index 3720fd6..5a0d0a8 100644
 --- a/doc/README.txt
 +++ b/doc/README.txt
-@@ -35,10 +35,9 @@ Exception are pic device libraries and header files which are derived
+@@ -37,10 +37,9 @@ Exception are pic device libraries and header files which are derived
  from Microchip header (.inc) and linker script (.lkr) files. Microchip
  requires that "The header files should state that they are only to be
  used with authentic Microchip devices" which makes them incompatible
@@ -1276,13 +1293,13 @@ index 88f8c98..a36db81 100644
 +and run-time options that enable their use) are omitted in the SDCC
 +package distributed with GNU Guix.
  
- See:
- 
+ However: Many think that the Microchip requirement is not legally enforceable,
+ arguing that the header files only contain noncopyrightable facts.
 diff --git a/doc/sdccman.lyx b/doc/sdccman.lyx
-index c8f8e73..e4afb0c 100644
+index 9ba31eb..3d69b5a 100644
 --- a/doc/sdccman.lyx
 +++ b/doc/sdccman.lyx
-@@ -1092,54 +1092,9 @@ A possible exception are pic device libraries and header files which are
+@@ -1093,54 +1093,9 @@ A possible exception are pic device libraries and header files which are
   to be used with authentic Microchip devices" which makes them incompatible
   with the GPL, if Microchip has any copyright in them (which might depend
   on local copyright laws).
@@ -1340,7 +1357,7 @@ index c8f8e73..e4afb0c 100644
  \end_layout
  
  \begin_layout Itemize
-@@ -2890,18 +2845,6 @@ include_dir_suffix environment variable, see table below
+@@ -2943,18 +2898,6 @@ include_dir_suffix environment variable, see table below
  \end_inset
  
  
@@ -1359,7 +1376,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset space ~
  \end_inset
  
-@@ -2914,22 +2857,6 @@ lib_dir_suffix environment variable, see table below
+@@ -2967,22 +2910,6 @@ lib_dir_suffix environment variable, see table below
  \end_inset
  
  
@@ -1382,7 +1399,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset space ~
  \end_inset
  
-@@ -3428,7 +3355,7 @@ These defaults are:
+@@ -3481,7 +3408,7 @@ These defaults are:
  \begin_layout Standard
  \align center
  \begin_inset Tabular
@@ -1391,7 +1408,7 @@ index c8f8e73..e4afb0c 100644
  <features tabularvalignment="middle">
  <column alignment="block" valignment="top" width="0in">
  <column alignment="block" valignment="top" width="0in">
-@@ -3712,68 +3639,6 @@ sdcc/include
+@@ -3765,68 +3692,6 @@ sdcc/include
  include
  \end_layout
  
@@ -1460,7 +1477,7 @@ index c8f8e73..e4afb0c 100644
  \end_inset
  </cell>
  </row>
-@@ -3784,7 +3649,7 @@ lib
+@@ -3837,7 +3702,7 @@ lib
  \begin_layout Plain Layout
  
  \emph on
@@ -1469,7 +1486,7 @@ index c8f8e73..e4afb0c 100644
  \end_layout
  
  \end_inset
-@@ -3793,7 +3658,7 @@ NON_FREE_LIB_DIR_SUFFIX
+@@ -3846,7 +3711,7 @@ NON_FREE_LIB_DIR_SUFFIX
  \begin_inset Text
  
  \begin_layout Plain Layout
@@ -1478,7 +1495,7 @@ index c8f8e73..e4afb0c 100644
  \end_layout
  
  \end_inset
-@@ -3802,7 +3667,7 @@ sdcc/non-free/lib
+@@ -3855,7 +3720,7 @@ sdcc/non-free/lib
  \begin_inset Text
  
  \begin_layout Plain Layout
@@ -1487,7 +1504,7 @@ index c8f8e73..e4afb0c 100644
  \end_layout
  
  \end_inset
-@@ -4201,20 +4066,6 @@ include
+@@ -4254,20 +4119,6 @@ include
  \end_inset
  
   
@@ -1508,7 +1525,7 @@ index c8f8e73..e4afb0c 100644
  \backslash
  
  \begin_inset Newline newline
-@@ -4229,20 +4080,6 @@ lib
+@@ -4282,20 +4133,6 @@ lib
  \end_inset
  
   
@@ -1529,7 +1546,7 @@ index c8f8e73..e4afb0c 100644
  \backslash
  
  \begin_inset Newline newline
-@@ -4423,20 +4260,6 @@ include
+@@ -4476,20 +4313,6 @@ include
  \end_inset
  
   
@@ -1550,7 +1567,7 @@ index c8f8e73..e4afb0c 100644
  \backslash
  
  \begin_inset Newline newline
-@@ -4451,20 +4274,6 @@ lib
+@@ -4504,20 +4327,6 @@ lib
  \end_inset
  
   
@@ -1571,7 +1588,7 @@ index c8f8e73..e4afb0c 100644
  \backslash
  
  \begin_inset Newline newline
-@@ -4561,7 +4370,7 @@ Install paths
+@@ -4614,7 +4423,7 @@ Install paths
  \begin_layout Standard
  \align center
  \begin_inset Tabular
@@ -1580,7 +1597,7 @@ index c8f8e73..e4afb0c 100644
  <features tabularvalignment="middle">
  <column alignment="left" valignment="top">
  <column alignment="left" valignment="top" width="4.5cm">
-@@ -4717,64 +4526,6 @@ include
+@@ -4770,64 +4579,6 @@ include
  <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
  \begin_inset Text
  
@@ -1645,7 +1662,7 @@ index c8f8e73..e4afb0c 100644
  \begin_layout Plain Layout
  Library file**
  \end_layout
-@@ -4824,64 +4575,6 @@ sdcc
+@@ -4877,64 +4628,6 @@ sdcc
  lib
  \end_layout
  
@@ -1710,7 +1727,7 @@ index c8f8e73..e4afb0c 100644
  \end_inset
  </cell>
  </row>
-@@ -5204,7 +4897,7 @@ $PATH
+@@ -5257,7 +4950,7 @@ $PATH
  \begin_layout Standard
  \align center
  \begin_inset Tabular
@@ -1719,7 +1736,7 @@ index c8f8e73..e4afb0c 100644
  <features tabularvalignment="middle">
  <column alignment="block" valignment="top" width="0.5cm">
  <column alignment="block" valignment="top" width="4.8cm">
-@@ -5482,203 +5175,13 @@ include
+@@ -5535,203 +5228,13 @@ include
  </cell>
  </row>
  <row>
@@ -1924,7 +1941,7 @@ index c8f8e73..e4afb0c 100644
  \end_inset
  </cell>
  <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-@@ -5694,21 +5197,13 @@ $DATADIR/
+@@ -5747,21 +5250,13 @@ $DATADIR/
  \end_inset
  
  
@@ -1947,7 +1964,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -5716,7 +5211,7 @@ $INCLUDE_DIR_SUFFIX
+@@ -5769,7 +5264,7 @@ $INCLUDE_DIR_SUFFIX
  \begin_inset Newline newline
  \end_inset
  
@@ -1956,7 +1973,7 @@ index c8f8e73..e4afb0c 100644
  \end_layout
  
  \end_inset
-@@ -5814,7 +5309,7 @@ model
+@@ -5867,7 +5362,7 @@ model
  \begin_layout Standard
  \align center
  \begin_inset Tabular
@@ -1965,7 +1982,7 @@ index c8f8e73..e4afb0c 100644
  <features tabularvalignment="middle">
  <column alignment="block" valignment="top" width="0.5cm">
  <column alignment="block" valignment="top" width="4.5cm">
-@@ -6094,7 +5589,7 @@ lib
+@@ -6147,7 +5642,7 @@ lib
  </cell>
  </row>
  <row>
@@ -1974,7 +1991,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -6103,7 +5598,7 @@ lib
+@@ -6156,7 +5651,7 @@ lib
  
  \end_inset
  </cell>
@@ -1983,7 +2000,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -6134,7 +5629,7 @@ $LIB_DIR_SUFFIX/
+@@ -6187,7 +5682,7 @@ $LIB_DIR_SUFFIX/
  
  \end_inset
  </cell>
@@ -1992,7 +2009,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -6149,7 +5644,7 @@ lib/
+@@ -6202,7 +5697,7 @@ lib/
  
  \end_inset
  </cell>
@@ -2001,7 +2018,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -6172,308 +5667,6 @@ lib
+@@ -6225,308 +5720,6 @@ lib
  <model>
  \end_layout
  
@@ -2310,7 +2327,7 @@ index c8f8e73..e4afb0c 100644
  \end_inset
  </cell>
  </row>
-@@ -8737,14 +7930,6 @@ In <installdir>/share/sdcc/include
+@@ -8801,14 +7994,6 @@ In <installdir>/share/sdcc/include
  the include files
  \end_layout
  
@@ -2325,7 +2342,7 @@ index c8f8e73..e4afb0c 100644
  \begin_layout Standard
  In <installdir>/share/sdcc/lib
  \end_layout
-@@ -8753,14 +7938,6 @@ In <installdir>/share/sdcc/lib
+@@ -8817,14 +8002,6 @@ In <installdir>/share/sdcc/lib
  the src and target subdirectories with the precompiled relocatables.
  \end_layout
  
@@ -2340,7 +2357,7 @@ index c8f8e73..e4afb0c 100644
  \begin_layout Standard
  In <installdir>/share/sdcc/doc
  \end_layout
-@@ -15274,66 +14451,6 @@ splint
+@@ -15590,66 +14767,6 @@ splint
  myprogram.c
  \end_layout
  
@@ -2407,7 +2424,7 @@ index c8f8e73..e4afb0c 100644
  \begin_layout Subsection
  Linker Options
  \begin_inset Index idx
-@@ -44653,66 +43770,9 @@ http://sourceforge.net/projects/gputils
+@@ -45248,66 +44365,9 @@ http://sourceforge.net/projects/gputils
  Pic device specific header and c source files are automatically generated
   from MPLAB include files, which are published by Microchip with a special
   requirement that they are only to be used with authentic Microchip devices.
@@ -2477,7 +2494,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset Newline newline
  \end_inset
  
-@@ -44766,7 +43826,7 @@ Makefile
+@@ -45361,7 +44421,7 @@ Makefile
  \begin_inset space ~
  \end_inset
  
@@ -2486,7 +2503,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset Newline newline
  \end_inset
  
-@@ -44860,7 +43920,7 @@ Makefile
+@@ -45455,7 +44515,7 @@ Makefile
  \begin_inset space ~
  \end_inset
  
@@ -2495,7 +2512,7 @@ index c8f8e73..e4afb0c 100644
  \begin_inset Newline newline
  \end_inset
  
-@@ -45142,47 +44202,6 @@ status collapsed
+@@ -45737,47 +44797,6 @@ status collapsed
  \begin_layout Plain Layout
  
  
@@ -2543,7 +2560,7 @@ index c8f8e73..e4afb0c 100644
  \backslash
  /
  \end_layout
-@@ -46055,47 +45074,6 @@ status collapsed
+@@ -46650,47 +45669,6 @@ status collapsed
  -all-callee-saves
  \end_layout
  
@@ -2591,7 +2608,7 @@ index c8f8e73..e4afb0c 100644
  \begin_layout Subsection
  Port Specific Options
  \begin_inset Index idx
-@@ -47372,188 +46350,6 @@ Linker
+@@ -47967,188 +46945,6 @@ Linker
  \end_inset
  
  
@@ -2780,7 +2797,7 @@ index c8f8e73..e4afb0c 100644
  \end_layout
  
  \begin_layout Subsection
-@@ -48249,66 +47045,9 @@ name "subsec:PIC16_Header-Files-and-Libraries"
+@@ -48844,66 +47640,9 @@ name "subsec:PIC16_Header-Files-and-Libraries"
  Pic device specific header and c source files are automatically generated
   from MPLAB include files, which are published by Microchip with a special
   requirement that they are only to be used with authentic Microchip devices.
@@ -2850,7 +2867,7 @@ index c8f8e73..e4afb0c 100644
  \end_layout
  
  \begin_layout Subsection
-@@ -48554,195 +47293,6 @@ vfprintf.c
+@@ -49149,195 +47888,6 @@ vfprintf.c
   should also work, but is untested.
  \end_layout
  
@@ -3046,7 +3063,7 @@ index c8f8e73..e4afb0c 100644
  \begin_layout Subsection
  Memory Models
  \end_layout
-@@ -73528,6 +72078,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC
+@@ -74082,6 +72632,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC
   developers.
  \end_layout
  
@@ -3060,7 +3077,7 @@ index c8f8e73..e4afb0c 100644
  All product names mentioned herein may be trademarks
  \begin_inset Index idx
 diff --git a/sdcc.spec b/sdcc.spec
-index 3609ffe..4b4a5cb 100644
+index 85ae200..8e0ef4b 100644
 --- a/sdcc.spec
 +++ b/sdcc.spec
 @@ -89,9 +89,7 @@ rm -rf $RPM_BUILD_ROOT
@@ -3073,8 +3090,8 @@ index 3609ffe..4b4a5cb 100644
  
  %files doc
  %defattr(-,root,root)
-@@ -100,6 +98,8 @@ rm -rf $RPM_BUILD_ROOT
- %changelog
+@@ -102,6 +100,8 @@ rm -rf $RPM_BUILD_ROOT
+ - version updated to 4.2.0
  * Sat Feb 20 2021 - pkk AT spth.de
  - version updated to 4.0.0
 +* Tue Dec 08 2020 - simon AT simonsouth.net
@@ -3083,7 +3100,7 @@ index 3609ffe..4b4a5cb 100644
  - version updated to 4.0.0
  * Fri Apr 05 2019 - krauseph AT informatik.uni-freiburg.de
 diff --git a/sdcc_vc.h.in b/sdcc_vc.h.in
-index 06d8cca..736c325 100644
+index 8cf401b..19f5113 100644
 --- a/sdcc_vc.h.in
 +++ b/sdcc_vc.h.in
 @@ -23,8 +23,6 @@
@@ -3096,7 +3113,7 @@ index 06d8cca..736c325 100644
  #define BIN2DATA_DIR                "\\.."
  #define PREFIX2BIN_DIR              "\\bin"
 diff --git a/sdccconf_in.h b/sdccconf_in.h
-index eb6f48b..9f5b003 100644
+index ca8d69f..980af8d 100644
 --- a/sdccconf_in.h
 +++ b/sdccconf_in.h
 @@ -100,12 +100,6 @@
@@ -3112,9 +3129,9 @@ index eb6f48b..9f5b003 100644
  /* Define to 1 to disable the AVR port */
  #undef OPT_DISABLE_AVR
  
-@@ -130,9 +124,6 @@
+@@ -133,9 +127,6 @@
  /* XXX */
- #undef OPT_DISABLE_MCS51
+ #undef OPT_DISABLE_MOS65C02
  
 -/* XXX */
 -#undef OPT_DISABLE_NON_FREE
@@ -3123,10 +3140,10 @@ index eb6f48b..9f5b003 100644
  #undef OPT_DISABLE_PACKIHX
  
 diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h
-index 9383f68..c2f0b42 100644
+index b49fa1b..d357169 100644
 --- a/src/SDCCglobl.h
 +++ b/src/SDCCglobl.h
-@@ -288,7 +288,6 @@ struct options
+@@ -287,7 +287,6 @@ struct options
      int stack_size;             /* MCS51/DS390 - Tells the linker to allocate this space for stack */
      int acall_ajmp;             /* MCS51 - Use acall/ajmp instead of lcall/ljmp */
      int no_ret_without_call;    /* MCS51 - Do not use ret independent of acall/lcall */
@@ -3135,7 +3152,7 @@ index 9383f68..c2f0b42 100644
      int xstack_loc;             /* initial location of external stack */
      int stack_loc;              /* initial value of internal stack pointer */
 diff --git a/src/SDCCmain.c b/src/SDCCmain.c
-index 2a7a711..f46370f 100644
+index bc1493d..e775988 100644
 --- a/src/SDCCmain.c
 +++ b/src/SDCCmain.c
 @@ -151,7 +151,6 @@ char buffer[PATH_MAX * 2];
@@ -3146,7 +3163,7 @@ index 2a7a711..f46370f 100644
  #define OPTION_PEEP_RETURN          "--peep-return"
  #define OPTION_NO_PEEP_RETURN       "--no-peep-return"
  #define OPTION_NO_OPTSDCC_IN_ASM    "--no-optsdcc-in-asm"
-@@ -207,7 +206,6 @@ static const OPTION optionsTable[] = {
+@@ -209,7 +208,6 @@ static const OPTION optionsTable[] = {
    {0,   OPTION_STD_SDCC2X, NULL, "Use ISO C2X standard with SDCC extensions"},
    {0,   OPTION_DOLLARS_IN_IDENT, &options.dollars_in_ident, "Permit '$' as an identifier character"},
    {0,   OPTION_SIGNED_CHAR, &options.signed_char, "Make \"char\" signed by default"},
@@ -3154,7 +3171,7 @@ index 2a7a711..f46370f 100644
  
    {0,   NULL, NULL, "Code generation options"},
    {'m', NULL, NULL, "Set the port to use e.g. -mz80."},
-@@ -2113,10 +2111,6 @@ preProcess (char **envp)
+@@ -2132,10 +2130,6 @@ preProcess (char **envp)
        else
          addSet (&preArgvSet, Safe_strdup ("-D__SDCC_CHAR_UNSIGNED"));
  
@@ -3165,7 +3182,7 @@ index 2a7a711..f46370f 100644
        /* set the macro for large model  */
        switch (options.model)
          {
-@@ -2336,12 +2330,6 @@ setIncludePath (void)
+@@ -2365,12 +2359,6 @@ setIncludePath (void)
     *  6. - $SDCC_HOME/PREFIX2DATA_DIR/INCLUDE_DIR_SUFFIX
     *  7. - path(argv[0])/BIN2DATA_DIR/INCLUDE_DIR_SUFFIX
     *  8. - DATADIR/INCLUDE_DIR_SUFFIX (only on *nix)
@@ -3178,7 +3195,7 @@ index 2a7a711..f46370f 100644
     */
  
    if (!options.nostdinc)
-@@ -2357,17 +2345,6 @@ setIncludePath (void)
+@@ -2386,17 +2374,6 @@ setIncludePath (void)
          includeDirsSet = processStrSet (includeDirsSet, NULL, port->target, NULL);
        mergeSets (&includeDirsSet, tempSet);
  
@@ -3196,7 +3213,7 @@ index 2a7a711..f46370f 100644
        if ((p = getenv (SDCC_INCLUDE_NAME)) != NULL)
          {
            struct dbuf_s dbuf;
-@@ -2392,9 +2369,6 @@ setLibPath (void)
+@@ -2421,9 +2398,6 @@ setLibPath (void)
     * 3. - $SDCC_HOME/PREFIX2DATA_DIR/LIB_DIR_SUFFIX/<model>
     * 4. - path(argv[0])/BIN2DATA_DIR/LIB_DIR_SUFFIX/<model>
     * 5. - DATADIR/LIB_DIR_SUFFIX/<model> (only on *nix)
@@ -3206,7 +3223,7 @@ index 2a7a711..f46370f 100644
     */
  
    if (!options.nostdlib)
-@@ -2411,13 +2385,6 @@ setLibPath (void)
+@@ -2440,13 +2414,6 @@ setLibPath (void)
        dbuf_makePath (&dbuf, LIB_DIR_SUFFIX, port->general.get_model ? port->general.get_model () : targetname);
        libDirsSet = processStrSet (dataDirsSet, NULL, dbuf_c_str (&dbuf), NULL);
  
@@ -3221,7 +3238,7 @@ index 2a7a711..f46370f 100644
          {
            addSetHead (&libDirsSet, Safe_strdup (p));
 diff --git a/src/pic14/main.c b/src/pic14/main.c
-index ee90470..519ccfc 100644
+index 38d8730..a0eecdb 100644
 --- a/src/pic14/main.c
 +++ b/src/pic14/main.c
 @@ -42,7 +42,6 @@ static OPTION _pic14_poptions[] =
@@ -3232,7 +3249,7 @@ index ee90470..519ccfc 100644
      { 0, NULL, NULL, NULL }
    };
  
-@@ -176,16 +175,6 @@ _pic14_finaliseOptions (void)
+@@ -180,16 +179,6 @@ _pic14_finaliseOptions (void)
      addSet (&preArgvSet, Safe_strdup (dbuf_detach_c_str (&dbuf)));
    }
  
@@ -3274,10 +3291,10 @@ index cdfbba0..5877f09 100644
  
  extern pic16_options_t pic16_options;
 diff --git a/src/pic16/main.c b/src/pic16/main.c
-index d416642..bfe514d 100644
+index b0e717a..d7616f5 100644
 --- a/src/pic16/main.c
 +++ b/src/pic16/main.c
-@@ -655,7 +655,6 @@ OPTION pic16_optionsTable[]= {
+@@ -660,7 +660,6 @@ OPTION pic16_optionsTable[]= {
      { 0, "--pcode-verbose",     &pic16_pcode_verbose, "dump pcode related info"},
      { 0, "--calltree",          &pic16_options.dumpcalltree, "dump call tree in .calltree file"},
      { 0, "--gstack",            &pic16_options.gstack, "trace stack pointer push/pop to overflow"},
@@ -3285,7 +3302,7 @@ index d416642..bfe514d 100644
      { 0, NULL,                  NULL, NULL}
  };
  
-@@ -940,16 +939,6 @@ _pic16_finaliseOptions (void)
+@@ -945,16 +944,6 @@ _pic16_finaliseOptions (void)
        addSet (&asmOptionsSet, Safe_strdup ("-D__STACK_MODEL_SMALL"));
      }
  
@@ -3302,7 +3319,7 @@ index d416642..bfe514d 100644
    dbuf_destroy (&dbuf);
  }
  
-@@ -979,7 +968,6 @@ _pic16_setDefaultOptions (void)
+@@ -984,7 +973,6 @@ _pic16_setDefaultOptions (void)
    pic16_options.ip_stack = 1;       /* set to 1 to enable ipop/ipush for stack */
    pic16_options.gstack = 0;
    pic16_options.debgen = 0;
@@ -3496,10 +3513,10 @@ index 6db417a..4b35225 100755
    );
  
 diff --git a/support/scripts/sdcc.nsi b/support/scripts/sdcc.nsi
-index da63063..dae8d8d 100644
+index cebb8a6..778472a 100644
 --- a/support/scripts/sdcc.nsi
 +++ b/support/scripts/sdcc.nsi
-@@ -479,11 +479,6 @@ ${Section} "SDCC include files" SEC05
+@@ -480,11 +480,6 @@ ${Section} "SDCC include files" SEC05
  
    SetOutPath "$INSTDIR\include"
    File "${DEV_ROOT}\include\*.h"
@@ -3511,7 +3528,7 @@ index da63063..dae8d8d 100644
  ${SectionEnd}
  
  ${Section} "SDCC DS390 library" SEC06
-@@ -581,18 +576,12 @@ ${Section} "SDCC PIC16 library" SEC21
+@@ -582,18 +577,12 @@ ${Section} "SDCC PIC16 library" SEC21
    SetOutPath "$INSTDIR\lib\pic16"
    File "${DEV_ROOT}\lib\pic16\*.o"
    File "${DEV_ROOT}\lib\pic16\*.lib"
@@ -3530,7 +3547,7 @@ index da63063..dae8d8d 100644
  ${SectionEnd}
  
  ${Section} "SDCC STM8 small model library" SEC23
-@@ -697,10 +686,6 @@ ${Section} "SDCC library sources" SEC25
+@@ -702,10 +691,6 @@ ${Section} "SDCC library sources" SEC25
    File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.inc"
  #  File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile"
  
@@ -3541,7 +3558,7 @@ index da63063..dae8d8d 100644
    SetOutPath "$INSTDIR\lib\src\pic14\libm"
  #  File "${DEV_ROOT}\lib\src\pic14\libm\*.c"
  
-@@ -752,10 +737,6 @@ ${Section} "SDCC library sources" SEC25
+@@ -757,10 +742,6 @@ ${Section} "SDCC library sources" SEC25
    File "${DEV_ROOT}\lib\src\pic16\libc\utils\*.S"
  #  File "${DEV_ROOT}\lib\src\pic16\libc\utils\Makefile"
  
@@ -3552,7 +3569,7 @@ index da63063..dae8d8d 100644
    SetOutPath "$INSTDIR\lib\src\pic16\libio"
    File "${DEV_ROOT}\lib\src\pic16\libio\*.ignore"
  #  File "${DEV_ROOT}\lib\src\pic16\libio\Makefile"
-@@ -1105,13 +1086,9 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1126,13 +1107,9 @@ ${Section} Uninstall SECUNINSTALL
  
    Delete "$INSTDIR\lib\pic14\*.lib"
  
@@ -3566,7 +3583,7 @@ index da63063..dae8d8d 100644
    Delete "$INSTDIR\lib\hc08\*.lib"
  
    Delete "$INSTDIR\lib\s08\*.lib"
-@@ -1182,9 +1159,7 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1208,9 +1185,7 @@ ${Section} Uninstall SECUNINSTALL
    Delete "$INSTDIR\include\pic14\*.h"
    Delete "$INSTDIR\include\pic14\*.txt"
    Delete "$INSTDIR\include\pic14\*.inc"
@@ -3576,7 +3593,7 @@ index da63063..dae8d8d 100644
    Delete "$INSTDIR\include\pic16\*.txt"
    Delete "$INSTDIR\include\mcs51\*.h"
    Delete "$INSTDIR\include\hc08\*.h"
-@@ -1246,9 +1221,7 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1273,9 +1248,7 @@ ${Section} Uninstall SECUNINSTALL
    Delete "$INSTDIR\uninstall.exe"
  
    RMDir /r "$INSTDIR\lib\src\pic14"
@@ -3586,8 +3603,8 @@ index da63063..dae8d8d 100644
    RMDir "$INSTDIR\lib\src\small"
    RMDir "$INSTDIR\lib\src\medium"
    RMDir "$INSTDIR\lib\src\large"
-@@ -1274,12 +1247,9 @@ ${Section} Uninstall SECUNINSTALL
-   RMDir "$INSTDIR\lib\src\tlcs90"
+@@ -1303,12 +1276,9 @@ ${Section} Uninstall SECUNINSTALL
+   RMDir "$INSTDIR\lib\src\mos6502"
    RMDir "$INSTDIR\lib\src\z80n"
    RMDir "$INSTDIR\lib\src"
 -  RMDir "$INSTDIR\non-free\lib\src"
@@ -3599,8 +3616,8 @@ index da63063..dae8d8d 100644
    RMDir "$INSTDIR\lib\z80"
    RMDir "$INSTDIR\lib\z180"
    RMDir "$INSTDIR\lib\r2k"
-@@ -1305,15 +1275,12 @@ ${Section} Uninstall SECUNINSTALL
-   RMDir "$INSTDIR\lib\tlcs90"
+@@ -1336,15 +1306,12 @@ ${Section} Uninstall SECUNINSTALL
+   RMDir "$INSTDIR\lib\mos6502"
    RMDir "$INSTDIR\lib\z80n"
    RMDir "$INSTDIR\lib"
 -  RMDir "$INSTDIR\non-free\lib"
@@ -3613,9 +3630,9 @@ index da63063..dae8d8d 100644
    RMDir "$INSTDIR\include\asm\pic14"
 -  RMDir "$INSTDIR\non-free\include\asm\pic14"
    RMDir "$INSTDIR\include\asm\mcs51"
-   RMDir "$INSTDIR\include\asm\gbz80"
+   RMDir "$INSTDIR\include\asm\sm83"
    RMDir "$INSTDIR\include\asm\ds390"
-@@ -1322,17 +1289,12 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1353,17 +1320,12 @@ ${Section} Uninstall SECUNINSTALL
    RMDir "$INSTDIR\include\asm"
    RMDir "$INSTDIR\include\z180"
    RMDir "$INSTDIR\include\pic14"
