summary refs log tree commit diff
diff options
context:
space:
mode:
authorAleksey Cheusov <vle@gmx.net>2009-01-13 14:54:34 +1100
committerHerbert Xu <herbert@gondor.apana.org.au>2009-01-13 14:57:41 +1100
commit508d3a2b0e44dac186738411099d43a7679fbbb2 (patch)
treebbcf9eef7cbf6d10177ce70d4e17afcd2c3c7771
parent[MAN] Removed obsolete for loop syntax (diff)
downloaddash-508d3a2b0e44dac186738411099d43a7679fbbb2.tar.gz
dash-508d3a2b0e44dac186738411099d43a7679fbbb2.zip
[BUILD] Fixed build on NetBSD
Hi, I propose to apply the following patch for dash.  The problem is
alloca.h is absent on many platforms including NetBSD I'm running.

Also, NetBSD's version of mktemp doesn't work without temporary
filename pattern.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--ChangeLog4
-rw-r--r--configure.ac1
-rw-r--r--src/mkbuiltins2
-rw-r--r--src/parser.c3
4 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index fe5d984..95e5140 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-26  Aleksey Cheusov <vle@gmx.net>
+
+	* Fixed build on NetBSD.
+
 2008-10-17  Herbert Xu <herbert@gondor.apana.org.au>
 
 	* Removed obsolete for loop syntax in manual.
diff --git a/configure.ac b/configure.ac
index 4d739c2..221b839 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,6 +31,7 @@ AC_ARG_ENABLE(glob, AS_HELP_STRING(--enable-glob, [Use glob(3) from libc]))
 dnl Checks for libraries.
 
 dnl Checks for header files.
+AC_CHECK_HEADERS(alloca.h)
 
 dnl Checks for library functions.
 AC_CHECK_FUNCS(bsearch getpwnam getrlimit imaxdiv isalpha killpg mempcpy \
diff --git a/src/mkbuiltins b/src/mkbuiltins
index 960c61c..424d59a 100644
--- a/src/mkbuiltins
+++ b/src/mkbuiltins
@@ -37,7 +37,7 @@
 
 tempfile=tempfile
 if ! type tempfile > /dev/null 2>&1; then
-	tempfile=mktemp
+	tempfile='mktemp /tmp/mkbuiltins.XXXXXX'
 fi
 
 trap 'rm -f $temp $temp2' EXIT
diff --git a/src/parser.c b/src/parser.c
index e891d31..ab66f30 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -32,7 +32,10 @@
  * SUCH DAMAGE.
  */
 
+#if HAVE_ALLOCA_H
 #include <alloca.h>
+#endif
+
 #include <stdlib.h>
 
 #include "shell.h"