From 2f53dc59ec999c643e0f0b29f7a8d15cb6ccbdaf Mon Sep 17 00:00:00 2001 From: David Levine Date: Tue, 10 Dec 2013 19:17:00 -0600 Subject: [PATCH 01/16] OK, this should work to detect Sun Studio cc. --- configure.ac | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index bb1528f1..2c5c03f4 100644 --- a/configure.ac +++ b/configure.ac @@ -106,10 +106,10 @@ AC_PROG_CC AM_PROG_CC_C_O dnl Use -v and some other options with SunStudio cc. -dnl case `cc -V` in -dnl cc:\ Sun\ C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" -dnl CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; -dnl esac +case `${CC} -V 2>/dev/null` in + cc:\ Sun\ C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" + CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; +esac AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], [nmh_saved_cflags="$CFLAGS" -- 2.48.1 From 100803609988d80412fed733a0a754cd32a18ce2 Mon Sep 17 00:00:00 2001 From: Lyndon Nerenberg Date: Wed, 11 Dec 2013 10:42:04 -0800 Subject: [PATCH 02/16] One more attempt at getting the buildbot $PATH correct on Solaris. --- configure.ac | 5 ----- 1 file changed, 5 deletions(-) diff --git a/configure.ac b/configure.ac index 2c5c03f4..f1eadcf6 100644 --- a/configure.ac +++ b/configure.ac @@ -97,11 +97,6 @@ if test x"$enable_debug" = x"yes"; then test -z "$LDFLAGS" && LDFLAGS=-g fi -dnl Use SunStudio cc, if present, on Solaris if user didn't set CC. -if test -z "$CC" -a -d /opt/solarisstudio12.3/bin; then - CC=/opt/solarisstudio12.3/bin/cc; export CC -fi - AC_PROG_CC AM_PROG_CC_C_O -- 2.48.1 From 8caa9c3cb114e3e8914aeadf83f55a7ea3486bad Mon Sep 17 00:00:00 2001 From: Lyndon Nerenberg Date: Wed, 11 Dec 2013 10:53:28 -0800 Subject: [PATCH 03/16] Prefer cc over gcc. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index f1eadcf6..77ef7626 100644 --- a/configure.ac +++ b/configure.ac @@ -97,7 +97,7 @@ if test x"$enable_debug" = x"yes"; then test -z "$LDFLAGS" && LDFLAGS=-g fi -AC_PROG_CC +AC_PROG_CC(cc gcc) AM_PROG_CC_C_O dnl Use -v and some other options with SunStudio cc. -- 2.48.1 From 9efa994ecac2790dbc56113f78c464eed1371590 Mon Sep 17 00:00:00 2001 From: David Levine Date: Wed, 11 Dec 2013 17:19:48 -0600 Subject: [PATCH 04/16] Temporarily add some printouts to configure.ac to see why -v isn't added to Sun Studio cc on Solaris build host. --- configure.ac | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 77ef7626..3125f2c7 100644 --- a/configure.ac +++ b/configure.ac @@ -100,10 +100,17 @@ fi AC_PROG_CC(cc gcc) AM_PROG_CC_C_O +dnl temporary, to see how CC was set +case ${CC} in + cc) ${CC} -V ;; + */cc) ${CC} -V ;; + *) echo CC=${CC} ;; +esac dnl Use -v and some other options with SunStudio cc. +dnl E_STATEMENT_NOT_REACHED suppresses warnings from sbr/dtimep.c/.l. case `${CC} -V 2>/dev/null` in - cc:\ Sun\ C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" - CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; + cc:*Sun*C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" + CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; esac AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], -- 2.48.1 From 7954d390e513ce305c0716d448e8002d73dd4da9 Mon Sep 17 00:00:00 2001 From: David Levine Date: Wed, 11 Dec 2013 19:47:29 -0600 Subject: [PATCH 05/16] Undid last commit of temporary printouts because buildbot is down. --- configure.ac | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index 3125f2c7..77ef7626 100644 --- a/configure.ac +++ b/configure.ac @@ -100,17 +100,10 @@ fi AC_PROG_CC(cc gcc) AM_PROG_CC_C_O -dnl temporary, to see how CC was set -case ${CC} in - cc) ${CC} -V ;; - */cc) ${CC} -V ;; - *) echo CC=${CC} ;; -esac dnl Use -v and some other options with SunStudio cc. -dnl E_STATEMENT_NOT_REACHED suppresses warnings from sbr/dtimep.c/.l. case `${CC} -V 2>/dev/null` in - cc:*Sun*C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" - CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; + cc:\ Sun\ C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" + CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; esac AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], -- 2.48.1 From 68e3399aadf829c6cfe6fe44aa17945102cb4894 Mon Sep 17 00:00:00 2001 From: David Levine Date: Wed, 11 Dec 2013 20:28:10 -0600 Subject: [PATCH 06/16] Try 9efa994ecac2790dbc56113f78c464eed1371590 again. --- configure.ac | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 77ef7626..3125f2c7 100644 --- a/configure.ac +++ b/configure.ac @@ -100,10 +100,17 @@ fi AC_PROG_CC(cc gcc) AM_PROG_CC_C_O +dnl temporary, to see how CC was set +case ${CC} in + cc) ${CC} -V ;; + */cc) ${CC} -V ;; + *) echo CC=${CC} ;; +esac dnl Use -v and some other options with SunStudio cc. +dnl E_STATEMENT_NOT_REACHED suppresses warnings from sbr/dtimep.c/.l. case `${CC} -V 2>/dev/null` in - cc:\ Sun\ C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" - CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; + cc:*Sun*C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" + CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; esac AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], -- 2.48.1 From 1296ac4deb08520a0e67a2b4ffba460b974da35c Mon Sep 17 00:00:00 2001 From: David Levine Date: Wed, 11 Dec 2013 20:52:49 -0600 Subject: [PATCH 07/16] Sun Studio cc -V must output to stderr. --- configure.ac | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 3125f2c7..bb42a6ac 100644 --- a/configure.ac +++ b/configure.ac @@ -100,17 +100,10 @@ fi AC_PROG_CC(cc gcc) AM_PROG_CC_C_O -dnl temporary, to see how CC was set -case ${CC} in - cc) ${CC} -V ;; - */cc) ${CC} -V ;; - *) echo CC=${CC} ;; -esac dnl Use -v and some other options with SunStudio cc. -dnl E_STATEMENT_NOT_REACHED suppresses warnings from sbr/dtimep.c/.l. -case `${CC} -V 2>/dev/null` in - cc:*Sun*C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" - CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; +case `${CC} -V 2>&1` in + cc:\ Sun\ C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" + CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; esac AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], -- 2.48.1 From 1a1a1a3175c9dc282cfd76831e4a0e635e41af86 Mon Sep 17 00:00:00 2001 From: Lyndon Nerenberg Date: Thu, 12 Dec 2013 11:55:58 -0800 Subject: [PATCH 08/16] Add buildbot hacks for OpenBSD. OpenBSD auto{conf,make} want a version specified in the environment for each of the tools. For now, hardwire this into autogen.sh until we can figure out a better way of dealing with this. --- autogen.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/autogen.sh b/autogen.sh index 0368cd75..be3257e8 100755 --- a/autogen.sh +++ b/autogen.sh @@ -5,4 +5,10 @@ # building from a distributed tarball. set -x + +if [ "`uname`" = "OpenBSD" ] ; then + export AUTOCONF_VERSION=2.69 + export AUTOMAKE_VERSION=1.13 +fi + autoreconf -v -i -- 2.48.1 From 78eba7b3d617b04b0123db07d714b9d3b41c053e Mon Sep 17 00:00:00 2001 From: David Levine Date: Thu, 12 Dec 2013 18:08:01 -0600 Subject: [PATCH 09/16] It looks like the sed "a" in test-anno didn't emit a trailing newline on OpenBSD. It does on other platforms. Try using awk instead. --- test/anno/test-anno | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/anno/test-anno b/test/anno/test-anno index b329fa66..a655d2c3 100755 --- a/test/anno/test-anno +++ b/test/anno/test-anno @@ -122,8 +122,8 @@ check "$expected" "$actual" rm "${MH_TEST_DIR}/Mail/draft" # check -append -sed -e '5a\ -Nmh-test:' "${MH_TEST_DIR}/Mail/inbox/1" >"$expected" +awk --posix 'NR==6{print "Nmh-test:"}1' <"${MH_TEST_DIR}/Mail/inbox/1" \ + >"$expected" anno 1 -component Nmh-test -append sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual" check "$expected" "$actual" -- 2.48.1 From 912dc7a4eb7ee59f8d146c869c4f9a1ff0c8190f Mon Sep 17 00:00:00 2001 From: David Levine Date: Thu, 12 Dec 2013 18:23:45 -0600 Subject: [PATCH 10/16] Removed --posix from awk invocation in test-anno. --- test/anno/test-anno | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/anno/test-anno b/test/anno/test-anno index a655d2c3..e4dd39e4 100755 --- a/test/anno/test-anno +++ b/test/anno/test-anno @@ -122,8 +122,7 @@ check "$expected" "$actual" rm "${MH_TEST_DIR}/Mail/draft" # check -append -awk --posix 'NR==6{print "Nmh-test:"}1' <"${MH_TEST_DIR}/Mail/inbox/1" \ - >"$expected" +awk 'NR==6{print "Nmh-test:"}1' <"${MH_TEST_DIR}/Mail/inbox/1" >"$expected" anno 1 -component Nmh-test -append sed -e 's/^Nmh-test:.*/Nmh-test:/' "${MH_TEST_DIR}/Mail/inbox/1" >"$actual" check "$expected" "$actual" -- 2.48.1 From 95a44a8aed37f5f8146b3fdced5718aa5e72f4ec Mon Sep 17 00:00:00 2001 From: David Levine Date: Thu, 12 Dec 2013 18:27:17 -0600 Subject: [PATCH 11/16] Squelch warning from cc on OpenBSD that fd argument of usr_pipe() in slocal.c might get clobbered by vfork() by copying it to a volatile local. --- uip/slocal.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/uip/slocal.c b/uip/slocal.c index c944cd69..8daf6081 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -1042,8 +1042,9 @@ usr_folder (int fd, char *string) */ static int -usr_pipe (int fd, char *cmd, char *pgm, char **vec, int suppress) +usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress) { + volatile int fd = fd_arg; pid_t child_id; int i, bytes, seconds, status; struct stat st; -- 2.48.1 From baa5cf8f7797dfa48f77f5d0813a9741d66be213 Mon Sep 17 00:00:00 2001 From: David Levine Date: Thu, 12 Dec 2013 18:29:31 -0600 Subject: [PATCH 12/16] Initialize local child_id in main() of whom.c to squelch warning from cc on OpenBSD. --- uip/whom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uip/whom.c b/uip/whom.c index b81f6f20..0875e959 100644 --- a/uip/whom.c +++ b/uip/whom.c @@ -56,7 +56,7 @@ DEFINE_SWITCH_ARRAY(WHOM, switches); int main (int argc, char **argv) { - pid_t child_id; + pid_t child_id = OK; int i, status, isdf = 0; int distsw = 0, vecp = 0; char *cp, *dfolder = NULL, *dmsg = NULL; -- 2.48.1 From 6443ed24f6c3b41186636a0b0fea93ebe9452047 Mon Sep 17 00:00:00 2001 From: David Levine Date: Thu, 12 Dec 2013 18:37:58 -0600 Subject: [PATCH 13/16] Tweaked rcvtty.c to squelch warnings on OpenBSD. Three of the four were due to unused artifacts with HAVE_GETUTXENT not defined. The fourth was due to control reaching the end of non-void function message_id(), which had an _exit() call at the end. --- uip/rcvtty.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/uip/rcvtty.c b/uip/rcvtty.c index e91c74c2..356234ad 100644 --- a/uip/rcvtty.c +++ b/uip/rcvtty.c @@ -69,7 +69,9 @@ char *getusername(void); static void alrmser (int); static int message_fd (char **); static int header_fd (void); +#if HAVE_GETUTXENT static void alert (char *, int); +#endif /* HAVE_GETUTXENT */ int @@ -164,6 +166,9 @@ main (int argc, char **argv) } } endutxent(); +#else + NMH_UNUSED (tty); + NMH_UNUSED (utp); #endif /* HAVE_GETUTXENT */ exit (RCV_MOK); @@ -235,8 +240,11 @@ message_fd (char **vec) _exit (-1); closefds (3); setpgid ((pid_t) 0, getpid ()); /* put in own process group */ - execvp (vec[0], vec); - _exit (-1); + if (execvp (vec[0], vec) == NOTOK) { + _exit (-1); + } + + return NOTOK; } @@ -267,6 +275,7 @@ header_fd (void) } +#if HAVE_GETUTXENT static void alert (char *tty, int md) { @@ -304,4 +313,4 @@ alert (char *tty, int md) close (td); } - +#endif /* HAVE_GETUTXENT */ -- 2.48.1 From 1f5f0723f454fc1e5464366a20c14fc6a022e173 Mon Sep 17 00:00:00 2001 From: David Levine Date: Thu, 12 Dec 2013 20:11:42 -0600 Subject: [PATCH 14/16] Moved all LDFLAGS manipulations in configure.ac to one place. --- configure.ac | 55 ++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/configure.ac b/configure.ac index bb42a6ac..02c0a141 100644 --- a/configure.ac +++ b/configure.ac @@ -93,9 +93,6 @@ dnl ------------------ dnl We want these before the checks, dnl so the checks can modify their values. test -z "$CFLAGS" && CFLAGS= auto_cflags=1 -if test x"$enable_debug" = x"yes"; then - test -z "$LDFLAGS" && LDFLAGS=-g -fi AC_PROG_CC(cc gcc) AM_PROG_CC_C_O @@ -127,20 +124,6 @@ if test "$GCC" = yes; then [nmh_cv_has_dash_ansi=no]) CPPFLAGS="$nmh_saved_cppflags" CFLAGS="$nmh_saved_cflags"]) - - dnl Disable clang complaint about unused -ansi when linking. - AC_CACHE_CHECK([whether linker supports -Qunused-arguments], - [nmh_cv_has_q_unused_arguments], - [nmh_saved_ldflags="$LDFLAGS" - LDFLAGS="$LDFLAGS -Qunused-arguments" - AC_TRY_LINK([],[],nmh_cv_has_q_unused_arguments=yes, - nmh_cv_has_q_unused_arguments=no) - LDFLAGS="$nmh_saved_ldflags"]) - - if test "$nmh_cv_has_q_unused_arguments" = "yes"; then - test -z "$LDFLAGS" && LDFLAGS=-Qunused-arguments \ - || LDFLAGS="$LDFLAGS -Qunused-arguments" - fi else nmh_cv_has_dash_ansi=no fi @@ -170,16 +153,6 @@ if test -n "$auto_cflags"; then test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g" fi else - if test -z "$LDFLAGS"; then - case "$build_os" in - darwin*) - LDFLAGS= - ;; - *) - LDFLAGS=-s - ;; - esac - fi if test -n "$GCC"; then test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2" else @@ -190,6 +163,34 @@ if test -n "$auto_cflags"; then fi fi +dnl ----------------- +dnl CUSTOMIZE LDFLAGS +dnl ----------------- +if test "$GCC" = yes; then + dnl Disable clang complaint about unused -ansi when linking. + AC_CACHE_CHECK([whether linker supports -Qunused-arguments], + [nmh_cv_has_q_unused_arguments], + [nmh_saved_ldflags="$LDFLAGS" + LDFLAGS="$LDFLAGS -Qunused-arguments" + AC_TRY_LINK([],[],nmh_cv_has_q_unused_arguments=yes, + nmh_cv_has_q_unused_arguments=no) + LDFLAGS="$nmh_saved_ldflags"]) + test "$nmh_cv_has_q_unused_arguments" = "yes" && \ + LDFLAGS="${LDFLAGS:+$LDFLAGS }-Qunused-arguments" +fi + +dnl This really shouldn't be necessary. And we really shouldn't add -s. +if test x"$enable_debug" = x"yes"; then + test -z "$LDFLAGS" && LDFLAGS=-g +else + if test -z "$LDFLAGS"; then + case "$build_os" in + darwin*) LDFLAGS= ;; + *) LDFLAGS=-s ;; + esac + fi +fi + dnl ------------------ dnl CHECK FOR PROGRAMS dnl ------------------ -- 2.48.1 From a3d324ced885fef99347c9dbbb945f0bb98137fe Mon Sep 17 00:00:00 2001 From: David Levine Date: Thu, 12 Dec 2013 20:15:14 -0600 Subject: [PATCH 15/16] Minor changes to configure.ac: 1) Replaced direct manipulation of NDEBUG with AC_HEADER_ASSERT. 2) Removed unnecessary level of quoting around LFLAGS assignments. --- configure.ac | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 02c0a141..19f89ed4 100644 --- a/configure.ac +++ b/configure.ac @@ -158,8 +158,6 @@ if test -n "$auto_cflags"; then else test -z "$CFLAGS" && CFLAGS=-O || CFLAGS="$CFLAGS -O" fi - AC_DEFINE([NDEBUG], [1], - [Define to disable run-time debugging and asserts.]) fi fi @@ -191,6 +189,8 @@ else fi fi +AC_HEADER_ASSERT + dnl ------------------ dnl CHECK FOR PROGRAMS dnl ------------------ @@ -585,10 +585,10 @@ dnl 2.5.35-37 that cause signed/unsigned mismatch, dnl http://sourceforge.net/p/flex/bugs/140/ AS_IF([test "$LEX" = flex], [AS_CASE([`$LEX -V`], - [flex\ 2.5.35], [[LFLAGS=\ -'; printf "%s\n" '\''1,$$s/(size_t) \(num_to_read\)/\1/'\'' w q | ed -s $@']], - [flex\ 2.5.3@<:@67@:>@], [[LFLAGS=\ -'; printf "%s\n" '\''1,$$s/\( \)int i;/\1yy_size_t i;/'\'' w q | ed -s $@']]) + [flex\ 2.5.35], [LFLAGS=\ +'; printf "%s\n" '\''1,$$s/(size_t) \(num_to_read\)/\1/'\'' w q | ed -s $@'], + [flex\ 2.5.3@<:@67@:>@], [LFLAGS=\ +'; printf "%s\n" '\''1,$$s/\( \)int i;/\1yy_size_t i;/'\'' w q | ed -s $@']) AC_SUBST([LFLAGS])]) dnl -------------- -- 2.48.1 From fd85d5dbd5006da4a472e67ab55c056b343caf42 Mon Sep 17 00:00:00 2001 From: Ken Hornstein Date: Fri, 13 Dec 2013 15:38:58 -0500 Subject: [PATCH 16/16] Minor autoconf style cleanup. --- configure.ac | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 19f89ed4..49ef16c5 100644 --- a/configure.ac +++ b/configure.ac @@ -94,14 +94,13 @@ dnl We want these before the checks, dnl so the checks can modify their values. test -z "$CFLAGS" && CFLAGS= auto_cflags=1 -AC_PROG_CC(cc gcc) +AC_PROG_CC([cc gcc]) AM_PROG_CC_C_O dnl Use -v and some other options with SunStudio cc. -case `${CC} -V 2>&1` in - cc:\ Sun\ C*) CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" - CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED" ;; -esac +AS_CASE([`${CC} -V 2>&1`], + [cc:\ Sun\ C*], [CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" + CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED"]) AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], [nmh_saved_cflags="$CFLAGS" -- 2.48.1