Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge branch 'main' into ac-sqlite
  • Loading branch information
Erlend E. Aasland
Erlend E. Aasland committed Nov 15, 2021
commit 7cd7b7560f9bd5a30a35124221b817d5db213201
89 changes: 89 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -10832,6 +10832,95 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5
$as_echo "$with_decimal_contextvar" >&6; }

# Check for libmpdec machine flavor
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for decimal libmpdec machine" >&5
$as_echo_n "checking for decimal libmpdec machine... " >&6; }
case $ac_sys_system in #(
Darwin*) :
libmpdec_system=Darwin ;; #(
SunOS*) :
libmpdec_system=sunos ;; #(
*) :
libmpdec_system=other
;;
esac

libmpdec_machine=unknown
if test "$libmpdec_system" = Darwin; then
case $MACOSX_DEFAULT_ARCH in #(
i386) :
libmpdec_machine=ansi32 ;; #(
ppc) :
libmpdec_machine=ansi32 ;; #(
x86_64) :
libmpdec_machine=x64 ;; #(
ppc64) :
libmpdec_machine=ansi64 ;; #(
arm64) :
libmpdec_machine=ansi64 ;; #(
*) :
libmpdec_machine=universal
;;
esac
elif test $ac_cv_sizeof_size_t -eq 8; then
if test "$ac_cv_gcc_asm_for_x64" = yes; then
libmpdec_machine=x64
elif test "$ac_cv_type___uint128_t" = yes; then
libmpdec_machine=uint128
else
libmpdec_machine=ansi64
fi
elif test $ac_cv_sizeof_size_t -eq 4; then
if test "$ac_cv_gcc_asm_for_x87" = yes -a "$libmpdec_system" != sunos; then
case $CC in #(
*gcc*) :
libmpdec_machine=ppro ;; #(
*clang*) :
libmpdec_machine=ppro ;; #(
*) :
libmpdec_machine=ansi32
;;
esac
else
libmpdec_machine=ansi32
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libmpdec_machine" >&5
$as_echo "$libmpdec_machine" >&6; }

case $libmpdec_machine in #(
x64) :
as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DASM=1" ;; #(
uint128) :
as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1" ;; #(
ansi64) :
as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_64=1 -DANSI=1" ;; #(
ppro) :
as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DASM=1 -Wno-unknown-pragmas" ;; #(
ansi32) :
as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1" ;; #(
ansi-legacy) :
as_fn_append LIBMPDEC_CFLAGS " -DCONFIG_32=1 -DANSI=1 -DLEGACY_COMPILER=1" ;; #(
universal) :
as_fn_append LIBMPDEC_CFLAGS " -DUNIVERSAL=1" ;; #(
*) :
as_fn_error $? "_decimal: unsupported architecture" "$LINENO" 5
;;
esac

if test "$have_ipa_pure_const_bug" = yes; then
# Some versions of gcc miscompile inline asm:
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491
# https://gcc.gnu.org/ml/gcc/2010-11/msg00366.html
as_fn_append LIBMPDEC_CFLAGS " -fno-ipa-pure-const"
fi

if test "$have_glibc_memmove_bug" = yes; then
# _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect:
# https://sourceware.org/ml/libc-alpha/2010-12/msg00009.html
as_fn_append LIBMPDEC_CFLAGS " -U_FORTIFY_SOURCE"
fi

ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default"
if test "x$ac_cv_header_sqlite3_h" = xyes; then :

Expand Down
63 changes: 63 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -3102,6 +3102,69 @@ fi

AC_MSG_RESULT($with_decimal_contextvar)

# Check for libmpdec machine flavor
AC_MSG_CHECKING(for decimal libmpdec machine)
AS_CASE([$ac_sys_system],
[Darwin*], [libmpdec_system=Darwin],
[SunOS*], [libmpdec_system=sunos],
[libmpdec_system=other]
)

libmpdec_machine=unknown
if test "$libmpdec_system" = Darwin; then
AS_CASE([$MACOSX_DEFAULT_ARCH],
[i386], [libmpdec_machine=ansi32],
[ppc], [libmpdec_machine=ansi32],
[x86_64], [libmpdec_machine=x64],
[ppc64], [libmpdec_machine=ansi64],
[arm64], [libmpdec_machine=ansi64],
[libmpdec_machine=universal]
)
elif test $ac_cv_sizeof_size_t -eq 8; then
if test "$ac_cv_gcc_asm_for_x64" = yes; then
libmpdec_machine=x64
elif test "$ac_cv_type___uint128_t" = yes; then
libmpdec_machine=uint128
else
libmpdec_machine=ansi64
fi
elif test $ac_cv_sizeof_size_t -eq 4; then
if test "$ac_cv_gcc_asm_for_x87" = yes -a "$libmpdec_system" != sunos; then
AS_CASE([$CC],
[*gcc*], [libmpdec_machine=ppro],
[*clang*], [libmpdec_machine=ppro],
[libmpdec_machine=ansi32]
)
else
libmpdec_machine=ansi32
fi
fi
AC_MSG_RESULT([$libmpdec_machine])

AS_CASE([$libmpdec_machine],
[x64], [AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DCONFIG_64=1 -DASM=1"])],
[uint128], [AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1"])],
[ansi64], [AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DCONFIG_64=1 -DANSI=1"])],
[ppro], [AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DCONFIG_32=1 -DANSI=1 -DASM=1 -Wno-unknown-pragmas"])],
[ansi32], [AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DCONFIG_32=1 -DANSI=1"])],
[ansi-legacy], [AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DCONFIG_32=1 -DANSI=1 -DLEGACY_COMPILER=1"])],
[universal], [AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -DUNIVERSAL=1"])],
[AC_MSG_ERROR([_decimal: unsupported architecture])]
)

if test "$have_ipa_pure_const_bug" = yes; then
# Some versions of gcc miscompile inline asm:
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491
# https://gcc.gnu.org/ml/gcc/2010-11/msg00366.html
AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -fno-ipa-pure-const"])
fi

if test "$have_glibc_memmove_bug" = yes; then
# _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect:
# https://sourceware.org/ml/libc-alpha/2010-12/msg00009.html
AS_VAR_APPEND([LIBMPDEC_CFLAGS], [" -U_FORTIFY_SOURCE"])
fi

dnl Check for SQLite library
AC_CHECK_HEADER([sqlite3.h], [
AS_VAR_COPY([save_LIBS], [LIBS])
Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.