diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libexecinfo')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch | 44 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libexecinfo/default.nix | 53 |
2 files changed, 97 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch b/nixpkgs/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch new file mode 100644 index 000000000000..134c64441d36 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libexecinfo/30-linux-makefile.patch @@ -0,0 +1,44 @@ +--- Makefile.orig ++++ Makefile +@@ -23,24 +23,25 @@ + # SUCH DAMAGE. + # + # $Id: Makefile,v 1.3 2004/07/19 05:19:55 sobomax Exp $ ++# ++# Linux Makefile by Matt Smith <mcs@darkregion.net>, 2011/01/04 + +-LIB= execinfo ++CC=cc ++AR=ar ++EXECINFO_CFLAGS=$(CFLAGS) -O2 -pipe -fno-strict-aliasing -std=gnu99 -c ++EXECINFO_LDFLAGS=$(LDFLAGS) + +-SRCS= stacktraverse.c stacktraverse.h execinfo.c execinfo.h ++all: static dynamic + +-INCS= execinfo.h ++static: ++ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c ++ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c ++ $(AR) rcs libexecinfo.a stacktraverse.o execinfo.o + +-SHLIB_MAJOR= 1 +-SHLIB_MINOR= 0 ++dynamic: ++ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c -o stacktraverse.So ++ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c -o execinfo.So ++ $(CC) -shared -Wl,-soname,libexecinfo.so.1 -o libexecinfo.so.1 stacktraverse.So execinfo.So + +-NOPROFILE= yes +- +-DPADD= ${LIBM} +-LDADD= -lm +- +-#WARNS?= 4 +- +-#stacktraverse.c: gen.py +-# ./gen.py > stacktraverse.c +- +-.include <bsd.lib.mk> ++clean: ++ rm -rf *.o *.So *.a *.so diff --git a/nixpkgs/pkgs/development/libraries/libexecinfo/default.nix b/nixpkgs/pkgs/development/libraries/libexecinfo/default.nix new file mode 100644 index 000000000000..36f956e77724 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libexecinfo/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchurl, fetchpatch +, enableStatic ? true +, enableShared ? !stdenv.hostPlatform.isStatic +}: + +stdenv.mkDerivation rec { + pname = "libexecinfo"; + version = "1.1"; + + src = fetchurl { + url = "http://distcache.freebsd.org/local-distfiles/itetcu/${pname}-${version}.tar.bz2"; + sha256 = "07wvlpc1jk1sj4k5w53ml6wagh0zm9kv2l1jngv8xb7xww9ik8n9"; + }; + + patches = [ + (fetchpatch { + name = "10-execinfo.patch"; + url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/10-execinfo.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1"; + sha256 = "0lnphrad4vspyljnvmm62dyxj98vgp3wabj4w3vfzfph7j8piw7g"; + }) + (fetchpatch { + name = "20-define-gnu-source.patch"; + url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/20-define-gnu-source.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1"; + sha256 = "1mp8mc639b0h2s69m5z6s2h3q3n1zl298j9j0plzj7f979j76302"; + }) + ./30-linux-makefile.patch + ]; + + makeFlags = [ "CC:=$(CC)" "AR:=$(AR)" ]; + hardeningEnable = [ "stackprotector" ]; + + buildFlags = + lib.optional enableStatic "static" + ++ lib.optional enableShared "dynamic"; + + patchFlags = [ "-p0" ]; + + installPhase = '' + install -Dm644 execinfo.h stacktraverse.h -t $out/include + '' + lib.optionalString enableShared '' + install -Dm755 libexecinfo.so.1 -t $out/lib + ln -s $out/lib/libexecinfo.so{.1,} + '' + lib.optionalString enableStatic '' + install -Dm755 libexecinfo.a -t $out/lib + ''; + + meta = with lib; { + description = "Quick-n-dirty BSD licensed clone of the GNU libc backtrace facility"; + license = licenses.bsd2; + homepage = "https://www.freshports.org/devel/libexecinfo"; + maintainers = with maintainers; [ dtzWill ]; + }; +} |