mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Remove use of obsolescent Autoconf macros
Remove the use of the following macros, which are obsolescent according to the Autoconf documentation: - AC_C_CONST - AC_C_STRINGIZE - AC_C_VOLATILE - AC_FUNC_MEMCMP
This commit is contained in:
297
configure
vendored
297
configure
vendored
@ -15326,113 +15326,6 @@ $as_echo "$as_me: error: unknown endianness
|
|||||||
{ (exit 1); exit 1; }; } ;;
|
{ (exit 1); exit 1; }; } ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
|
|
||||||
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
|
|
||||||
if test "${ac_cv_c_const+set}" = set; then
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
cat >conftest.$ac_ext <<_ACEOF
|
|
||||||
/* confdefs.h. */
|
|
||||||
_ACEOF
|
|
||||||
cat confdefs.h >>conftest.$ac_ext
|
|
||||||
cat >>conftest.$ac_ext <<_ACEOF
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
/* FIXME: Include the comments suggested by Paul. */
|
|
||||||
#ifndef __cplusplus
|
|
||||||
/* Ultrix mips cc rejects this. */
|
|
||||||
typedef int charset[2];
|
|
||||||
const charset cs;
|
|
||||||
/* SunOS 4.1.1 cc rejects this. */
|
|
||||||
char const *const *pcpcc;
|
|
||||||
char **ppc;
|
|
||||||
/* NEC SVR4.0.2 mips cc rejects this. */
|
|
||||||
struct point {int x, y;};
|
|
||||||
static struct point const zero = {0,0};
|
|
||||||
/* AIX XL C 1.02.0.0 rejects this.
|
|
||||||
It does not let you subtract one const X* pointer from another in
|
|
||||||
an arm of an if-expression whose if-part is not a constant
|
|
||||||
expression */
|
|
||||||
const char *g = "string";
|
|
||||||
pcpcc = &g + (g ? g-g : 0);
|
|
||||||
/* HPUX 7.0 cc rejects these. */
|
|
||||||
++pcpcc;
|
|
||||||
ppc = (char**) pcpcc;
|
|
||||||
pcpcc = (char const *const *) ppc;
|
|
||||||
{ /* SCO 3.2v4 cc rejects this. */
|
|
||||||
char *t;
|
|
||||||
char const *s = 0 ? (char *) 0 : (char const *) 0;
|
|
||||||
|
|
||||||
*t++ = 0;
|
|
||||||
if (s) return 0;
|
|
||||||
}
|
|
||||||
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
|
|
||||||
int x[] = {25, 17};
|
|
||||||
const int *foo = &x[0];
|
|
||||||
++foo;
|
|
||||||
}
|
|
||||||
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
|
|
||||||
typedef const int *iptr;
|
|
||||||
iptr p = 0;
|
|
||||||
++p;
|
|
||||||
}
|
|
||||||
{ /* AIX XL C 1.02.0.0 rejects this saying
|
|
||||||
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
|
|
||||||
struct s { int j; const int *ap[3]; };
|
|
||||||
struct s *b; b->j = 5;
|
|
||||||
}
|
|
||||||
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
|
|
||||||
const int foo = 10;
|
|
||||||
if (!foo) return 0;
|
|
||||||
}
|
|
||||||
return !cs[0] && !zero.x;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
rm -f conftest.$ac_objext
|
|
||||||
if { (ac_try="$ac_compile"
|
|
||||||
case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo") >&5
|
|
||||||
(eval "$ac_compile") 2>conftest.er1
|
|
||||||
ac_status=$?
|
|
||||||
grep -v '^ *+' conftest.er1 >conftest.err
|
|
||||||
rm -f conftest.er1
|
|
||||||
cat conftest.err >&5
|
|
||||||
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
||||||
(exit $ac_status); } && {
|
|
||||||
test -z "$ac_c_werror_flag" ||
|
|
||||||
test ! -s conftest.err
|
|
||||||
} && test -s conftest.$ac_objext; then
|
|
||||||
ac_cv_c_const=yes
|
|
||||||
else
|
|
||||||
$as_echo "$as_me: failed program was:" >&5
|
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
|
|
||||||
ac_cv_c_const=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
|
|
||||||
$as_echo "$ac_cv_c_const" >&6; }
|
|
||||||
if test $ac_cv_c_const = no; then
|
|
||||||
|
|
||||||
cat >>confdefs.h <<\_ACEOF
|
|
||||||
#define const /**/
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for inline" >&5
|
{ $as_echo "$as_me:$LINENO: checking for inline" >&5
|
||||||
$as_echo_n "checking for inline... " >&6; }
|
$as_echo_n "checking for inline... " >&6; }
|
||||||
if test "${ac_cv_c_inline+set}" = set; then
|
if test "${ac_cv_c_inline+set}" = set; then
|
||||||
@ -15570,40 +15463,6 @@ cat >>confdefs.h <<_ACEOF
|
|||||||
#define PG_USE_INLINE 1
|
#define PG_USE_INLINE 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for preprocessor stringizing operator" >&5
|
|
||||||
$as_echo_n "checking for preprocessor stringizing operator... " >&6; }
|
|
||||||
if test "${ac_cv_c_stringize+set}" = set; then
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
cat >conftest.$ac_ext <<_ACEOF
|
|
||||||
/* confdefs.h. */
|
|
||||||
_ACEOF
|
|
||||||
cat confdefs.h >>conftest.$ac_ext
|
|
||||||
cat >>conftest.$ac_ext <<_ACEOF
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#define x(y) #y
|
|
||||||
|
|
||||||
char *s = x(teststring);
|
|
||||||
_ACEOF
|
|
||||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
|
||||||
$EGREP "#teststring" >/dev/null 2>&1; then
|
|
||||||
ac_cv_c_stringize=no
|
|
||||||
else
|
|
||||||
ac_cv_c_stringize=yes
|
|
||||||
fi
|
|
||||||
rm -f conftest*
|
|
||||||
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stringize" >&5
|
|
||||||
$as_echo "$ac_cv_c_stringize" >&6; }
|
|
||||||
if test $ac_cv_c_stringize = yes; then
|
|
||||||
|
|
||||||
cat >>confdefs.h <<\_ACEOF
|
|
||||||
#define HAVE_STRINGIZE 1
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -15734,67 +15593,6 @@ cat >>confdefs.h <<\_ACEOF
|
|||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:$LINENO: checking for working volatile" >&5
|
|
||||||
$as_echo_n "checking for working volatile... " >&6; }
|
|
||||||
if test "${ac_cv_c_volatile+set}" = set; then
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
cat >conftest.$ac_ext <<_ACEOF
|
|
||||||
/* confdefs.h. */
|
|
||||||
_ACEOF
|
|
||||||
cat confdefs.h >>conftest.$ac_ext
|
|
||||||
cat >>conftest.$ac_ext <<_ACEOF
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
|
|
||||||
volatile int x;
|
|
||||||
int * volatile y = (int *) 0;
|
|
||||||
return !x && !y;
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
rm -f conftest.$ac_objext
|
|
||||||
if { (ac_try="$ac_compile"
|
|
||||||
case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo") >&5
|
|
||||||
(eval "$ac_compile") 2>conftest.er1
|
|
||||||
ac_status=$?
|
|
||||||
grep -v '^ *+' conftest.er1 >conftest.err
|
|
||||||
rm -f conftest.er1
|
|
||||||
cat conftest.err >&5
|
|
||||||
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
||||||
(exit $ac_status); } && {
|
|
||||||
test -z "$ac_c_werror_flag" ||
|
|
||||||
test ! -s conftest.err
|
|
||||||
} && test -s conftest.$ac_objext; then
|
|
||||||
ac_cv_c_volatile=yes
|
|
||||||
else
|
|
||||||
$as_echo "$as_me: failed program was:" >&5
|
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
|
|
||||||
ac_cv_c_volatile=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5
|
|
||||||
$as_echo "$ac_cv_c_volatile" >&6; }
|
|
||||||
if test $ac_cv_c_volatile = no; then
|
|
||||||
|
|
||||||
cat >>confdefs.h <<\_ACEOF
|
|
||||||
#define volatile /**/
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for __func__" >&5
|
{ $as_echo "$as_me:$LINENO: checking for __func__" >&5
|
||||||
$as_echo_n "checking for __func__... " >&6; }
|
$as_echo_n "checking for __func__... " >&6; }
|
||||||
if test "${pgac_cv_funcname_func_support+set}" = set; then
|
if test "${pgac_cv_funcname_func_support+set}" = set; then
|
||||||
@ -28897,101 +28695,6 @@ operating system; use --disable-thread-safety to disable thread safety." >&2;}
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# SunOS doesn't handle negative byte comparisons properly with +/- return
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for working memcmp" >&5
|
|
||||||
$as_echo_n "checking for working memcmp... " >&6; }
|
|
||||||
if test "${ac_cv_func_memcmp_working+set}" = set; then
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
if test "$cross_compiling" = yes; then
|
|
||||||
ac_cv_func_memcmp_working=no
|
|
||||||
else
|
|
||||||
cat >conftest.$ac_ext <<_ACEOF
|
|
||||||
/* confdefs.h. */
|
|
||||||
_ACEOF
|
|
||||||
cat confdefs.h >>conftest.$ac_ext
|
|
||||||
cat >>conftest.$ac_ext <<_ACEOF
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$ac_includes_default
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
|
|
||||||
/* Some versions of memcmp are not 8-bit clean. */
|
|
||||||
char c0 = '\100', c1 = '\200', c2 = '\201';
|
|
||||||
if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
/* The Next x86 OpenStep bug shows up only when comparing 16 bytes
|
|
||||||
or more and with at least one buffer not starting on a 4-byte boundary.
|
|
||||||
William Lewis provided this test program. */
|
|
||||||
{
|
|
||||||
char foo[21];
|
|
||||||
char bar[21];
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < 4; i++)
|
|
||||||
{
|
|
||||||
char *a = foo + i;
|
|
||||||
char *b = bar + i;
|
|
||||||
strcpy (a, "--------01111111");
|
|
||||||
strcpy (b, "--------10000000");
|
|
||||||
if (memcmp (a, b, 16) >= 0)
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
rm -f conftest$ac_exeext
|
|
||||||
if { (ac_try="$ac_link"
|
|
||||||
case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo") >&5
|
|
||||||
(eval "$ac_link") 2>&5
|
|
||||||
ac_status=$?
|
|
||||||
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
||||||
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
|
|
||||||
{ (case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo") >&5
|
|
||||||
(eval "$ac_try") 2>&5
|
|
||||||
ac_status=$?
|
|
||||||
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
||||||
(exit $ac_status); }; }; then
|
|
||||||
ac_cv_func_memcmp_working=yes
|
|
||||||
else
|
|
||||||
$as_echo "$as_me: program exited with status $ac_status" >&5
|
|
||||||
$as_echo "$as_me: failed program was:" >&5
|
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
|
|
||||||
( exit $ac_status )
|
|
||||||
ac_cv_func_memcmp_working=no
|
|
||||||
fi
|
|
||||||
rm -rf conftest.dSYM
|
|
||||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5
|
|
||||||
$as_echo "$ac_cv_func_memcmp_working" >&6; }
|
|
||||||
test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in
|
|
||||||
*" memcmp.$ac_objext "* ) ;;
|
|
||||||
*) LIBOBJS="$LIBOBJS memcmp.$ac_objext"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Select semaphore implementation type.
|
# Select semaphore implementation type.
|
||||||
if test "$PORTNAME" != "win32"; then
|
if test "$PORTNAME" != "win32"; then
|
||||||
|
@ -1114,12 +1114,9 @@ fi
|
|||||||
|
|
||||||
m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that.
|
m4_defun([AC_PROG_CC_STDC], []) dnl We don't want that.
|
||||||
AC_C_BIGENDIAN
|
AC_C_BIGENDIAN
|
||||||
AC_C_CONST
|
|
||||||
PGAC_C_INLINE
|
PGAC_C_INLINE
|
||||||
AC_C_STRINGIZE
|
|
||||||
AC_C_FLEXIBLE_ARRAY_MEMBER
|
AC_C_FLEXIBLE_ARRAY_MEMBER
|
||||||
PGAC_C_SIGNED
|
PGAC_C_SIGNED
|
||||||
AC_C_VOLATILE
|
|
||||||
PGAC_C_FUNCNAME_SUPPORT
|
PGAC_C_FUNCNAME_SUPPORT
|
||||||
PGAC_C_STATIC_ASSERT
|
PGAC_C_STATIC_ASSERT
|
||||||
PGAC_C_TYPES_COMPATIBLE
|
PGAC_C_TYPES_COMPATIBLE
|
||||||
@ -1749,9 +1746,6 @@ operating system; use --disable-thread-safety to disable thread safety.])
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# SunOS doesn't handle negative byte comparisons properly with +/- return
|
|
||||||
AC_FUNC_MEMCMP
|
|
||||||
|
|
||||||
|
|
||||||
# Select semaphore implementation type.
|
# Select semaphore implementation type.
|
||||||
if test "$PORTNAME" != "win32"; then
|
if test "$PORTNAME" != "win32"; then
|
||||||
|
@ -130,28 +130,12 @@
|
|||||||
* CppConcat
|
* CppConcat
|
||||||
* Concatenate two arguments together, using the C preprocessor.
|
* Concatenate two arguments together, using the C preprocessor.
|
||||||
*
|
*
|
||||||
* Note: the standard Autoconf macro AC_C_STRINGIZE actually only checks
|
* Note: There used to be support here for pre-ANSI C compilers that didn't
|
||||||
* whether #identifier works, but if we have that we likely have ## too.
|
* support # and ##. Nowadays, these macros are just for clarity and/or
|
||||||
|
* backward compatibility with existing PostgreSQL code.
|
||||||
*/
|
*/
|
||||||
#if defined(HAVE_STRINGIZE)
|
|
||||||
|
|
||||||
#define CppAsString(identifier) #identifier
|
#define CppAsString(identifier) #identifier
|
||||||
#define CppConcat(x, y) x##y
|
#define CppConcat(x, y) x##y
|
||||||
#else /* !HAVE_STRINGIZE */
|
|
||||||
|
|
||||||
#define CppAsString(identifier) "identifier"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* CppIdentity -- On Reiser based cpp's this is used to concatenate
|
|
||||||
* two tokens. That is
|
|
||||||
* CppIdentity(A)B ==> AB
|
|
||||||
* We renamed it to _private_CppIdentity because it should not
|
|
||||||
* be referenced outside this file. On other cpp's it
|
|
||||||
* produces A B.
|
|
||||||
*/
|
|
||||||
#define _priv_CppIdentity(x)x
|
|
||||||
#define CppConcat(x, y) _priv_CppIdentity(x)y
|
|
||||||
#endif /* !HAVE_STRINGIZE */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dummyret is used to set return values in macros that use ?: to make
|
* dummyret is used to set return values in macros that use ?: to make
|
||||||
|
@ -457,9 +457,6 @@
|
|||||||
/* Define to 1 if you have the `strerror_r' function. */
|
/* Define to 1 if you have the `strerror_r' function. */
|
||||||
#undef HAVE_STRERROR_R
|
#undef HAVE_STRERROR_R
|
||||||
|
|
||||||
/* Define to 1 if cpp supports the ANSI # stringizing operator. */
|
|
||||||
#undef HAVE_STRINGIZE
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <strings.h> header file. */
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
#undef HAVE_STRINGS_H
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
@ -839,9 +836,6 @@
|
|||||||
/* Define for large files, on AIX-style hosts. */
|
/* Define for large files, on AIX-style hosts. */
|
||||||
#undef _LARGE_FILES
|
#undef _LARGE_FILES
|
||||||
|
|
||||||
/* Define to empty if `const' does not conform to ANSI C. */
|
|
||||||
#undef const
|
|
||||||
|
|
||||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
@ -858,7 +852,3 @@
|
|||||||
/* Define to the type of an unsigned integer type wide enough to hold a
|
/* Define to the type of an unsigned integer type wide enough to hold a
|
||||||
pointer, if such a type exists, and if the system does not define it. */
|
pointer, if such a type exists, and if the system does not define it. */
|
||||||
#undef uintptr_t
|
#undef uintptr_t
|
||||||
|
|
||||||
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
|
||||||
code using `volatile' can become incorrect without. Disable with care. */
|
|
||||||
#undef volatile
|
|
||||||
|
@ -360,9 +360,6 @@
|
|||||||
/* Define to 1 if you have the `strerror_r' function. */
|
/* Define to 1 if you have the `strerror_r' function. */
|
||||||
/* #undef HAVE_STRERROR_R */
|
/* #undef HAVE_STRERROR_R */
|
||||||
|
|
||||||
/* Define to 1 if cpp supports the ANSI # stringizing operator. */
|
|
||||||
#define HAVE_STRINGIZE 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <strings.h> header file. */
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
/*#define HAVE_STRINGS_H 1 */
|
/*#define HAVE_STRINGS_H 1 */
|
||||||
|
|
||||||
@ -674,9 +671,6 @@
|
|||||||
/* Define for large files, on AIX-style hosts. */
|
/* Define for large files, on AIX-style hosts. */
|
||||||
/* #undef _LARGE_FILES */
|
/* #undef _LARGE_FILES */
|
||||||
|
|
||||||
/* Define to empty if `const' does not conform to ANSI C. */
|
|
||||||
/* #undef const */
|
|
||||||
|
|
||||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
@ -685,7 +679,3 @@
|
|||||||
|
|
||||||
/* Define to empty if the C compiler does not understand signed types. */
|
/* Define to empty if the C compiler does not understand signed types. */
|
||||||
/* #undef signed */
|
/* #undef signed */
|
||||||
|
|
||||||
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
|
||||||
code using `volatile' can become incorrect without. Disable with care. */
|
|
||||||
/* #undef volatile */
|
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
/*-------------------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* memcmp.c
|
|
||||||
* compares memory bytes
|
|
||||||
*
|
|
||||||
* Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* IDENTIFICATION
|
|
||||||
* src/port/memcmp.c
|
|
||||||
*
|
|
||||||
* This file was taken from NetBSD and is used by SunOS because memcmp
|
|
||||||
* on that platform does not properly compare negative bytes. The
|
|
||||||
* NetBSD copyright terms follow.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*-
|
|
||||||
* Copyright (c) 1990, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* This code is derived from software contributed to Berkeley by
|
|
||||||
* Chris Torek.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "c.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Compare memory regions.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
memcmp(const void *s1, const void *s2, size_t n)
|
|
||||||
{
|
|
||||||
if (n != 0)
|
|
||||||
{
|
|
||||||
const unsigned char *p1 = s1,
|
|
||||||
*p2 = s2;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if (*p1++ != *p2++)
|
|
||||||
return (*--p1 - *--p2);
|
|
||||||
} while (--n != 0);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
Reference in New Issue
Block a user