[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[glibc] 01/02: hurd-i386/cvs-open.diff: Fix __open in ld.so, thus fixing dlopen().



This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch glibc-2.23
in repository glibc.

commit d15e0b2e9a0b0c7964b12da5bc20a61f1e4be64f
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Mar 20 19:41:17 2016 +0100

    hurd-i386/cvs-open.diff: Fix __open in ld.so, thus fixing dlopen().
---
 debian/changelog                       |  1 +
 debian/patches/hurd-i386/cvs-open.diff | 82 ++++++++++++++++++++++++++++++++++
 debian/patches/series                  |  1 +
 3 files changed, 84 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 52cdcc2..d3f92b0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -16,6 +16,7 @@ glibc (2.23-0experimental1) UNRELEASED; urgency=medium
   * hurd-i386/unsubmitted-libpthread.so.diff: Fix building malloc tests.
   * testsuite-xfail-debian.mk: Skip test which just overflows memory.
   * hurd-i386/cvs-pt-kill.diff: Fix pthread_kill locking.
+  * hurd-i386/cvs-open.diff: Fix __open in ld.so, thus fixing dlopen().
 
   [ Adam Conrad ]
   * debian/patches/any/cvs-tst-malloc-thread-exit.diff: Backport fix from
diff --git a/debian/patches/hurd-i386/cvs-open.diff b/debian/patches/hurd-i386/cvs-open.diff
new file mode 100644
index 0000000..5532bfc
--- /dev/null
+++ b/debian/patches/hurd-i386/cvs-open.diff
@@ -0,0 +1,82 @@
+commit 23971d2e026d0f6843db02009fd19b8a260e25d7
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date:   Sun Mar 20 17:56:47 2016 +0100
+
+    hurd: Do not hide rtld symbols which need to be preempted
+    
+    	* sysdeps/generic/dl-fcntl.h: New file, adds attribute_hidden to __open
+    	and __fcntl.
+    	* sysdeps/mach/hurd/dl-fcntl.h: New file, adds attribute_hidden to
+    	__fcntl only.
+    	* include/fcntl.h [IS_IN (rtld)]: Include <dl-fcntl.h> instead of
+    	adding attribute_hidden to __open and __fcntl.
+
+diff --git a/include/fcntl.h b/include/fcntl.h
+index 4168ee4..3b2c887 100644
+--- a/include/fcntl.h
++++ b/include/fcntl.h
+@@ -31,8 +31,7 @@ extern int __openat64_2 (int __fd, const char *__path, int __oflag);
+ 
+ 
+ #if IS_IN (rtld)
+-extern __typeof (__open) __open attribute_hidden;
+-extern __typeof (__fcntl) __fcntl attribute_hidden;
++#  include <dl-fcntl.h>
+ #endif
+ 
+ /* Flag determining whether the *at system calls are available.  */
+diff --git a/sysdeps/generic/dl-fcntl.h b/sysdeps/generic/dl-fcntl.h
+new file mode 100644
+index 0000000..ee3c49c
+--- /dev/null
++++ b/sysdeps/generic/dl-fcntl.h
+@@ -0,0 +1,21 @@
++/* Functions with hidden attribute internal to ld.so, which are declared
++   in include/fcntl.h.  Generic version.
++   Copyright (C) 2016 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++extern __typeof (__open) __open attribute_hidden;
++extern __typeof (__fcntl) __fcntl attribute_hidden;
+diff --git a/sysdeps/mach/hurd/dl-fcntl.h b/sysdeps/mach/hurd/dl-fcntl.h
+new file mode 100644
+index 0000000..c34bf12
+--- /dev/null
++++ b/sysdeps/mach/hurd/dl-fcntl.h
+@@ -0,0 +1,22 @@
++/* Functions with hidden attribute internal to ld.so, which are declared
++   in include/fcntl.h.  Hurd version.
++   Copyright (C) 2016 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++/* __open can't be hidden in ld.so on Hurd since it will be preempted by the
++   one in libc.so after bootstrap.  */
++extern __typeof (__fcntl) __fcntl attribute_hidden;
diff --git a/debian/patches/series b/debian/patches/series
index 15d678d..7c7fa2c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -136,6 +136,7 @@ hurd-i386/cvs-openat.diff
 hurd-i386/cvs-gai_sigqueue.diff
 hurd-i386/cvs-aio_sigqueue.diff
 hurd-i386/cvs-pt-kill.diff
+hurd-i386/cvs-open.diff
 
 i386/local-biarch.diff
 i386/local-cmov.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git


Reply to: