diff -ur perl-5.22.0/Configure stableperl-5.22.0-1.001/Configure
--- perl-5.22.0/Configure	2015-05-13 22:19:28.000000000 +0200
+++ stableperl-5.22.0-1.001/Configure	2015-06-04 23:42:13.889731519 +0200
@@ -1,4 +1,5 @@
 #! /bin/sh
+# Marc Lehmann <stableperl@schmorp.de> removed -fstack-protector* code in 2015, hopefully correctly
 #
 # If these # comments don't work, trim them. Don't worry about any other
 # shell scripts, Configure will trim # comments from them for you.
@@ -5439,24 +5440,6 @@
 		;;
 	esac
 
-	# on x86_64 (at least) we require an extra library (libssp) in the
-	# link command line. This library is not named, so I infer that it is
-	# an implementation detail that may change. Hence the safest approach
-	# is to add the flag to the flags passed to the compiler at link time,
-	# as that way the compiler can do the right implementation dependant
-	# thing. (NWC)
-	case "$gccversion" in
-	?*)	set stack-protector-strong -fstack-protector-strong
-		eval $checkccflag
-		case "$dflt" in
-		*-fstack-protector-strong*) ;; # It got added.
-		*) # Try the plain/older -fstack-protector.
-		   set stack-protector -fstack-protector
-		   eval $checkccflag
-		   ;;
-		esac
-		;;
-	esac
 	;;
 esac
 
@@ -5595,21 +5578,6 @@
 	;;
 *) dflt="$ldflags";;
 esac
-# See note above about -fstack-protector
-case "$ccflags" in
-*-fstack-protector-strong*)
-	case "$dflt" in
-	*-fstack-protector-strong*) ;; # Don't add it again
-	*) dflt="$dflt -fstack-protector-strong" ;;
-	esac
-	;;
-*-fstack-protector*)
-	case "$dflt" in
-	*-fstack-protector*) ;; # Don't add it again
-	*) dflt="$dflt -fstack-protector" ;;
-	esac
-	;;
-esac
 
 : Try to guess additional flags to pick up local libraries.
 for thislibdir in $libpth; do
@@ -8495,21 +8463,6 @@
 	    ''|' ') dflt='none' ;;
 	esac
 
-	case "$ldflags" in
-	    *-fstack-protector-strong*)
-		case "$dflt" in
-		    *-fstack-protector-strong*) ;; # Don't add it again
-		    *) dflt="$dflt -fstack-protector-strong" ;;
-		esac
-		;;
-	    *-fstack-protector*)
-		case "$dflt" in
-		    *-fstack-protector*) ;; # Don't add it again
-		    *) dflt="$dflt -fstack-protector" ;;
-		esac
-		;;
-	esac
-
 	rp="Any special flags to pass to $ld to create a dynamically loaded library?"
 	. ./myread
 	case "$ans" in
diff -ur perl-5.22.0/hv_func.h stableperl-5.22.0-1.001/hv_func.h
--- perl-5.22.0/hv_func.h	2015-05-13 22:19:29.000000000 +0200
+++ stableperl-5.22.0-1.001/hv_func.h	2015-06-05 01:35:20.456134784 +0200
@@ -1,3 +1,4 @@
+/* fnv1a hash addition copyright Marc Lehmann <stableperl@schmorp.de> 2015 */
 /* hash a key
  *--------------------------------------------------------------------------------------
  * The "hash seed" feature was added in Perl 5.8.1 to perturb the results
@@ -23,8 +24,9 @@
         || defined(PERL_HASH_FUNC_ONE_AT_A_TIME_OLD) \
         || defined(PERL_HASH_FUNC_MURMUR_HASH_64A) \
         || defined(PERL_HASH_FUNC_MURMUR_HASH_64B) \
+        || defined(PERL_HASH_FUNC_FNV1A) \
     )
-#define PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
+#define PERL_HASH_FUNC_FNV1A
 #endif
 
 #if defined(PERL_HASH_FUNC_SIPHASH)
@@ -67,6 +69,10 @@
 #   define PERL_HASH_FUNC "MURMUR_HASH_64B"
 #   define PERL_HASH_SEED_BYTES 8
 #   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_murmur_hash_64b((seed),(U8*)(str),(len))
+#elif defined(PERL_HASH_FUNC_FNV1A)
+#   define PERL_HASH_FUNC "FNV1A"
+#   define PERL_HASH_SEED_BYTES 4
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_fnv1a((seed),(U8*)(str),(len))
 #endif
 
 #ifndef PERL_HASH_WITH_SEED
@@ -692,6 +698,22 @@
 }
 #endif
 
+#ifdef PERL_HASH_FUNC_FNV1A
+/* without any experiments, fnv1a should be faster than one-at-a-time, but should be easily */
+/* beaten by murmur hash (for long data), which would probably be preferable if I had more time */
+/* to add a portable version of it */
+PERL_STATIC_INLINE U32
+S_perl_hash_fnv1a(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
+    const unsigned char * const end = (const unsigned char *)str + len;
+    U32 hash = 0x811C9DC5 + *((U32*)seed); /* maybe also get rid of seed */
+    while (str < end) {
+        hash ^= *str++;
+        hash *= 16777619;
+    }
+    return hash;
+}
+#endif
+
 /* legacy - only mod_perl should be doing this.  */
 #ifdef PERL_HASH_INTERNAL_ACCESS
 #define PERL_HASH_INTERNAL(hash,str,len) PERL_HASH(hash,str,len)
