~ruther/guix-local

bf0baaf7db6c3ab7d54f274a8728612e323b1b08 — Mark H Weaver 11 years ago 26804e1
gnu: glibc: MIPS: Avoid a dangling `vfork@GLIBC_2.0' reference.

* gnu/packages/patches/glibc-mips-dangling-vfork-ref.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc): Add patch.
3 files changed, 47 insertions(+), 0 deletions(-)

M gnu-system.am
M gnu/packages/base.scm
A gnu/packages/patches/glibc-mips-dangling-vfork-ref.patch
M gnu-system.am => gnu-system.am +1 -0
@@ 366,6 366,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/glibc-CVE-2014-7817.patch		\
  gnu/packages/patches/glibc-bootstrap-system.patch		\
  gnu/packages/patches/glibc-ldd-x86_64.patch			\
  gnu/packages/patches/glibc-mips-dangling-vfork-ref.patch	\
  gnu/packages/patches/gnunet-fix-scheduler.patch		\
  gnu/packages/patches/gnunet-fix-tests.patch    		\
  gnu/packages/patches/gobject-introspection-cc.patch		\

M gnu/packages/base.scm => gnu/packages/base.scm +1 -0
@@ 377,6 377,7 @@ included.")
            (modules '((guix build utils)))
            (patches (list (search-patch "glibc-CVE-2014-7817.patch")
                           (search-patch "glibc-CVE-2012-3406.patch")
                           (search-patch "glibc-mips-dangling-vfork-ref.patch")
                           (search-patch "glibc-ldd-x86_64.patch")))))
   (build-system gnu-build-system)


A gnu/packages/patches/glibc-mips-dangling-vfork-ref.patch => gnu/packages/patches/glibc-mips-dangling-vfork-ref.patch +45 -0
@@ 0,0 1,45 @@
Avoid a dangling `vfork@GLIBC_2.0' reference on MIPS.

Note: Here the ChangeLog and NEWS updates are removed from Maciej's
      patch, since they depend on other earlier commits.

From: Maciej W. Rozycki <macro@codesourcery.com>
Date: Wed, 22 Oct 2014 14:20:37 +0000 (+0100)
Subject: MIPS: Avoid a dangling `vfork@GLIBC_2.0' reference
X-Git-Url: https://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=c14e752fc73d34c75d4f84f37fea8e0b1734cf98

MIPS: Avoid a dangling `vfork@GLIBC_2.0' reference

This satisfies a symbol reference created with:

	.symver	__libc_vfork, vfork@GLIBC_2.0

where `__libc_vfork' has not been defined or referenced.  In this case
the `vfork@GLIBC_2.0' reference is supposed to be discarded, however a
bug present in GAS since forever causes an undefined symbol table entry
to be created.  This in turn triggers a problem in the linker that can
manifest itself by link errors such as:

ld: libpthread.so: invalid string offset 2765592330 >= 5154 for section `.dynstr'

The GAS and linker bugs need to be resolved, but we can avoid them too
by providing a `__libc_vfork' definition just like our other platforms.

	[BZ #17485]
	* sysdeps/unix/sysv/linux/mips/vfork.S (__libc_vfork): Define.

(cherry picked from commit b5af9297d51a43f96c5be1bafab032184690dd6f)

Conflicts:
	NEWS
---

diff --git a/sysdeps/unix/sysv/linux/mips/vfork.S b/sysdeps/unix/sysv/linux/mips/vfork.S
index 80c362d..2c1a747 100644
--- a/sysdeps/unix/sysv/linux/mips/vfork.S
+++ b/sysdeps/unix/sysv/linux/mips/vfork.S
@@ -108,3 +108,4 @@ L(error):
 
 libc_hidden_def(__vfork)
 weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)