X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=m4%2Fensc_dietlibc.m4;h=62e6641bd6db27a8b6fc39cf47e70045d0d382b0;hb=35370e2d11f661d780b71204d61439e31b91fb57;hp=9a55c51bf3406894e863b4bd991b058d8c2beb79;hpb=9c78378bebc1a9f3d400f422df8ede9efea57dea;p=util-vserver.git diff --git a/m4/ensc_dietlibc.m4 b/m4/ensc_dietlibc.m4 index 9a55c51..62e6641 100644 --- a/m4/ensc_dietlibc.m4 +++ b/m4/ensc_dietlibc.m4 @@ -1,16 +1,16 @@ dnl $Id$ dnl Copyright (C) 2002 Enrico Scholz -dnl +dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; version 2 of the License. -dnl +dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. -dnl +dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -51,6 +51,32 @@ AC_DEFUN([_ENSC_DIETLIBC_C99], fi ]) +AC_DEFUN([_ENSC_DIETLIBC_SYSCALL], +[ + AH_TEMPLATE([ENSC_DIETLIBC_HAS_SYSCALL], [Define to 1 if dietlibc declares syscall]) + + AC_CACHE_CHECK([whether dietlibc declares syscall], [ensc_cv_c_dietlibc_syscall], + [ + _ensc_dietlibc_syscall_old_CC="$CC" + CC="${DIET:-diet} $CC" + + AC_LANG_PUSH(C) + AC_COMPILE_IFELSE([ + #include + long int syscall(long int __sysno, ...); + ], + [ensc_cv_c_dietlibc_syscall=no], + [ensc_cv_c_dietlibc_syscall=yes]) + AC_LANG_POP + + CC="$_ensc_dietlibc_syscall_old_CC" + ]) + + if test x"$ensc_cv_c_dietlibc_syscall" = xyes; then + AC_DEFINE(ENSC_DIETLIBC_HAS_SYSCALL,1) + fi +]) + dnl Usage: ENSC_ENABLE_DIETLIBC([,]) dnl ... automake-conditional which will be set when dnl dietlibc shall be enabled @@ -84,11 +110,11 @@ AC_DEFUN([ENSC_ENABLE_DIETLIBC], _dietlibc_ver=${_dietlibc_ver##*diet version } _dietlibc_ver=${_dietlibc_ver##*dietlibc-} _dietlibc_ver_maj=${_dietlibc_ver%%.*} - _dietlibc_ver_min=${_dietlibc_ver##*.} + _dietlibc_ver_min=${_dietlibc_ver#*.} _dietlibc_ver_min=${_dietlibc_ver_min%%[[!0-9]]*} _dietlibc_cmp="$2" _dietlibc_cmp_maj=${_dietlibc_cmp%%.*} - _dietlibc_cmp_min=${_dietlibc_cmp##*.} + _dietlibc_cmp_min=${_dietlibc_cmp#*.} ENSC_VERSION_DIETLIBC=$_dietlibc_ver_maj.$_dietlibc_ver_min @@ -99,7 +125,7 @@ AC_DEFUN([ENSC_ENABLE_DIETLIBC], else ENSC_VERSION_DIETLIBC= _dietlibc_ver=-1 - fi + fi ENSC_VERSION_DIETLIBC_NUM=$_dietlibc_ver ensc_have_dietlibc=no @@ -134,21 +160,6 @@ AC_DEFUN([ENSC_ENABLE_DIETLIBC], if test x"$ensc_have_dietlibc" != xno; then _ENSC_DIETLIBC_C99 - fi -]) - - -dnl Usage: ENSC_DIETLIBC_SANITYCHECK -AC_DEFUN([ENSC_DIETLIBC_SANITYCHECK], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([ENSC_ENABLE_DIETLIBC]) - - if test "$host_cpu" = x86_64 -a $ENSC_VERSION_DIETLIBC_NUM -le 0027; then - AC_MSG_WARN([*** ***]) - AC_MSG_WARN([*** dietlibc<=0.27 is known to be broken for x86_64 systems ***]) - AC_MSG_WARN([*** please make sure that at least the environ.S fix is applied ***]) - AC_MSG_WARN([*** and lib/__nice.c added ***]) - AC_MSG_WARN([*** ***]) + _ENSC_DIETLIBC_SYSCALL fi ])