From db39c1fdd166618d99b422cd48872919cdc87ee4d8b52b1d593ea28c8ce02298 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 22 Mar 2016 10:25:18 +0000 Subject: [PATCH] Accepting request 377337 from home:Andreas_Schwab:Factory - powerpc-elision-enable-envvar.patch: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) OBS-URL: https://build.opensuse.org/request/show/377337 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=430 --- glibc-testsuite.changes | 6 +++++ glibc-testsuite.spec | 16 ++++++----- glibc-utils.changes | 6 +++++ glibc-utils.spec | 16 ++++++----- glibc.changes | 6 +++++ glibc.spec | 16 ++++++----- powerpc-elision-enable-envvar.patch | 41 +++++++++++++++++++++++++++++ 7 files changed, 89 insertions(+), 18 deletions(-) create mode 100644 powerpc-elision-enable-envvar.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 3f10aa7..14134f0 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de + +- powerpc-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) + ------------------------------------------------------------------- Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 363fcab..352e65f 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -210,6 +210,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd 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 ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -238,6 +240,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch1000: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE +Patch1001: no-long-double.patch ### # Patches awaiting upstream approval @@ -256,12 +262,8 @@ Patch2004: fnmatch-collating-elements.patch Patch2005: nss-files-long-lines-2.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) Patch2006: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2007: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch -# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE -Patch2009: no-long-double.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -451,6 +453,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch21 -p1 %patch100 -p1 %patch102 -p1 @@ -463,6 +466,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -470,9 +476,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 -%patch2007 -p1 %patch2008 -p1 -%patch2009 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 3f10aa7..14134f0 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de + +- powerpc-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) + ------------------------------------------------------------------- Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 27e3040..590cfad 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -209,6 +209,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd 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 ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -237,6 +239,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch1000: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE +Patch1001: no-long-double.patch ### # Patches awaiting upstream approval @@ -255,12 +261,8 @@ Patch2004: fnmatch-collating-elements.patch Patch2005: nss-files-long-lines-2.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) Patch2006: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2007: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch -# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE -Patch2009: no-long-double.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -451,6 +453,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch21 -p1 %patch100 -p1 %patch102 -p1 @@ -463,6 +466,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -470,9 +476,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 -%patch2007 -p1 %patch2008 -p1 -%patch2009 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 3f10aa7..14134f0 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Mar 21 11:57:49 UTC 2016 - schwab@suse.de + +- powerpc-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236) + ------------------------------------------------------------------- Tue Mar 15 10:44:46 UTC 2016 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index b1d06fb..0d98dde 100644 --- a/glibc.spec +++ b/glibc.spec @@ -210,6 +210,8 @@ Patch15: glibc-2.3.90-langpackdir.diff Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd 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 ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -238,6 +240,10 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) +Patch1000: resolv-mem-leak.patch +# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE +Patch1001: no-long-double.patch ### # Patches awaiting upstream approval @@ -256,12 +262,8 @@ Patch2004: fnmatch-collating-elements.patch Patch2005: nss-files-long-lines-2.patch # PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830) Patch2006: iconv-reset-input-buffer.patch -# PATCH-FIX-UPSTREAM Fix resource leak in resolver (BZ #19257) -Patch2007: resolv-mem-leak.patch # PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282) Patch2008: reinitialize-dl_load_write_lock.patch -# PATCH-FIX-UPSTREAM Don't use long double functions if NO_LONG_DOUBLE -Patch2009: no-long-double.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -451,6 +453,7 @@ rm nscd/s-stamp %patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch21 -p1 %patch100 -p1 %patch102 -p1 @@ -463,6 +466,9 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 +%patch1001 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -470,9 +476,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 -%patch2007 -p1 %patch2008 -p1 -%patch2009 -p1 %patch3000 diff --git a/powerpc-elision-enable-envvar.patch b/powerpc-elision-enable-envvar.patch new file mode 100644 index 0000000..6e7bbb1 --- /dev/null +++ b/powerpc-elision-enable-envvar.patch @@ -0,0 +1,41 @@ +2016-02-11 Paul E. Murphy + + * sysdeps/unix/sysv/linux/powerpc/elision-conf.c + (elision_init): Further restrict enablement based + on whether GLIBC_ELISION_ENABLE=yes is in the env. +--- + sysdeps/unix/sysv/linux/powerpc/elision-conf.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +Index: glibc-2.22/sysdeps/unix/sysv/linux/powerpc/elision-conf.c +=================================================================== +--- glibc-2.22.orig/sysdeps/unix/sysv/linux/powerpc/elision-conf.c ++++ glibc-2.22/sysdeps/unix/sysv/linux/powerpc/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. */ +@@ -61,7 +62,18 @@ elision_init (int argc __attribute__ ((u + { + #ifdef ENABLE_LOCK_ELISION + int elision_available = (GLRO (dl_hwcap2) & PPC_FEATURE2_HAS_HTM) ? 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; ++ } ++ } + #endif + if (!__pthread_force_elision) + /* Disable elision on rwlocks. */