r18864: merge lib/replace changes from samba4
authorAndrew Tridgell <tridge@samba.org>
Sun, 24 Sep 2006 02:29:12 +0000 (02:29 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:01:06 +0000 (12:01 -0500)
(This used to be commit 6d5f507136be327558e98214b64eca225ca23d66)

source3/lib/replace/README
source3/lib/replace/libreplace.m4
source3/lib/replace/libreplace_cc.m4
source3/lib/replace/replace.h

index fd630ddc456b3dca57d8756f457c5029fcae509f..182a2761162f55c1226ee83d8feb7fc344f2cc74 100644 (file)
@@ -65,6 +65,12 @@ Constants:
 PATH_NAME_MAX
 UINT{16,32,64}_MAX
 INT32_MAX
+RTLD_LAZY
+HOST_NAME_MAX
+UINT16_MAX
+UINT32_MAX
+UINT64_MAX
+CHAR_BIT
 
 Macros:
 va_copy
@@ -72,6 +78,7 @@ __FUNCTION__
 __STRING
 MIN
 MAX
+QSORT_CAST
 
 Prerequisites:
 memset (for bzero)
index 6c26f7b9042413402652dda5ac778654153f74b5..804f998b9e5158ba23627a6dfc44dcc719318083 100644 (file)
@@ -267,10 +267,10 @@ AC_CHECK_FUNCS(strnlen setenv)
 AC_CHECK_FUNCS(strtoull __strtoull strtouq strtoll __strtoll strtoq)
 
 # this test disabled as we don't actually need __VA_ARGS__ yet
-AC_TRY_CPP([
-# #define eprintf(...) fprintf(stderr, __VA_ARGS__)
-eprintf("bla", "bar");
-# ], [], [AC_MSG_ERROR([__VA_ARGS__ is required])])
+AC_TRY_CPP([
+#define eprintf(...) fprintf(stderr, __VA_ARGS__)
+eprintf("bla", "bar");
+], AC_DEFINE(HAVE__VA_ARGS__MACRO, 1, [Whether the __VA_ARGS__ macro is available]))
 
 # Check prerequisites
 AC_CHECK_FUNCS([memset printf syslog], [], 
index aa0465983afef05334e5fa96b6aee2ad67f07b5d..352d115547376b22378d7600ad193b16f31e2d68 100644 (file)
@@ -28,7 +28,13 @@ ac_cv_prog_cc_Ae=no
 savedCFLAGS=$CFLAGS
 AC_PROG_CC
 CFLAGS=$savedCFLAGS
+
+dnl don't try for C99 if we are using gcc, as otherwise we 
+dnl lose immediate structure constants
+if test x"$GCC" = x"no" ; then
 AC_PROG_CC_C99
+fi
+
 if test x"$GCC" = x"yes" ; then
        AC_MSG_CHECKING([for version of gcc])
        GCC_VERSION=`$CC -dumpversion`
@@ -122,5 +128,26 @@ if test $ac_cv_sizeof_long_long -lt 8;then
        AC_MSG_ERROR([LIBREPLACE needs sizeof(long long) >= 8])
 fi
 
+############################################
+# check if the compiler can do immediate structures
+AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
+    AC_TRY_COMPILE([
+#include <stdio.h>],
+[
+   typedef struct {unsigned x;} FOOBAR;
+   #define X_FOOBAR(x) ((FOOBAR) { x })
+   #define FOO_ONE X_FOOBAR(1)
+   FOOBAR f = FOO_ONE;   
+   static const struct {
+       FOOBAR y; 
+       } f2[] = {
+               {FOO_ONE}
+       };   
+],
+       samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
+if test x"$samba_cv_immediate_structures" = x"yes"; then
+   AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
+fi
+
 AC__LIBREPLACE_ONLY_CC_CHECKS_END
 ]) dnl end AC_LIBREPLACE_CC_CHECKS
index edcdebe6bd21db2c01aeb8b88d695af5c95f8b47..01f626390cae53e55faf753094fd14412695ab5f 100644 (file)
@@ -357,10 +357,10 @@ typedef int bool;
 #endif
 
 #ifndef _TRUE
-#define _TRUE
+#define _TRUE true
 #endif
 #ifndef _FALSE
-#define _FALSE
+#define _FALSE false
 #endif
 
 #ifndef HAVE_FUNCTION_MACRO