mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-30 11:11:16 +02:00
Make PGAC_C_BUILTIN_OP_OVERFLOW link instead of just compiling.
Otherwise the detection can spuriously detect symbol as available, because the compiler may just emits reference to non-existant symbol.
This commit is contained in:
parent
101c7ee3ee
commit
85abb5b297
@ -305,10 +305,11 @@ fi])# PGAC_C_BUILTIN_CONSTANT_P
|
|||||||
# and define HAVE__BUILTIN_OP_OVERFLOW if so.
|
# and define HAVE__BUILTIN_OP_OVERFLOW if so.
|
||||||
#
|
#
|
||||||
# Check for the most complicated case, 64 bit multiplication, as a
|
# Check for the most complicated case, 64 bit multiplication, as a
|
||||||
# proxy for all of the operations.
|
# proxy for all of the operations. Have to link to be sure to
|
||||||
|
# recognize a missing __builtin_mul_overflow.
|
||||||
AC_DEFUN([PGAC_C_BUILTIN_OP_OVERFLOW],
|
AC_DEFUN([PGAC_C_BUILTIN_OP_OVERFLOW],
|
||||||
[AC_CACHE_CHECK(for __builtin_mul_overflow, pgac_cv__builtin_op_overflow,
|
[AC_CACHE_CHECK(for __builtin_mul_overflow, pgac_cv__builtin_op_overflow,
|
||||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
|
[AC_LINK_IFELSE([AC_LANG_PROGRAM([],
|
||||||
[PG_INT64_TYPE result;
|
[PG_INT64_TYPE result;
|
||||||
__builtin_mul_overflow((PG_INT64_TYPE) 1, (PG_INT64_TYPE) 2, &result);]
|
__builtin_mul_overflow((PG_INT64_TYPE) 1, (PG_INT64_TYPE) 2, &result);]
|
||||||
)],
|
)],
|
||||||
|
7
configure
vendored
7
configure
vendored
@ -14472,6 +14472,8 @@ esac
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# has to be down here, rather than with the other builtins, because
|
||||||
|
# the test uses PG_INT64_TYPE.
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_mul_overflow" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_mul_overflow" >&5
|
||||||
$as_echo_n "checking for __builtin_mul_overflow... " >&6; }
|
$as_echo_n "checking for __builtin_mul_overflow... " >&6; }
|
||||||
if ${pgac_cv__builtin_op_overflow+:} false; then :
|
if ${pgac_cv__builtin_op_overflow+:} false; then :
|
||||||
@ -14490,12 +14492,13 @@ __builtin_mul_overflow((PG_INT64_TYPE) 1, (PG_INT64_TYPE) 2, &result);
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
_ACEOF
|
_ACEOF
|
||||||
if ac_fn_c_try_compile "$LINENO"; then :
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
pgac_cv__builtin_op_overflow=yes
|
pgac_cv__builtin_op_overflow=yes
|
||||||
else
|
else
|
||||||
pgac_cv__builtin_op_overflow=no
|
pgac_cv__builtin_op_overflow=no
|
||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_op_overflow" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_op_overflow" >&5
|
||||||
$as_echo "$pgac_cv__builtin_op_overflow" >&6; }
|
$as_echo "$pgac_cv__builtin_op_overflow" >&6; }
|
||||||
|
Loading…
Reference in New Issue
Block a user