From 827a80ee5321a2ad041490a606542b4da1ab6a0a Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Fri, 1 Jan 2021 18:20:47 -0600 Subject: [PATCH] scanmem: fix cross-build --- srcpkgs/scanmem/patches/0001-fix-cross.patch | 40 +++++++++++++++++++ srcpkgs/scanmem/patches/fix-musl-test.patch | 41 ++++++++++++++++++++ srcpkgs/scanmem/template | 4 +- 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/scanmem/patches/0001-fix-cross.patch create mode 100644 srcpkgs/scanmem/patches/fix-musl-test.patch diff --git a/srcpkgs/scanmem/patches/0001-fix-cross.patch b/srcpkgs/scanmem/patches/0001-fix-cross.patch new file mode 100644 index 00000000000..45928788fe4 --- /dev/null +++ b/srcpkgs/scanmem/patches/0001-fix-cross.patch @@ -0,0 +1,40 @@ +From e068785581d8b775e018ecbb000646c8cdeb6063 Mon Sep 17 00:00:00 2001 +From: Nathan Owens +Date: Fri, 1 Jan 2021 19:34:45 -0600 +Subject: [PATCH] fix cross + +--- + configure.ac | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git configure.ac configure.ac +index 5b8bac3..5d2ce28 100644 +--- configure.ac ++++ configure.ac +@@ -58,7 +58,12 @@ case "$host_os" in + ;; + esac + ++AC_ARG_ENABLE([procmem], [AS_HELP_STRING([--disable-procmem], ++ [forcefully disable proc/pid/mem support])]) ++ + AS_IF([test "x$android" = "xno"], [ ++ AS_IF([test "x$enable_procmem" != "xno"], ++ [ + # also need to check if the file is zero'ed (some hardened systems) + AC_CHECK_FILE([/proc/self/maps], [], [ + echo "This system does not seem to have /proc/pid/maps files." +@@ -75,7 +80,9 @@ AS_IF([test "x$android" = "xno"], [ + echo "This system does not seem to have /proc/pid/mem files." + echo "Falling back to ptrace() only support." + AC_DEFINE(HAVE_PROCMEM, [0], [Enable /proc/pid/mem support]) +- ]) ++ ])], ++ [AC_DEFINE(HAVE_PROCMEM, [0], [Disable /proc/pid/mem support])] ++ ) + # malloc optimizations without Android + AC_FUNC_MALLOC + AC_FUNC_REALLOC +-- +2.30.0 + diff --git a/srcpkgs/scanmem/patches/fix-musl-test.patch b/srcpkgs/scanmem/patches/fix-musl-test.patch new file mode 100644 index 00000000000..43f6a338a4c --- /dev/null +++ b/srcpkgs/scanmem/patches/fix-musl-test.patch @@ -0,0 +1,41 @@ +From e5781feb4403e7f2de19f7c027cda5e5ef092a5c Mon Sep 17 00:00:00 2001 +From: Nathan Owens +Date: Fri, 1 Jan 2021 15:46:05 -0600 +Subject: [PATCH] fix test for musl + +--- + test/memfake.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git test/memfake.c test/memfake.c +index 1c4fa94..bc2da8e 100644 +--- test/memfake.c ++++ test/memfake.c +@@ -22,19 +22,21 @@ + #include + #include + #include ++#include + + int main(int argc, char **argv) + { +- uint MB_to_allocate = 1; ++ size_t MB_to_allocate = 1; + bool add_randomness = false; + +- if (argc >= 2) MB_to_allocate = atoi(argv[1]); +- if (argc >= 3) add_randomness = atoi(argv[2]); ++ if (argc >= 2) MB_to_allocate = strtoul(argv[1], 0, 10); ++ if (argc >= 3) add_randomness = strtoul(argv[2], 0, 10); + if (argc >= 4) return 1; + + size_t array_size = MB_to_allocate * 1024 * 1024 / sizeof(int); + + int* array = calloc(array_size, sizeof(int)); ++ assert(array != NULL); + + // Fill half with random values and leave an half of zeroes, if asked to + if (add_randomness) { +-- +2.30.0 + diff --git a/srcpkgs/scanmem/template b/srcpkgs/scanmem/template index d694f33d372..c8f6f4fe431 100644 --- a/srcpkgs/scanmem/template +++ b/srcpkgs/scanmem/template @@ -14,7 +14,9 @@ distfiles="https://github.com/${pkgname}/${pkgname}/archive/v${version}.tar.gz" checksum=f02054b91322cf41517506158fcb74554e9fc6644e696f8aa25e5acf162d374b CFLAGS="-D__NEED_pid_t" -nocross="checking for /proc/self/maps... configure: error" +if [ "$CROSS_BUILD" ]; then + configure_args+=" --disable-procmem" +fi pre_configure() { NOCONFIGURE=1 ./autogen.sh