summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2022-06-24 14:12:56 +0300
committerArnold D. Robbins <arnold@skeeve.com>2022-06-24 14:12:56 +0300
commit2ae439f369f23c6ab3d2e671ce614fff32e32a38 (patch)
treeb5501d07c56cbb560f0f187c36ab4b148f2386b5 /m4
parentd43b469f0b189cb0ed7d5aa88d1834249cc5f415 (diff)
downloadgawk-2ae439f369f23c6ab3d2e671ce614fff32e32a38.tar.gz
Squashed commit of the following:
commit 61f2a5e0e48e050b8f73b127202af068b8cb574b Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 24 11:08:22 2022 +0300 Update awkcard.in. commit 2b84c068b0568b4efaf93f9f6ffeaf2105295de7 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Wed Jun 22 22:02:59 2022 +0300 A few more small doc updates. commit ce3bb88b7e71e1185c243bcc22cdcc7dbb250988 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Wed Jun 22 10:33:08 2022 +0300 Doc updates. commit 0c101d168279d1400d3954a84a231ee70862ab61 Merge: 78fd9d6f d43b469f Author: Arnold D. Robbins <arnold@skeeve.com> Date: Wed Jun 22 10:19:58 2022 +0300 Merge branch 'master' into feature/pma2 commit 78fd9d6f1f45688d32e77ed7eb8cb18f9a140ec8 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Mon Jun 20 08:48:35 2022 +0300 Add --persist option. commit a6253b1b2f3eba98a42c8b39d4af8916187d7249 Merge: bedd2e70 03f79dcb Author: Arnold D. Robbins <arnold@skeeve.com> Date: Mon Jun 20 08:43:28 2022 +0300 Merge branch 'master' into feature/pma2 commit bedd2e706af48057805b5221886912545c16f193 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 17 14:40:33 2022 +0300 Fix support/ChangeLog. commit 8da00d7e8666808ffa50ae654b5498c4ca4b7d8c Merge: 882a6b67 f2e71851 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 17 14:39:48 2022 +0300 Merge branch 'master' into feature/pma2 commit 882a6b67547204800ca865b530e3f8ef51ebd20c Merge: 5c689dd7 ae879ed7 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 17 14:16:36 2022 +0300 Merge branch 'master' into feature/pma2 commit 5c689dd7da7f60228a78de3710e7d4f27c3a8eb5 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 17 14:10:34 2022 +0300 Doc fixes and small code fixes. commit e3e5bc101641ceda429d8d98b1558dcc8aad5b0b Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 17 12:33:08 2022 +0300 Updates to pma for portability. commit c187096f20b78631fc991898e4db62c5d6a6a441 Merge: de7bb7ee 6b97a4f7 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Wed Jun 15 18:11:00 2022 +0300 Merge branch 'master' into feature/pma2 commit de7bb7ee3e6d69c6c7985f43a0f06527f438e43d Author: Arnold D. Robbins <arnold@skeeve.com> Date: Wed Jun 15 14:16:07 2022 +0300 Add cygwin case to m4/pma.m4. commit d78e8b44f8b470d894b46a0ff4cafc88ce8eed29 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Tue Jun 14 22:43:52 2022 +0300 Doc updates. commit edc9ae773547c911d38b4a6fcb71946762df1e3d Author: Arnold D. Robbins <arnold@skeeve.com> Date: Tue Jun 14 22:40:58 2022 +0300 Add Mac OS support to configuration machinery. commit 37dbf039eee81652d647aa2783f4ea4cb0266f52 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Tue Jun 14 22:01:23 2022 +0300 Add --disable-pma configure option and doc for it. commit b0774ab145fe4828e54da22e6deb850fcceafcf4 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Tue Jun 14 15:13:38 2022 +0300 Use -no-pie only for gcc and clang. commit fdab60d8bd6d78159571d2c4e1c4d08e0684a0ab Author: Arnold D. Robbins <arnold@skeeve.com> Date: Mon Jun 13 22:59:00 2022 +0300 Finish doc on persistent memory. commit 17887261a7537f2e25f6cca63e1d67a93f3a3e36 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Mon Jun 13 13:41:19 2022 +0300 Doc and code improvements. commit 24184e361b734aff4c7c9e96b0090cfaaf351e2d Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 10 14:58:26 2022 +0300 Fix for non-pma build. commit f10f4af373c7ace425f2af9a68f5d6f4daa52bb3 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 10 14:54:54 2022 +0300 Get persistent stuff working! commit 920119080d877186165506ba819a548a5ea4ae85 Author: Arnold D. Robbins <arnold@skeeve.com> Date: Fri Jun 10 10:29:53 2022 +0300 Attempt pma symbol table integration. Works in pass through mode. commit 36ba3cb86acd0cf8b70d78391ef0b77279b57b7c Author: Arnold D. Robbins <arnold@skeeve.com> Date: Thu Jun 9 22:00:21 2022 +0300 Add pma support, based on env var.
Diffstat (limited to 'm4')
-rw-r--r--m4/ChangeLog22
-rw-r--r--m4/pma.m451
2 files changed, 73 insertions, 0 deletions
diff --git a/m4/ChangeLog b/m4/ChangeLog
index fb2467fb..aaac3b88 100644
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,25 @@
+2022-06-15 Arnold D. Robbins <arnold@skeeve.com>
+
+ * pma.m4: Add case for Cygwin.
+
+2022-06-14 Arnold D. Robbins <arnold@skeeve.com>
+
+ * pma.m4: Put -no-pie inside additional check for gcc and clang.
+ Tinycc and PCC are no-PIE anyway. Add support for --disable-pma.
+ Add the right magic for Mac OS.
+
+2022-06-13 Arnold D. Robbins <arnold@skeeve.com>
+
+ * pma.m4: Put -no-pie inside check for Linux.
+
+2022-06-10 Arnold D. Robbins <arnold@skeeve.com>
+
+ * pma.m4: Add -no-pie to LDFLAGS for persistent malloc.
+
+2022-06-09 Arnold D. Robbins <arnold@skeeve.com>
+
+ * pma.m4: New file.
+
2021-10-27 Arnold D. Robbins <arnold@skeeve.com>
* 5.1.1: Release tar ball made.
diff --git a/m4/pma.m4 b/m4/pma.m4
new file mode 100644
index 00000000..f6f6e969
--- /dev/null
+++ b/m4/pma.m4
@@ -0,0 +1,51 @@
+dnl Decide whether or not to use the persistent memory allocator
+
+# Copyright (C) 2022 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([GAWK_USE_PERSISTENT_MALLOC],
+[
+use_persistent_malloc=no
+if test "$SKIP_PERSIST_MALLOC" = no
+then
+ AC_CHECK_FUNC([mmap])
+ AC_CHECK_FUNC([munmap])
+ if test $ac_cv_func_mmap = yes && test $ac_cv_func_munmap = yes
+ then
+ AC_DEFINE(USE_PERSISTENT_MALLOC, 1, [Define to 1 if we can use the pma allocator])
+ use_persistent_malloc=yes
+ case $host_os in
+ linux-*)
+ case $CC in
+ gcc | clang)
+ LDFLAGS="${LDFLAGS} -no-pie"
+ export LDFLAGS
+ ;;
+ *)
+ # tinycc and pcc don't support -no-pie flag
+ # their executables are non-PIE automatically
+ # so no need to do anything
+ ;;
+ esac
+ ;;
+ *darwin*)
+ LDFLAGS="${LDFLAGS} -Xlinker -no_pie"
+ export LDFLAGS
+ ;;
+ *cygwin* | *CYGWIN*)
+ true # nothing do, Cygwin exes are not PIE
+ ;;
+ # Other OS's go here...
+ *)
+ # For now, play it safe
+ use_persistent_malloc=no
+ ;;
+ esac
+ else
+ use_persistent_malloc=no
+ fi
+fi
+AM_CONDITIONAL([USE_PERSISTENT_MALLOC], [test "$use_persistent_malloc" = "yes"])
+])