libphobos: Detect if qsort_r is available
Merges upstream druntime bbfb58e8. libphobos/ChangeLog: 2019-02-19 Johannes Pfau <johannespfau@gmail.com> PR d/88127 * m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_CLIB): Add new macro. * configure.ac: Use DRUNTIME_LIBRARIES_CLIB. * configure: Regenerate * Makefile.in: Regenerate * libdruntime/gcc/config.d.in: Add Have_Qsort_R. * libdruntime/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. From-SVN: r268999
This commit is contained in:
parent
0232a2191b
commit
36d7f1518f
11 changed files with 75 additions and 3 deletions
|
@ -1,3 +1,15 @@
|
|||
2019-02-19 Johannes Pfau <johannespfau@gmail.com>
|
||||
|
||||
PR d/88127
|
||||
* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_CLIB): Add new macro.
|
||||
* configure.ac: Use DRUNTIME_LIBRARIES_CLIB.
|
||||
* configure: Regenerate
|
||||
* Makefile.in: Regenerate
|
||||
* libdruntime/gcc/config.d.in: Add Have_Qsort_R.
|
||||
* libdruntime/Makefile.in: Regenerate.
|
||||
* src/Makefile.in: Regenerate.
|
||||
* testsuite/Makefile.in: Regenerate.
|
||||
|
||||
2019-02-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* testsuite/lib/libphobos-dg.exp: Tabify.
|
||||
|
|
|
@ -213,6 +213,7 @@ DCFG_ARM_EABI_UNWINDER = @DCFG_ARM_EABI_UNWINDER@
|
|||
DCFG_HAVE_64BIT_ATOMICS = @DCFG_HAVE_64BIT_ATOMICS@
|
||||
DCFG_HAVE_ATOMIC_BUILTINS = @DCFG_HAVE_ATOMIC_BUILTINS@
|
||||
DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@
|
||||
DCFG_HAVE_QSORT_R = @DCFG_HAVE_QSORT_R@
|
||||
DCFG_MINFO_BRACKETING = @DCFG_MINFO_BRACKETING@
|
||||
DCFG_THREAD_MODEL = @DCFG_THREAD_MODEL@
|
||||
DEFS = @DEFS@
|
||||
|
|
26
libphobos/configure
vendored
26
libphobos/configure
vendored
|
@ -650,6 +650,7 @@ LIBATOMIC
|
|||
DCFG_HAVE_LIBATOMIC
|
||||
DCFG_HAVE_64BIT_ATOMICS
|
||||
DCFG_HAVE_ATOMIC_BUILTINS
|
||||
DCFG_HAVE_QSORT_R
|
||||
DRUNTIME_OS_MINFO_BRACKETING_FALSE
|
||||
DRUNTIME_OS_MINFO_BRACKETING_TRUE
|
||||
DCFG_MINFO_BRACKETING
|
||||
|
@ -11498,7 +11499,7 @@ else
|
|||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 11501 "configure"
|
||||
#line 11502 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
|
@ -11604,7 +11605,7 @@ else
|
|||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 11607 "configure"
|
||||
#line 11608 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
|
@ -14137,6 +14138,27 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|||
|
||||
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
DCFG_HAVE_QSORT_R=false
|
||||
ac_fn_c_check_func "$LINENO" "qsort_r" "ac_cv_func_qsort_r"
|
||||
if test "x$ac_cv_func_qsort_r" = xyes; then :
|
||||
DCFG_HAVE_QSORT_R=true
|
||||
fi
|
||||
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
gdc_save_DFLAGS=$GDCFLAGS
|
||||
|
|
|
@ -126,6 +126,7 @@ DRUNTIME_OS_SOURCES
|
|||
DRUNTIME_OS_THREAD_MODEL
|
||||
DRUNTIME_OS_ARM_EABI_UNWINDER
|
||||
DRUNTIME_OS_MINFO_BRACKETING
|
||||
DRUNTIME_LIBRARIES_CLIB
|
||||
|
||||
WITH_LOCAL_DRUNTIME([
|
||||
AC_LANG_PUSH([D])
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
fb4bda91b0b43b5a18e1c143943c101ad4e17667
|
||||
bbfb58e8a921cabdd0002a40bf63fe35ed7c77e8
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the dlang/druntime repository.
|
||||
|
|
|
@ -1096,6 +1096,7 @@ DCFG_ARM_EABI_UNWINDER = @DCFG_ARM_EABI_UNWINDER@
|
|||
DCFG_HAVE_64BIT_ATOMICS = @DCFG_HAVE_64BIT_ATOMICS@
|
||||
DCFG_HAVE_ATOMIC_BUILTINS = @DCFG_HAVE_ATOMIC_BUILTINS@
|
||||
DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@
|
||||
DCFG_HAVE_QSORT_R = @DCFG_HAVE_QSORT_R@
|
||||
DCFG_MINFO_BRACKETING = @DCFG_MINFO_BRACKETING@
|
||||
DCFG_THREAD_MODEL = @DCFG_THREAD_MODEL@
|
||||
DEFS = @DEFS@
|
||||
|
|
|
@ -43,3 +43,6 @@ enum GNU_Have_64Bit_Atomics = @DCFG_HAVE_64BIT_ATOMICS@;
|
|||
|
||||
// Do we have libatomic available
|
||||
enum GNU_Have_LibAtomic = @DCFG_HAVE_LIBATOMIC@;
|
||||
|
||||
// Do we have qsort_r function
|
||||
enum Have_Qsort_R = @DCFG_HAVE_QSORT_R@;
|
||||
|
|
|
@ -27,7 +27,25 @@ else version (TVOS)
|
|||
else version (WatchOS)
|
||||
version = Darwin;
|
||||
|
||||
// qsort_r was added in glibc in 2.8. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88127
|
||||
version (CRuntime_Glibc)
|
||||
{
|
||||
version (GNU)
|
||||
{
|
||||
import gcc.config : Have_Qsort_R;
|
||||
enum Glibc_Qsort_R = Have_Qsort_R;
|
||||
}
|
||||
else
|
||||
{
|
||||
enum Glibc_Qsort_R = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
enum Glibc_Qsort_R = false;
|
||||
}
|
||||
|
||||
static if (Glibc_Qsort_R)
|
||||
{
|
||||
alias extern (C) int function(scope const void *, scope const void *, scope void *) Cmp;
|
||||
extern (C) void qsort_r(scope void *base, size_t nmemb, size_t size, Cmp cmp, scope void *arg);
|
||||
|
|
|
@ -161,3 +161,15 @@ AC_DEFUN([DRUNTIME_LIBRARIES_BACKTRACE],
|
|||
AC_SUBST(BACKTRACE_SUPPORTS_THREADS)
|
||||
AC_LANG_POP([C])
|
||||
])
|
||||
|
||||
# DRUNTIME_LIBRARIES_CLIB
|
||||
# -----------------------
|
||||
# Perform various feature checks on the C library.
|
||||
AC_DEFUN([DRUNTIME_LIBRARIES_CLIB],
|
||||
[
|
||||
AC_LANG_PUSH([C])
|
||||
DCFG_HAVE_QSORT_R=false
|
||||
AC_CHECK_FUNC(qsort_r, [DCFG_HAVE_QSORT_R=true])
|
||||
AC_SUBST(DCFG_HAVE_QSORT_R)
|
||||
AC_LANG_POP([C])
|
||||
])
|
||||
|
|
|
@ -504,6 +504,7 @@ DCFG_ARM_EABI_UNWINDER = @DCFG_ARM_EABI_UNWINDER@
|
|||
DCFG_HAVE_64BIT_ATOMICS = @DCFG_HAVE_64BIT_ATOMICS@
|
||||
DCFG_HAVE_ATOMIC_BUILTINS = @DCFG_HAVE_ATOMIC_BUILTINS@
|
||||
DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@
|
||||
DCFG_HAVE_QSORT_R = @DCFG_HAVE_QSORT_R@
|
||||
DCFG_MINFO_BRACKETING = @DCFG_MINFO_BRACKETING@
|
||||
DCFG_THREAD_MODEL = @DCFG_THREAD_MODEL@
|
||||
DEFS = @DEFS@
|
||||
|
|
|
@ -159,6 +159,7 @@ DCFG_ARM_EABI_UNWINDER = @DCFG_ARM_EABI_UNWINDER@
|
|||
DCFG_HAVE_64BIT_ATOMICS = @DCFG_HAVE_64BIT_ATOMICS@
|
||||
DCFG_HAVE_ATOMIC_BUILTINS = @DCFG_HAVE_ATOMIC_BUILTINS@
|
||||
DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@
|
||||
DCFG_HAVE_QSORT_R = @DCFG_HAVE_QSORT_R@
|
||||
DCFG_MINFO_BRACKETING = @DCFG_MINFO_BRACKETING@
|
||||
DCFG_THREAD_MODEL = @DCFG_THREAD_MODEL@
|
||||
DEFS = @DEFS@
|
||||
|
|
Loading…
Add table
Reference in a new issue