summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Rees <maxcrees@me.com>2019-07-19 18:51:23 -0400
committerMax Rees <maxcrees@me.com>2019-08-07 18:07:55 -0500
commitab08069ad4a384e9bb5703a81e1399cb90041c67 (patch)
tree93ce2ff96d87fdfdcc10fe76ccd6b6335e406c81
parent420a64fe15922629a54e7d38cdedbf1fc86ee8ff (diff)
downloadpackages-ab08069ad4a384e9bb5703a81e1399cb90041c67.tar.gz
packages-ab08069ad4a384e9bb5703a81e1399cb90041c67.tar.bz2
packages-ab08069ad4a384e9bb5703a81e1399cb90041c67.tar.xz
packages-ab08069ad4a384e9bb5703a81e1399cb90041c67.zip
experimental/libabigail: new package
Problems: * Test suite relies on non-reproducible binaries. Lots of tests fail presumably because it expects a glibc-based system. * Can't seem to get the tools to actually work on musl-produced binaries. No significant output is generated.
-rw-r--r--experimental/libabigail/APKBUILD46
-rw-r--r--experimental/libabigail/musl-basename.patch10
-rw-r--r--experimental/libabigail/musl-fts.patch32
-rw-r--r--experimental/libabigail/redhat-bs.patch11
4 files changed, 99 insertions, 0 deletions
diff --git a/experimental/libabigail/APKBUILD b/experimental/libabigail/APKBUILD
new file mode 100644
index 000000000..87c80935e
--- /dev/null
+++ b/experimental/libabigail/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Max Rees <maxcrees@me.com>
+# Maintainer: Max Rees <maxcrees@me.com>
+pkgname=libabigail
+pkgver=1.6
+pkgrel=0
+pkgdesc="The ABI Generic Analysis and Instrumentation Library"
+url="https://sourceware.org/libabigail/"
+arch="all"
+options="!check" # Relies on checking non-reproducible binaries.
+license="LGPL-3.0+"
+depends=""
+depends_dev=""
+makedepends="$depends_dev elfutils-dev fts-dev libxml2-dev"
+subpackages="$pkgname-dev"
+source="http://mirrors.kernel.org/sourceware/libabigail/$pkgname-$pkgver.tar.gz
+ musl-basename.patch
+ musl-fts.patch
+ redhat-bs.patch"
+
+prepare() {
+ default_prepare
+ autoreconf -vif
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="2ba775bd836b53265dae60e66065fc2106e7f633e890cc70b6abacb8426e04ec0b7b38593c21336f5785cf5e4eb8d110fb15ce63124cddc59f660f31c7b25b3c libabigail-1.6.tar.gz
+ef5c7db0ce05dff36c654e4a6345ded43032b76bdc9159da60a5fdc59b3c70943881cb19c87a4c6b30eccb774c6c7767e790b395564058f5dbaa6e3f3e0b1373 musl-fts.patch
+0f5dcee3fbb1ee949df22e13a8ad248a8e39a086cb4c3561f5f45235c2f27cc589a07886560e2ecf7ee040811f64892c0e74ed653e0a1a5d20e62ab360c388a4 redhat-bs.patch"
diff --git a/experimental/libabigail/musl-basename.patch b/experimental/libabigail/musl-basename.patch
new file mode 100644
index 000000000..5e5088085
--- /dev/null
+++ b/experimental/libabigail/musl-basename.patch
@@ -0,0 +1,10 @@
+--- libabigail-1.6/tools/abisym.cc 2019-03-27 05:31:13.000000000 -0400
++++ libabigail-1.6/tools/abisym.cc 2019-07-18 07:19:28.999752604 -0400
+@@ -26,6 +26,7 @@
+ /// in its symbol tables and report what it sees.
+
+ #include <elf.h>
++#include <libgen.h>
+ #include <cstring>
+ #include <iostream>
+ #include <sstream>
diff --git a/experimental/libabigail/musl-fts.patch b/experimental/libabigail/musl-fts.patch
new file mode 100644
index 000000000..4824812c8
--- /dev/null
+++ b/experimental/libabigail/musl-fts.patch
@@ -0,0 +1,32 @@
+--- libabigail-1.6/configure.ac 2019-03-27 05:31:13.000000000 -0400
++++ libabigail-1.6/configure.ac 2019-07-18 07:12:25.129755599 -0400
+@@ -147,20 +147,6 @@ fi
+
+ AC_SUBST(VISIBILITY_FLAGS)
+
+-dnl Older glibc had a broken fts that didn't work with Large File Systems.
+-dnl We want the version that can handler LFS, but include workaround if we
+-dnl get a bad one. Add define to CFLAGS (not AC_DEFINE it) since we need to
+-dnl check it before including config.h (which might define _FILE_OFFSET_BITS).
+-AC_CACHE_CHECK([whether including fts.h with _FILE_OFFSET_BITS set breaks], ac_cv_bad_fts,
+- [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+- #define _FILE_OFFSET_BITS 64
+- #include <fts.h>
+- ]])],
+- ac_cv_bad_fts=no, ac_cv_bad_fts=yes)])
+-AS_IF([test "x$ac_cv_bad_fts" = "xyes"],
+- [CFLAGS="$CFLAGS -DBAD_FTS=1",
+- CXXFLAGS="$CXXFLAGS -DBAD_FTS=1"])
+-
+ dnl Check for dependency: libelf, libdw, libebl (elfutils)
+ dnl Note that we need to use at least elfutils 0.159 but
+ dnl at that time elfutils didnt have pkgconfig capabilities
+@@ -577,7 +563,7 @@ AX_VALGRIND_CHECK
+
+ dnl Set the list of libraries libabigail depends on
+
+-DEPS_LIBS="$XML_LIBS $LIBZIP_LIBS $ELF_LIBS $DW_LIBS"
++DEPS_LIBS="$XML_LIBS $LIBZIP_LIBS $ELF_LIBS $DW_LIBS -lfts"
+ AC_SUBST(DEPS_LIBS)
+
+ if test x$ABIGAIL_DEVEL != x; then
diff --git a/experimental/libabigail/redhat-bs.patch b/experimental/libabigail/redhat-bs.patch
new file mode 100644
index 000000000..4124aaab0
--- /dev/null
+++ b/experimental/libabigail/redhat-bs.patch
@@ -0,0 +1,11 @@
+--- libabigail-1.6/build-aux/ltmain.sh 2015-04-24 08:08:19.000000000 -0400
++++ libabigail-1.6/build-aux/ltmain.sh 2019-07-18 07:03:18.589759461 -0400
+@@ -6523,7 +6523,7 @@ func_mode_link ()
+ old_convenience=
+ deplibs=
+ old_deplibs=
+- compiler_flags="-specs=/usr/lib/rpm/redhat/redhat-hardened-ld"
++ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`