[BUILD] Fixed build on OS X

Hi, Herbert and friends.  I've created a small patch that allows dash
to be built on Mac OS X.  I'm contributing it here with the hope that
it's suitable for inclusion in dash.

The changes in this patch are:

- __attribute__((__alias__())) is not supported, add an autoconf check
- open64 is not present although the stat64 family is, separate the
  autoconf checks
- A syntax error had slipped into a non-glibc codepath
- mkbuiltins had a nonportable mktemp invocation for the case where
  tempfile is not availalble

Nothing in this patch is actually Mac OS X-specific, so it might aid
portability to other platforms as well.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Mark Mentovai 2009-01-13 15:21:35 +11:00 committed by Herbert Xu
parent 508d3a2b0e
commit 45d2ed8307
4 changed files with 36 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2009-01-13 Mark Mentovai <mmentovai@gmail.com>
* Fixed build on OS X.
2008-12-26 Aleksey Cheusov <vle@gmx.net>
* Fixed build on NetBSD.

View File

@ -18,6 +18,18 @@ fi
AC_MSG_RESULT(${CC_FOR_BUILD})
AC_SUBST(CC_FOR_BUILD)
AC_MSG_CHECKING([for __attribute__((__alias__()))])
dash_cv_have_attribute_alias=no
AC_LINK_IFELSE([AC_LANG_PROGRAM([void t() {}
void a() __attribute__((__alias__("t")));],
[a();])],
[dash_cv_have_attribute_alias=yes])
AC_MSG_RESULT($dash_cv_have_attribute_alias)
if test "x$dash_cv_have_attribute_alias" = xyes; then
AC_DEFINE([HAVE_ALIAS_ATTRIBUTE], 1,
[Define if __attribute__((__alias__())) is supported])
fi
AC_ARG_ENABLE(static, AS_HELP_STRING(--enable-static, \
[Build statical linked program]))
if test "$enable_static" = "yes"; then
@ -60,6 +72,9 @@ AC_CHECK_FUNC(stat64,, [
AC_DEFINE(fstat64, fstat, [64-bit operations are the same as 32-bit])
AC_DEFINE(lstat64, lstat, [64-bit operations are the same as 32-bit])
AC_DEFINE(stat64, stat, [64-bit operations are the same as 32-bit])
])
AC_CHECK_FUNC(open64,, [
AC_DEFINE(open64, open, [64-bit operations are the same as 32-bit])
])

View File

@ -326,7 +326,15 @@ exexit:
#if !defined(__alpha__) || (defined(__GNUC__) && __GNUC__ >= 3)
STATIC
#endif
void evaltreenr(union node *, int) __attribute__ ((alias("evaltree")));
void evaltreenr(union node *n, int flags)
#ifdef HAVE_ATTRIBUTE_ALIAS
__attribute__ ((alias("evaltree")));
#else
{
evaltree(n, flags);
abort();
}
#endif
STATIC void

View File

@ -361,7 +361,14 @@ fgcmd(int argc, char **argv)
return retval;
}
int bgcmd(int, char **) __attribute__((__alias__("fgcmd")));
int bgcmd(int argc, char **argv)
#ifdef HAVE_ALIAS_ATTRIBUTE
__attribute__((__alias__("fgcmd")));
#else
{
return fgcmd(argc, argv);
}
#endif
STATIC int