summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2013-09-19 19:22:36 +0000
committerMike Frysinger <vapier@gentoo.org>2013-09-19 19:22:36 +0000
commit7319e90f320cfdb75f414109ccabcf2ddd11b41a (patch)
treec2eae6573c0bf2efc2131e6cc5f8021288f6d585 /dev-libs/elfutils/files
parentarm stable, bug #478742 (diff)
downloadgentoo-2-7319e90f320cfdb75f414109ccabcf2ddd11b41a.tar.gz
gentoo-2-7319e90f320cfdb75f414109ccabcf2ddd11b41a.tar.bz2
gentoo-2-7319e90f320cfdb75f414109ccabcf2ddd11b41a.zip
Fix building with clang due to small nested function #451986 by Hendrik v. Raven.
(Portage version: 2.2.0/cvs/Linux x86_64, signed Manifest commit with key FB7C4156)
Diffstat (limited to 'dev-libs/elfutils/files')
-rw-r--r--dev-libs/elfutils/files/elfutils-0.156-nested-funcs.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/dev-libs/elfutils/files/elfutils-0.156-nested-funcs.patch b/dev-libs/elfutils/files/elfutils-0.156-nested-funcs.patch
new file mode 100644
index 000000000000..f658a8f3e21e
--- /dev/null
+++ b/dev-libs/elfutils/files/elfutils-0.156-nested-funcs.patch
@@ -0,0 +1,36 @@
+clang does not like nested funcs. use a define instead.
+
+https://bugs.gentoo.org/451986
+
+--- a/libelf/elf_begin.c
++++ b/libelf/elf_begin.c
+@@ -1011,18 +1011,17 @@ elf_begin (fildes, cmd, ref)
+ return NULL;
+ }
+
+- Elf *lock_dup_elf ()
+- {
+- /* We need wrlock to dup an archive. */
+- if (ref->kind == ELF_K_AR)
+- {
+- rwlock_unlock (ref->lock);
+- rwlock_wrlock (ref->lock);
+- }
+-
+- /* Duplicate the descriptor. */
+- return dup_elf (fildes, cmd, ref);
+- }
++#define lock_dup_elf() \
++ ({ \
++ /* We need wrlock to dup an archive. */ \
++ if (ref->kind == ELF_K_AR) \
++ { \
++ rwlock_unlock (ref->lock); \
++ rwlock_wrlock (ref->lock); \
++ } \
++ /* Duplicate the descriptor. */ \
++ dup_elf (fildes, cmd, ref); \
++ })
+
+ switch (cmd)
+ {