diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index e43309f..f22e6e2 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + ------------------------------------------------------------------- Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 98dcb29..b3e9e36 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -227,6 +227,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -487,6 +489,7 @@ rm nscd/s-stamp %patch15 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index e43309f..f22e6e2 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + ------------------------------------------------------------------- Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index ab7620b..57117a4 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -228,6 +228,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -488,6 +490,7 @@ rm nscd/s-stamp %patch15 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 diff --git a/glibc.changes b/glibc.changes index e43309f..f22e6e2 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + ------------------------------------------------------------------- Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index e9f2b11..eb50994 100644 --- a/glibc.spec +++ b/glibc.spec @@ -233,6 +233,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -493,6 +495,7 @@ rm nscd/s-stamp %patch15 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 diff --git a/s390-elision-enable-envvar.patch b/s390-elision-enable-envvar.patch new file mode 100644 index 0000000..e83b280 --- /dev/null +++ b/s390-elision-enable-envvar.patch @@ -0,0 +1,31 @@ +Index: glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c +=================================================================== +--- glibc-2.25.orig/sysdeps/unix/sysv/linux/s390/elision-conf.c ++++ glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + /* Reasonable initial tuning values, may be revised in the future. + This is a conservative initial value. */ +@@ -64,7 +65,17 @@ elision_init (int argc __attribute__ ((u + When false elision is never attempted. */ + int elision_available = (GLRO (dl_hwcap) & HWCAP_S390_TE) ? 1 : 0; + +- __pthread_force_elision = __libc_enable_secure ? 0 : elision_available; ++ /* Scan the environment and conditionally enable TLE. */ ++ if (elision_available != 0 && __libc_enable_secure == 0) ++ { ++ for ( ; *environ != NULL; environ++) ++ if (**environ == 'G' ++ && strcmp (*environ, "GLIBC_ELISION_ENABLE=yes") == 0) ++ { ++ __pthread_force_elision = elision_available; ++ break; ++ } ++ } + } + + #ifdef SHARED