diff options
author | riastradh <riastradh@pkgsrc.org> | 2013-05-10 01:17:32 +0000 |
---|---|---|
committer | riastradh <riastradh@pkgsrc.org> | 2013-05-10 01:17:32 +0000 |
commit | 4bf5b7955a9b8e89daf364269466322cb55a6bf4 (patch) | |
tree | 41a075f50e5aff1523975e90cafa177c7fbc7685 /shells/zsh/patches | |
parent | 49f8085bdc74f889b045bc5ffb8f65b2130709b2 (diff) | |
download | pkgsrc-4bf5b7955a9b8e89daf364269466322cb55a6bf4.tar.gz |
Fix zsh cross-build on NetBSD.
Patch it up to use compile-tests rather than run-tests in autoconf
for many of its tests (OS-independently). Teach it about the few
remaining properties for NetBSD in particular.
ok agc
Diffstat (limited to 'shells/zsh/patches')
-rw-r--r-- | shells/zsh/patches/patch-ac | 164 | ||||
-rw-r--r-- | shells/zsh/patches/patch-aczsh.m4 | 29 | ||||
-rw-r--r-- | shells/zsh/patches/patch-configure.ac | 98 |
3 files changed, 286 insertions, 5 deletions
diff --git a/shells/zsh/patches/patch-ac b/shells/zsh/patches/patch-ac index 03b6c9fc3e1..7ccfb2c9d87 100644 --- a/shells/zsh/patches/patch-ac +++ b/shells/zsh/patches/patch-ac @@ -1,17 +1,23 @@ -$NetBSD: patch-ac,v 1.28 2013/02/22 13:40:30 jperkin Exp $ +$NetBSD: patch-ac,v 1.29 2013/05/10 01:17:33 riastradh Exp $ First chunk: Add support for thread limits. From Peter Stephenson <Peter.Stephenson@csr.com> on zsh-workers. +Accepted by Peter Stephenson <p.w.stephenson@ntlworld.com> on +zsh-workers on 2012-08-16. + +Middle chunks: +Use a compile test, not a run test, for whether various rlimit values +are equivalent. A compile test is sufficient because zsh uses these +values in switch cases, so they must be compile-time, if not +preprocessor-time, constants. -All other chunks: +Last chunk: Make this package build on Interix. Patches provided by Hiramatsu Yoshifumi in PR pkg/25946. Last chunk only: Don't force -Wl,--whole-archive for NetBSD, it breaks the build with clang, which doesn't have a reason to disable it again. - -All chunks: Accepted by Peter Stephenson <p.w.stephenson@ntlworld.com> on zsh-workers on 2012-08-16. @@ -60,7 +66,155 @@ zsh-workers on 2012-08-16. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for limit RLIMIT_NOFILE" >&5 $as_echo_n "checking for limit RLIMIT_NOFILE... " >&6; } if ${zsh_cv_have_RLIMIT_NOFILE+:} false; then : -@@ -11630,6 +11666,10 @@ $as_echo "$zsh_cv_sys_elf" >&6; } +@@ -10011,9 +10047,6 @@ $as_echo_n "checking if RLIMIT_VMEM and + if ${zsh_cv_rlimit_vmem_is_rss+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then : +- zsh_cv_rlimit_vmem_is_rss=no +-else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -10022,43 +10055,33 @@ else + #include <sys/time.h> + #endif + #include <sys/resource.h> +-int main() ++int ++main () + { +-int ret = 1; +-#if defined(HAVE_RLIMIT_VMEM) && defined(HAVE_RLIMIT_RSS) +-if (RLIMIT_RSS == RLIMIT_VMEM) ret = 0; +-#endif +-return ret; ++static char x[(RLIMIT_VMEM == RLIMIT_RSS)? 1 : -1] ++ ; ++ return 0; + } + _ACEOF +-if ac_fn_c_try_run "$LINENO"; then : ++if ac_fn_c_try_compile "$LINENO"; then : + zsh_cv_rlimit_vmem_is_rss=yes + else + zsh_cv_rlimit_vmem_is_rss=no + fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $zsh_cv_rlimit_vmem_is_rss" >&5 + $as_echo "$zsh_cv_rlimit_vmem_is_rss" >&6; } +- + if test x$zsh_cv_rlimit_vmem_is_rss = xyes; then + $as_echo "#define RLIMIT_VMEM_IS_RSS 1" >>confdefs.h + + fi + +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RLIMIT_VMEM and RLIMIT_AS are the same" >&5 + $as_echo_n "checking if RLIMIT_VMEM and RLIMIT_AS are the same... " >&6; } + if ${zsh_cv_rlimit_vmem_is_as+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then : +- zsh_cv_rlimit_vmem_is_as=no +-else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -10067,43 +10090,33 @@ else + #include <sys/time.h> + #endif + #include <sys/resource.h> +-int main() ++int ++main () + { +-int ret = 1; +-#if defined(HAVE_RLIMIT_VMEM) && defined(HAVE_RLIMIT_AS) +-if (RLIMIT_AS == RLIMIT_VMEM) ret = 0; +-#endif +-return ret; ++static char x[(RLIMIT_VMEM == RLIMIT_AS)? 1 : -1] ++ ; ++ return 0; + } + _ACEOF +-if ac_fn_c_try_run "$LINENO"; then : ++if ac_fn_c_try_compile "$LINENO"; then : + zsh_cv_rlimit_vmem_is_as=yes + else + zsh_cv_rlimit_vmem_is_as=no + fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $zsh_cv_rlimit_vmem_is_as" >&5 + $as_echo "$zsh_cv_rlimit_vmem_is_as" >&6; } +- + if test x$zsh_cv_rlimit_vmem_is_as = xyes; then + $as_echo "#define RLIMIT_VMEM_IS_AS 1" >>confdefs.h + + fi + +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RLIMIT_RSS and RLIMIT_AS are the same" >&5 + $as_echo_n "checking if RLIMIT_RSS and RLIMIT_AS are the same... " >&6; } + if ${zsh_cv_rlimit_rss_is_as+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then : +- zsh_cv_rlimit_rss_is_as=no +-else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -10112,28 +10125,23 @@ else + #include <sys/time.h> + #endif + #include <sys/resource.h> +-int main() ++int ++main () + { +-int ret = 1; +-#if defined(HAVE_RLIMIT_RSS) && defined(HAVE_RLIMIT_AS) +-if (RLIMIT_AS == RLIMIT_RSS) ret = 0; +-#endif +-return ret; ++static char x[(RLIMIT_RSS == RLIMIT_AS)? 1 : -1] ++ ; ++ return 0; + } + _ACEOF +-if ac_fn_c_try_run "$LINENO"; then : ++if ac_fn_c_try_compile "$LINENO"; then : + zsh_cv_rlimit_rss_is_as=yes + else + zsh_cv_rlimit_rss_is_as=no + fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $zsh_cv_rlimit_rss_is_as" >&5 + $as_echo "$zsh_cv_rlimit_rss_is_as" >&6; } +- + if test x$zsh_cv_rlimit_rss_is_as = xyes; then + $as_echo "#define RLIMIT_RSS_IS_AS 1" >>confdefs.h + +@@ -11630,6 +11638,10 @@ $as_echo "$zsh_cv_sys_elf" >&6; } DLLD="${DLLD=$CC}" DLLDARG="" ;; diff --git a/shells/zsh/patches/patch-aczsh.m4 b/shells/zsh/patches/patch-aczsh.m4 new file mode 100644 index 00000000000..da42b47bca9 --- /dev/null +++ b/shells/zsh/patches/patch-aczsh.m4 @@ -0,0 +1,29 @@ +$NetBSD: patch-aczsh.m4,v 1.1 2013/05/10 01:17:33 riastradh Exp $ + +Add a utility for compile tests to compare rlimit keys. + +--- aczsh.m4.orig 2009-05-16 12:08:44.000000000 +0000 ++++ aczsh.m4 +@@ -688,3 +688,22 @@ if test $zsh_cv_have_$1 = yes; then + AC_DEFINE(HAVE_$1) + fi]) + ++dnl Check whether rlimit $1, e.g. AS, is the same as rlmit $3, e.g. VMEM. ++dnl $2 is lowercase $1, $4 is lowercase $3. ++AC_DEFUN(zsh_LIMITS_EQUAL, ++[AH_TEMPLATE([RLIMIT_]$1[_IS_]$3, ++[Define to 1 if RLIMIT_]$1[ and RLIMIT_]$3[ both exist and are equal.]) ++AC_CACHE_CHECK([if RLIMIT_]$1[ and RLIMIT_]$3[ are the same], ++zsh_cv_rlimit_$2_is_$4, ++[AC_TRY_COMPILE([ ++#include <sys/types.h> ++#ifdef HAVE_SYS_TIME_H ++#include <sys/time.h> ++#endif ++#include <sys/resource.h>], ++[static char x[(RLIMIT_$1 == RLIMIT_$3)? 1 : -1]], ++ zsh_cv_rlimit_$2_is_$4=yes, ++ zsh_cv_rlimit_$2_is_$4=no)]) ++if test x$zsh_cv_rlimit_$2_is_$4 = xyes; then ++ AC_DEFINE(RLIMIT_$1_IS_$3) ++fi]) diff --git a/shells/zsh/patches/patch-configure.ac b/shells/zsh/patches/patch-configure.ac new file mode 100644 index 00000000000..cf8db3f0688 --- /dev/null +++ b/shells/zsh/patches/patch-configure.ac @@ -0,0 +1,98 @@ +$NetBSD: patch-configure.ac,v 1.3 2013/05/10 01:17:33 riastradh Exp $ + +Use a compile test, not a run test, for whether various rlimit values +are equivalent. A compile test is sufficient because zsh uses these +values in switch cases, so they must be compile-time, if not +preprocessor-time, constants. + +--- configure.ac.orig 2012-09-09 18:26:47.000000000 +0000 ++++ configure.ac +@@ -1812,85 +1812,9 @@ zsh_LIMIT_PRESENT(RLIMIT_MSGQUEUE) + zsh_LIMIT_PRESENT(RLIMIT_NICE) + zsh_LIMIT_PRESENT(RLIMIT_RTPRIO) + +-AH_TEMPLATE([RLIMIT_VMEM_IS_RSS], +-[Define to 1 if RLIMIT_VMEM and RLIMIT_RSS both exist and are equal.]) +-AC_CACHE_CHECK(if RLIMIT_VMEM and RLIMIT_RSS are the same, +-zsh_cv_rlimit_vmem_is_rss, +-[AC_TRY_RUN([ +-#include <sys/types.h> +-#ifdef HAVE_SYS_TIME_H +-#include <sys/time.h> +-#endif +-#include <sys/resource.h> +-int main() +-{ +-int ret = 1; +-#if defined(HAVE_RLIMIT_VMEM) && defined(HAVE_RLIMIT_RSS) +-if (RLIMIT_RSS == RLIMIT_VMEM) ret = 0; +-#endif +-return ret; +-}], +- zsh_cv_rlimit_vmem_is_rss=yes, +- zsh_cv_rlimit_vmem_is_rss=no, +- zsh_cv_rlimit_vmem_is_rss=no)]) +- +-if test x$zsh_cv_rlimit_vmem_is_rss = xyes; then +- AC_DEFINE(RLIMIT_VMEM_IS_RSS) +-fi +- +- +-AH_TEMPLATE([RLIMIT_VMEM_IS_AS], +-[Define to 1 if RLIMIT_VMEM and RLIMIT_AS both exist and are equal.]) +-AC_CACHE_CHECK(if RLIMIT_VMEM and RLIMIT_AS are the same, +-zsh_cv_rlimit_vmem_is_as, +-[AC_TRY_RUN([ +-#include <sys/types.h> +-#ifdef HAVE_SYS_TIME_H +-#include <sys/time.h> +-#endif +-#include <sys/resource.h> +-int main() +-{ +-int ret = 1; +-#if defined(HAVE_RLIMIT_VMEM) && defined(HAVE_RLIMIT_AS) +-if (RLIMIT_AS == RLIMIT_VMEM) ret = 0; +-#endif +-return ret; +-}], +- zsh_cv_rlimit_vmem_is_as=yes, +- zsh_cv_rlimit_vmem_is_as=no, +- zsh_cv_rlimit_vmem_is_as=no)]) +- +-if test x$zsh_cv_rlimit_vmem_is_as = xyes; then +- AC_DEFINE(RLIMIT_VMEM_IS_AS) +-fi +- +- +-AH_TEMPLATE([RLIMIT_RSS_IS_AS], +-[Define to 1 if RLIMIT_RSS and RLIMIT_AS both exist and are equal.]) +-AC_CACHE_CHECK(if RLIMIT_RSS and RLIMIT_AS are the same, +-zsh_cv_rlimit_rss_is_as, +-[AC_TRY_RUN([ +-#include <sys/types.h> +-#ifdef HAVE_SYS_TIME_H +-#include <sys/time.h> +-#endif +-#include <sys/resource.h> +-int main() +-{ +-int ret = 1; +-#if defined(HAVE_RLIMIT_RSS) && defined(HAVE_RLIMIT_AS) +-if (RLIMIT_AS == RLIMIT_RSS) ret = 0; +-#endif +-return ret; +-}], +- zsh_cv_rlimit_rss_is_as=yes, +- zsh_cv_rlimit_rss_is_as=no, +- zsh_cv_rlimit_rss_is_as=no)]) +- +-if test x$zsh_cv_rlimit_rss_is_as = xyes; then +- AC_DEFINE(RLIMIT_RSS_IS_AS) +-fi ++zsh_LIMITS_EQUAL(VMEM, vmem, RSS, rss) ++zsh_LIMITS_EQUAL(VMEM, vmem, AS, as) ++zsh_LIMITS_EQUAL(RSS, rss, AS, as) + + + dnl -------------------------------------------- |