summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2020-12-21 23:44:54 +0100
committerMarius Bakke <marius@gnu.org>2020-12-21 23:44:54 +0100
commit119fd58922b00d43d4f8b055f3f622478a13f46d (patch)
tree4869f9f09079d5a33f7dfd51ca8e52200fbeb09f /gnu/packages/patches
parent85ba5e9335207beef9a650e96d5d64787beb9256 (diff)
parentbbe4ed65ed5fe7dc8ed9d226042852387cee3b1e (diff)
downloadguix-119fd58922b00d43d4f8b055f3f622478a13f46d.tar.gz
Merge branch 'ungrafting' into staging
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch522
-rw-r--r--gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-checksums-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/bear-disable-preinstall-tests.patch40
-rw-r--r--gnu/packages/patches/icecat-makeicecat.patch4
-rw-r--r--gnu/packages/patches/libffi-float128-powerpc64le.patch58
-rw-r--r--gnu/packages/patches/purescript-relax-dependencies.patch28
-rw-r--r--gnu/packages/patches/python-3.9-fix-tests.patch370
-rw-r--r--gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch36
-rw-r--r--gnu/packages/patches/sdcc-disable-non-free-code.patch721
-rw-r--r--gnu/packages/patches/serf-python3.patch29
-rw-r--r--gnu/packages/patches/sudo-fix-build-without-sendmail.patch45
12 files changed, 945 insertions, 934 deletions
diff --git a/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch b/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch
deleted file mode 100644
index 33a68a1dd8..0000000000
--- a/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch
+++ /dev/null
@@ -1,522 +0,0 @@
-This patch was taken from Debian.
-https://salsa.debian.org/multimedia-team/ams/-/raw/master/debian/patches/0007-Make-vocoder-module-compatible-to-C-11.patch
-
-From: Guido Scholz <gscholz@users.sourceforge.net>
-Date: Tue, 6 Nov 2018 21:55:38 +0100
-Subject: Make vocoder module compatible to C++11
-
----
- src/m_vocoder.cpp | 218 +++++++++++++++++++++++++++---------------------------
- src/m_vocoder.h   |  31 ++++----
- 2 files changed, 124 insertions(+), 125 deletions(-)
-
-diff --git a/src/m_vocoder.cpp b/src/m_vocoder.cpp
-index 572cf65..371e2cf 100644
---- a/src/m_vocoder.cpp
-+++ b/src/m_vocoder.cpp
-@@ -18,10 +18,6 @@
-   along with ams.  If not, see <http://www.gnu.org/licenses/>.
- */
- 
--#include <stdio.h>
--#include <stdlib.h>
--#include <unistd.h>
--#include <math.h>
- #include <qwidget.h>
- #include <qstring.h>
- #include <qslider.h>
-@@ -36,16 +32,13 @@
- #include "synthdata.h"
- #include "midicheckbox.h"
- #include "midislider.h"
--// For FFTW to be happy we must include complex.h before fftw3.h
--#include <complex.h>
--#include <fftw3.h>
- #include "port.h"
- #include "m_vocoder.h"
- 
- //   Window function - One way to make the FFT behave
- //   and give more continuous results over edge steps.
- 
--float M_vocoder::windowcurve (int windowfunc, int len, int elem, float alpha)
-+float M_vocoder::windowcurve (int windowfunc, unsigned int len, int elem, float alpha)
- {
-   float out;
-   out = 1.0;
-@@ -98,6 +91,7 @@ float M_vocoder::windowcurve (int windowfunc, int len, int elem, float alpha)
-   return (out);
- }
- 
-+
- M_vocoder::M_vocoder(QWidget* parent, int id)
-   : Module(M_type_vocoder, id, 5, parent, tr("FFT Vocoder"))
- {
-@@ -160,6 +154,7 @@ M_vocoder::M_vocoder(QWidget* parent, int id)
-     modbuf[l1] = (float *)malloc( fftsize * sizeof(float));
-     memset( modbuf[l1], 0, fftsize * sizeof(float));
-   }
-+
-   carrbuf = (float **)malloc(synthdata->poly * sizeof(float *));
-   for (l1 = 0; l1 < synthdata->poly; l1++) {
-     carrbuf[l1] = (float *)malloc( fftsize * sizeof(float));
-@@ -175,38 +170,48 @@ M_vocoder::M_vocoder(QWidget* parent, int id)
-     window[l2] = windowcurve (whichwin, fftsize, l2, 0.25);
- 
-   //  FFTW setup stuff
--  carrinforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					    * fftsize);
--  carrinbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					     * fftsize);
--  carroutforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					     * fftsize);
--  carroutbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					      * fftsize);
--  modinforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					    * fftsize);
--  modinbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					     * fftsize);
--  modoutforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					     * fftsize);
--  modoutbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
--					      * fftsize);
--  fftw_set_timelimit (5.0);
--  planmodforward = fftw_plan_dft_1d (fftsize, modinforward,
--				  modoutforward, FFTW_FORWARD, FFTW_MEASURE);
--  planmodbackward = fftw_plan_dft_1d (fftsize, modinbackward,
-- 				  modoutbackward, FFTW_BACKWARD, FFTW_MEASURE);
--  plancarrforward = fftw_plan_dft_1d (fftsize, carrinforward,
--				  carroutforward, FFTW_FORWARD, FFTW_MEASURE);
--  plancarrbackward = fftw_plan_dft_1d (fftsize, carrinbackward,
-- 				  carroutbackward, FFTW_BACKWARD, FFTW_MEASURE);
-+  carrinforward.reserve(fftsize);
-+  carrinbackward.reserve(fftsize);
-+  carroutforward.reserve(fftsize);
-+  carroutbackward.reserve(fftsize);
-+  modinforward.reserve(fftsize);
-+  modinbackward.reserve(fftsize);
-+  modoutforward.reserve(fftsize);
-+  modoutbackward.reserve(fftsize);
-+
-+  fftw_set_timelimit(5.0);
-+
-+  planmodforward = fftw_plan_dft_1d(fftsize,
-+          reinterpret_cast<fftw_complex*> (modinforward.data()),
-+          reinterpret_cast<fftw_complex*> (modoutforward.data()),
-+          FFTW_FORWARD, FFTW_MEASURE);
-+
-+  planmodbackward = fftw_plan_dft_1d(fftsize,
-+          reinterpret_cast<fftw_complex*> (modinbackward.data()),
-+          reinterpret_cast<fftw_complex*> (modoutbackward.data()),
-+          FFTW_BACKWARD, FFTW_MEASURE);
-+
-+  plancarrforward = fftw_plan_dft_1d(fftsize,
-+          reinterpret_cast<fftw_complex*> (carrinforward.data()),
-+          reinterpret_cast<fftw_complex*> (carroutforward.data()),
-+          FFTW_FORWARD, FFTW_MEASURE);
-+
-+  plancarrbackward = fftw_plan_dft_1d(fftsize,
-+          reinterpret_cast<fftw_complex*> (carrinbackward.data()),
-+          reinterpret_cast<fftw_complex*> (carroutbackward.data()),
-+          FFTW_BACKWARD, FFTW_MEASURE);
- }
- 
-+
- M_vocoder::~M_vocoder() {
- 
--  int l1;
-+  //    Clean up FFTW stuff.
-+  fftw_destroy_plan (plancarrforward);
-+  fftw_destroy_plan (plancarrbackward);
-+  fftw_destroy_plan (planmodforward);
-+  fftw_destroy_plan (planmodbackward);
- 
--  for (l1 = 0; l1 < synthdata->poly; l1++) {
-+  for (int l1 = 0; l1 < synthdata->poly; l1++) {
-     free(modbuf[l1]);
-     free(carrbuf[l1]);
-   }
-@@ -215,29 +220,14 @@ M_vocoder::~M_vocoder() {
-   free (window);
-   free (modmap);
-   free (armodmap);
--
--  //#define FFTW_CLEANUP
--#ifdef FFTW_CLEANUP
--  //    Clean up FFTW stuff.
--  fftw_destroy_plan (plancarrforward);
--  fftw_destroy_plan (plancarrbackward);
--  fftw_destroy_plan (planmodforward);
--  fftw_destroy_plan (planmodbackward);
--  fftw_free (carrinforward);
--  fftw_free (carrinbackward);
--  fftw_free (carroutforward);
--  fftw_free (carroutbackward);
--  fftw_free (modinforward);
--  fftw_free (modinbackward);
--  fftw_free (modoutforward);
--  fftw_free (modoutbackward);
--#endif
- }
- 
-+
- void M_vocoder::generateCycle() {
- 
-   int l1;  //  l1 indexes along polyphony.
-   unsigned int l2;  // l2 indexes along the cycle
-+  const std::complex<double> I(0.0, 1.0);
- 
-   inModulator = port_M_modulator->getinputdata();
-   inPitchShift = port_M_pitchshift->getinputdata();
-@@ -272,7 +262,7 @@ void M_vocoder::generateCycle() {
-   //   Did the user change the FFT windowing function?
-   if (myFFTWindowFunc != whichwin) {
-     whichwin = myFFTWindowFunc;
--    for (l2 = 0; l2 < (unsigned int) fftsize; l2++)
-+    for (l2 = 0; l2 < fftsize; l2++)
-       window[l2] = windowcurve (whichwin, fftsize, l2, 0.25);
-   }
- 
-@@ -294,7 +284,7 @@ void M_vocoder::generateCycle() {
-     }
- 
-     //    window the input buffer to modinforward
--    for (l2 = 0; l2 < (unsigned int)fftsize ; l2++) {
-+    for (l2 = 0; l2 < fftsize ; l2++) {
-       modinforward[l2] = modbuf[l1][l2] * window[l2];
-     }
- 
-@@ -310,17 +300,18 @@ void M_vocoder::generateCycle() {
-     fftw_execute (planmodforward);
- 
-     //    copy the FFT of the modulator to modinbackward.
--    for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
--      modinbackward[l2] = modoutforward[l2];
-+    //for (l2 = 0; l2 < fftsize; l2++)
-+    //  modinbackward[l2] = modoutforward[l2];
-+    modinbackward = modoutforward;
- 
-     //     Send the FFT of the modulator to the output for giggles
-     //     and get an approximation of the first harmonic too.
-     float firstharmonicval;
-     int firstharmonicindex;
-     firstharmonicval = 0.0;
--    firstharmonicindex = 1.0;
-+    firstharmonicindex = 1;
-     for (l2 = 1; l2 < (unsigned int) synthdata->cyclesize; l2++) {
--      data[2][l1][l2] = logf(fabs (creal (modoutforward[l2])) + 1.0);
-+      data[2][l1][l2] = logf(fabs(modoutforward[l2].real()) + 1.0);
-       if (data[2][l1][l2] > firstharmonicval) {
- 	firstharmonicindex = l2;
- 	firstharmonicval  = data[2][l1][l2] ;
-@@ -333,35 +324,38 @@ void M_vocoder::generateCycle() {
- 
-     //   intermediate frequency-domain munging of modulator
-     //   Frequency (additive, Bode-style) shifting first
--    for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
--      modinbackward[l2] = 0;
-+    for (l2 = 0; l2 < fftsize; l2++)
-+      modinbackward[l2] = 0.0;
-+
-     int lclfrq;
--    for (l2 = 0; l2 < (unsigned int)fftsize/2; l2++) {
-+    for (l2 = 0; l2 < fftsize/2; l2++) {
-       //   positive frequencies (first half) of the FFT result
-       lclfrq = l2 + (int)freqshift + vcfreqshift * inFreqShift[l1][0];
-       lclfrq = lclfrq > 0 ? lclfrq : 0;
--      lclfrq = lclfrq < ((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-+      lclfrq = lclfrq < (int)((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-       modinbackward [lclfrq] = modoutforward [l2];
-       //   Negative frequencies (second half of the fft result)
--      modinbackward [fftsize - lclfrq] = modoutforward [ fftsize - l2];
-+      modinbackward [fftsize - lclfrq] = modoutforward [fftsize - l2];
-     }
- 
--    //    Pitchshifting (multiplicative, harmonic-retaining) shifting.
--    //    Note that we reuse the modoutforward as working space
--    for (l2 = 0; l2 < (unsigned int) fftsize; l2++) {
--      modoutforward[l2] = modinbackward[l2];
--    };
--    for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
--      modinbackward[l2] = 0;
-+    // Pitchshifting (multiplicative, harmonic-retaining) shifting.
-+    // Note that we reuse the modoutforward as working space
-+    //for (l2 = 0; l2 < fftsize; l2++) {
-+    //  modoutforward[l2] = modinbackward[l2];
-+    //};
-+    modoutforward = modinbackward;
-+
-+    for (l2 = 0; l2 < fftsize; l2++)
-+      modinbackward[l2] = 0.0;
- 
-     float psmod, psfactor;
-     psmod = (pitchshift + vcpitch * inPitchShift[l1][0]);
-     psfactor = pow (2.0, psmod);
--    for (l2 = 0; l2 < (unsigned int)fftsize/2; l2++) {
-+    for (l2 = 0; l2 < fftsize/2; l2++) {
-       //   positive frequencies (first half) of the FFT result
-       lclfrq = l2 * psfactor;
-       lclfrq = lclfrq > 0 ? lclfrq : 0;
--      lclfrq = lclfrq < ((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-+      lclfrq = lclfrq < (int)((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-       //   Old way to pitch shift: just move the bucket.  But this puts
-       //   nulls wherever the energy is split between two buckets with
-       //   a 180 degree phase difference.
-@@ -375,12 +369,12 @@ void M_vocoder::generateCycle() {
- 	  //   Better way: move freq. bin, multiply angle by octave motion.
- 	  //
- 	  modinbackward[lclfrq] +=
--	    cabs (modoutforward [l2])
--	    * cexp (I * ( carg (modoutforward [l2])
-+	    std::abs(modoutforward[l2])
-+	    * std::exp (I * ( std::arg (modoutforward [l2])
- 			  + (l2 * phaseshift * psfactor)));
- 	  modinbackward[fftsize - lclfrq] +=
--	    cabs (modoutforward [ fftsize - l2])
--	    * cexp (I * ( carg (modoutforward [ fftsize - l2])
-+	    std::abs (modoutforward [ fftsize - l2])
-+	    * std::exp (I * ( std::arg (modoutforward [ fftsize - l2])
- 			  + (l2 * phaseshift * psfactor)));
- 	};
-     }
-@@ -389,9 +383,9 @@ void M_vocoder::generateCycle() {
-     fftw_execute (planmodbackward);
- 
-     //   renormalize the time-domain modulator output
--    for (l2 = 0; l2 < (unsigned)fftsize; l2++) {
--      modoutbackward [l2] = modoutbackward[l2] / float (fftsize) ;
--      modoutbackward [l2] = modoutbackward[l2] / window[l2];
-+    for (l2 = 0; l2 < fftsize; l2++) {
-+      modoutbackward [l2] = modoutbackward[l2] / (double) fftsize;
-+      modoutbackward [l2] = modoutbackward[l2] / (double) window[l2];
-     }
- 
-     unsigned int i;
-@@ -400,13 +394,11 @@ void M_vocoder::generateCycle() {
- 
- 
-     //     Splicing the new output to the results
--    if (dynsplice == 0.0)
--      {
-+    if (dynsplice == 0.0) {
- 	//   output it as the altered modulator.
- 	for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
--	  data[0][l1][l2] = creal ( modoutbackward [l2 +
--						    fftsize/2 -
--						    synthdata->cyclesize/2 ]);
-+	  data[0][l1][l2] =
-+              modoutbackward[l2 + fftsize/2 - synthdata->cyclesize/2].real();
- 	}
- 	clomatch_index = fftsize - synthdata->cyclesize;
-       }
-@@ -421,18 +413,21 @@ void M_vocoder::generateCycle() {
- 	float tval, dtval;
- 	int searchstart;
- 	float spliceval, dspliceval;
--	searchstart = fftsize/2 - synthdata->cyclesize;
--	if (searchstart < 1) searchstart = 1;
--	clomatch_index = searchstart;
-+
-+        searchstart = fftsize/2 - synthdata->cyclesize;
-+        if (searchstart < 1)
-+            searchstart = 1;
-+
-+        clomatch_index = searchstart;
- 	spliceval = data[0][l1][synthdata->cyclesize - 1];
- 	dspliceval = spliceval - data[0][l1][synthdata->cyclesize - 2];
--	clov_sofar= fabs(creal(modoutbackward[clomatch_index])-spliceval );
-+	clov_sofar= fabs(modoutbackward[clomatch_index].real()-spliceval);
- 	for (l2 = searchstart;
- 	     l2 < (searchstart + synthdata->cyclesize);
- 	     l2++)
- 	  {
--	    tval = creal (modoutbackward[l2]);
--	    dtval = tval - creal (modoutbackward [l2-1]);
-+	    tval = modoutbackward[l2].real();
-+	    dtval = tval - modoutbackward [l2-1].real();
- 	    if (
- 		((fabs (tval - spliceval )) < clov_sofar )
- 		&& ((dtval * dspliceval ) >= 0)
-@@ -445,15 +440,15 @@ void M_vocoder::generateCycle() {
- 	  };
- 	//  fprintf (stderr, "%d %f %f ",
- 	//      clomatch_index, clov_sofar, clodv_sofar);
--	
-+
- 	//   What's our residual error, so that we can splice this
- 	//   with minimal "click"?
--	residual = + spliceval - creal( modoutbackward[clomatch_index]);
-+	residual = + spliceval - modoutbackward[clomatch_index].real();
- 
- 	//  Move our wave, with the best match so far established, to
- 	//   the output buffer area.
- 	for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
--	  data[0][l1][l2] = creal ( modoutbackward [ clomatch_index + l2])
-+	  data[0][l1][l2] = modoutbackward[clomatch_index + l2].real()
- 	    + ((1.0 - (float(l2) / float(synthdata->cyclesize))) * residual);
- 	};
- 
-@@ -466,17 +461,18 @@ void M_vocoder::generateCycle() {
-     for (l2 = 0; l2 < fftsize - synthdata->cyclesize; l2++) {
-       carrbuf [l1][l2] = carrbuf [l1][l2 + synthdata->cyclesize];
-     }
-+
-     for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
-       carrbuf [l1][l2 + fftsize - synthdata->cyclesize] = inCarrier[l1][l2];
-     }
- 
--    for (l2 = 0; l2 <  unsigned (fftsize); l2++) {
-+    for (l2 = 0; l2 < fftsize; l2++) {
-       carrinforward [l2] = carrbuf [l1][l2] * window[l2];
-     }
- 
-     fftw_execute (plancarrforward);
- 
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+    for (l2 = 0; l2 < fftsize; l2++) {
-       carrinbackward[l2] = carroutforward[l2];
-     };
- 
-@@ -486,34 +482,37 @@ void M_vocoder::generateCycle() {
-     //   Group the modulator into channels, and multipy the channels
-     //   over the carrier.
- 
--    int localchannels;
--    localchannels = channels + vcchannels * inChannels[l1][0];
--    if (localchannels < 1) localchannels = 1;
--    if (localchannels > fftsize - 1) localchannels = fftsize - 1;
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+    unsigned int localchannels = channels + vcchannels * inChannels[l1][0];
-+    if (localchannels < 1)
-+        localchannels = 1;
-+
-+    if (localchannels > fftsize - 1)
-+        localchannels = fftsize - 1;
-+
-+    for (l2 = 0; l2 < fftsize; l2++) {
-       modmap[l2] = 0;
-       //       initial conditions...
-       if (l2 == 0)
- 	for (i = 0; i < channels; i++)
--	  modmap[l2] += cabs (modoutforward[l2 + i]);
-+	  modmap[l2] += std::abs(modoutforward[l2 + i]);
-       else
- 	modmap [l2] = modmap[l2 - 1];
- 
-       //    add the heads, subtract the tails
-       i = l2 + channels;
--      if (l2 < (unsigned)fftsize - 2)
--	modmap[l2] += cabs( modoutforward [i] );
-+      if (l2 < fftsize - 2)
-+	modmap[l2] += std::abs(modoutforward[i]);
-       i = l2 - channels;
-       if (l2 >= channels)
--	modmap[l2] -= cabs( modoutforward [i] );
-+	modmap[l2] -= std::abs(modoutforward[i]);
-     }
- 
-     //   Normalize the modmap
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++)
-+    for (l2 = 0; l2 < fftsize; l2++)
-       modmap[l2] = modmap[l2] / localchannels;
- 
-     //   Do attack/release
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+    for (l2 = 0; l2 < fftsize; l2++) {
-       if (modmap [l2] > armodmap[l2])
- 	armodmap [l2] += (1 - attack) * (modmap[l2] - armodmap[l2]);
-       if (modmap [l2] < armodmap[l2])
-@@ -521,8 +520,8 @@ void M_vocoder::generateCycle() {
-     }
- 
-     //   multiply the carrier by the modulation map.
--    for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
--      carrinbackward[l2] = carroutforward[l2] * armodmap[l2];
-+    for (l2 = 0; l2 < fftsize; l2++) {
-+      carrinbackward[l2] = carroutforward[l2] * (double) armodmap[l2];
-     }
- 
-     //   reverse transform to final output, and renormalize by 1/fftsize.
-@@ -532,8 +531,7 @@ void M_vocoder::generateCycle() {
-     for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
-       offset = l2 + (fftsize/2) - (synthdata->cyclesize / 2);
-       data[1][l1][l2]=
--	(creal(carroutbackward[offset]/window[offset])) / (fftsize * 100);
-+	(carroutbackward[offset].real()/window[offset]) / (fftsize * 100);
-     };
-   };
- }
--
-diff --git a/src/m_vocoder.h b/src/m_vocoder.h
-index 38eac58..32c8521 100644
---- a/src/m_vocoder.h
-+++ b/src/m_vocoder.h
-@@ -1,4 +1,4 @@
--/* 
-+/*
-   Vocoder - derived from m_delay.cpp
- 
-   Copyright (C) 2011 Bill Yerazunis <yerazunis@yahoo.com>
-@@ -22,7 +22,9 @@
- #define M_VOCODER_H
- 
- #include "module.h"
--#include <complex.h>
-+
-+#include <vector>
-+#include <ccomplex>
- #include <fftw3.h>
- 
- #define MODULE_VOCODER_WIDTH                 105
-@@ -30,7 +32,7 @@
- 
- class M_vocoder : public Module
- {
--    Q_OBJECT 
-+    Q_OBJECT
- 
-     float channels, vcchannels;
-     float attack, release;
-@@ -42,21 +44,20 @@ class M_vocoder : public Module
- 
-     Port *port_M_modulator, *port_M_pitchshift, *port_M_freqshift,
-       *port_M_channels, *port_M_carrier;
-+
-     Port *port_modfft_out, *port_firstharmonic_out,
--      *port_altmodulator_out, 
--      *port_vocoder_out;
-+      *port_altmodulator_out, *port_vocoder_out;
- 
--    fftw_plan planmodforward, planmodbackward, 
-+    fftw_plan planmodforward, planmodbackward,
-       plancarrforward, plancarrbackward;
- 
--    fftw_complex *carrinforward, *carroutforward, 
--      *carrinbackward, *carroutbackward,
--      *modinforward, *modoutforward, 
--      *modinbackward, *modoutbackward;
-+    std::vector<std::complex<double>> carrinforward, carroutforward,
-+        carrinbackward, carroutbackward,
-+        modinforward, modoutforward,
-+        modinbackward, modoutbackward;
- 
--  public: 
--    int fftsize;
--    float **inModulator, **inPitchShift, **inFreqShift, 
-+    unsigned int fftsize;
-+    float **inModulator, **inPitchShift, **inFreqShift,
-       **inChannels, **inCarrier;
-     // the previous time-based samples, for overlapping
-     float **modbuf, **carrbuf;
-@@ -68,10 +69,10 @@ class M_vocoder : public Module
-     float *armodmap;
- 
-   public:
--    float windowcurve (int windowfunc, int len, int elem, float alpha );
-+    float windowcurve (int windowfunc, unsigned int len, int elem, float alpha );
-     M_vocoder(QWidget* parent=0, int id = 0);
-     ~M_vocoder();
-     void generateCycle();
- };
--  
-+
- #endif
diff --git a/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch b/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch
new file mode 100644
index 0000000000..79655a910b
--- /dev/null
+++ b/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -3,6 +3,10 @@
+ cmake_minimum_required (VERSION 3.1)
+ project (aws-c-event-stream C)
+ 
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/aws-checksums-cmake-prefix.patch b/gnu/packages/patches/aws-checksums-cmake-prefix.patch
new file mode 100644
index 0000000000..f6a5c9ad9c
--- /dev/null
+++ b/gnu/packages/patches/aws-checksums-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,10 @@
+     cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the compiler, see AwsCFlags
+ endif()
+ 
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/bear-disable-preinstall-tests.patch b/gnu/packages/patches/bear-disable-preinstall-tests.patch
new file mode 100644
index 0000000000..c65095405f
--- /dev/null
+++ b/gnu/packages/patches/bear-disable-preinstall-tests.patch
@@ -0,0 +1,40 @@
+From d7d0cdd48017679e8529f8475d1b9902944cf243 Mon Sep 17 00:00:00 2001
+From: Brett Gilio <brettg@gnu.org>
+Date: Sun, 20 Dec 2020 14:43:30 -0600
+Subject: [PATCH] Disallow Pre-install Checks
+
+---
+ CMakeLists.txt | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 45c6d27..73b4ace 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,10 +58,6 @@ ExternalProject_Add(BearSource
+             -DROOT_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
+             -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+             -DENABLE_UNIT_TESTS:BOOL=${ENABLE_UNIT_TESTS}
+-        TEST_BEFORE_INSTALL
+-            1
+-        TEST_COMMAND
+-            ctest # or `ctest -T memcheck`
+         )
+ 
+ # Run the functional tests
+@@ -73,12 +69,8 @@ if (ENABLE_FUNC_TESTS)
+                 BearSource
+             CMAKE_CACHE_ARGS
+                 -DSTAGED_INSTALL_PREFIX:PATH=${STAGED_INSTALL_PREFIX}
+-            TEST_BEFORE_INSTALL
+-                1
+             INSTALL_COMMAND
+                 ""
+-            TEST_COMMAND
+-                ctest --verbose
+             )
+ endif ()
+ 
+-- 
+2.29.2
+
diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch
index 9a6e40df4b..73e87b9612 100644
--- a/gnu/packages/patches/icecat-makeicecat.patch
+++ b/gnu/packages/patches/icecat-makeicecat.patch
@@ -25,7 +25,7 @@ index 8be2362..48716f2 100755
 -wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
 -gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
 -gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
--echo -n 51f54ff608aa09de07b304307581ae89112781597322b8999b3099cfabf48290 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
+-echo -n 5e69f9bfd1a35decdae8d4b28da8100820e58b429f539fa9884802347631cf53 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 -
 -echo Extracting Firefox tarball
 -tar -xf firefox-${FFVERSION}esr.source.tar.xz
@@ -37,7 +37,7 @@ index 8be2362..48716f2 100755
 +# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
 +# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
 +# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
-+# echo -n 51f54ff608aa09de07b304307581ae89112781597322b8999b3099cfabf48290 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
++# echo -n 5e69f9bfd1a35decdae8d4b28da8100820e58b429f539fa9884802347631cf53 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 +# 
 +# echo Extracting Firefox tarball
 +# tar -xf firefox-${FFVERSION}esr.source.tar.xz
diff --git a/gnu/packages/patches/libffi-float128-powerpc64le.patch b/gnu/packages/patches/libffi-float128-powerpc64le.patch
new file mode 100644
index 0000000000..4fd32b0102
--- /dev/null
+++ b/gnu/packages/patches/libffi-float128-powerpc64le.patch
@@ -0,0 +1,58 @@
+From de93adfb6f48100946bba2c3abad2a77a0cfde0b Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 24 Nov 2019 09:52:01 +0100
+Subject: [PATCH] ffi_powerpc.h: fix build failure with powerpc7
+
+This is a patch pulled down from the following:
+https://github.com/buildroot/buildroot/blob/78926f610b1411b03464152472fd430012deb9ac/package/libffi/0004-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
+
+This issue is being hit on OpenBMC code when pulling the latest
+libffi tag and building on a P8 ppc64le machine. I verified this
+patch fixes the issue we are seeing.
+
+Below is the original commit message:
+
+Sicne commit 73dd43afc8a447ba98ea02e9aad4c6898dc77fb0, build on powerpc7
+fails on:
+
+In file included from ../src/powerpc/ffi.c:33:0:
+../src/powerpc/ffi_powerpc.h:61:9: error: '_Float128' is not supported on this target
+ typedef _Float128 float128;
+         ^~~~~~~~~
+
+Fix this build failure by checking for __HAVE_FLOAT128 before using
+_Float128, as _Float128 is enabled only on specific conditions, see
+output/host/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/floatn.h:
+
+ /* Defined to 1 if the current compiler invocation provides a
+    floating-point type with the IEEE 754 binary128 format, and this glibc
+    includes corresponding *f128 interfaces for it.  */
+ #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \
+     && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH
+ # define __HAVE_FLOAT128 1
+ #else
+ # define __HAVE_FLOAT128 0
+ #endif
+
+Fixes:
+ - http://autobuild.buildroot.org/results/5c9dd8fb3b6a128882b6250f197c80232d8a3b53
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
+---
+ src/powerpc/ffi_powerpc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
+index 8e2f2f0e..960a5c42 100644
+--- a/src/powerpc/ffi_powerpc.h
++++ b/src/powerpc/ffi_powerpc.h
+@@ -57,7 +57,7 @@ typedef union
+   double d;
+ } ffi_dblfl;
+ 
+-#if defined(__FLOAT128_TYPE__)
++#if defined(__FLOAT128_TYPE__) && defined(__HAVE_FLOAT128)
+ typedef _Float128 float128;
+ #elif defined(__FLOAT128__)
+ typedef __float128 float128;
diff --git a/gnu/packages/patches/purescript-relax-dependencies.patch b/gnu/packages/patches/purescript-relax-dependencies.patch
index 11c4a3c3fc..6ab4716fc4 100644
--- a/gnu/packages/patches/purescript-relax-dependencies.patch
+++ b/gnu/packages/patches/purescript-relax-dependencies.patch
@@ -1,41 +1,39 @@
 Allow the purescript dependencies to better match the available packages in
 Guix.
 
-diff --git purescript-0.13.6/purescript.cabal purescript-0.13.6/purescript.cabal.orig
-index 7e38070..0724a0b 100644
---- purescript-0.13.6/purescript.cabal
-+++ purescript-0.13.6/purescript.cabal.orig
-@@ -1167,1 +1167,1 @@ library
+--- purescript-0.13.8/purescript.cabal
++++ purescript-0.13.8/purescript.cabal.orig
+@@ -1091 +1091 @@ library
 -        Glob ==0.9.*,
 +        Glob ==0.10.*,
-@@ -1171,1 +1171,1 @@ library
+@@ -1095 +1095 @@ library
 -        ansi-terminal >=0.7.1 && <0.9,
 +        ansi-terminal ==0.9.*,
-@@ -1180,1 +1180,1 @@ library
+@@ -1105 +1105 @@ library
 -        clock <0.8,
 +        clock ==0.8.*,
-@@ -1246,1 +1246,1 @@ executable purs
+@@ -1173 +1173 @@ executable purs
 -        Glob ==0.9.*,
 +        Glob ==0.10.*,
-@@ -1250,1 +1250,1 @@ executable purs
+@@ -1177 +1177 @@ executable purs
 -        ansi-terminal >=0.7.1 && <0.9,
 +        ansi-terminal ==0.9.*,
-@@ -1260,1 +1260,1 @@ executable purs
+@@ -1188 +1188 @@ executable purs
 -        clock <0.8,
 +        clock ==0.8.*,
-@@ -1281,1 +1281,1 @@ executable purs
+@@ -1209 +1209 @@ executable purs
 -        network >=3.0.1.1 && <3.1,
 +        network >=2.8 && <3.1,
-@@ -1358,1 +1358,1 @@ test-suite tests
+@@ -1288 +1288 @@ test-suite tests
 -        Glob ==0.9.*,
 +        Glob ==0.10.*,
-@@ -1363,1 +1363,1 @@ test-suite tests
+@@ -1293 +1293 @@ test-suite tests
 -        ansi-terminal >=0.7.1 && <0.9,
 +        ansi-terminal ==0.9.*,
-@@ -1372,1 +1372,1 @@ test-suite tests
+@@ -1303 +1303 @@ test-suite tests
 -        clock <0.8,
 +        clock ==0.8.*,
-@@ -1384,2 +1384,2 @@ test-suite tests
+@@ -1315,2 +1315,2 @@ test-suite tests
 -        hspec <2.7,
 -        hspec-discover <2.7,
 +        hspec ==2.7.*,
diff --git a/gnu/packages/patches/python-3.9-fix-tests.patch b/gnu/packages/patches/python-3.9-fix-tests.patch
new file mode 100644
index 0000000000..dc6b8c4cc8
--- /dev/null
+++ b/gnu/packages/patches/python-3.9-fix-tests.patch
@@ -0,0 +1,370 @@
+See the discussion about the issues fixed here at:
+http://bugs.python.org/issue20868 .
+
+diff --git a/Lib/ctypes/test/test_callbacks.py b/Lib/ctypes/test/test_callbacks.py
+--- a/Lib/ctypes/test/test_callbacks.py
++++ b/Lib/ctypes/test/test_callbacks.py
+@@ -3,6 +3,7 @@ import unittest
+ from ctypes import *
+ from ctypes.test import need_symbol
+ import _ctypes_test
++import platform
+
+ class Callbacks(unittest.TestCase):
+     functype = CFUNCTYPE
+@@ -176,6 +177,8 @@ class SampleCallbacksTestCase(unittest.TestCase):
+
+         self.assertLess(diff, 0.01, "%s not less than 0.01" % diff)
+
++    @unittest.skipIf(platform.machine() in ['mips64'],
++                     "This test fails on this platform")
+     def test_issue_8959_a(self):
+         from ctypes.util import find_library
+         libc_path = find_library("c")
+diff --git a/Lib/ctypes/test/test_libc.py b/Lib/ctypes/test/test_libc.py
+--- a/Lib/ctypes/test/test_libc.py
++++ b/Lib/ctypes/test/test_libc.py
+@@ -2,6 +2,7 @@ import unittest
+
+ from ctypes import *
+ import _ctypes_test
++import platform
+
+ lib = CDLL(_ctypes_test.__file__)
+
+@@ -17,6 +18,8 @@ class LibTest(unittest.TestCase):
+         import math
+         self.assertEqual(lib.my_sqrt(2.0), math.sqrt(2.0))
+
++    @unittest.skipIf(platform.machine() in ['mips64'],
++                     "This test fails on this platform")
+     def test_qsort(self):
+         comparefunc = CFUNCTYPE(c_int, POINTER(c_char), POINTER(c_char))
+         lib.my_qsort.argtypes = c_void_p, c_size_t, c_size_t, comparefunc
+diff --git a/Lib/distutils/tests/test_archive_util.py b/Lib/distutils/tests/test_archive_util.py
+--- a/Lib/distutils/tests/test_archive_util.py
++++ b/Lib/distutils/tests/test_archive_util.py
+@@ -333,6 +333,7 @@ class ArchiveUtilTestCase(support.TempdirManager,
+         self.assertEqual(os.path.basename(res), 'archive.tar.xz')
+         self.assertEqual(self._tarinfo(res), self._created_files)
+
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     def test_make_archive_owner_group(self):
+         # testing make_archive with owner and group, with various combinations
+         # this works even if there's not gid/uid support
+@@ -362,6 +363,7 @@ class ArchiveUtilTestCase(support.TempdirManager,
+
+     @unittest.skipUnless(ZLIB_SUPPORT, "Requires zlib")
+     @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     def test_tarfile_root_owner(self):
+         tmpdir =  self._create_files()
+         base_name = os.path.join(self.mkdtemp(), 'archive')
+diff --git a/Lib/distutils/tests/test_sdist.py b/Lib/distutils/tests/test_sdist.py
+--- a/Lib/distutils/tests/test_sdist.py
++++ b/Lib/distutils/tests/test_sdist.py
+@@ -443,6 +443,7 @@ class SDistTestCase(BasePyPIRCCommandTestCase):
+                      "The tar command is not found")
+     @unittest.skipIf(find_executable('gzip') is None,
+                      "The gzip command is not found")
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     def test_make_distribution_owner_group(self):
+         # now building a sdist
+         dist, cmd = self.get_cmd()
+diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
+--- a/Lib/test/_test_multiprocessing.py
++++ b/Lib/test/_test_multiprocessing.py
+@@ -1473,6 +1473,7 @@ class _TestCondition(BaseTestCase):
+         if pid is not None:
+             os.kill(pid, signal.SIGINT)
+
++    @unittest.skipIf(True, "This fails for unknown reasons on Guix")
+     def test_wait_result(self):
+         if isinstance(self, ProcessesMixin) and sys.platform != 'win32':
+             pid = os.getpid()
+diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
+--- a/Lib/test/test_asyncio/test_base_events.py
++++ b/Lib/test/test_asyncio/test_base_events.py
+@@ -1323,6 +1323,8 @@ class BaseEventLoopWithSelectorTests(test_utils.TestCase):
+         self._test_create_connection_ip_addr(m_socket, False)
+
+     @patch_socket
++    @unittest.skipUnless(support.is_resource_enabled('network'),
++                         'network is not enabled')
+     def test_create_connection_service_name(self, m_socket):
+         m_socket.getaddrinfo = socket.getaddrinfo
+         sock = m_socket.socket.return_value
+diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
+--- a/Lib/test/test_generators.py
++++ b/Lib/test/test_generators.py
+@@ -34,6 +34,7 @@ class SignalAndYieldFromTest(unittest.TestCase):
+         else:
+             return "FAILED"
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment')
+     def test_raise_and_yield_from(self):
+         gen = self.generator1()
+         gen.send(None)
+diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
+--- a/Lib/test/test_pathlib.py
++++ b/Lib/test/test_pathlib.py
+@@ -2134,8 +2134,7 @@ class PosixPathTest(_BasePathTest, unittest.TestCase):
+         self.assertEqual(given, expect)
+         self.assertEqual(set(p.rglob("FILEd*")), set())
+
+-    @unittest.skipUnless(hasattr(pwd, 'getpwall'),
+-                         'pwd module does not expose getpwall()')
++    @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests")
+     def test_expanduser(self):
+         P = self.cls
+         support.import_module('pwd')
+diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
+--- a/Lib/test/test_pdb.py
++++ b/Lib/test/test_pdb.py
+@@ -1150,11 +1150,11 @@ def test_pdb_issue_20766():
+     > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
+     -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+     (Pdb) continue
+-    pdb 1: <built-in function default_int_handler>
++    pdb 1: Handlers.SIG_IGN
+     > <doctest test.test_pdb.test_pdb_issue_20766[0]>(5)test_function()
+     -> sess.set_trace(sys._getframe())
+     (Pdb) continue
+-    pdb 2: <built-in function default_int_handler>
++    pdb 2: Handlers.SIG_IGN
+     """
+
+
+diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
+--- a/Lib/test/test_regrtest.py
++++ b/Lib/test/test_regrtest.py
+@@ -762,6 +762,7 @@ class ArgsTestCase(BaseTestCase):
+         output = self.run_tests('--fromfile', filename)
+         self.check_executed_tests(output, tests)
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+     def test_interrupted(self):
+         code = TEST_INTERRUPTED
+         test = self.create_test('sigint', code=code)
+@@ -779,6 +780,7 @@ class ArgsTestCase(BaseTestCase):
+                  % (self.TESTNAME_REGEX, len(tests)))
+         self.check_line(output, regex)
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+     def test_slowest_interrupted(self):
+         # Issue #25373: test --slowest with an interrupted test
+         code = TEST_INTERRUPTED
+diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
+--- a/Lib/test/test_resource.py
++++ b/Lib/test/test_resource.py
+@@ -145,6 +145,7 @@ class ResourceTest(unittest.TestCase):
+
+     @unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit')
+     @support.requires_linux_version(2, 6, 36)
++    @unittest.skipIf(True, "Bug: the PermissionError is not raised")
+     def test_prlimit(self):
+         self.assertRaises(TypeError, resource.prlimit)
+         self.assertRaises(ProcessLookupError, resource.prlimit,
+diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
+--- a/Lib/test/test_shutil.py
++++ b/Lib/test/test_shutil.py
+@@ -1428,6 +1428,7 @@ class TestArchives(BaseTest, unittest.TestCase):
+         self.assertRaises(ValueError, make_archive, base_name, 'xxx')
+
+     @support.requires_zlib()
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     def test_make_archive_owner_group(self):
+         # testing make_archive with owner and group, with various combinations
+         # this works even if there's not gid/uid support
+@@ -1456,6 +1457,7 @@ class TestArchives(BaseTest, unittest.TestCase):
+
+
+     @support.requires_zlib()
++    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+     @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
+     def test_tarfile_root_owner(self):
+         root_dir, base_dir = self._create_files()
+diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py
+--- a/Lib/test/test_unicodedata.py
++++ b/Lib/test/test_unicodedata.py
+@@ -320,6 +320,7 @@ class NormalizationTest(unittest.TestCase):
+         data = [int(x, 16) for x in data.split(" ")]
+         return "".join([chr(x) for x in data])
+
++    @unittest.skipIf(True, 'Network is not available in the Guix build environment')
+     def test_normalization(self):
+         TESTDATAFILE = "NormalizationTest.txt"
+         TESTDATAURL = f"http://www.pythontest.net/unicode/{unicodedata.unidata_version}/{TESTDATAFILE}"
+diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
+--- a/Lib/test/test_socket.py
++++ b/Lib/test/test_socket.py
+@@ -875,6 +875,8 @@ class GeneralModuleTests(unittest.TestCase):
+         if not fqhn in all_host_names:
+             self.fail("Error testing host resolution mechanisms. (fqdn: %s, all: %s)" % (fqhn, repr(all_host_names)))
+
++    @unittest.skipUnless(support.is_resource_enabled('network'),
++                         'network is not enabled')
+     def test_host_resolution(self):
+         for addr in [support.HOSTv4, '10.0.0.1', '255.255.255.255']:
+             self.assertEqual(socket.gethostbyname(addr), addr)
+@@ -1004,6 +1006,8 @@ class GeneralModuleTests(unittest.TestCase):
+             self.assertWarns(DeprecationWarning, socket.ntohs, k)
+             self.assertWarns(DeprecationWarning, socket.htons, k)
+
++    @unittest.skipUnless(os.path.exists("/etc/services"),
++                         "getservbyname uses /etc/services, which is not in the chroot")
+     def testGetServBy(self):
+         eq = self.assertEqual
+         # Find one service that exists, then check all the related interfaces.
+@@ -1358,6 +1362,8 @@ class GeneralModuleTests(unittest.TestCase):
+             raise
+         self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None)
+
++    @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++                         "getaddrinfo() will fail")
+     def testGetaddrinfo(self):
+         try:
+             socket.getaddrinfo('localhost', 80)
+@@ -1440,6 +1446,8 @@ class GeneralModuleTests(unittest.TestCase):
+         # only IP addresses are allowed
+         self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0)
+
++    @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++                         "getaddrinfo() will fail")
+     @unittest.skipUnless(support.is_resource_enabled('network'),
+                          'network is not enabled')
+     def test_idna(self):
+diff --git a/Lib/test/test_spwd.py b/Lib/test/test_spwd.py
+--- a/Lib/test/test_spwd.py
++++ b/Lib/test/test_spwd.py
+@@ -5,8 +5,7 @@ from test import support
+ spwd = support.import_module('spwd')
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
+-                     'root privileges required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdRoot(unittest.TestCase):
+
+     def test_getspall(self):
+@@ -56,8 +55,7 @@ class TestSpwdRoot(unittest.TestCase):
+             self.assertRaises(TypeError, spwd.getspnam, bytes_name)
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() != 0,
+-                     'non-root user required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdNonRoot(unittest.TestCase):
+
+     def test_getspnam_exception(self):
+diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
+--- a/Lib/test/test_tarfile.py
++++ b/Lib/test/test_tarfile.py
+@@ -2509,9 +2509,12 @@ def root_is_uid_gid_0():
+         import pwd, grp
+     except ImportError:
+         return False
+-    if pwd.getpwuid(0)[0] != 'root':
+-        return False
+-    if grp.getgrgid(0)[0] != 'root':
++    try:
++        if pwd.getpwuid(0)[0] != 'root':
++            return False
++        if grp.getgrgid(0)[0] != 'root':
++            return False
++    except KeyError:
+         return False
+     return True
+
+diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
+--- a/Lib/test/test_threading.py
++++ b/Lib/test/test_threading.py
+@@ -1249,6 +1249,7 @@ class MiscTestCase(unittest.TestCase):
+
+
+ class InterruptMainTests(unittest.TestCase):
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+     def test_interrupt_main_subthread(self):
+         # Calling start_new_thread with a function that executes interrupt_main
+         # should raise KeyboardInterrupt upon completion.
+@@ -1260,6 +1261,8 @@ class InterruptMainTests(unittest.TestCase):
+             t.join()
+         t.join()
+
++
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+     def test_interrupt_main_mainthread(self):
+         # Make sure that if interrupt_main is called in main thread that
+         # KeyboardInterrupt is raised instantly.
+diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py
+--- a/Tools/scripts/run_tests.py
++++ b/Tools/scripts/run_tests.py
+@@ -39,7 +39,7 @@ def main(regrtest_args):
+     if not any(is_multiprocess_flag(arg) for arg in regrtest_args):
+         args.extend(['-j', '0'])  # Use all CPU cores
+     if not any(is_resource_use_flag(arg) for arg in regrtest_args):
+-        args.extend(['-u', 'all,-largefile,-audio,-gui'])
++        args.extend(['-u', 'all,-largefile,-audio,-gui,-network'])
+     args.extend(regrtest_args)
+     print(' '.join(args))
+     if sys.platform == 'win32':
+diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
+index 1474624..887f8ee 100644
+--- a/Lib/test/_test_multiprocessing.py
++++ b/Lib/test/_test_multiprocessing.py
+@@ -3801,6 +3801,7 @@ class _TestSharedMemory(BaseTestCase):
+         sms.close()
+
+     @unittest.skipIf(os.name != "posix", "not feasible in non-posix platforms")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_shared_memory_SharedMemoryServer_ignores_sigint(self):
+         # bpo-36368: protect SharedMemoryManager server process from
+         # KeyboardInterrupt signals.
+diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
+index d41e94b..a1c15e7 100644
+--- a/Lib/test/test_signal.py
++++ b/Lib/test/test_signal.py
+@@ -78,6 +78,7 @@ class PosixTests(unittest.TestCase):
+         self.assertLess(len(s), signal.NSIG)
+
+     @unittest.skipUnless(sys.executable, "sys.executable required.")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_keyboard_interrupt_exit_code(self):
+         """KeyboardInterrupt triggers exit via SIGINT."""
+         process = subprocess.run(
+@@ -128,6 +129,7 @@ class WindowsSignalTests(unittest.TestCase):
+             signal.signal(7, handler)
+
+     @unittest.skipUnless(sys.executable, "sys.executable required.")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_keyboard_interrupt_exit_code(self):
+         """KeyboardInterrupt triggers an exit using STATUS_CONTROL_C_EXIT."""
+         # We don't test via os.kill(os.getpid(), signal.CTRL_C_EVENT) here
+@@ -1245,6 +1247,7 @@ class StressTest(unittest.TestCase):
+
+ class RaiseSignalTest(unittest.TestCase):
+
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_sigint(self):
+         with self.assertRaises(KeyboardInterrupt):
+             signal.raise_signal(signal.SIGINT)
+@@ -1279,6 +1279,7 @@ class PidfdSignalTest(unittest.TestCase):
+         hasattr(signal, "pidfd_send_signal"),
+         "pidfd support not built in",
+     )
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_pidfd_send_signal(self):
+         with self.assertRaises(OSError) as cm:
+             signal.pidfd_send_signal(0, signal.SIGINT)
+diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py
+index 92ac184..49eec2c 100644
+--- a/Lib/ctypes/test/test_find.py
++++ b/Lib/ctypes/test/test_find.py
+@@ -116,6 +116,7 @@ class FindLibraryLinux(unittest.TestCase):
+         with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None):
+             self.assertNotEqual(find_library('c'), None)
+
++    @unittest.skipIf(True, "This fails for unknown reasons on Guix")
+     def test_find_library_with_ld(self):
+         with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \
+              unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None):
diff --git a/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch b/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch
new file mode 100644
index 0000000000..7221fdd608
--- /dev/null
+++ b/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch
@@ -0,0 +1,36 @@
+From ed09f3c91e915c3b436854a7936566edceb3e8de Mon Sep 17 00:00:00 2001
+From: Efraim Flashner <efraim@flashner.co.il>
+Date: Tue, 15 Dec 2020 10:09:45 +0200
+Subject: [PATCH] remove blas-src dependency
+
+---
+ Cargo.toml | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 1f3e1b6..36bc816 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -37,10 +37,6 @@ debug = true
+ name = "ndarray"
+ test = true
+ bench = false
+-[dependencies.blas-src]
+-version = "0.2.0"
+-optional = true
+-default-features = false
+ 
+ [dependencies.cblas-sys]
+ version = "0.1.4"
+@@ -78,7 +74,7 @@ default-features = false
+ version = "0.1"
+ 
+ [features]
+-blas = ["cblas-sys", "blas-src"]
++blas = ["cblas-sys"]
+ docs = ["rustc-serialize", "serde-1"]
+ serde-1 = ["serde"]
+ test = ["test-blas-openblas-sys"]
+-- 
+2.29.2
+
diff --git a/gnu/packages/patches/sdcc-disable-non-free-code.patch b/gnu/packages/patches/sdcc-disable-non-free-code.patch
index 545f0cbd69..ad9a3e7a9e 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 4c75cfa..9fa306d 100644
+index 412fd5a..81bbd61 100644
 --- a/Makefile.common.in
 +++ b/Makefile.common.in
-@@ -65,7 +65,6 @@ OPT_DISABLE_PACKIHX     = @OPT_DISABLE_PACKIHX@
+@@ -69,7 +69,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 4c75cfa..9fa306d 100644
  SLIB                    = $(top_builddir)/support/util
  
 diff --git a/Makefile.in b/Makefile.in
-index aac442e..dd73e40 100644
+index f3b028d..cfdf06d 100644
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -82,9 +82,6 @@ endif
+@@ -100,9 +100,6 @@ endif
  ifeq ($(OPT_DISABLE_DEVICE_LIB), 0)
  TARGETS        += sdcc-device-lib
  PKGS           += device/lib
@@ -40,17 +40,17 @@ index aac442e..dd73e40 100644
  endif
  
  ifeq ($(OPT_DISABLE_PACKIHX), 0)
-@@ -105,9 +102,6 @@ endif
+@@ -123,9 +120,6 @@ endif
  TARGETS        += sdcc-libs sdcc-cc sdcc-device-inc sdcc-as sdcc-ld sdcc-scripts
  
  PKGS           += $(SDCC_LIBS) src device/include
 -ifeq ($(OPT_DISABLE_NON_FREE), 0)
 -PKGS           += device/non-free/include
 -endif
- PKGS           += $(SDCC_AS) sdas/linksrc $(SDCC_LIBRARIAN) $(SDCC_SCRIPTS)
+ PKGS           += $(SDCC_AS) sdas/linksrc $(SDCC_SCRIPTS)
  
  PORTS           = $(shell cat ports.build)
-@@ -156,21 +150,12 @@ sdcc-sdbinutils:
+@@ -171,21 +165,12 @@ sdcc-sdbinutils:
  
  sdcc-device-inc:
  	$(MAKE) -C device/include
@@ -73,7 +73,7 @@ index aac442e..dd73e40 100644
  
  # doc depends on latex and latex2html
 diff --git a/configure b/configure
-index 42b1c7d..00ecb51 100755
+index 43ccb6f..d345f54 100755
 --- a/configure
 +++ b/configure
 @@ -632,7 +632,6 @@ LATEX
@@ -84,7 +84,7 @@ index 42b1c7d..00ecb51 100755
  OPT_DISABLE_SDBINUTILS
  OPT_DISABLE_SDCDB
  OPT_DISABLE_SDCPP
-@@ -654,10 +653,7 @@ OPT_DISABLE_R2K
+@@ -659,10 +658,7 @@ OPT_DISABLE_R2K
  OPT_DISABLE_Z180
  OPT_DISABLE_Z80
  OPT_DISABLE_MCS51
@@ -95,7 +95,7 @@ index 42b1c7d..00ecb51 100755
  include_dir_suffix
  inclib_dir_suffix
  LIB_TYPE
-@@ -771,7 +767,6 @@ enable_packihx
+@@ -780,7 +776,6 @@ enable_packihx
  enable_sdcpp
  enable_sdcdb
  enable_sdbinutils
@@ -103,7 +103,7 @@ index 42b1c7d..00ecb51 100755
  enable_doc
  enable_libgc
  '
-@@ -792,10 +787,7 @@ sdccconf_h_dir_separator
+@@ -801,10 +796,7 @@ sdccconf_h_dir_separator
  LIB_TYPE
  inclib_dir_suffix
  include_dir_suffix
@@ -114,7 +114,7 @@ index 42b1c7d..00ecb51 100755
  docdir'
  ac_subdirs_all='support/cpp
  support/packihx
-@@ -803,9 +795,7 @@ sim/ucsim
+@@ -812,9 +804,7 @@ sim/ucsim
  debugger/mcs51
  support/sdbinutils
  device/lib/pic14
@@ -125,7 +125,7 @@ index 42b1c7d..00ecb51 100755
  
  # Initialize some variables set by options.
  ac_init_help=
-@@ -1452,7 +1442,6 @@ Optional Features:
+@@ -1455,7 +1445,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 42b1c7d..00ecb51 100755
    --enable-doc            Enables building the documentation
    --enable-libgc          Use the Bohem memory allocator. Lower runtime
                            footprint.
-@@ -1481,16 +1470,8 @@ Some influential environment variables:
+@@ -1484,16 +1473,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 42b1c7d..00ecb51 100755
    docdir      documentation installation directory
  
  Use these variables to override the choices made by `configure' or to help
-@@ -7236,19 +7217,6 @@ if test "${include_dir_suffix}" = ""; then
+@@ -7134,19 +7115,6 @@ if test "${include_dir_suffix}" = ""; then
      include_dir_suffix="${inclib_dir_suffix}/include"
  fi
  
@@ -170,7 +170,7 @@ index 42b1c7d..00ecb51 100755
  # lib_dir_suffix:
  # *nix default: "sdcc/lib"
  
-@@ -7256,13 +7224,6 @@ if test "${lib_dir_suffix}" = ""; then
+@@ -7154,13 +7122,6 @@ if test "${lib_dir_suffix}" = ""; then
      lib_dir_suffix="${inclib_dir_suffix}/lib"
  fi
  
@@ -184,7 +184,7 @@ index 42b1c7d..00ecb51 100755
  # docdir:
  # *nix default: "${datadir}/sdcc/doc"
  
-@@ -7429,24 +7390,6 @@ cat >>confdefs.h <<_ACEOF
+@@ -7327,24 +7288,6 @@ cat >>confdefs.h <<_ACEOF
  #define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}"
  _ACEOF
  
@@ -209,7 +209,7 @@ index 42b1c7d..00ecb51 100755
  
  norm_lib_dir_suffix=${lib_dir_suffix}
  case ":$norm_lib_dir_suffix:" in
-@@ -7466,24 +7409,6 @@ cat >>confdefs.h <<_ACEOF
+@@ -7364,24 +7307,6 @@ cat >>confdefs.h <<_ACEOF
  #define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}"
  _ACEOF
  
@@ -234,7 +234,7 @@ index 42b1c7d..00ecb51 100755
  
  # relative paths
  for _lcl_i in expanded_bindir:expanded_datadir:bin2data_dir; do
-@@ -8411,28 +8336,6 @@ _ACEOF
+@@ -8439,28 +8364,6 @@ _ACEOF
  
  
  
@@ -263,7 +263,7 @@ index 42b1c7d..00ecb51 100755
  
    # Check whether --enable-doc was given.
  if test "${enable_doc+set}" = set; then :
-@@ -8827,20 +8730,12 @@ if test $OPT_DISABLE_PIC14 = 0; then
+@@ -8855,20 +8758,12 @@ if test $OPT_DISABLE_PIC14 = 0; then
  
    test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic14"
  
@@ -283,15 +283,15 @@ index 42b1c7d..00ecb51 100755
 -
  fi
  
- if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0; then
-@@ -8885,15 +8780,9 @@ fi
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0; then
+@@ -8945,15 +8840,9 @@ fi
  
  test $OPT_DISABLE_DEVICE_LIB = 0 && ac_config_files="$ac_config_files device/lib/Makefile"
  
 -test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && ac_config_files="$ac_config_files device/non-free/lib/Makefile"
 -
  
- ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile device/include/Makefile sdas/linksrc/Makefile support/librarian/Makefile support/makebin/Makefile support/regression/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in"
+ ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile device/include/Makefile sdas/linksrc/Makefile support/makebin/Makefile support/regression/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in"
  
 -if test $OPT_DISABLE_NON_FREE = 0; then
 -  ac_config_files="$ac_config_files device/non-free/include/Makefile"
@@ -300,15 +300,15 @@ index 42b1c7d..00ecb51 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
-@@ -9621,7 +9510,6 @@ do
-     "sdas/asstm8/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/asstm8/Makefile" ;;
-     "device/lib/stm8/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/stm8/Makefile" ;;
+@@ -9692,7 +9581,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" ;;
 -    "device/non-free/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/lib/Makefile" ;;
      "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" ;;
-@@ -9634,7 +9522,6 @@ do
+@@ -9704,7 +9592,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 +316,7 @@ index 42b1c7d..00ecb51 100755
  
    *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
    esac
-@@ -10443,54 +10330,6 @@ esac
+@@ -10513,54 +10400,6 @@ esac
  incPath3=`echo "$incPath3" | sed 's,\\\\\\\\,\\\\,g'`
  
  
@@ -371,7 +371,7 @@ index 42b1c7d..00ecb51 100755
  
  libPath1=`echo "/${prefix2data_dir}/${norm_lib_dir_suffix}" | sed 's,/\./,/,g'`
  case ":$libPath1:" in
-@@ -10540,54 +10379,6 @@ esac
+@@ -10610,54 +10449,6 @@ esac
  libPath3=`echo "$libPath3" | sed 's,\\\\\\\\,\\\\,g'`
  
  
@@ -426,15 +426,15 @@ index 42b1c7d..00ecb51 100755
  { $as_echo "$as_me:${as_lineno-$LINENO}: result:
  sdcc ${VERSION} is now configured for
  
-@@ -10618,7 +10409,6 @@ sdcc ${VERSION} is now configured for
-     tlcs90              ${enable_tlcs90_port}
-     stm8                ${enable_stm8_port}
+@@ -10694,7 +10485,6 @@ sdcc ${VERSION} is now configured for
+     pdk15               ${enable_pdk15_port}
+     pdk16               ${enable_pdk16_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}
-@@ -10633,9 +10423,6 @@ sdcc ${VERSION} is now configured for
+@@ -10709,9 +10499,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 +444,7 @@ index 42b1c7d..00ecb51 100755
      documentation:          ${docdir}
  
      prefix:             ${prefix}
-@@ -10647,15 +10434,9 @@ sdcc ${VERSION} is now configured for
+@@ -10723,15 +10510,9 @@ sdcc ${VERSION} is now configured for
      include files:      ${incPath1}
                          path(argv[0])${incPath2}
                          ${incPath3}
@@ -460,15 +460,15 @@ index 42b1c7d..00ecb51 100755
  " >&5
  $as_echo "
  sdcc ${VERSION} is now configured for
-@@ -10687,7 +10468,6 @@ sdcc ${VERSION} is now configured for
-     tlcs90              ${enable_tlcs90_port}
-     stm8                ${enable_stm8_port}
+@@ -10769,7 +10550,6 @@ sdcc ${VERSION} is now configured for
+     pdk15               ${enable_pdk15_port}
+     pdk16               ${enable_pdk16_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}
-@@ -10702,9 +10482,6 @@ sdcc ${VERSION} is now configured for
+@@ -10784,9 +10564,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 +478,7 @@ index 42b1c7d..00ecb51 100755
      documentation:          ${docdir}
  
      prefix:             ${prefix}
-@@ -10716,14 +10493,8 @@ sdcc ${VERSION} is now configured for
+@@ -10798,14 +10575,8 @@ sdcc ${VERSION} is now configured for
      include files:      ${incPath1}
                          path(argv[0])${incPath2}
                          ${incPath3}
@@ -494,10 +494,10 @@ index 42b1c7d..00ecb51 100755
  " >&6; }
  # End of configure/configure.in
 diff --git a/configure.ac b/configure.ac
-index 3a16e42..bfba129 100644
+index 2185793..76ab155 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -588,19 +588,6 @@ if test "${include_dir_suffix}" = ""; then
+@@ -544,19 +544,6 @@ if test "${include_dir_suffix}" = ""; then
      include_dir_suffix="${inclib_dir_suffix}/include"
  fi
  
@@ -517,7 +517,7 @@ index 3a16e42..bfba129 100644
  # lib_dir_suffix:
  # *nix default: "sdcc/lib"
  AC_ARG_VAR([lib_dir_suffix], [appended to datadir to define SDCC's library root directory])
-@@ -608,13 +595,6 @@ if test "${lib_dir_suffix}" = ""; then
+@@ -564,13 +551,6 @@ if test "${lib_dir_suffix}" = ""; then
      lib_dir_suffix="${inclib_dir_suffix}/lib"
  fi
  
@@ -531,7 +531,7 @@ index 3a16e42..bfba129 100644
  # docdir:
  # *nix default: "${datadir}/sdcc/doc"
  AC_ARG_VAR([docdir], [documentation installation directory])
-@@ -655,19 +635,11 @@ norm_inc_dir_suffix=${include_dir_suffix}
+@@ -611,19 +591,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 +551,7 @@ index 3a16e42..bfba129 100644
  
  # relative paths
  adl_COMPUTE_RELATIVE_PATHS([expanded_bindir:expanded_datadir:bin2data_dir])
-@@ -836,7 +808,6 @@ AC_DO_DISABLER(packihx,    PACKIHX,    [Disables building packihx])
+@@ -797,7 +769,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 +559,7 @@ index 3a16e42..bfba129 100644
  
  AC_DO_ENABLER(doc,   DOC,   [Enables building the documentation])
  AC_CHECK_PROG([LYX],        [lyx],        [lyx],        [:])
-@@ -907,16 +878,10 @@ if test $OPT_DISABLE_PIC14 = 0; then
+@@ -868,16 +839,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,17 +574,17 @@ index 3a16e42..bfba129 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_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0; then
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0; then
    AC_CONFIG_FILES([src/z80/Makefile])
-@@ -951,7 +916,6 @@ if test $OPT_DISABLE_STM8 = 0; then
- fi
+@@ -939,7 +904,6 @@ fi
+ 
  
  test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_FILES([device/lib/Makefile])
 -test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && AC_CONFIG_FILES([device/non-free/lib/Makefile])
  
  AC_CONFIG_FILES([main.mk:main_in.mk
  src/Makefile
-@@ -966,9 +930,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in
+@@ -953,9 +917,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in
  Makefile
  Makefile.common:Makefile.common.in
  ])
@@ -594,7 +594,7 @@ index 3a16e42..bfba129 100644
  AC_OUTPUT
  
  # I found no better place
-@@ -986,16 +947,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir},                         [binPath],  [
+@@ -973,16 +934,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 +611,15 @@ index 3a16e42..bfba129 100644
  
  AC_MSG_RESULT([
  sdcc ${VERSION} is now configured for
-@@ -1027,7 +982,6 @@ sdcc ${VERSION} is now configured for
-     tlcs90              ${enable_tlcs90_port}
-     stm8                ${enable_stm8_port}
+@@ -1020,7 +975,6 @@ sdcc ${VERSION} is now configured for
+     pdk15               ${enable_pdk15_port}
+     pdk16               ${enable_pdk16_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}
-@@ -1042,9 +996,6 @@ sdcc ${VERSION} is now configured for
+@@ -1035,9 +989,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 +629,7 @@ index 3a16e42..bfba129 100644
      documentation:          ${docdir}
  
      prefix:             ${prefix}
-@@ -1056,14 +1007,8 @@ sdcc ${VERSION} is now configured for
+@@ -1049,14 +1000,8 @@ sdcc ${VERSION} is now configured for
      include files:      ${incPath1}
                          path(argv[[0]])${incPath2}
                          ${incPath3}
@@ -645,193 +645,211 @@ index 3a16e42..bfba129 100644
  ])
  # End of configure/configure.in
 diff --git a/device/lib/pic14/Makefile.common b/device/lib/pic14/Makefile.common
-index e456838..8179255 100644
+index 019fe0f..da3389d 100644
 --- a/device/lib/pic14/Makefile.common
 +++ b/device/lib/pic14/Makefile.common
-@@ -3,11 +3,10 @@ EARCH ?= @EARCH@
- 
+@@ -68,14 +68,14 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
  AM_CPPFLAGS =
  AM_CPPFLAGS += -I.
--AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic14 -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic14
+ AM_CPPFLAGS += -I$(top_srcdir)
+-AM_CPPFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/non-free/include/pic14 -I$(DEVICE_TOP_DIR)/include
++AM_CPPFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/include
  
- AM_CFLAGS =
- AM_CFLAGS += -mpic14 -p$(ARCH)
--AM_CFLAGS += --no-warn-non-free
- AM_CFLAGS += --std-c99
- #AM_CFLAGS += --asm="$(CCAS)"
- ##AM_CFLAGS += -Wa,-q
-@@ -29,7 +28,7 @@ AM_CFLAGS += --i-code-in-asm
+ ############################################################
+ # C compiler flags
+ ############################################################
  
+ SDCC_FLAGS =
+-SDCC_FLAGS += -mpic14 --less-pedantic --no-warn-non-free --i-code-in-asm --fverbose-asm
++SDCC_FLAGS += -mpic14 --less-pedantic --i-code-in-asm --fverbose-asm
+ SDCC_FLAGS += --std-c11
+ 
+ # extra flags for enhanced cores
+@@ -113,7 +113,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
  AM_CCASFLAGS =
  AM_CCASFLAGS += -p$(ARCH)
--AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic14 -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic14
  AM_CCASFLAGS += -I$(srcdir)
+-AM_CCASFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14
  
- clean-local:
+ ############################################################
+ # Common actions
 diff --git a/device/lib/pic14/Makefile.in b/device/lib/pic14/Makefile.in
-index f1c9940..de47dbe 100644
+index 39b6cb0..ae3e37b 100644
 --- a/device/lib/pic14/Makefile.in
 +++ b/device/lib/pic14/Makefile.in
-@@ -297,15 +297,13 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- SUBDIRS = libm libsdcc/regular $(am__append_1) $(am__append_2)
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
- 
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
--	--i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
- 
- #AM_CFLAGS += --no-pcode-opt
- 
-@@ -316,8 +314,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- DISTCLEANFILES = a.cod a.hex ./.checkdevices/*
- all: config.h
- 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+@@ -335,13 +335,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_4)
+ 
+ # extra flags for enhanced cores
+@@ -366,8 +365,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
+diff --git a/device/lib/pic14/libc/Makefile.in b/device/lib/pic14/libc/Makefile.in
+index 0efeeb0..d4dd8e6 100644
+--- a/device/lib/pic14/libc/Makefile.in
++++ b/device/lib/pic14/libc/Makefile.in
+@@ -878,13 +878,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_9)
+ 
+ # extra flags for enhanced cores
+@@ -909,8 +908,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
 diff --git a/device/lib/pic14/libm/Makefile.in b/device/lib/pic14/libm/Makefile.in
-index fd9fd2e..4a7d250 100644
+index f0dc9ca..98ed2cf 100644
 --- a/device/lib/pic14/libm/Makefile.in
 +++ b/device/lib/pic14/libm/Makefile.in
-@@ -299,15 +299,13 @@ libm_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c ceilf.c \
- libm_a_CFLAGS = -p$(ARCH) $(AM_CFLAGS)
- libme_a_SOURCES = $(libm_a_SOURCES)
- libme_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS) $(am__append_2)
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
- 
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
--	--i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
- 
- #AM_CFLAGS += --no-pcode-opt
- 
-@@ -318,8 +316,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- all: all-am
- 
- .SUFFIXES:
+@@ -511,13 +511,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_9)
+ 
+ # extra flags for enhanced cores
+@@ -542,8 +541,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
 diff --git a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
-index e946da7..bced941 100644
+index 098ec94..d1240ba 100644
 --- a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
 +++ b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
-@@ -311,15 +311,13 @@ libsdcce_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \
- 	_gptrput3.S _gptrput4.S macros.inc
- libsdcce_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS)
- CLEANFILES = ../*.asm ../*.lst
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
- 
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
--	--i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
- 
- #AM_CFLAGS += --no-pcode-opt
- 
-@@ -330,8 +328,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- all: all-am
- 
- .SUFFIXES:
+@@ -518,13 +518,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+ 
+ # extra flags for enhanced cores
+@@ -549,8 +548,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
 diff --git a/device/lib/pic14/libsdcc/enhanced/Makefile.in b/device/lib/pic14/libsdcc/enhanced/Makefile.in
-index 7fe1e25..854f87f 100644
+index d2dba9c..0857601 100644
 --- a/device/lib/pic14/libsdcc/enhanced/Makefile.in
 +++ b/device/lib/pic14/libsdcc/enhanced/Makefile.in
-@@ -311,15 +311,13 @@ libsdcce_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \
- 	_gptrput3.S _gptrput4.S macros.inc
- libsdcce_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS)
- CLEANFILES = ../*.asm ../*.lst
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
- 
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
--	--i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
- 
- #AM_CFLAGS += --no-pcode-opt
- 
-@@ -330,8 +328,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- all: all-am
- 
- .SUFFIXES:
+@@ -518,13 +518,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+ 
+ # extra flags for enhanced cores
+@@ -549,8 +548,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
 diff --git a/device/lib/pic14/libsdcc/regular/Makefile.in b/device/lib/pic14/libsdcc/regular/Makefile.in
-index 29a5924..8c60a49 100644
+index 3c9bccd..9430fb5 100644
 --- a/device/lib/pic14/libsdcc/regular/Makefile.in
 +++ b/device/lib/pic14/libsdcc/regular/Makefile.in
-@@ -304,15 +304,13 @@ libsdcc_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \
- 	_gptrput3.S _gptrput4.S macros.inc shadowregs.c
- libsdcc_a_CFLAGS = -p$(ARCH) $(AM_CFLAGS)
- CLEANFILES = ../*.asm ../*.lst
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
- 
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
--	--i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
- 
- #AM_CFLAGS += --no-pcode-opt
- 
-@@ -323,8 +321,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
--	-I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- all: all-am
- 
- .SUFFIXES:
+@@ -511,13 +511,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ 	-I$(DEVICE_TOP_DIR)/include
+ 
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ 	--i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+ 
+ # extra flags for enhanced cores
+@@ -542,8 +541,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+-	-I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+ 
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
 diff --git a/device/lib/pic16/Makefile.common b/device/lib/pic16/Makefile.common
-index 73200d7..e298bf5 100644
+index 01ad950..62839b9 100644
 --- a/device/lib/pic16/Makefile.common
 +++ b/device/lib/pic16/Makefile.common
 @@ -1,11 +1,10 @@
@@ -841,7 +859,7 @@ index 73200d7..e298bf5 100644
 +AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic16
  
  AM_CFLAGS =
- AM_CFLAGS += --std-c99
+ AM_CFLAGS += --std-c11
  AM_CFLAGS += --asm="$(CCAS)"
 -AM_CFLAGS += --no-warn-non-free
  ##AM_CFLAGS += -Wa,-q
@@ -857,7 +875,7 @@ index 73200d7..e298bf5 100644
  
  clean-local:
 diff --git a/device/lib/pic16/Makefile.in b/device/lib/pic16/Makefile.in
-index b17f151..31ecfa4 100644
+index 15d2e1d..9664ad4 100644
 --- a/device/lib/pic16/Makefile.in
 +++ b/device/lib/pic16/Makefile.in
 @@ -87,10 +87,7 @@ PRE_UNINSTALL = :
@@ -886,8 +904,8 @@ index b17f151..31ecfa4 100644
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
  	--fomit-frame-pointer --obanksel=9 --denable-peeps \
  	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
 -AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -897,7 +915,7 @@ index b17f151..31ecfa4 100644
  all: config.h
  	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 diff --git a/device/lib/pic16/configure b/device/lib/pic16/configure
-index d8760a0..eaea231 100755
+index c8f5b98..76f93a8 100755
 --- a/device/lib/pic16/configure
 +++ b/device/lib/pic16/configure
 @@ -3657,7 +3657,6 @@ fi
@@ -924,7 +942,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 bc77b98..724a443 100644
+index df593e3..8cb5137 100644
 --- a/device/lib/pic16/debug/Makefile.in
 +++ b/device/lib/pic16/debug/Makefile.in
 @@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -939,7 +957,7 @@ index bc77b98..724a443 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -290,8 +287,7 @@ top_builddir = @top_builddir@
+@@ -291,8 +288,7 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
  lib_LIBRARIES = libdebug.a
  libdebug_a_SOURCES = gstack/gstack.c
@@ -949,12 +967,12 @@ index bc77b98..724a443 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -305,11 +301,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -306,11 +302,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
  	--fomit-frame-pointer --obanksel=9 --denable-peeps \
  	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
 -AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -964,7 +982,7 @@ index bc77b98..724a443 100644
  
  .SUFFIXES:
 diff --git a/device/lib/pic16/libc/Makefile.in b/device/lib/pic16/libc/Makefile.in
-index 6d2699f..5546319 100644
+index 85bec90..c0ea488 100644
 --- a/device/lib/pic16/libc/Makefile.in
 +++ b/device/lib/pic16/libc/Makefile.in
 @@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -979,7 +997,7 @@ index 6d2699f..5546319 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -344,8 +341,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \
+@@ -381,8 +378,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
@@ -989,12 +1007,12 @@ index 6d2699f..5546319 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -359,11 +355,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -396,11 +392,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
  	--fomit-frame-pointer --obanksel=9 --denable-peeps \
  	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
 -AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1004,7 +1022,7 @@ index 6d2699f..5546319 100644
  
  .SUFFIXES:
 diff --git a/device/lib/pic16/libio/Makefile.in b/device/lib/pic16/libio/Makefile.in
-index 0d7c731..64b56c8 100644
+index 06fff29..78fe388 100644
 --- a/device/lib/pic16/libio/Makefile.in
 +++ b/device/lib/pic16/libio/Makefile.in
 @@ -481,10 +481,7 @@ POST_UNINSTALL = :
@@ -1019,7 +1037,7 @@ index 0d7c731..64b56c8 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -9826,8 +9823,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \
+@@ -15600,8 +15597,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)
@@ -1029,12 +1047,12 @@ index 0d7c731..64b56c8 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -9841,11 +9837,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -15615,11 +15611,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
  	--fomit-frame-pointer --obanksel=9 --denable-peeps \
  	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
 -AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1089,7 +1107,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 7f90e89..94cd985 100644
+index 6728a39..495459e 100644
 --- a/device/lib/pic16/libm/Makefile.in
 +++ b/device/lib/pic16/libm/Makefile.in
 @@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -1104,7 +1122,7 @@ index 7f90e89..94cd985 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -299,8 +296,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \
+@@ -312,8 +309,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
@@ -1114,12 +1132,12 @@ index 7f90e89..94cd985 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -314,11 +310,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -327,11 +323,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
  	--fomit-frame-pointer --obanksel=9 --denable-peeps \
  	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
 -AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1129,7 +1147,7 @@ index 7f90e89..94cd985 100644
  
  .SUFFIXES:
 diff --git a/device/lib/pic16/libsdcc/Makefile.in b/device/lib/pic16/libsdcc/Makefile.in
-index e58bad0..b318b70 100644
+index 331aea0..63565be 100644
 --- a/device/lib/pic16/libsdcc/Makefile.in
 +++ b/device/lib/pic16/libsdcc/Makefile.in
 @@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -1144,7 +1162,7 @@ index e58bad0..b318b70 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -364,8 +361,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \
+@@ -413,8 +410,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
@@ -1154,12 +1172,12 @@ index e58bad0..b318b70 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -379,11 +375,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -428,11 +424,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
  	--fomit-frame-pointer --obanksel=9 --denable-peeps \
  	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
 -AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1169,7 +1187,7 @@ index e58bad0..b318b70 100644
  
  .SUFFIXES:
 diff --git a/device/lib/pic16/startup/Makefile.in b/device/lib/pic16/startup/Makefile.in
-index 3c44c6f..274acde 100644
+index 2e59220..b213866 100644
 --- a/device/lib/pic16/startup/Makefile.in
 +++ b/device/lib/pic16/startup/Makefile.in
 @@ -89,10 +89,7 @@ PRE_UNINSTALL = :
@@ -1184,7 +1202,7 @@ index 3c44c6f..274acde 100644
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -306,8 +303,7 @@ libcrt0iz_a_SOURCES = crt0iz.c
+@@ -308,8 +305,7 @@ libcrt0iz_a_SOURCES = crt0iz.c
  # Force installation of .o files into $libdir
  crtdir = $(libdir)
  crt_DATA = crt0.o crt0i.o crt0iz.o
@@ -1194,12 +1212,12 @@ index 3c44c6f..274acde 100644
  #AM_CFLAGS += --no-optimize-goto
  
  #AM_CFLAGS += --debug-ralloc
-@@ -321,11 +317,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -323,11 +319,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
  #AM_CFLAGS += --noinduction
  #AM_CFLAGS += --nojtbound
  #AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
  	--fomit-frame-pointer --obanksel=9 --denable-peeps \
  	--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
 -AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1209,7 +1227,7 @@ index 3c44c6f..274acde 100644
  
  .SUFFIXES:
 diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt
-index 7d83ef7..5bd71d3 100644
+index 76a6f42..0f92463 100644
 --- a/doc/INSTALL.txt
 +++ b/doc/INSTALL.txt
 @@ -18,9 +18,7 @@ To install:
@@ -1243,7 +1261,7 @@ index 7d83ef7..5bd71d3 100644
  
  You can test the install by entering:
 diff --git a/doc/README.txt b/doc/README.txt
-index 86ed809..69e16e2 100644
+index 88f8c98..a36db81 100644
 --- a/doc/README.txt
 +++ b/doc/README.txt
 @@ -35,10 +35,9 @@ Exception are pic device libraries and header files which are derived
@@ -1261,13 +1279,13 @@ index 86ed809..69e16e2 100644
  See:
  
 diff --git a/doc/sdccman.lyx b/doc/sdccman.lyx
-index 41e8db0..9a971fa 100644
+index d18a509..b95bf61 100644
 --- a/doc/sdccman.lyx
 +++ b/doc/sdccman.lyx
-@@ -1083,54 +1083,9 @@ Exception are pic device libraries and header files which are derived from
-  Microchip requires that "The header files should state that they are only
+@@ -1092,54 +1092,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.
+  with the GPL, if Microchip has any copyright in them (which might depend
+  on local copyright laws).
 - Pic device libraries and header files are located at non-free/lib and non-free/
 -include directories respectively.
 - SDCC should be run with the 
@@ -1322,7 +1340,7 @@ index 41e8db0..9a971fa 100644
  \end_layout
  
  \begin_layout Itemize
-@@ -2890,18 +2845,6 @@ include_dir_suffix environment variable, see table below
+@@ -2870,18 +2825,6 @@ include_dir_suffix environment variable, see table below
  \end_inset
  
  
@@ -1341,7 +1359,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset space ~
  \end_inset
  
-@@ -2914,22 +2857,6 @@ lib_dir_suffix environment variable, see table below
+@@ -2894,22 +2837,6 @@ lib_dir_suffix environment variable, see table below
  \end_inset
  
  
@@ -1364,7 +1382,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset space ~
  \end_inset
  
-@@ -3410,7 +3337,7 @@ These defaults are:
+@@ -3408,7 +3335,7 @@ These defaults are:
  \begin_layout Standard
  \align center
  \begin_inset Tabular
@@ -1373,7 +1391,7 @@ index 41e8db0..9a971fa 100644
  <features tabularvalignment="middle">
  <column alignment="block" valignment="top" width="0in">
  <column alignment="block" valignment="top" width="0in">
-@@ -3694,68 +3621,6 @@ sdcc/include
+@@ -3692,68 +3619,6 @@ sdcc/include
  include
  \end_layout
  
@@ -1442,7 +1460,7 @@ index 41e8db0..9a971fa 100644
  \end_inset
  </cell>
  </row>
-@@ -3766,7 +3631,7 @@ lib
+@@ -3764,7 +3629,7 @@ lib
  \begin_layout Plain Layout
  
  \emph on
@@ -1451,7 +1469,7 @@ index 41e8db0..9a971fa 100644
  \end_layout
  
  \end_inset
-@@ -3775,7 +3640,7 @@ NON_FREE_LIB_DIR_SUFFIX
+@@ -3773,7 +3638,7 @@ NON_FREE_LIB_DIR_SUFFIX
  \begin_inset Text
  
  \begin_layout Plain Layout
@@ -1460,7 +1478,7 @@ index 41e8db0..9a971fa 100644
  \end_layout
  
  \end_inset
-@@ -3784,7 +3649,7 @@ sdcc/non-free/lib
+@@ -3782,7 +3647,7 @@ sdcc/non-free/lib
  \begin_inset Text
  
  \begin_layout Plain Layout
@@ -1469,7 +1487,7 @@ index 41e8db0..9a971fa 100644
  \end_layout
  
  \end_inset
-@@ -4183,20 +4048,6 @@ include
+@@ -4181,20 +4046,6 @@ include
  \end_inset
  
   
@@ -1490,7 +1508,7 @@ index 41e8db0..9a971fa 100644
  \backslash
  
  \begin_inset Newline newline
-@@ -4211,20 +4062,6 @@ lib
+@@ -4209,20 +4060,6 @@ lib
  \end_inset
  
   
@@ -1511,7 +1529,7 @@ index 41e8db0..9a971fa 100644
  \backslash
  
  \begin_inset Newline newline
-@@ -4405,20 +4242,6 @@ include
+@@ -4403,20 +4240,6 @@ include
  \end_inset
  
   
@@ -1532,7 +1550,7 @@ index 41e8db0..9a971fa 100644
  \backslash
  
  \begin_inset Newline newline
-@@ -4433,20 +4256,6 @@ lib
+@@ -4431,20 +4254,6 @@ lib
  \end_inset
  
   
@@ -1553,7 +1571,7 @@ index 41e8db0..9a971fa 100644
  \backslash
  
  \begin_inset Newline newline
-@@ -4543,7 +4352,7 @@ Install paths
+@@ -4541,7 +4350,7 @@ Install paths
  \begin_layout Standard
  \align center
  \begin_inset Tabular
@@ -1562,7 +1580,7 @@ index 41e8db0..9a971fa 100644
  <features tabularvalignment="middle">
  <column alignment="left" valignment="top">
  <column alignment="left" valignment="top" width="4.5cm">
-@@ -4699,64 +4508,6 @@ include
+@@ -4697,64 +4506,6 @@ include
  <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
  \begin_inset Text
  
@@ -1627,7 +1645,7 @@ index 41e8db0..9a971fa 100644
  \begin_layout Plain Layout
  Library file**
  \end_layout
-@@ -4806,64 +4557,6 @@ sdcc
+@@ -4804,64 +4555,6 @@ sdcc
  lib
  \end_layout
  
@@ -1692,7 +1710,7 @@ index 41e8db0..9a971fa 100644
  \end_inset
  </cell>
  </row>
-@@ -5186,7 +4879,7 @@ $PATH
+@@ -5184,7 +4877,7 @@ $PATH
  \begin_layout Standard
  \align center
  \begin_inset Tabular
@@ -1701,7 +1719,7 @@ index 41e8db0..9a971fa 100644
  <features tabularvalignment="middle">
  <column alignment="block" valignment="top" width="0.5cm">
  <column alignment="block" valignment="top" width="4.8cm">
-@@ -5464,203 +5157,13 @@ include
+@@ -5462,203 +5155,13 @@ include
  </cell>
  </row>
  <row>
@@ -1906,7 +1924,7 @@ index 41e8db0..9a971fa 100644
  \end_inset
  </cell>
  <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-@@ -5676,21 +5179,13 @@ $DATADIR/
+@@ -5674,21 +5177,13 @@ $DATADIR/
  \end_inset
  
  
@@ -1929,7 +1947,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -5698,7 +5193,7 @@ $INCLUDE_DIR_SUFFIX
+@@ -5696,7 +5191,7 @@ $INCLUDE_DIR_SUFFIX
  \begin_inset Newline newline
  \end_inset
  
@@ -1938,7 +1956,7 @@ index 41e8db0..9a971fa 100644
  \end_layout
  
  \end_inset
-@@ -5796,7 +5291,7 @@ model
+@@ -5794,7 +5289,7 @@ model
  \begin_layout Standard
  \align center
  \begin_inset Tabular
@@ -1947,7 +1965,7 @@ index 41e8db0..9a971fa 100644
  <features tabularvalignment="middle">
  <column alignment="block" valignment="top" width="0.5cm">
  <column alignment="block" valignment="top" width="4.5cm">
-@@ -6076,7 +5571,7 @@ lib
+@@ -6074,7 +5569,7 @@ lib
  </cell>
  </row>
  <row>
@@ -1956,7 +1974,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -6085,7 +5580,7 @@ lib
+@@ -6083,7 +5578,7 @@ lib
  
  \end_inset
  </cell>
@@ -1965,7 +1983,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -6116,7 +5611,7 @@ $LIB_DIR_SUFFIX/
+@@ -6114,7 +5609,7 @@ $LIB_DIR_SUFFIX/
  
  \end_inset
  </cell>
@@ -1974,7 +1992,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -6131,7 +5626,7 @@ lib/
+@@ -6129,7 +5624,7 @@ lib/
  
  \end_inset
  </cell>
@@ -1983,7 +2001,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset Text
  
  \begin_layout Plain Layout
-@@ -6154,308 +5649,6 @@ lib
+@@ -6152,308 +5647,6 @@ lib
  <model>
  \end_layout
  
@@ -2292,7 +2310,7 @@ index 41e8db0..9a971fa 100644
  \end_inset
  </cell>
  </row>
-@@ -8723,14 +7916,6 @@ In <installdir>/share/sdcc/include
+@@ -8717,14 +7910,6 @@ In <installdir>/share/sdcc/include
  the include files
  \end_layout
  
@@ -2307,7 +2325,7 @@ index 41e8db0..9a971fa 100644
  \begin_layout Standard
  In <installdir>/share/sdcc/lib
  \end_layout
-@@ -8739,14 +7924,6 @@ In <installdir>/share/sdcc/lib
+@@ -8733,14 +7918,6 @@ In <installdir>/share/sdcc/lib
  the src and target subdirectories with the precompiled relocatables.
  \end_layout
  
@@ -2322,7 +2340,7 @@ index 41e8db0..9a971fa 100644
  \begin_layout Standard
  In <installdir>/share/sdcc/doc
  \end_layout
-@@ -15589,66 +14766,6 @@ splint
+@@ -15254,66 +14431,6 @@ splint
  myprogram.c
  \end_layout
  
@@ -2389,7 +2407,7 @@ index 41e8db0..9a971fa 100644
  \begin_layout Subsection
  Linker Options
  \begin_inset Index idx
-@@ -44653,66 +43770,9 @@ http://sourceforge.net/projects/gputils
+@@ -44656,66 +43773,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.
@@ -2459,7 +2477,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset Newline newline
  \end_inset
  
-@@ -44766,7 +43826,7 @@ Makefile
+@@ -44769,7 +43829,7 @@ Makefile
  \begin_inset space ~
  \end_inset
  
@@ -2468,7 +2486,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset Newline newline
  \end_inset
  
-@@ -44860,7 +43920,7 @@ Makefile
+@@ -44863,7 +43923,7 @@ Makefile
  \begin_inset space ~
  \end_inset
  
@@ -2477,7 +2495,7 @@ index 41e8db0..9a971fa 100644
  \begin_inset Newline newline
  \end_inset
  
-@@ -45142,47 +44202,6 @@ status collapsed
+@@ -45145,47 +44205,6 @@ status collapsed
  \begin_layout Plain Layout
  
  
@@ -2525,7 +2543,7 @@ index 41e8db0..9a971fa 100644
  \backslash
  /
  \end_layout
-@@ -46055,47 +45074,6 @@ status collapsed
+@@ -46058,47 +45077,6 @@ status collapsed
  -all-callee-saves
  \end_layout
  
@@ -2573,7 +2591,7 @@ index 41e8db0..9a971fa 100644
  \begin_layout Subsection
  Port Specific Options
  \begin_inset Index idx
-@@ -47372,188 +46350,6 @@ Linker
+@@ -47375,188 +46353,6 @@ Linker
  \end_inset
  
  
@@ -2762,7 +2780,7 @@ index 41e8db0..9a971fa 100644
  \end_layout
  
  \begin_layout Subsection
-@@ -48249,66 +47045,9 @@ name "subsec:PIC16_Header-Files-and-Libraries"
+@@ -48252,66 +47048,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.
@@ -2832,7 +2850,7 @@ index 41e8db0..9a971fa 100644
  \end_layout
  
  \begin_layout Subsection
-@@ -48554,195 +47293,6 @@ vfprintf.c
+@@ -48557,195 +47296,6 @@ vfprintf.c
   should also work, but is untested.
  \end_layout
  
@@ -3028,7 +3046,7 @@ index 41e8db0..9a971fa 100644
  \begin_layout Subsection
  Memory Models
  \end_layout
-@@ -73525,6 +72075,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC
+@@ -73531,6 +72081,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC
   developers.
  \end_layout
  
@@ -3042,7 +3060,7 @@ index 41e8db0..9a971fa 100644
  All product names mentioned herein may be trademarks
  \begin_inset Index idx
 diff --git a/sdcc.spec b/sdcc.spec
-index 9f1eeff..3686228 100644
+index b8baa92..be90a84 100644
 --- a/sdcc.spec
 +++ b/sdcc.spec
 @@ -83,15 +83,15 @@ rm -rf $RPM_BUILD_ROOT
@@ -3058,11 +3076,11 @@ index 9f1eeff..3686228 100644
  %doc %{_defaultdocdir}
  
  %changelog
-+* Sat Oct 31 2020 - simon AT simonsouth.net
++* Tue Dec 08 2020 - simon AT simonsouth.net
 +- removed non-free include and lib directories
- * Wed Feb 07 2018 - pkk AT spth.de
- - version updated to 3.7.0
- * Sun May 29 2016 - sourceforge.brock AT dse.nl
+ * Sat Jan 18 2029 - pkk AT spth.de
+ - 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
 --- a/sdcc_vc.h.in
@@ -3077,10 +3095,10 @@ index 06d8cca..736c325 100644
  #define BIN2DATA_DIR                "\\.."
  #define PREFIX2BIN_DIR              "\\bin"
 diff --git a/sdccconf_in.h b/sdccconf_in.h
-index 29619bd..dadf310 100644
+index aeb2724..9c1df9d 100644
 --- a/sdccconf_in.h
 +++ b/sdccconf_in.h
-@@ -106,12 +106,6 @@
+@@ -97,12 +97,6 @@
  /* XXX */
  #undef LIB_DIR_SUFFIX
  
@@ -3093,7 +3111,7 @@ index 29619bd..dadf310 100644
  /* Define to 1 to disable the AVR port */
  #undef OPT_DISABLE_AVR
  
-@@ -133,9 +127,6 @@
+@@ -127,9 +121,6 @@
  /* XXX */
  #undef OPT_DISABLE_MCS51
  
@@ -3104,10 +3122,10 @@ index 29619bd..dadf310 100644
  #undef OPT_DISABLE_PACKIHX
  
 diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h
-index 2ce040b..d72d3b8 100644
+index b8d156b..db81fd7 100644
 --- a/src/SDCCglobl.h
 +++ b/src/SDCCglobl.h
-@@ -315,7 +315,6 @@ struct options
+@@ -288,7 +288,6 @@ struct options
      int no_pack_iram;           /* MCS51/DS390 - Deprecated: Tells the linker not to pack variables in internal ram */
      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 */
@@ -3116,10 +3134,10 @@ index 2ce040b..d72d3b8 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 a523164..a279d3d 100644
+index d4598a5..cd36f3d 100644
 --- a/src/SDCCmain.c
 +++ b/src/SDCCmain.c
-@@ -144,7 +144,6 @@ char buffer[PATH_MAX * 2];
+@@ -142,7 +142,6 @@ char buffer[PATH_MAX * 2];
  #define OPTION_DATA_SEG             "--dataseg"
  #define OPTION_DOLLARS_IN_IDENT     "--fdollars-in-identifiers"
  #define OPTION_SIGNED_CHAR          "--fsigned-char"
@@ -3127,15 +3145,15 @@ index a523164..a279d3d 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"
-@@ -192,7 +191,6 @@ static const OPTION optionsTable[] = {
-   {0,   OPTION_STD_SDCC11, NULL, "Use ISO C11 standard with SDCC extensions (default)"},
+@@ -197,7 +196,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"},
 -  {0,   OPTION_USE_NON_FREE, &options.use_non_free, "Search / include non-free licensed libraries and header files"},
  
    {0,   NULL, NULL, "Code generation options"},
    {'m', NULL, NULL, "Set the port to use e.g. -mz80."},
-@@ -2045,10 +2043,6 @@ preProcess (char **envp)
+@@ -2084,10 +2082,6 @@ preProcess (char **envp)
        else
          addSet (&preArgvSet, Safe_strdup ("-D__SDCC_CHAR_UNSIGNED"));
  
@@ -3146,7 +3164,7 @@ index a523164..a279d3d 100644
        /* set the macro for large model  */
        switch (options.model)
          {
-@@ -2262,12 +2256,6 @@ setIncludePath (void)
+@@ -2301,12 +2295,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)
@@ -3159,7 +3177,7 @@ index a523164..a279d3d 100644
     */
  
    if (!options.nostdinc)
-@@ -2280,17 +2268,6 @@ setIncludePath (void)
+@@ -2319,17 +2307,6 @@ setIncludePath (void)
        includeDirsSet = processStrSet (includeDirsSet, NULL, port->target, NULL);
        mergeSets (&includeDirsSet, tempSet);
  
@@ -3177,7 +3195,7 @@ index a523164..a279d3d 100644
        if ((p = getenv (SDCC_INCLUDE_NAME)) != NULL)
          {
            struct dbuf_s dbuf;
-@@ -2315,9 +2292,6 @@ setLibPath (void)
+@@ -2354,9 +2331,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)
@@ -3187,7 +3205,7 @@ index a523164..a279d3d 100644
     */
  
    if (!options.nostdlib)
-@@ -2334,13 +2308,6 @@ setLibPath (void)
+@@ -2373,13 +2347,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);
  
@@ -3202,7 +3220,7 @@ index a523164..a279d3d 100644
          {
            addSetHead (&libDirsSet, Safe_strdup (p));
 diff --git a/src/pic14/main.c b/src/pic14/main.c
-index 3d868cc..e8ecaaf 100644
+index ee90470..519ccfc 100644
 --- a/src/pic14/main.c
 +++ b/src/pic14/main.c
 @@ -42,7 +42,6 @@ static OPTION _pic14_poptions[] =
@@ -3213,9 +3231,9 @@ index 3d868cc..e8ecaaf 100644
      { 0, NULL, NULL, NULL }
    };
  
-@@ -153,16 +152,6 @@ _pic14_finaliseOptions (void)
-       addSet (&preArgvSet, dbuf_detach_c_str (&dbuf));
-     }
+@@ -176,16 +175,6 @@ _pic14_finaliseOptions (void)
+     addSet (&preArgvSet, Safe_strdup (dbuf_detach_c_str (&dbuf)));
+   }
  
 -  if (!pic14_options.no_warn_non_free && !options.use_non_free)
 -    {
@@ -3255,7 +3273,7 @@ index cdfbba0..5877f09 100644
  
  extern pic16_options_t pic16_options;
 diff --git a/src/pic16/main.c b/src/pic16/main.c
-index 6f194c1..7f7b2f0 100644
+index 61d9cfb..75d1182 100644
 --- a/src/pic16/main.c
 +++ b/src/pic16/main.c
 @@ -655,7 +655,6 @@ OPTION pic16_optionsTable[]= {
@@ -3292,23 +3310,25 @@ index 6f194c1..7f7b2f0 100644
  
  static const char *
 diff --git a/src/regression/Makefile b/src/regression/Makefile
-index 26a7ff3..4547295 100644
+index d8dae7c..1a32355 100644
 --- a/src/regression/Makefile
 +++ b/src/regression/Makefile
-@@ -65,10 +65,10 @@ TARGETPIC = 18f452
- CFLAGS	= -mpic16 -p$(TARGETPIC)
- DIR = pic16
- endif
--CFLAGS += -Wl,-q --no-warn-non-free
-+CFLAGS += -Wl,-q
- CFLAGS += -Wl,--map
--CFLAGS += -I $(SDCC_SRC)/device/include/$(DIR) -I $(SDCC_SRC)/device/non-free/include/$(DIR)
--CFLAGS += -L $(SDCC_BIN)/device/lib/build/$(DIR) -L $(SDCC_BIN)/device/non-free/lib/build/$(DIR)
-+CFLAGS += -I $(SDCC_SRC)/device/include/$(DIR)
-+CFLAGS += -L $(SDCC_BIN)/device/lib/build/$(DIR)
- #CFLAGS += --no-pcode-opt
- #CFLAGS += -V
- 
+@@ -107,12 +107,12 @@ endif
+ CC = $(top_builddir)/bin/sdcc
+ 
+ # compiler options
+-CFLAGS =  --no-warn-non-free -m$(ARCH) -p$(DEV) --fsigned-char --i-code-in-asm --fverbose-asm --std-c99
+-CFLAGS += --nostdinc -I$(top_srcdir)/device/include/$(ARCH) -I$(top_srcdir)/device/non-free/include/$(ARCH) -I$(top_srcdir)/device/include
++CFLAGS =  -m$(ARCH) -p$(DEV) --fsigned-char --i-code-in-asm --fverbose-asm --std-c99
++CFLAGS += --nostdinc -I$(top_srcdir)/device/include/$(ARCH) -I$(top_srcdir)/device/include
+ 
+ # linker options (for sdcc)
+ CFLAGS += -Wl,-l,-O2
+-CFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/$(ARCH) -L$(top_builddir)/device/non-free/lib/build/$(ARCH)
++CFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/$(ARCH)
+ 
+ # linker libraries
+ LIB_SUFFIX = $(LIB_E)$(LIB_O)$(LIB_X)
 diff --git a/support/regression/ports/pic14/spec.mk b/support/regression/ports/pic14/spec.mk
 index a3dcc05..bef1c45 100644
 --- a/support/regression/ports/pic14/spec.mk
@@ -3475,10 +3495,10 @@ index 6db417a..4b35225 100755
    );
  
 diff --git a/support/scripts/sdcc.nsi b/support/scripts/sdcc.nsi
-index 5086181..9527244 100644
+index 68e9035..92e5784 100644
 --- a/support/scripts/sdcc.nsi
 +++ b/support/scripts/sdcc.nsi
-@@ -477,11 +477,6 @@ ${Section} "SDCC include files" SEC05
+@@ -483,11 +483,6 @@ ${Section} "SDCC include files" SEC05
  
    SetOutPath "$INSTDIR\include"
    File "${DEV_ROOT}\include\*.h"
@@ -3490,7 +3510,7 @@ index 5086181..9527244 100644
  ${SectionEnd}
  
  ${Section} "SDCC DS390 library" SEC06
-@@ -579,18 +574,12 @@ ${Section} "SDCC PIC16 library" SEC21
+@@ -585,18 +580,12 @@ ${Section} "SDCC PIC16 library" SEC21
    SetOutPath "$INSTDIR\lib\pic16"
    File "${DEV_ROOT}\lib\pic16\*.o"
    File "${DEV_ROOT}\lib\pic16\*.lib"
@@ -3508,8 +3528,8 @@ index 5086181..9527244 100644
 -  File "${DEV_ROOT}\non-free\lib\pic14\*.lib"
  ${SectionEnd}
  
- ${Section} "SDCC STM8 library" SEC23
-@@ -691,10 +680,6 @@ ${Section} "SDCC library sources" SEC25
+ ${Section} "SDCC STM8 small model library" SEC23
+@@ -697,10 +686,6 @@ ${Section} "SDCC library sources" SEC25
    File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.inc"
  #  File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile"
  
@@ -3518,9 +3538,9 @@ index 5086181..9527244 100644
 -#  File "${DEV_ROOT}\non-free\lib\src\pic14\libdev\Makefile"
 -
    SetOutPath "$INSTDIR\lib\src\pic14\libm"
-   File "${DEV_ROOT}\lib\src\pic14\libm\*.c"
+ #  File "${DEV_ROOT}\lib\src\pic14\libm\*.c"
  
-@@ -746,10 +731,6 @@ ${Section} "SDCC library sources" SEC25
+@@ -752,10 +737,6 @@ ${Section} "SDCC library sources" SEC25
    File "${DEV_ROOT}\lib\src\pic16\libc\utils\*.S"
  #  File "${DEV_ROOT}\lib\src\pic16\libc\utils\Makefile"
  
@@ -3531,7 +3551,7 @@ index 5086181..9527244 100644
    SetOutPath "$INSTDIR\lib\src\pic16\libio"
    File "${DEV_ROOT}\lib\src\pic16\libio\*.ignore"
  #  File "${DEV_ROOT}\lib\src\pic16\libio\Makefile"
-@@ -1003,13 +984,9 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1074,13 +1055,9 @@ ${Section} Uninstall SECUNINSTALL
  
    Delete "$INSTDIR\lib\pic14\*.lib"
  
@@ -3545,7 +3565,7 @@ index 5086181..9527244 100644
    Delete "$INSTDIR\lib\hc08\*.lib"
  
    Delete "$INSTDIR\lib\s08\*.lib"
-@@ -1059,9 +1036,7 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1144,9 +1121,7 @@ ${Section} Uninstall SECUNINSTALL
    Delete "$INSTDIR\include\pic14\*.h"
    Delete "$INSTDIR\include\pic14\*.txt"
    Delete "$INSTDIR\include\pic14\*.inc"
@@ -3555,7 +3575,7 @@ index 5086181..9527244 100644
    Delete "$INSTDIR\include\pic16\*.txt"
    Delete "$INSTDIR\include\mcs51\*.h"
    Delete "$INSTDIR\include\hc08\*.h"
-@@ -1119,9 +1094,7 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1208,9 +1183,7 @@ ${Section} Uninstall SECUNINSTALL
    Delete "$INSTDIR\uninstall.exe"
  
    RMDir /r "$INSTDIR\lib\src\pic14"
@@ -3565,9 +3585,9 @@ index 5086181..9527244 100644
    RMDir "$INSTDIR\lib\src\small"
    RMDir "$INSTDIR\lib\src\medium"
    RMDir "$INSTDIR\lib\src\large"
-@@ -1138,12 +1111,9 @@ ${Section} Uninstall SECUNINSTALL
-   RMDir "$INSTDIR\lib\src\s08"
-   RMDir "$INSTDIR\lib\src\stm8"
+@@ -1233,12 +1206,9 @@ ${Section} Uninstall SECUNINSTALL
+   RMDir "$INSTDIR\lib\src\pdk15"
+   RMDir "$INSTDIR\lib\src\pdk15-stack-auto"
    RMDir "$INSTDIR\lib\src"
 -  RMDir "$INSTDIR\non-free\lib\src"
  
@@ -3578,16 +3598,17 @@ index 5086181..9527244 100644
    RMDir "$INSTDIR\lib\z80"
    RMDir "$INSTDIR\lib\z180"
    RMDir "$INSTDIR\lib\r2k"
-@@ -1160,16 +1130,13 @@ ${Section} Uninstall SECUNINSTALL
-   RMDir "$INSTDIR\lib\s08"
-   RMDir "$INSTDIR\lib\stm8"
+@@ -1261,7 +1231,6 @@ ${Section} Uninstall SECUNINSTALL
+   RMDir "$INSTDIR\lib\pdk15"
+   RMDir "$INSTDIR\lib\pdk15-stack-auto"
    RMDir "$INSTDIR\lib"
 -  RMDir "$INSTDIR\non-free\lib"
  
    RMDir "$INSTDIR\include\asm\z80"
    RMDir "$INSTDIR\include\asm\z180"
-   RMDir "$INSTDIR\include\asm\r2k"
+@@ -1269,9 +1238,7 @@ ${Section} Uninstall SECUNINSTALL
    RMDir "$INSTDIR\include\asm\r3ka"
+   RMDir "$INSTDIR\include\asm\ez80_z80"
    RMDir "$INSTDIR\include\asm\pic16"
 -  RMDir "$INSTDIR\non-free\include\asm\pic16"
    RMDir "$INSTDIR\include\asm\pic14"
@@ -3595,7 +3616,7 @@ index 5086181..9527244 100644
    RMDir "$INSTDIR\include\asm\mcs51"
    RMDir "$INSTDIR\include\asm\gbz80"
    RMDir "$INSTDIR\include\asm\ds390"
-@@ -1178,17 +1145,12 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1280,17 +1247,12 @@ ${Section} Uninstall SECUNINSTALL
    RMDir "$INSTDIR\include\asm"
    RMDir "$INSTDIR\include\z180"
    RMDir "$INSTDIR\include\pic14"
diff --git a/gnu/packages/patches/serf-python3.patch b/gnu/packages/patches/serf-python3.patch
new file mode 100644
index 0000000000..636f51ed1e
--- /dev/null
+++ b/gnu/packages/patches/serf-python3.patch
@@ -0,0 +1,29 @@
+Fix build with Python 3 scons.
+
+Patch taken from Arch Linux:
+https://github.com/archlinux/svntogit-packages/blob/packages/serf/trunk/scons-python3.patch
+
+--- serf-1.3.9/SConstruct.orig	2019-07-26 17:49:30.910189251 +0000
++++ serf-1.3.9/SConstruct	2019-07-26 17:49:54.073821735 +0000
+@@ -163,9 +163,9 @@
+               suffix='.def', src_suffix='.h')
+   })
+ 
+-match = re.search('SERF_MAJOR_VERSION ([0-9]+).*'
+-                  'SERF_MINOR_VERSION ([0-9]+).*'
+-                  'SERF_PATCH_VERSION ([0-9]+)',
++match = re.search(b'SERF_MAJOR_VERSION ([0-9]+).*'
++                  b'SERF_MINOR_VERSION ([0-9]+).*'
++                  b'SERF_PATCH_VERSION ([0-9]+)',
+                   env.File('serf.h').get_contents(),
+                   re.DOTALL)
+ MAJOR, MINOR, PATCH = [int(x) for x in match.groups()]
+@@ -183,7 +183,7 @@
+ 
+ unknown = opts.UnknownVariables()
+ if unknown:
+-  print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
++  print ('Warning: Used unknown variables:', ', '.join(unknown.keys()))
+ 
+ apr = str(env['APR'])
+ apu = str(env['APU'])
diff --git a/gnu/packages/patches/sudo-fix-build-without-sendmail.patch b/gnu/packages/patches/sudo-fix-build-without-sendmail.patch
deleted file mode 100644
index f40bfe445e..0000000000
--- a/gnu/packages/patches/sudo-fix-build-without-sendmail.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-
-# HG changeset patch
-# User Todd C. Miller <Todd.Miller@sudo.ws>
-# Date 1606767492 25200
-# Node ID 41db1aad85bbce444b511bcb28b9628a0a22fcd9
-# Parent  96a5cfe3c66b6ee84d7f7b6fb26d932f45a44b76
-Fix build when configured using --without-sendmail
-Bug #947
-
-diff -r 96a5cfe3c66b -r 41db1aad85bb lib/eventlog/eventlog.c
---- a/lib/eventlog/eventlog.c	Sun Nov 29 15:11:34 2020 -0700
-+++ b/lib/eventlog/eventlog.c	Mon Nov 30 13:18:12 2020 -0700
-@@ -78,7 +78,7 @@
- static FILE *eventlog_stub_open_log(int type, const char *logfile);
- static void eventlog_stub_close_log(int type, FILE *fp);
- 
--/* Eventlog config settings */
-+/* Eventlog config settings (default values). */
- static struct eventlog_config evl_conf = {
-     EVLOG_NONE,			/* type */
-     EVLOG_SUDO,			/* format */
-@@ -91,7 +91,11 @@
-     false,			/* omit_hostname */
-     _PATH_SUDO_LOGFILE,		/* logpath */
-     "%h %e %T",			/* time_fmt */
-+#ifdef _PATH_SUDO_SENDMAIL
-     _PATH_SUDO_SENDMAIL,	/* mailerpath */
-+#else
-+    NULL,			/* mailerpath (disabled) */
-+#endif
-     "-t",			/* mailerflags */
-     NULL,			/* mailfrom */
-     MAILTO,			/* mailto */
-@@ -1436,8 +1440,10 @@
- 	evl_conf.logpath = _PATH_SUDO_LOGFILE;
-     if (evl_conf.time_fmt == NULL)
- 	evl_conf.time_fmt = "%h %e %T";
-+#ifdef _PATH_SUDO_SENDMAIL
-     if (evl_conf.mailerpath == NULL)
- 	evl_conf.mailerpath = _PATH_SUDO_SENDMAIL;
-+#endif
-     if (evl_conf.mailerflags == NULL)
- 	evl_conf.mailerflags = "-t";
-     if (evl_conf.mailto == NULL)
-