summaryrefslogtreecommitdiff
path: root/source4/lib/replace
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/replace')
-rw-r--r--source4/lib/replace/README4
-rw-r--r--source4/lib/replace/SConscript25
-rw-r--r--source4/lib/replace/config.m417
-rw-r--r--source4/lib/replace/replace.h12
4 files changed, 43 insertions, 15 deletions
diff --git a/source4/lib/replace/README b/source4/lib/replace/README
index eb3360b74a..45c8bccf13 100644
--- a/source4/lib/replace/README
+++ b/source4/lib/replace/README
@@ -51,6 +51,10 @@ pwrite
Types:
socklen_t
+u_int{8,16,32}_t
+uint_t
+uint{8,16,32,64}_t
+int{8,16,32,64}_t
Prerequisites:
memset (for bzero)
diff --git a/source4/lib/replace/SConscript b/source4/lib/replace/SConscript
index a2b3a30e10..60652b0b15 100644
--- a/source4/lib/replace/SConscript
+++ b/source4/lib/replace/SConscript
@@ -4,7 +4,7 @@ Import('hostenv defines')
if hostenv['configure']:
conf = Configure(hostenv)
for f in ['memset','syslog','setnetgrent','getnetgrent','endnetgrent', \
- 'mktemp']:
+ 'mktemp', 'memcpy']:
if not conf.CheckFunc(f,'c'):
print "Required function `%s' not found" % f
exit(1)
@@ -26,6 +26,29 @@ if hostenv['configure']:
if not conf.CheckType('socklen_t'):
defines['socklen_t'] = 'int'
+ needed_types = {
+ 'uint_t': 'unsigned int',
+ 'int8_t': 'signed char',
+ 'uint8_t': 'unsigned char',
+ 'u_int8_t': 'unsigned char',
+ 'int16_t': 'short',
+ 'uint16_t': 'unsigned short',
+ 'u_int16_t': 'unsigned short',
+ 'int32_t': 'long',
+ 'uint32_t': 'unsigned long',
+ 'u_int32_t': 'unsigned long',
+ 'int64_t': 'long long',
+ 'uint64_t': 'unsigned long long',
+ }
+
+ type_headers = """
+#include <stdint.h>
+#include <sys/types.h>
+"""
+ for t in needed_types:
+ if not conf.CheckType(t,type_headers):
+ defines[t] = needed_types[t]
+
conf.Finish()
hostenv.StaticLibrary('repdir', ['repdir/repdir.c'])
diff --git a/source4/lib/replace/config.m4 b/source4/lib/replace/config.m4
index 26a2cae56d..2b8d4ca3d1 100644
--- a/source4/lib/replace/config.m4
+++ b/source4/lib/replace/config.m4
@@ -1,3 +1,16 @@
+AC_CHECK_TYPE(uint_t, unsigned int)
+AC_CHECK_TYPE(int8_t, signed char)
+AC_CHECK_TYPE(uint8_t, unsigned char)
+AC_CHECK_TYPE(int16_t, short)
+AC_CHECK_TYPE(uint16_t, unsigned short)
+AC_CHECK_TYPE(int32_t, long)
+AC_CHECK_TYPE(uint32_t, unsigned long)
+AC_CHECK_TYPE(int64_t, long long)
+AC_CHECK_TYPE(uint64_t, unsigned long long)
+AC_CHECK_TYPE(u_int32_t, unsigned long)
+AC_CHECK_TYPE(u_int16_t, unsigned short)
+AC_CHECK_TYPE(u_int8_t, unsigned char)
+
AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
AC_TRY_RUN([
#include <stdio.h>
@@ -99,5 +112,5 @@ AC_CHECK_HEADERS(dlfcn.h)
AC_CHECK_FUNCS(dlopen dlsym dlerror dlclose)
LIBS="$SAVE_LIBS"
-AC_CHECK_FUNCS([syslog memset setnetgrent getnetgrent endnetgrent],,
- [AC_MSG_ERROR([Need syslog and memset])])
+AC_CHECK_FUNCS([syslog memset setnetgrent getnetgrent endnetgrent memcpy],,
+ [AC_MSG_ERROR([Required function not found])])
diff --git a/source4/lib/replace/replace.h b/source4/lib/replace/replace.h
index 28a6392eb3..3ad348517d 100644
--- a/source4/lib/replace/replace.h
+++ b/source4/lib/replace/replace.h
@@ -132,18 +132,6 @@ int asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3);
typedef int (*comparison_fn_t)(const void *, const void *);
#endif
-#ifndef HAVE_U_INT32_T
-typedef unsigned u_int32_t;
-#endif
-
-#ifndef HAVE_U_INT16_T
-typedef unsigned short u_int16_t;
-#endif
-
-#ifndef HAVE_U_INT8_T
-typedef unsigned char u_int8_t;
-#endif
-
#ifdef HAVE_DLFCN_H
#include <dlfcn.h>
#endif