diff options
author | William A. Kennington III <william@wkennington.com> | 2015-03-29 14:17:35 -0700 |
---|---|---|
committer | William A. Kennington III <william@wkennington.com> | 2015-03-29 14:17:42 -0700 |
commit | aeb0b610db241b6e6b7d37efeb54848ef0a3c8df (patch) | |
tree | 39eb283b083ffce3376001d30547071f62076513 /pkgs/development/libraries/libunwind | |
parent | 6d0bfb1b198902dbeacd5e10bfd042084375594c (diff) | |
download | nixpkgs-aeb0b610db241b6e6b7d37efeb54848ef0a3c8df.tar nixpkgs-aeb0b610db241b6e6b7d37efeb54848ef0a3c8df.tar.gz nixpkgs-aeb0b610db241b6e6b7d37efeb54848ef0a3c8df.tar.bz2 nixpkgs-aeb0b610db241b6e6b7d37efeb54848ef0a3c8df.tar.lz nixpkgs-aeb0b610db241b6e6b7d37efeb54848ef0a3c8df.tar.xz nixpkgs-aeb0b610db241b6e6b7d37efeb54848ef0a3c8df.tar.zst nixpkgs-aeb0b610db241b6e6b7d37efeb54848ef0a3c8df.zip |
libunwind: Fix build
Diffstat (limited to 'pkgs/development/libraries/libunwind')
-rw-r--r-- | pkgs/development/libraries/libunwind/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/libraries/libunwind/libunwind-1.1-lzma.patch | 63 |
2 files changed, 69 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix index 75139ea988b..6e8f3548e87 100644 --- a/pkgs/development/libraries/libunwind/default.nix +++ b/pkgs/development/libraries/libunwind/default.nix @@ -8,6 +8,12 @@ stdenv.mkDerivation rec { sha256 = "16nhx2pahh9d62mvszc88q226q5lwjankij276fxwrm8wb50zzlx"; }; + patches = [ ./libunwind-1.1-lzma.patch ]; + + postPatch = '' + sed -i -e '/LIBLZMA/s:-lzma:-llzma:' configure + ''; + propagatedBuildInputs = [ xz ]; NIX_CFLAGS_COMPILE = if stdenv.system == "x86_64-linux" then "-fPIC" else ""; diff --git a/pkgs/development/libraries/libunwind/libunwind-1.1-lzma.patch b/pkgs/development/libraries/libunwind/libunwind-1.1-lzma.patch new file mode 100644 index 00000000000..09cefa02853 --- /dev/null +++ b/pkgs/development/libraries/libunwind/libunwind-1.1-lzma.patch @@ -0,0 +1,63 @@ +From 38c349bb000b427c376e756e3ecdb764a2b4d297 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Sat, 15 Feb 2014 21:00:59 -0500 +Subject: [PATCH] link sublibs against liblzma as needed + +The coredump/elf32/elf64/elfxx libs use lzma funcs but don't link against +it. This produces sub-shared libs that don't link against lzma and can +make the linker angry due to underlinking like so: + +libtool: link: x86_64-pc-linux-gnu-gcc -O2 -march=amdfam10 -pipe -g \ + -frecord-gcc-switches -Wimplicit-function-declaration -fexceptions \ + -Wall -Wsign-compare -Wl,-O1 -Wl,--hash-style=gnu \ + -o .libs/test-coredump-unwind test-coredump-unwind.o \ + ../src/.libs/libunwind-coredump.so ../src/.libs/libunwind-x86_64.so +../src/.libs/libunwind-coredump.so: error: undefined reference to 'lzma_stream_footer_decode' +../src/.libs/libunwind-coredump.so: error: undefined reference to 'lzma_index_buffer_decode' +../src/.libs/libunwind-coredump.so: error: undefined reference to 'lzma_index_size' +../src/.libs/libunwind-coredump.so: error: undefined reference to 'lzma_index_end' +../src/.libs/libunwind-coredump.so: error: undefined reference to 'lzma_index_uncompressed_size' +../src/.libs/libunwind-coredump.so: error: undefined reference to 'lzma_stream_buffer_decode' +collect2: error: ld returned 1 exit status + +So add LIBLZMA to the right LIBADD for each of these libraries. + +URL: https://bugs.gentoo.org/444050 +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + src/Makefile.am | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -169,7 +169,7 @@ libunwind_arm_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libunwind_arm_la_LDFLAGS) $(LDFLAGS) -o $@ + @ARCH_ARM_TRUE@am_libunwind_arm_la_rpath = -rpath $(libdir) +-libunwind_coredump_la_LIBADD = ++libunwind_coredump_la_LIBADD = $(LIBLZMA) + am__libunwind_coredump_la_SOURCES_DIST = coredump/_UCD_accessors.c \ + coredump/_UCD_create.c coredump/_UCD_destroy.c \ + coredump/_UCD_access_mem.c coredump/_UCD_elf_map_image.c \ +@@ -214,15 +214,15 @@ am_libunwind_dwarf_local_la_OBJECTS = dwarf/Lexpr.lo dwarf/Lfde.lo \ + libunwind_dwarf_local_la_OBJECTS = \ + $(am_libunwind_dwarf_local_la_OBJECTS) + @REMOTE_ONLY_FALSE@@USE_DWARF_TRUE@am_libunwind_dwarf_local_la_rpath = +-libunwind_elf32_la_LIBADD = ++libunwind_elf32_la_LIBADD = $(LIBLZMA) + am_libunwind_elf32_la_OBJECTS = elf32.lo + libunwind_elf32_la_OBJECTS = $(am_libunwind_elf32_la_OBJECTS) + @USE_ELF32_TRUE@am_libunwind_elf32_la_rpath = +-libunwind_elf64_la_LIBADD = ++libunwind_elf64_la_LIBADD = $(LIBLZMA) + am_libunwind_elf64_la_OBJECTS = elf64.lo + libunwind_elf64_la_OBJECTS = $(am_libunwind_elf64_la_OBJECTS) + @USE_ELF64_TRUE@am_libunwind_elf64_la_rpath = +-libunwind_elfxx_la_LIBADD = ++libunwind_elfxx_la_LIBADD = $(LIBLZMA) + am_libunwind_elfxx_la_OBJECTS = elfxx.lo + libunwind_elfxx_la_OBJECTS = $(am_libunwind_elfxx_la_OBJECTS) + @USE_ELFXX_TRUE@am_libunwind_elfxx_la_rpath = +-- +1.8.5.5 + |