anchor.diff:       stdenv.lib.optional enableStatic "static");
   
     # To avoid library name collisions
  -  finalLayout = if ((enableRelease && enableDebug) ||
  +  finalLayout = if (taggedLayout || (enableRelease && enableDebug) ||
       (enableSingleThreaded && enableMultiThreaded) ||
       (enableShared && enableStatic)) then
       "tagged" else "system";
  
positive.code: , enableShared ? true
  , enableStatic ? false
  , enablePIC ? false
  }:
  
  let
  
negative.code:     # Patch to get rid of following error, experienced by some packages like encfs, bitcoin:
      #    terminate called after throwing an instance of 'std::runtime_error'
      #    what():  locale::facet::_S_create_c_locale name not valid
      (fetchurl {
         url = https://svn.boost.org/trac/boost/raw-attachment/ticket/4688/boost_filesystem.patch ;
         sha256 = "15k91ihzs6190pnryh4cl0b3c2pjpl9d790mr14x16zq52y7px2d";
       })
    ];
  
    crossAttrs = rec {
      buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
      # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
  