[Bug 1333524] Re: ppc64el build tunes for POWER7, produces sub optimal POWER8 code
Launchpad Bug Tracker
1333524 at bugs.launchpad.net
Tue Jun 24 10:18:44 UTC 2014
This bug was fixed in the package glibc - 2.19-4ubuntu1
---------------
glibc (2.19-4ubuntu1) utopic; urgency=medium
* Merge with Debian unstable, switching us to glibc and fixing bugs:
- Fix invalid fd reuse while sending DNS queries (LP: #1328975)
- Avoid Freescale 8xx dcbz workaround on ppc64el (LP: #1333499)
- Remove wrong ibm long double assembly routines (LP: #1294588)
- Fix incorrect frexpl results with long doubles (LP: #1333506)
* debian/patches/powerpc/local-tune-power8.diff: When configured for
--with-cpu=power7, adjust -mtune for power8 instead (LP: #1333524)
glibc (2.19-4) unstable; urgency=medium
[ Aurelien Jarno ]
* debian/debhelper.in/libc.{preinst,postrm,postinst}: correctly remove
old ld.so configuration if more than one libc6 package is installed
(multiarch case). Closes: #752389, #752404.
[ Samuel Thibault ]
* patches/hurd-i386/tg-tls-threadvar.diff: Update to fix gcc-4.9 build.
[ Adam Conrad ]
* debian/control.in/main: glibc-source Conflics/Replaces eglibc-source.
* debian/patches/powerpc/local-powerpc8xx-dcbz.diff: Restrict the trap
to 32-bit builds, since the Freescale 8xx CPUs aren't 64-bit capable.
glibc (2.19-3experimental0) experimental; urgency=medium
[ Aurelien Jarno]
* Switch back to glibc sources:
- debian/control.in/*: replace eglibc by glibc, update descriptions.
- rename debian/debhelper.in/eglibc-source.install into
glibc-source.install.
- rename debian/debhelper.in/eglibc-source.lintian-overrides into
glibc-source.lintian-overrides.
- rename debian/eglibc-source.filelist into glibc-source.filelist
- debian/copyright: update.
- debian/rules, debian/rules.d/*: replace eglibc by glibc.
- source/lintian-overrides: replace eglibc by glibc.
- debian/sysdeps/*: replace eglibc by glibc.
- debian/po/*: update using debconf-updatepo.
- debian/rules.d/tarball.mk: rewrite to generate the orig tarball and
to fetch the branch updates through git.
- patches/any/submitted-nl_langinfo-static.diff: refresh.
- patches/any/submitted-ldsodefs_rtld_debug.diff: drop.
- patches/any/local-dynamic-resolvconf.diff: new patch from the eglibc
tree to dynamically take into account changes in resolv.conf.
- patches/powerpc/local-powerpc8xx-dcbz.diff: new patch from the eglibc
tree to workaround dcbz issues on PowerPC 8XX CPUs.
- patches/sh4/local-fpscr_values.diff: new patch from eglibc tree to
export the ___fpscr_values symbol on SH4.
- patches/any/local-libpic.diff: new patch from eglibc tree to install
*_pic.a files.
- patches/any/local-bootstrap-headers.diff: new patch from eglibc tree
to ease header installation when bootstrapping.
eglibc (2.19-3) unstable; urgency=medium
[ Aurelien Jarno ]
* debian/control.in/libc: fix libtirpc1 breaks. Closes: #751852.
* debian/rules.d/build.mk: generate ld.so configuration file using
DEB_HOST_MULTIARCH instead of DEB_HOST_GNU_TYPE to have a stable
path even when the GNU triplet change.
* debian/debhelper.in/libc.{preinst,postrm,postinst}: remove old
ld.so configuration file on hurd-i386, i386 and kfreebsd-i386.
* debian/debhelper.in/libc.postinst: don't create/modify ld.so.conf,
but instead provide it as a conffile in libc-bin. Closes: #737588.
* debian/debhelper.in/libc.preinst: remove dead code.
eglibc (2.19-2) unstable; urgency=medium
[ Adam Conrad ]
* expected-results-aarch64-linux-gnu-libc: Ignore basic-test.out on
arm64 after assurance from upstream that this isn't a regression.
[ Aurelien Jarno ]
* Add support for mipsn32, mipsn32el, mips64 and mips64el, based on
patches from Eleanor Chen, Yunqiang Su and Sphinx Jiang. Closes:
#715038.
- debian/control.in/main: bump build-depends on linux-libc-dev to (>=
3.9). Do it for all architectures as this version is in Jessie for quite
some time.
- control.in/mips32: new file.
- control.in/mipsn32: add mips64 and mips64el architectures.
- control.in/mips64: add mipsn32 and mipsn32el architectures.
- debian/rules.d/control.mk: add mipsn32, mipsn32el, mips64 and mips64el
to the architecture list.
- debian/sysdeps/mips64.mk: new file.
- debian/sysdeps/mips64el.mk: new file.
- debian/sysdeps/mipsn32.mk: new file.
- debian/sysdeps/mipsn32el.mk: new file.
* debian/control.in/libc: add a Breaks: check (<< 0.9.10-6.1+b1) on s390x,
to make sure libcheck.a is using the GLIBC_2.19 version of the *jmp*
functions.
* debian/control.in/libc: add a Breaks: libtirpc1 (<< 0.2.3), as earlier
versions try to unlock a lock which hasn't been locked, causing an
issue with lock elision. Closes: #751134.
* Update Swedish debconf translation, by Martin Bagge. Closes: #751172.
* debian/patches/alpha/submitted-lll_futex_timed_wait_bitset.diff: new
patch to fix issues in the testsuite on alpha. Closes: #750996.
* debian/testsuite-checking/expected-results-mips*-linux-gnu-*: re-add
tst-mqueue5.out (removed in the latest cleanup) as it still occasionally
fails.
* debian/patches/any/submitted-resolv-ipv6-nameservers.diff: new patch to
fix resolving issues when using IPv6 nameservers in resolv.conf. Closes:
#627531, #644406, #709867.
* patches/any/cvs-posix_spawn_file_actions_addopen.diff: new patch from
upstream to fix a vulnerability in posix_spawn_file_actions_addopen
(CVE-2014-4043). Closes: #751774.
* patches/kfreebsd/local-sysdeps.diff: update to revision 5486 (from
glibc-bsd). Closes: #751565.
eglibc (2.19-1) unstable; urgency=medium
[ Aurelien Jarno ]
* debian/control.in/main: remove outdated Build-Depends on bzip2.
* debian/patches/any/cvs-resolv-reuse-fd.diff: new patch from upstream
to fix invalid file descriptor reuse while sending DNS query. Closes:
#722075.
* Finish debconf translation update from Esko Arajärvi. Closes: #750124.
* debian/patches/git-updates.diff: update from the 2.19 branch:
- fixes pthread_spin_lock on sparc/sparc64. Closes: #749087.
* debian/patches/any/submitted-argp-attribute.diff: new patch from Ondřej
Bílka to fix string functions with FORTIFY_SOURCE=2 when <argp.h> is
included before <string.h>. Closes: #647084.
* debian/sysdeps/{sparc,sparc64}.mk: temporarily pass --disable-multiarch
to configure to try to fix random segmentation faults on Niagara 1
machines.
[ Samuel Thibault ]
* hurd-i386/unsubmitted-pthread_posix-option.diff: Split patches into...
* ... hurd-i386/tg-{posix_thread,gai_misc}.diff.
* patches/hurd-i386/cvs-libpthread_guardsize.diff: Fix guard size
computation and enable again.
-- Adam Conrad <adconrad at ubuntu.com> Thu, 19 Jun 2014 03:38:10 -0600
** Changed in: glibc (Ubuntu)
Status: New => Fix Released
** CVE added: http://www.cve.mitre.org/cgi-
bin/cvename.cgi?name=2014-4043
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to eglibc in Ubuntu.
https://bugs.launchpad.net/bugs/1333524
Title:
ppc64el build tunes for POWER7, produces sub optimal POWER8 code
Status in “eglibc” package in Ubuntu:
Invalid
Status in “glibc” package in Ubuntu:
Fix Released
Status in “eglibc” source package in Trusty:
New
Status in “glibc” source package in Trusty:
Invalid
Bug description:
We currently build eglibc using --with-cpu=power7. This gives us
optimised power7 glibc functions, but it also passes -mtune=power7 to
gcc.
Unfortunately this causes gcc to be overly careful about alignment issues. One example is this fragment in tcgetattr, where
we zero a struct byte by byte:
11141c: 2d d7 f9 4b bl aeb48 <bcmp+0x1768>
111420: 00 00 00 60 nop
111424: 00 00 e3 9b stb r31,0(r3)
111428: 01 00 e3 9b stb r31,1(r3)
11142c: 02 00 e3 9b stb r31,2(r3)
111430: 03 00 e3 9b stb r31,3(r3)
111434: 04 00 e3 9b stb r31,4(r3)
111438: 05 00 e3 9b stb r31,5(r3)
11143c: 06 00 e3 9b stb r31,6(r3)
111440: 07 00 e3 9b stb r31,7(r3)
111444: 08 00 e3 9b stb r31,8(r3)
111448: 09 00 e3 9b stb r31,9(r3)
11144c: 0a 00 e3 9b stb r31,10(r3)
111450: 0b 00 e3 9b stb r31,11(r3)
111454: 0c 00 e3 9b stb r31,12(r3)
If we pass -mtune=power8, then things are much better:
1104bc: 8d eb f9 4b bl af048 <bcmp+0x1768>
1104c0: 00 00 00 60 nop
1104c4: 00 00 20 39 li r9,0
1104c8: 00 00 c3 93 stw r30,0(r3)
1104cc: 04 00 c3 93 stw r30,4(r3)
1104d0: 08 00 c3 93 stw r30,8(r3)
1104d4: 0c 00 23 99 stb r9,12(r3)
(The reason we aren't going 64bit stores is a gcc bug which has been
fixed upstream recently)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1333524/+subscriptions
More information about the foundations-bugs
mailing list