diff -ur perl-5.22.0/pad.h stableperl-5.22.0-1.001/pad.h
--- perl-5.22.0/pad.h	2015-05-13 22:19:30.000000000 +0200
+++ stableperl-5.22.0-1.001/pad.h	2015-06-04 23:57:31.368657565 +0200
@@ -1,3 +1,4 @@
+/* Change PadlistNAMES to be lvalue, copyright 2015 by Marc Lehmann <stableperl@schmorp.de> */
 /*    pad.h
  *
  *    Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008,
@@ -295,7 +296,7 @@
 
 #define PadlistARRAY(pl)	(pl)->xpadl_alloc
 #define PadlistMAX(pl)		(pl)->xpadl_max
-#define PadlistNAMES(pl)	((PADNAMELIST *)*PadlistARRAY(pl))
+#define PadlistNAMES(pl)	*((PADNAMELIST **)PadlistARRAY(pl))
 #define PadlistNAMESARRAY(pl)	PadnamelistARRAY(PadlistNAMES(pl))
 #define PadlistNAMESMAX(pl)	PadnamelistMAX(PadlistNAMES(pl))
 #define PadlistREFCNT(pl)	1	/* reserved for future use */
diff -ur perl-5.22.0/perl.c stableperl-5.22.0-1.001/perl.c
--- perl-5.22.0/perl.c	2015-05-13 22:19:30.000000000 +0200
+++ stableperl-5.22.0-1.001/perl.c	2015-06-05 00:47:25.371852081 +0200
@@ -1,4 +1,5 @@
 #line 2 "perl.c"
+/* Changes inside #ifndef NO_STABILITY Copyright 2015 by Marc Lehmann <stableperl@schmorp.de> */
 /*    perl.c
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
@@ -3662,6 +3663,9 @@
 				      SVt_PVHV));
     /* We must init $/ before switches are processed. */
     sv_setpvs(get_sv("/", GV_ADD), "\n");
+#ifndef NO_STABILITY
+    sv_setnv(get_sv("Internals::StabilityBranchVersion", GV_ADD), STABILITYPERL_VERSION * (NV)0.001);
+#endif
 }
 
 STATIC PerlIO *
diff -ur perl-5.22.0/perl.h stableperl-5.22.0-1.001/perl.h
--- perl-5.22.0/perl.h	2015-05-13 22:19:30.000000000 +0200
+++ stableperl-5.22.0-1.001/perl.h	2015-06-05 00:49:02.673321541 +0200
@@ -1,3 +1,5 @@
+/* Change EXT_MGVTBL to be non-const, copyright 2015 by Marc Lehmann <stableperl@schmorp.de> */
+/* Changes inside #ifndef NO_STABILITY Copyright 2015 by Marc Lehmann <stableperl@schmorp.de> */
 /*    perl.h
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
@@ -11,6 +13,13 @@
 #ifndef H_PERL
 #define H_PERL 1
 
+#ifndef NO_STABILITY
+/* you should not normally need to use this - stableperl should bend to */
+/* to existing code, not vice versa. drop stableperl@schmorp.de a note */
+/* if you need this to work around or adapt to something */
+#define STABILITYPERL_VERSION 1001
+#endif
+
 #ifdef PERL_FOR_X2P
 /*
  * This file is being used for x2p stuff.
@@ -5583,7 +5592,7 @@
 EXTCONST runops_proc_t PL_runops_dbg
   INIT(Perl_runops_debug);
 
-#define EXT_MGVTBL EXTCONST MGVTBL
+#define EXT_MGVTBL EXT MGVTBL
 
 #define PERL_MAGIC_READONLY_ACCEPTABLE 0x40
 #define PERL_MAGIC_VALUE_MAGIC 0x80
