aboutsummaryrefslogtreecommitdiff
path: root/libphobos/libdruntime
AgeCommit message (Collapse)AuthorFilesLines
2020-04-09libphobos: Remove --enable-druntime-gc configure option.Iain Buclaw3-503/+84
This is yet another old option that would have been somewhat useful back before the D front-end implementation was able to support compiling without the Druntime library. Now however, -fno-druntime makes the gcstub package redundant, so the option has been removed, along with the package itself. libphobos/ChangeLog: * configure: Regenerate. * libdruntime/Makefile.am (ALL_DRUNTIME_INSTALL_DSOURCES): Remove DRUNTIME_DSOURCES_GC and DRUNTIME_DSOURCES_GCSTUB. (DRUNTIME_DSOURCES): Add gc/*.d sources. (DRUNTIME_DSOURCES_GC): Remove. (DRUNTIME_DSOURCES_GCSTUB): Remove. * libdruntime/Makefile.in: Regenerate. * libdruntime/gcstub/gc.d: Remove. * m4/druntime.m4 (DRUNTIME_GC): Remove.
2020-04-09libphobos: Add --enable-libphobos-checking configure optionIain Buclaw2-2/+3
As GDCFLAGS is overriden by the top-level make file with '-O2 -g', libphobos ends up always being built with all contracts, invariants, and asserts compiled in. This adds a new configurable that defaults to omit compiling any run-time checks into the library using '-frelease'. Other choices either set the flags '-fno-release', enabling all run-time checks, or '-fassert', which only compiles in asserts. The omission of compiling in contracts results in a smaller library size, with faster build times. libphobos/ChangeLog: PR d/94305 * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Add --enable-libphobos-checking and substitute CHECKING_DFLAGS. Remove -frelease from GDCFLAGS. * libdruntime/Makefile.am: Add CHECKING_DFLAGS to AM_DFLAGS. * libdruntime/Makefile.in: Regenerate. * src/Makefile.am: Add CHECKING_DFLAGS to AM_DFLAGS. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * testsuite/testsuite_flags.in: Add -fno-release -funittest to --gdcflags.
2020-04-08libphobos: Remove --enable-unix configure option.Iain Buclaw2-3/+3
This option is not useful on its own as all posix modules require the compiler to predefine version(Posix) anyway. So the option has been removed, and logic moved into DRUNTIME_OS_SOURCES, where the conditional DRUNTIME_OS_POSIX is set instead. libphobos/ChangeLog: * configure: Regenerate. * configure.ac: Remove DRUNTIME_OS_UNIX. * libdruntime/Makefile.am: Add DRUNTIME_DSOURCES_POSIX if DRUNTIME_OS_POSIX is true. * libdruntime/Makefile.in: Regenerate. * m4/druntime/os.m4 (DRUNTIME_OS_UNIX): Remove, move AM_CONDITIONAL logic to... (DRUNTIME_OS_SOURCES): ...here. Rename conditional to DRUNTIME_OS_POSIX.
2020-04-08libphobos: Always build with warning flags enabledIain Buclaw2-2/+8
This moves WARN_DFLAGS from GDCFLAGS to AM_DFLAGS so it is always included in the build and testsuite of libphobos. Currently, this doesn't happen as GDCFLAGS is overriden by it being set at the top-level. libphobos/ChangeLog: * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Substite WARN_DFLAGS independently of GDCFLAGS. * libdruntime/Makefile.am: Add WARN_DFLAGS to AM_DFLAGS. * libdruntime/Makefile.in: Regenerate. * src/Makefile.am: Add WARN_DFLAGS to AM_DFLAGS. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * testsuite/testsuite_flags.in: Add WARN_DFLAGS to --gdcflags.
2020-04-08libphobos: Merge upstream phobos fb4f6a713Iain Buclaw1-1/+1
Improves the versioning of IeeeFlags and FloatingPointControl code and unit-tests, making it clearer which targets can and cannot support it. Reviewed-on: https://github.com/dlang/phobos/pull/7435
2020-04-07S/390: Fix PR91628Robin Dapp5-11/+152
With this patch we get rid of the usage of the glibc-internal symbol __tls_get_addr_internal. If build with multilib, the file gcc/libphobos/libdruntime/config/systemz/get_tls_offset.S is used for both configurations: systemz and s390. Therefore both implementations are now in the systemz file which uses an "#ifdef __s390x__" in order to distinguish both cases. The s390 file is just including the systemz one. libphobos/ChangeLog: 2020-04-07 Robin Dapp <rdapp@linux.ibm.com> Stefan Liebler <stli@linux.ibm.com> * configure: Regenerate. * libdruntime/Makefile.am: Add s390x and s390. * libdruntime/Makefile.in: Regenerate. * libdruntime/config/s390/get_tls_offset.S: New file. * libdruntime/config/systemz/get_tls_offset.S: New file. * libdruntime/gcc/sections/elf_shared.d: Use ibmz_get_tls_offset. * m4/druntime/cpu.m4: Add s390x and s390.
2020-04-07S/390: Fix layout of struct sigaction_tStefan Liebler1-10/+37
The ordering of some fields in struct sigaction on s390x (64bit) differs compared to s390 and other architectures. This patch adjusts this order according to the definition of <glibc-src>/sysdeps/unix/sysv/linux/s390/bits/sigaction.h Without this fix e.g. the call sigaction( suspendSignalNumber, &sigusr1, null ) in thread.d leads to setting the sa_restorer field to 0xffffffffffffffff. In case a signal, the signal handler returns to this address and the process stops with a SIGILL. This was observable in several execution testcases on s390x: libphobos.druntime/core/thread.d libphobos.druntime_shared/core/thread.d libphobos.thread/tlsgc_sections.d libphobos.allocations/tls_gc_integration.d libphobos.phobos/std/parallelism.d libphobos.phobos_shared/std/parallelism.d libphobos.shared/host.c libphobos.shared/linkD.c libphobos.shared/linkDR.c libphobos.shared/link_linkdep.d libphobos.shared/load.d libphobos.shared/loadDR.c libphobos.shared/load_linkdep.d libphobos.shared/load_loaddep.d libphobos/ChangeLog: 2020-04-07 Stefan Liebler <stli@linux.ibm.com> * libdruntime/core/sys/posix/signal.d: Add struct sigaction_t for SystemZ.
2020-03-16libphobos: Reset libtool_VERSION to 1:0:0Iain Buclaw1-1/+1
libphobos/ChangeLog: 2020-03-16 Iain Buclaw <ibuclaw@gdcproject.org> PR d/92792 * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac (libtool_VERSION): Reset to 1:0:0. * libdruntime/Makefile.in: Regenerate.
2020-03-16libphobos: Merge upstream druntime 6c45dd3a, phobos 68cc18adb.Iain Buclaw2-17/+21
Surrounds the gcc-style asm operands with parentheses, as the old style is now deprecated. Reviewed-on: https://github.com/dlang/druntime/pull/2986
2020-03-14libphobos: Merge upstream druntime 7915b6a3Iain Buclaw9-53/+723
Includes port fixes for Musl on ARM, AArch64, and SystemZ targets. Reviewed-on: https://github.com/dlang/druntime/pull/2751 https://github.com/dlang/druntime/pull/2843 https://github.com/dlang/druntime/pull/2844 https://github.com/dlang/druntime/pull/2898
2020-01-24Add `--with-toolexeclibdir=' configuration optionMaciej W. Rozycki1-0/+1
Provide means, in the form of a `--with-toolexeclibdir=' configuration option, to override the default installation directory for target libraries, otherwise known as $toolexeclibdir. This is so that it is possible to get newly-built libraries, particularly the shared ones, installed in a common place, so that they can be readily used by the target system as their host libraries, possibly over NFS, without a need to manually copy them over from the currently hardcoded location they would otherwise be installed in. In the presence of the `--enable-version-specific-runtime-libs' option and for configurations building native GCC the option is ignored. config/ * toolexeclibdir.m4: New file. gcc/ * doc/install.texi (Cross-Compiler-Specific Options): Document `--with-toolexeclibdir' option. libada/ * Makefile.in (configure_deps): Add `toolexeclibdir.m4'. * configure.ac: Handle `--with-toolexeclibdir='. * configure: Regenerate. libatomic/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libffi/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * include/Makefile.in: Regenerate. * man/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libgcc/ * Makefile.in (configure_deps): Add `toolexeclibdir.m4'. * configure.ac: Handle `--with-toolexeclibdir='. * configure: Regenerate. libgfortran/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libgomp/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libhsail-rt/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libitm/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libobjc/ * Makefile.in (aclocal_deps): Add `toolexeclibdir.m4'. * aclocal.m4: Include `toolexeclibdir.m4'. * configure.ac: Handle `--with-toolexeclibdir='. * configure: Regenerate. liboffloadmic/ * plugin/configure.ac: Handle `--with-toolexeclibdir='. * plugin/Makefile.in: Regenerate. * plugin/aclocal.m4: Regenerate. * plugin/configure: Regenerate. * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libphobos/ * m4/druntime.m4: Handle `--with-toolexeclibdir='. * m4/Makefile.in: Regenerate. * libdruntime/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libquadmath/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libsanitizer/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * asan/Makefile.in: Regenerate. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. libssp/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libstdc++-v3/ * acinclude.m4: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. * src/c++17/Makefile.in: Regenerate. * src/c++98/Makefile.in: Regenerate. * src/filesystem/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libvtv/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. zlib/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate.
2020-01-01Update copyright years.Jakub Jelinek32-32/+32
From-SVN: r279813
2019-08-21libphobos: Merge upstream druntime 5bb8ce19Iain Buclaw36-456/+4582
Synchronizes extern(C) bindings with latest release. Reviewed-on: https://github.com/dlang/druntime/pull/2741 libphobos/ChangeLog: * libdruntime/Makefile.am (DRUNTIME_DSOURCES_BIONIC): Add core/sys/bionic/string.d. (DRUNTIME_DSOURCES_DARWIN): Add core/sys/darwin/string.d. (DRUNTIME_DSOURCES_DRAGONFLYBSD): Add core/sys/dragonflybsd/string.d, core/sys/dragonflybsd/sys/socket.d. (DRUNTIME_DSOURCES_FREEBSD): Add core/sys/freebsd/string.d. (DRUNTIME_DSOURCES_LINUX): Add core/sys/linux/string.d. (DRUNTIME_DSOURCES_NETBSD): Add core/sys/netbsd/string.d, core/sys/netbsd/sys/featuretest.d. * libdruntime/Makefile.in: Regenerate. From-SVN: r274773
2019-08-21libphobos: Merge upstream druntime 94686651Iain Buclaw47-289/+3255
Adds extern(C) bindings for version OpenBSD. Reviewed-on: https://github.com/dlang/druntime/pull/2748 libphobos/ChangeLog: * libdruntime/Makefile.am (DRUNTIME_DSOURCES_OPENBSD): Add core/sys/openbsd/sys/cdefs.d, core/sys/openbsd/sys/elf.d, core/sys/openbsd/sys/elf32.d, core/sys/openbsd/sys/elf64.d, core/sys/openbsd/sys/elf_common.d, core/sys/openbsd/sys/link_elf.d, core/sys/openbsd/sys/mman.d, core/sys/openbsd/time.d. * libdruntime/Makefile.in: Regenerate. From-SVN: r274772
2019-06-16d/dmd: Merge upstream dmd f8e38c001Iain Buclaw2-5/+5
Fixes bug where foreach(int) doesn't work on BigEndian targets by deprecating the use of index types smaller than a size_t/ptrdiff_t. Reviewed-on: https://github.com/dlang/dmd/pull/10009 From-SVN: r272350
2019-04-29libphobos: Fix multilib builds for s390x-linux-gnuIain Buclaw6-18/+117
Merges upstream druntime aab44549, phobos 3dc363783. Reviewed-on: https://github.com/dlang/druntime/pull/2590 https://github.com/dlang/phobos/pull/6983 libphobos/ChangeLog: 2019-04-28 Iain Buclaw <ibuclaw@gdcproject.org> * libdruntime/gcc/sections/elf_shared.d (IBMZ_Any): Define when version S390 or SystemZ. Use condition instead of SystemZ. (getTLSRange): Return null on GNU_EMUTLS targets. From-SVN: r270639
2019-04-29libphobos: Backport minimal MinGW support patches.Iain Buclaw5-39/+42
Merges upstream druntime 1ca80e4e, phobos b5e9661a0. Reviewed-on: https://github.com/dlang/druntime/pull/2587 https://github.com/dlang/phobos/pull/6981 From-SVN: r270638
2019-04-25libphobos: Fix segfault in runtime caused by unexpected GC of TLS data.Iain Buclaw1-1/+7
libphobos/ChangeLog: 2019-04-25 Iain Buclaw <ibuclaw@gdcproject.org> PR d/90250 * libdruntime/gcc/sections/elf_shared.d (initTLSRanges): Populate _tlsRanges in every startup thread. * testsuite/libphobos.thread/thread.exp: Load libphobos-dg.exp. * testsuite/libphobos.thread/tlsgc_sections.d: New test. From-SVN: r270576
2019-04-25D: Implement GCC emutls in druntimeJohannes Pfau5-37/+511
* libdruntime/Makefile.am: Add emutls and gthread files. * libdruntime/Makefile.in: Regenerate. * libdruntime/gcc/emutls.d: New file. Implement GC-compatible emutls. * libdruntime/gcc/gthread.d: New file. * libdruntime/gcc/sections/elf_shared.d: Integrate emutls support. * testsuite/libphobos.allocations/tls_gc_integration.d: New test for TLS. From-SVN: r270568
2019-04-24libphobos: Fix linker warning and SEGV in core.thread tests.Iain Buclaw11-765/+1092
The monolithic core/threadasm.S source has been removed, and split into multiple parts, one for each intended target CPU/OS. Added .type and .size directives for all asm implementations of fiber_switchContent and callWithStackShell where they were missing. libphobos/ChangeLog: 2019-04-25 Iain Buclaw <ibuclaw@gdcproject.org> PR d/90086 * m4/druntime/cpu.m4 (DRUNTIME_CPU_SOURCES): New macro. * configure.ac: Use it. * configure: Regenerate. * libdruntime/Makefile.am: Add new config sources to DRUNTIME_SOURCES_CONFIGURED. * libdruntime/Makefile.in: Regenerate. * libdruntime/config/aarch64/switchcontext.S: New file. * libdruntime/config/arm/switchcontext.S: New file. * libdruntime/config/common/threadasm.S: New file. * libdruntime/config/mingw/switchcontext.S: New file. * libdruntime/config/mips/switchcontext.S: New file. * libdruntime/config/powerpc/switchcontext.S: New file. * libdruntime/config/powerpc64/callwithstack.S: New file. * libdruntime/config/x86/switchcontext.S: New file. * libdruntime/core/threadasm.S: Remove. From-SVN: r270560
2019-04-24libphobos: Fix FAIL phobos.exp/core.time on CentOS 5.11, Linux 2.6.18Iain Buclaw2-3/+6
Merges upstream druntime e03164b5. Reviewed-on: https://github.com/dlang/druntime/pull/2581 libphobos/ChangeLog: 2019-04-24 Iain Buclaw <ibuclaw@gdcproject.org> PR d/89432 * testsuite/lib/libphobos.exp (check_effective_target_linux_pre_2639): New proc. * testsuite/libphobos.druntime/druntime.exp: Add compiler flag -fversion=Linux_Pre_2639 if target is linux_pre_2639. * testsuite/libphobos.druntime_shared/druntime_shared.exp: Likewise. From-SVN: r270554
2019-04-24libphobos: Fix assert in core.sys.posix.sys.stat for aarch64/ilp32.Iain Buclaw2-3/+3
Merges upstream druntime 51365217. Reviewed-on: https://github.com/dlang/druntime/pull/2579 From-SVN: r270541
2019-04-23libphobos: Add D support for S/390 LinuxIain Buclaw1-1/+12
gcc/d/ChangeLog: 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> Robin Dapp <rdapp@linux.ibm.com> * typeinfo.cc (create_typeinfo): Write typeinfo flags as uint. gcc/testsuite/ChangeLog: 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> Robin Dapp <rdapp@linux.ibm.com> * gdc.dg/link.d: Test if target d_runtime. * gdc.dg/runnable.d: Fix tests to work on BigEndian. * gdc.dg/simd.d: Likewise. libphobos/ChangeLog: 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> Robin Dapp <rdapp@linux.ibm.com> * configure.tgt: Add s390*-linux* as a supported target. * libdruntime/gcc/sections/elf_shared.d: import gcc.builtins. (__tls_get_addr_internal): Declare. (TLS_DTV_OFFSET): Define as zero on SystemZ. (getTLSRange): Support getting TLS on SystemZ. * testsuite/libphobos.typeinfo/struct-align.d: New test. Co-Authored-By: Robin Dapp <rdapp@linux.ibm.com> From-SVN: r270523
2019-04-23libphobos: Add D support for RISC-V LinuxIain Buclaw1-1/+13
2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> * configure.tgt: Add riscv*-*-linux* as supported target. * libdruntime/gcc/sections/elf_shared.d (getDependencies): Adjust dlpi_addr on RISCV32 and RISCV64. * src/std/math.d: Add IEEE FPU control support for RISCV. From-SVN: r270522
2019-04-23re PR d/90079 (SEGV in _aaKeys, _aaValues on 32-bit SPARC)Iain Buclaw2-31/+95
PR d/90079 libphobos: Fix SEGV in _aaKeys, _aaValues on 32-bit SPARC Merges upstream druntime b43203a1 Reviewed-on: https://github.com/dlang/druntime/pull/2572 From-SVN: r270514
2019-04-23re PR target/89093 (C++ exception handling clobbers d8 VFP register)Ramana Radhakrishnan1-0/+13
PR target/89093 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose if used with general-regs-only. (arm_conditional_register_usage): Don't add non-general regs if general-regs-only. (arm_valid_target_attribute_rec): Handle general-regs-only. * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if general-regs-only. (TARGET_HARD_FLOAT_SUB): Define. (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB. (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY. (TARGET_REALLY_IWMMXT2): Likewise. * config/arm/arm.opt: Add -mgeneral-regs-only. * doc/extend.texi: Document ARM general-regs-only target. * doc/invoke.texi: Document ARM -mgeneral-regs-only. libgcc/ * config/arm/pr-support.c: Add #pragma GCC target("general-regs-only"). * config/arm/unwind-arm.c: Likewise. * unwind-c.c (PERSONALITY_FUNCTION): Add general-regs-only target attribute for ARM. libobjc/ * exception.c (PERSONALITY_FUNCTION): Add general-regs-only target attribute for ARM. libphobos/ * libdruntime/gcc/deh.d: Import gcc.attribute. (personality_fn_attributes): New enum. (scanLSDA, CONTINUE_UNWINDING, gdc_personality, __gdc_personality): Add @personality_fn_attributes. libstdc++-v3/ * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add general-regs-only target attribute for ARM. Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de> Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r270504
2019-04-22libphobos: Merge upstream druntime 109f0f2eIain Buclaw12-143/+277
Backports more extern(C) bindings and platform ports. Reviewed-on: https://github.com/dlang/druntime/pull/2569 From-SVN: r270490
2019-04-21libphobos: Merge upstream druntime 4b2674b3Iain Buclaw5-290/+331
Adds version (BacktraceExternal) for using libexecinfo instead of internal implementation on FreeBSD, NetBSD, and DragonFly. Reviewed-on: https://github.com/dlang/druntime/pull/2560 From-SVN: r270482
2019-04-20libphobos: core.atomic should have fallback when there's no libatomic.Iain Buclaw1-66/+202
libphobos/ChangeLog: 2019-04-20 Iain Buclaw <ibuclaw@gdcproject.org> PR d/89293 * libdruntime/core/atomic.d (casImpl): Remove static assert for GNU_Have_Atomics, add static path to handle missing atomic support. (atomicLoad): Likewise. (atomicStore): Likewise. (atomicFence): Likewise. (atomicMutexHandle, AtomicMutex): Declare types. (_getAtomicMutex): New function. (getAtomicMutex): Declare. From-SVN: r270470
2019-04-15Backport PRs 90059, 90060, 90062Iain Buclaw4-25/+137
PR d/90059 PR d/90060 PR d/90062 libphobos: Merge upstream druntime 70b9fea6 Backports fixes in the extern(C) bindings for the Solaris/SPARC port. Initial patch by Rainer Orth. Reviewed-on: https://github.com/dlang/druntime/pull/2555 From-SVN: r270372
2019-04-14Work around lack of dlpi_tls_modid before Solaris 11.5Rainer Orth3-2/+45
2019-04-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> Iain Buclaw <ibuclaw@gdcproject.org> PR d/88150 * m4/druntime/os.m4 (DRUNTIME_OS_DLPI_TLS_MODID): New macro. * configure.ac: Use it. Call AC_USE_SYSTEM_EXTENSIONS. * configure: Regenerate. * Makefile.in, libdruntime/Makefile.in, src/Makefile.in, testsuite/Makefile.in: Regenerate. * libdruntime/gcc/config.d.in (OS_Have_Dlpi_Tls_Modid): Define. * libdruntime/gcc/sections/elf_shared.d: Import gcc.config. (scanSegments) <PT_TLS> [OS_Have_Dlpi_Tls_Modid]: Use dlpi_tls_modid. [Solaris]: Use dlinfo(RTLD_DI_LINKMAP) to get rt_tlsmodid. Otherwise clear pdso._tlsMod, pdso._tlsSize. (getTLSRange) [Solaris && !OS_Have_Dlpi_Tls_Modid]: Readjust mod. Co-Authored-By: Iain Buclaw <ibuclaw@gdcproject.org> From-SVN: r270347
2019-04-14Work around Solaris ld bug linking __tls_get_addr on 64-bit x86Rainer Orth1-0/+1
* m4/druntime/os.m4 (DRUNTIME_OS_LINK_SPEC): New macro. * configure.ac: Call it. * configure: Regenerate. * Makefile.in, libdruntime/Makefile.in, src/Makefile.in, testsuite/Makefile.in: Regenerate. * src/libgphobos.spec.in (*link): Append OS_LINK_SPEC. From-SVN: r270346
2019-04-14Use gcc/sections/elf_shared.d on Solaris 11.5 (PR d/88150)Rainer Orth5-136/+25
PR d/88150 * libdruntime/gcc/sections/elf_shared.d [Solaris] (SharedELF): Set to true. Import core.sys.solaris.dlfcn, core.sys.solaris.link, core.sys.solaris.sys.elf, core.sys.solaris.sys.link. (dummy_ref): Declare. (initSections): Initialize dummy_ref. (getDependencies): Set strtab. (handleForName): Don't dlclose handle. (findDSOInfoForAddr): Set IterateManually. (getprogname): Declare. (progname): Use it. * libdruntime/gcc/sections/package.d [Solaris]: Import gcc.sections.elf_shared instead of gcc.sections.solaris. * libdruntime/gcc/sections/solaris.d: Remove. * libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove gcc/sections/solaris.d. From-SVN: r270345
2019-04-13libphobos: Move rt.sections modules to gcc.sectionsIain Buclaw11-370/+393
These modules depend on a mixture between how the compiler emits run-time module information, and what functions are exposed by the platform to inquire about loaded global and thread-local data sections. As the upstream implementation is written to work only with how the reference D compiler writes out data, much of what is present does not apply to the GCC D front-end. So it has been moved to a non-upstream location in the source tree, where most of it will be rewritten once each port has been completed. The only tested module sections/elf_shared.d has been cleaned up so that all deprecated declarations have been removed, as well as the brittle module collision checking, which required bss_sections.c. All other ports have been left unchanged apart from a commonizing of attributes. libphobos/ChangeLog: 2019-04-13 Iain Buclaw <ibuclaw@gdcproject.org> * libdruntime/Makefile.am (DRUNTIME_CSOURCES): Remove bss_sections.c. (DRUNTIME_DSOURCES): Rename rt/sections_* modules to gcc/sections/*. * libdruntime/Makefile.in: Regenerate. * libdruntime/gcc/sections/android.d: New file. * libdruntime/gcc/sections/elf_shared.d: New file. * libdruntime/gcc/sections/osx.d: New file. * libdruntime/gcc/sections/package.d: New file. * libdruntime/gcc/sections/solaris.d: New file. * libdruntime/gcc/sections/win32.d: New file. * libdruntime/gcc/sections/win64.d: New file. * libdruntime/rt/bss_section.c: Remove. * libdruntime/rt/sections.d: Publicly import gcc.sections. * libdruntime/rt/sections_android.d: Remove. * libdruntime/rt/sections_elf_shared.d: Remove. * libdruntime/rt/sections_osx.d: Remove. * libdruntime/rt/sections_solaris.d: Remove. * libdruntime/rt/sections_win32.d: Remove. * libdruntime/rt/sections_win64.d: Remove. From-SVN: r270341
2019-04-12libphobos: Add subdir-objects to configure script.Iain Buclaw1-9/+12
Running autoreconf regenerates all files cleanly with autoconf2.69. libphobos/ChangeLog: 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> * configure.ac (AM_INIT_AUTOMAKE): Add subdir-objects. * configure: Regenerate. * libdruntime/Makefile.in: Regenerate. From-SVN: r270330
2019-04-12libphobos: Add target-zlib to top-level configureIain Buclaw1-0/+1
Removes the building of zlib from within libphobos, using instead the libz_convenience.a library. ChangeLog: 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> * configure.ac: Add target-zlib to target_libraries. * configure: Regenerate. gcc/ChangeLog: 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> * doc/install.texi: Document --with-target-system-zlib. libphobos/ChangeLog: 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> * m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_ZLIB): Use libz_convenience.a if not using system zlib. * Makefile.in: Regenerate. * configure: Regenerate. * libdruntime/Makefile.in: Regenerate. * src/Makefile.am: Remove ZLIB_CSOURCES and AM_CFLAGS. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. From-SVN: r270328
2019-04-12libphobos: Replace library check programs with dg-runtestIain Buclaw2-766/+18
Fixes multilib handling when running the libphobos testsuite. libphobos/ChangeLog: 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> PR d/89255 * configure.ac (ENABLE_SHARED, ENABLE_STATIC): Remove conditionals. * configure: Regenerate. * d_rules.am (%.t.lo, %.t.o): Remove rules. (unittest_static_LINK, unittest_LINK, libgdruntime_t_la_LINK, libgphobos_t_la_LINK): Remove variables. * libdruntime/Makefile.am (DRUNTIME_TEST_LOBJECTS, DRUNTIME_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES, unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS, unittest_static_LDFLAGS, unittest_static_LDADD, EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES, libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS, libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES, unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS, unittest_LDADD): Remove variables. (clean-local): Remove rule. * libdruntime/Makefile.in: Regenerate. * src/Makefile.am (PHOBOS_TEST_LOBJECTS, PHOBOS_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES, unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS, unittest_static_LDFLAGS, unittest_static_LDADD, EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES, libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS, libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES, unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS, unittest_LDADD): Remove variables. (clean-local): Remove rule. * src/Makefile.in: Regenerate. * testsuite/lib/libphobos.exp (libphobos_test_name): New global. (libphobos_init): Set libphobos_test_name. (libphobos-dg-test): Override name if libphobos_test_name is set. (filter_libphobos_unittests): New proc. * testsuite/libphobos.aa/aa.exp: Don't load libphobos-dg.exp. * testsuite/libphobos.cycles/cycles.exp: Set libphobos_test_name. * testsuite/libphobos.druntime/druntime.exp: New file. * testsuite/libphobos.druntime_shared/druntime_shared.exp: New file. * testsuite/libphobos.phobos/phobos.exp: New file. * testsuite/libphobos.phobos_shared/phobos_shared.exp: New file. * testsuite/libphobos.shared/shared.exp: Use dg-runtest to run tests. * testsuite/libphobos.hash/hash.exp: Don't load libphobos-dg.exp * testsuite/libphobos.init_fini/init_fini.exp: Likewise. * testsuite/libphobos.thread/thread.exp: Likewise. * testsuite/libphobos.typeinfo/typeinfo.exp: Likewise. * testsuite/libphobos.unittests/unittests.exp: Remove. * testsuite/test_runner.d: Remove. * testsuite/testsuite_flags.in: Add phobos to --gdcpaths. From-SVN: r270302
2019-04-11libphobos: Merge upstream druntime 175bf5fcIain Buclaw16-66/+304
Backports extern(C) bindings committed to upstream druntime since the last sync. Reviewed-on: https://github.com/dlang/druntime/pull/2552 From-SVN: r270295
2019-04-01re PR d/88462 (All D execution tests FAIL on Solaris/SPARC)Iain Buclaw3-11/+42
PR d/88462 libphobos: Fix abort in pthread_mutex_init on Solaris. Merges upstream druntime d57fa1ff. Reviewed-on: https://github.com/dlang/druntime/pull/2534 From-SVN: r270057
2019-03-26libphobos: Backport extern(C) bindings from druntime 2.085.Iain Buclaw98-1006/+1545
Merges upstream druntime b9564bef. Reviewed-on: https://github.com/dlang/druntime/pull/2512 libphobos/ChangeLog: 2019-03-26 Iain Buclaw <ibuclaw@gdcproject.org> * libdruntime/Makefile.am (DRUNTIME_DSOURCES_DARWIN): Add core/sys/darwin/crt_externs.d. (DRUNTIME_DSOURCES_FREEBSD): Add core/sys/freebsd/unistd.d. (DRUNTIME_DSOURCES_POSIX): Add core/sys/posix/spawn.d. * libdruntime/Makefile.in: Regenerate. From-SVN: r269948
2019-02-19Makefile.am: Avoid the -D option which is not available with the install-sh ↵Bernd Edlinger2-4/+6
fallback. 2019-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de> * src/Makefile.am: Avoid the -D option which is not available with the install-sh fallback. Use $(MKDIR_P) instead. * libdruntime/Makefile.am: Likewise. * src/Makefile.in: Regenerated. * libdruntime/Makefile.in: Regenerated. From-SVN: r269025
2019-02-18libphobos: Detect if qsort_r is availableJohannes Pfau4-1/+23
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
2019-02-14Add netbsd support for D compiler and runtimeMaya Rashish5-31/+56
Merges upstream druntime fb4bda91. 2019-02-14 Maya Rashish <coypu@sdf.org> gcc/ChangeLog: * config.gcc (*-*-netbsd*): Add netbsd-d.o * config/netbsd-d.c: New file. * config/t-netbsd: Add netbsd-d.o gcc/d/ChangeLog: * d-system.h: NetBSD is POSIX. libphobos/ChangeLog: * configure.tgt: Add netbsd/x86 as supported target. From-SVN: r268905
2019-02-14Provide __start_minfo/__stop_minfo for linkers that don't (PR d/87864)Rainer Orth5-24/+114
libphobos: PR d/87864 * configure.ac (DRTSTUFF_SPEC): New variable. Substitute it. * libdruntime/m4/druntime/os.m4 (DRUNTIME_OS_MINFO_BRACKETING): New automake conditional. * configure: Regenerate. * libdruntime/gcc/drtstuff.c: New file. * libdruntime/Makefile.am [!DRUNTIME_OS_MINFO_BRACKETING] (DRTSTUFF, toolexeclib_DATA): New variables. (gcc/drtbegin.lo, gcc/drtend.lo): New rules. (libgdruntime_la_LDFLAGS): Use -Wc instead of -Xcompiler. Add -dstartfiles -B../src -Bgcc. (libgdruntime_la_DEPENDENCIES): New variable. (unittest_static_LDFLAGS): Use -Wc instead of -Xcompiler. (libgdruntime_t_la_LDFLAGS): Likewise. (unittest_LDFLAGS): Likewise. * src/Makefile.am (libgphobos_la_LDFLAGS): Use -Wc instead of -Xcompiler. Add -dstartfiles -B../libdruntime/gcc. (unittest_static_LDFLAGS): Use -Wc instead of -Xcompiler. (libgphobos_t_la_LDFLAGS): Likewise. (unittest_LDFLAGS): Likewise. * libdruntime/Makefile.in, src/Makefile.in: Regenerate. * Makefile.in, testsuite/Makefile.in: Regenerate. * libdruntime/rt/sections_elf_shared.d (Minfo_Bracketing): Don't assert. * libdruntime/gcc/config.d.in (Minfo_Bracketing): Remove. * src/drtstuff.spec: New file. * src/libgphobos.spec.in (DRTSTUFF_SPEC): Substitute. (*lib): Only pass SPEC_PHOBOS_DEPS without -debuglib, -defaultlib, -nophoboslib. * testsuite/testsuite_flags.in <--gdcldflags> (GDCLDFLAGS): Add -B${BUILD_DIR}/libdruntime/gcc. gcc/d: PR d/87864 * lang.opt (dstartfiles): New option. * d-spec.cc (need_spec): New variable. (lang_specific_driver) <OPT_dstartfiles>: Enable need_spec. (lang_specific_pre_link): Also load libgphobos.spec if need_spec. gcc/testsuite: PR d/87864 * lib/gdc.exp (gdc_link_flags): Add path to drtbegin.o/drtend.o if present. From-SVN: r268886
2019-02-13libphobos: Fallback on UnwindBacktrace if LibBacktrace not defined.Iain Buclaw1-16/+16
In the gcc.backtrace module, either one of LibBacktrace or UnwindBacktrace will always be defined. Giving UnwindBacktrace a higher precedence over the libc backtrace as the default handler because the latter depends on a rt.backtrace module that is not compiled in. libphobos/ChangeLog: * libdruntime/core/runtime.d (defaultTraceHandler): Give UnwindBacktrace handler precedence over backtrace. From-SVN: r268836
2019-02-10libphobos: Merge upstream druntime 2f764ab6Iain Buclaw5-32/+587
Fixes hashing of complex reals, enabling testing of rt.util.typeinfo and core.internal.hash. Reviewed-on: https://github.com/dlang/druntime/pull/6837 libphobos/ChangeLog: * Makefile.in: Rebuild. * configure: Rebuild. * libdruntime/Makefile.am: Test rt.util.typeinfo and core.internal.convert. * libdruntime/Makefile.in: Rebuild. * src/Makefile.in: Rebuild. * testsuite/Makefile.in: Rebuild. * testsuite/libphobos.hash/test_hash.d: Update test. From-SVN: r268755
2019-02-10libphobos: Apply core.internal.hash updates from druntimeIain Buclaw45-1368/+1167
Backported from upstream druntime 2.084 Reviewed-on: https://github.com/dlang/druntime/pull/2469 libphobos/ChangeLog: * libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove rt/util/hash.d * libdruntime/Makefile.in: Rebuild. * testsuite/libphobos.aa/aa.exp: New file. * testsuite/libphobos.aa/test_aa.d: New test. * testsuite/libphobos.hash/hash.exp: New file. * testsuite/libphobos.hash/test_hash.d: New test. From-SVN: r268754
2019-01-26libphobos: Merge phobos and druntime with upstream.Iain Buclaw9-28/+184
Commits merged from druntime. Fix struct tls_index definition on x32 https://github.com/dlang/druntime/pull/2354 Update SectionGroup signatures to match on all targets https://github.com/dlang/druntime/pull/2401 Fix issue 19128 - argument to alloca may be too large https://github.com/dlang/druntime/pull/2409 Define some common filesystem limits in core.stdc.limits https://github.com/dlang/druntime/pull/2460 Use version Darwin instead of OSX in core.sys.posix.aio https://github.com/dlang/druntime/pull/2470 Commits merged from phobos. Don't run HardFloat tests on SoftFloat systems https://github.com/dlang/phobos/pull/5358 Remove reliance on stdin, stdout, stderr being aliasable https://github.com/dlang/phobos/pull/5718 Solaris: add import clock_gettime to currStdTime https://github.com/dlang/phobos/pull/5807 Don't print debug messages when building unittests https://github.com/dlang/phobos/pull/6827 Add HPPA support to phobos Fixes https://gcc.gnu.org/PR89054 https://github.com/dlang/phobos/pull/6836 From-SVN: r268293
2019-01-18libphobos: Add Fiber/Thread support for StackGrowsUp.Iain Buclaw2-10/+12
The StackGrowsDown version being turned off for hppa targets. After other fixes in the compiler, this allows core.thread unittests to all pass, as well as the garbage collector to work correctly. Backported from upstream druntime 2.084. Reviewed-on: https://github.com/dlang/druntime/pull/2410 From-SVN: r268056
2019-01-18libphobos: Add platform bindings for hppa-linux-gnu.Iain Buclaw17-0/+460
Backported from upstream druntime 2.084 Reviewed-on: https://github.com/dlang/druntime/pull/2402 From-SVN: r268055