Merge branch 'staging'

It includes a security update of libidn.
This commit is contained in:
Vladimír Čunát 2016-07-28 20:36:17 +02:00
commit 3a402e248f
8 changed files with 12 additions and 171 deletions

View file

@ -1,11 +1,11 @@
{ fetchurl, stdenv, pth, libgpgerror }:
stdenv.mkDerivation rec {
name = "libassuan-2.4.2";
name = "libassuan-2.4.3";
src = fetchurl {
url = "mirror://gnupg/libassuan/${name}.tar.bz2";
sha256 = "086bbcdnvs48qq5g4iac7dpk76j0q3jrp16mchdvyx0b720xq1mv";
sha256 = "0w9bmasln4z8mn16s1is55a06w3nv8jbyal496z5jvr5vcxkm112";
};
outputs = [ "dev" "out" "info" ];

View file

@ -4,11 +4,11 @@ assert enableCapabilities -> stdenv.isLinux;
stdenv.mkDerivation rec {
name = "libgcrypt-${version}";
version = "1.7.1";
version = "1.7.2";
src = fetchurl {
url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
sha256 = "15bsdpihb8xvr2a6sh0ikzw9wdw3gdi4pl1vpr6wc48npzy9q3a5";
sha256 = "17v8nvvxagcwxz46apzz575l8682kfd78pf00i2kbavfdn8dyd9x";
};
outputs = [ "dev" "out" "info" ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "libgpg-error-${version}";
version = "1.23";
version = "1.24";
src = fetchurl {
url = "mirror://gnupg/libgpg-error/${name}.tar.bz2";
sha256 = "1alyjd6671drj92m0qi9943rfmf1sjjbzvmz97v4hh4cp5jpy33z";
sha256 = "0h75sf1ngr750c3fjfn4583q7wz40qm63jhg8vjfdrbx936f2s4j";
};
postPatch = "sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure";

View file

@ -1,11 +1,11 @@
{ fetchurl, stdenv, libiconv }:
stdenv.mkDerivation rec {
name = "libidn-1.32";
name = "libidn-1.33";
src = fetchurl {
url = "mirror://gnu/libidn/${name}.tar.gz";
sha256 = "1xf4hphhahcjm2xwx147lfpsavjwv9l4c2gf6hx71zxywbz5lpds";
sha256 = "068fjg2arlppjqqpzd714n1lf6gxkpac9v5yyvp1qwmv6nvam9s4";
};
outputs = [ "dev" "out" "bin" "info" "docdev" ];

View file

@ -2,7 +2,7 @@
, cross ? null, gold ? true, bison ? null
}:
let basename = "binutils-2.26"; in
let basename = "binutils-2.26.1"; in
with { inherit (stdenv.lib) optional optionals optionalString; };
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://gnu/binutils/${basename}.tar.bz2";
sha256 = "1ngc2h3knhiw8s22l8y6afycfaxr5grviqy7mwvm4bsl14cf9b62";
sha256 = "1n4zjibdvqwz63kkzkjdqdp1nh993pn0lml6yyr19yx4gb44dhrr";
};
patches = [
@ -32,12 +32,6 @@ stdenv.mkDerivation rec {
# This is needed, for instance, so that running "ldd" on a binary that is
# PaX-marked to disable mprotect doesn't fail with permission denied.
./pt-pax-flags.patch
# Bug fix backported from binutils master.
./fix-bsymbolic.patch
# Bug fix backported from binutils master.
./fix-update-symbol-version.patch
];
outputs = (optional (cross == null) "dev") ++ [ "out" "info" ];

View file

@ -1,47 +0,0 @@
http://lists.gnu.org/archive/html/bug-binutils/2016-01/msg00193.html
https://sourceware.org/bugzilla/show_bug.cgi?id=19615
From 1dab972d797c060e17229c2e10da01852ba82629 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 11 Feb 2016 15:31:15 -0800
Subject: [PATCH] Enable -Bsymbolic and -Bsymbolic-functions to PIE
Before binutils 2.26, -Bsymbolic and -Bsymbolic-functions were also
applied to PIE so that "ld -pie -Bsymbolic -E" can be used to export
symbols in PIE with local binding. This patch re-enables -Bsymbolic
and -Bsymbolic-functions for PIE.
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 4cad209..e2fb212 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -1586,15 +1586,14 @@ parse_args (unsigned argc, char **argv)
/* We may have -Bsymbolic, -Bsymbolic-functions, --dynamic-list-data,
--dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo and
--dynamic-list FILE. -Bsymbolic and -Bsymbolic-functions are
- for shared libraries. -Bsymbolic overrides all others and vice
- versa. */
+ for PIC outputs. -Bsymbolic overrides all others and vice versa. */
switch (command_line.symbolic)
{
case symbolic_unset:
break;
case symbolic:
- /* -Bsymbolic is for shared library only. */
- if (bfd_link_dll (&link_info))
+ /* -Bsymbolic is for PIC output only. */
+ if (bfd_link_pic (&link_info))
{
link_info.symbolic = TRUE;
/* Should we free the unused memory? */
@@ -1603,8 +1602,8 @@ parse_args (unsigned argc, char **argv)
}
break;
case symbolic_functions:
- /* -Bsymbolic-functions is for shared library only. */
- if (bfd_link_dll (&link_info))
+ /* -Bsymbolic-functions is for PIC output only. */
+ if (bfd_link_pic (&link_info))
command_line.dynamic_list = dynamic_list_data;
break;
}

View file

@ -1,106 +0,0 @@
NOTE: removed Changelog diffs to avoid the patch failing to apply
From 544ddf9322b1b83982e5cb84a54d084ee7e718ea Mon Sep 17 00:00:00 2001
From: H.J. Lu <hjl.tools@gmail.com>
Date: Wed, 24 Feb 2016 15:13:35 -0800
Subject: [PATCH] Update symbol version for symbol from linker script
We need to update symbol version for symbols from linker script.
Backport from master
bfd/
PR ld/19698
* elflink.c (bfd_elf_record_link_assignment): Set versioned if
symbol version is unknown.
ld/
PR ld/19698
* testsuite/ld-elf/pr19698.d: New file.
* testsuite/ld-elf/pr19698.s: Likewise.
* testsuite/ld-elf/pr19698.t: Likewise.
---
bfd/ChangeLog | 9 +++++++++
bfd/elflink.c | 13 +++++++++++++
ld/ChangeLog | 10 ++++++++++
ld/testsuite/ld-elf/pr19698.d | 10 ++++++++++
ld/testsuite/ld-elf/pr19698.s | 5 +++++
ld/testsuite/ld-elf/pr19698.t | 11 +++++++++++
6 files changed, 58 insertions(+), 0 deletions(-)
create mode 100644 ld/testsuite/ld-elf/pr19698.d
create mode 100644 ld/testsuite/ld-elf/pr19698.s
create mode 100644 ld/testsuite/ld-elf/pr19698.t
diff --git a/bfd/elflink.c b/bfd/elflink.c
index ae8d148..8fcaadd 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -555,6 +555,19 @@ bfd_elf_record_link_assignment (bfd *output_bfd,
if (h == NULL)
return provide;
+ if (h->versioned == unknown)
+ {
+ /* Set versioned if symbol version is unknown. */
+ char *version = strrchr (name, ELF_VER_CHR);
+ if (version)
+ {
+ if (version > name && version[-1] != ELF_VER_CHR)
+ h->versioned = versioned_hidden;
+ else
+ h->versioned = versioned;
+ }
+ }
+
switch (h->root.type)
{
case bfd_link_hash_defined:
diff --git a/ld/testsuite/ld-elf/pr19698.d b/ld/testsuite/ld-elf/pr19698.d
new file mode 100644
index 0000000..a39f67a
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr19698.d
@@ -0,0 +1,10 @@
+#ld: -shared $srcdir/$subdir/pr19698.t
+#readelf : --dyn-syms --wide
+#target: *-*-linux* *-*-gnu* *-*-solaris*
+
+Symbol table '\.dynsym' contains [0-9]+ entries:
+#...
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@VERS.1
+#...
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@@VERS.2
+#pass
diff --git a/ld/testsuite/ld-elf/pr19698.s b/ld/testsuite/ld-elf/pr19698.s
new file mode 100644
index 0000000..875dca4
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr19698.s
@@ -0,0 +1,5 @@
+ .text
+ .globl foo
+ .type foo, %function
+foo:
+ .byte 0
diff --git a/ld/testsuite/ld-elf/pr19698.t b/ld/testsuite/ld-elf/pr19698.t
new file mode 100644
index 0000000..09d9125
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr19698.t
@@ -0,0 +1,11 @@
+"foo@VERS.1" = foo;
+
+VERSION {
+VERS.2 {
+ global:
+ foo;
+};
+
+VERS.1 {
+};
+}
--
1.7.1

View file

@ -15,11 +15,11 @@ assert x11Support -> pinentry != null;
stdenv.mkDerivation rec {
name = "gnupg-${version}";
version = "2.1.13";
version = "2.1.14";
src = fetchurl {
url = "mirror://gnupg/gnupg/${name}.tar.bz2";
sha256 = "0xcn46vcb5x5qx0bc803vpzhzhnn6wfhp7x71w9n1ahx4ak877ag";
sha256 = "0hmsiscpdpdqd8kcjpzkz2gzcc3cnrvswk9p1jzi4sivd7lxwl4l";
};
buildInputs = [