[pkg-d-commits] [ldc] 93/149: Merge branch 'master' into merge-2.072

Matthias Klumpp mak at moszumanska.debian.org
Sun Apr 23 22:37:01 UTC 2017


This is an automated email from the git hooks/post-receive script.

mak pushed a commit to annotated tag v1.2.0
in repository ldc.

commit 03d59b7b9624622ff24833d064ee0956bfaa4593
Merge: a96627e 6a932c5
Author: Martin <noone at nowhere.com>
Date:   Tue Feb 7 20:20:38 2017 +0100

    Merge branch 'master' into merge-2.072
    
    Conflicts:
    	runtime/CMakeLists.txt

 CMakeLists.txt                               |   6 +
 circle.yml                                   |   6 +-
 cmake/Modules/CheckDSourceCompiles.cmake     |  70 +++++++++
 cmake/Modules/HandleLTOPGOBuildOptions.cmake |  46 ++++++
 gen/llvmhelpers.h                            |   3 +
 gen/tocall.cpp                               | 139 ++++++++++-------
 gen/uda.cpp                                  |   2 +-
 runtime/CMakeLists.txt                       | 222 +++++++++++----------------
 8 files changed, 300 insertions(+), 194 deletions(-)

diff --cc gen/uda.cpp
index 6d787f9,15ee68d..ed6277e
--- a/gen/uda.cpp
+++ b/gen/uda.cpp
@@@ -78,10 -78,10 +78,10 @@@ void checkStructElems(StructLiteralExp 
    }
  
    for (size_t i = 0; i < sle->elements->dim; ++i) {
-     if ((*sle->elements)[i]->type != elemTypes[i]) {
+     if ((*sle->elements)[i]->type->toBasetype() != elemTypes[i]) {
        sle->error("invalid field type in 'ldc.attributes.%s'; does druntime not "
                   "match compiler version?",
 -                 sle->sd->ident->string);
 +                 sle->sd->ident->toChars());
        fatal();
      }
    }
diff --cc runtime/CMakeLists.txt
index c09815d,2c4b5c7..b945c67
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@@ -69,120 -75,85 +75,85 @@@ list(REMOVE_ITEM DRUNTIME_
      ${RUNTIME_DIR}/src/rt/llmath.d
      ${RUNTIME_DIR}/src/rt/trace.d
  )
- file(GLOB DCRT_C ${RUNTIME_DIR}/src/rt/*.c)
- list(REMOVE_ITEM DCRT_C ${RUNTIME_DIR}/src/rt/deh.c ${RUNTIME_DIR}/src/rt/dylib_fixes.c)
- if(NOT APPLE)
-     list(REMOVE_ITEM DCRT_C ${RUNTIME_DIR}/src/rt/osx_tls.c)
- endif()
- if(MSVC)
-     list(APPEND DCRT_C ${RUNTIME_DIR}/src/ldc/msvc.c)
- else()
-     list(REMOVE_ITEM DCRT_C ${RUNTIME_DIR}/src/rt/msvc.c)
-     list(REMOVE_ITEM DCRT_C ${RUNTIME_DIR}/src/rt/msvc_math.c)
-     list(REMOVE_ITEM DCRT_C ${RUNTIME_DIR}/src/rt/stdio_msvc.c)
- endif()
- file(GLOB_RECURSE CORE_D_UNIX ${RUNTIME_DIR}/src/core/sys/posix/*.d)
- file(GLOB_RECURSE CORE_D_FREEBSD ${RUNTIME_DIR}/src/core/sys/freebsd/*.d)
- file(GLOB_RECURSE CORE_D_NETBSD ${RUNTIME_DIR}/src/core/sys/netbsd/*.d)
- file(GLOB_RECURSE CORE_D_LINUX ${RUNTIME_DIR}/src/core/sys/linux/*.d)
- file(GLOB_RECURSE CORE_D_OSX ${RUNTIME_DIR}/src/core/sys/osx/*.d)
- file(GLOB_RECURSE CORE_D_SOLARIS ${RUNTIME_DIR}/src/core/sys/solaris/*.d)
- file(GLOB_RECURSE CORE_D_WIN ${RUNTIME_DIR}/src/core/sys/windows/*.d)
- set(CORE_D_SYS)
- set(DCRT_ASM)
+ # only include core/sys/ modules matching the platform
+ file(GLOB_RECURSE DRUNTIME_D_BIONIC ${RUNTIME_DIR}/src/core/sys/bionic/*.d)
+ file(GLOB_RECURSE DRUNTIME_D_FREEBSD ${RUNTIME_DIR}/src/core/sys/freebsd/*.d)
+ file(GLOB_RECURSE DRUNTIME_D_LINUX ${RUNTIME_DIR}/src/core/sys/linux/*.d)
+ file(GLOB_RECURSE DRUNTIME_D_OSX ${RUNTIME_DIR}/src/core/sys/osx/*.d)
+ file(GLOB_RECURSE DRUNTIME_D_POSIX ${RUNTIME_DIR}/src/core/sys/posix/*.d)
+ file(GLOB_RECURSE DRUNTIME_D_SOLARIS ${RUNTIME_DIR}/src/core/sys/solaris/*.d)
+ file(GLOB_RECURSE DRUNTIME_D_WINDOWS ${RUNTIME_DIR}/src/core/sys/windows/*.d)
+ list(REMOVE_ITEM DRUNTIME_D
+     ${DRUNTIME_D_BIONIC} ${DRUNTIME_D_FREEBSD} ${DRUNTIME_D_LINUX} ${DRUNTIME_D_OSX}
+     ${DRUNTIME_D_POSIX} ${DRUNTIME_D_SOLARIS} ${DRUNTIME_D_WINDOWS}
+ )
  if(UNIX)
-     list(APPEND CORE_D_SYS ${CORE_D_UNIX})
-     if(${CMAKE_SYSTEM} MATCHES "FreeBSD")
-         list(APPEND CORE_D_SYS ${CORE_D_FREEBSD})
-     endif()
-     if(${CMAKE_SYSTEM} MATCHES "NetBSD")
-         list(APPEND CORE_D_SYS ${CORE_D_NETBSD})
-     endif()
-     if(${CMAKE_SYSTEM} MATCHES "Linux")
-         list(APPEND CORE_D_SYS ${CORE_D_LINUX})
-     endif()
-     if(${CMAKE_SYSTEM} MATCHES "SunOS")
-         list(APPEND CORE_D_SYS ${CORE_D_SOLARIS})
-     endif()
-     # Assembler support was rewritten in CMake 2.8.5.
-     # The assembler file must be passed to gcc but prior to this
-     # version it is passed to as. This results in a bunch of
-     # error message. This is only critical for non-x86 platforms.
-     # On x86/x86-64 the file can safely be ignored.
-     if("${CMAKE_VERSION}" MATCHES "^2\\.8\\.[01234]($|\\..*)")
-         message(WARNING "Excluding core/threadasm.S from build because of missing CMake support.")
-         message(WARNING "This file is required for certain non-x86 platforms.")
-         message(WARNING "Please consider updating CMake to at least 2.8.5.")
-     else()
-         list(APPEND DCRT_ASM ${RUNTIME_DIR}/src/core/threadasm.S)
-         list(APPEND DCRT_ASM ${RUNTIME_DIR}/src/ldc/eh_asm.S)
-     endif()
+     list(APPEND DRUNTIME_D ${DRUNTIME_D_POSIX})
      if(APPLE)
-         list(APPEND CORE_D_SYS ${CORE_D_OSX})
+         list(APPEND DRUNTIME_D ${DRUNTIME_D_OSX})
+     elseif(${CMAKE_SYSTEM} MATCHES "FreeBSD")
+         list(APPEND DRUNTIME_D ${DRUNTIME_D_FREEBSD})
+     elseif(${CMAKE_SYSTEM} MATCHES "Linux")
+         list(APPEND DRUNTIME_D ${DRUNTIME_D_LINUX})
+         list(APPEND DRUNTIME_D ${DRUNTIME_D_BIONIC})
+     elseif(${CMAKE_SYSTEM} MATCHES "SunOS")
+         list(APPEND DRUNTIME_D ${DRUNTIME_D_SOLARIS})
      endif()
- 
-     # Using CMAKE_SYSTEM_PROCESSOR might be inacurrate when somebody is
-     # cross-compiling by just setting the tool executbles to a cross toolchain,
-     # so just always include the file.
-     list(APPEND DCRT_C ${RUNTIME_DIR}/src/ldc/arm_unwind.c)
  elseif(WIN32)
-     list(APPEND CORE_D_SYS ${CORE_D_WIN})
-     list(REMOVE_ITEM DCRT_C ${RUNTIME_DIR}/src/rt/monitor.c)
-     list(REMOVE_ITEM DCRT_C ${RUNTIME_DIR}/src/rt/bss_section.c)
+     list(APPEND DRUNTIME_D ${DRUNTIME_D_WINDOWS})
+ endif()
+ 
+ # druntime C parts
+ file(GLOB_RECURSE DRUNTIME_C ${RUNTIME_DIR}/src/*.c)
+ list(REMOVE_ITEM DRUNTIME_C ${RUNTIME_DIR}/src/rt/dylib_fixes.c)
+ if(NOT APPLE)
 -    list(REMOVE_ITEM DRUNTIME_C ${RUNTIME_DIR}/src/ldc/osx_tls.c)
++    list(REMOVE_ITEM DRUNTIME_C ${RUNTIME_DIR}/src/rt/osx_tls.c)
+ endif()
+ if(NOT MSVC)
+     list(REMOVE_ITEM DRUNTIME_C ${RUNTIME_DIR}/src/rt/msvc.c ${RUNTIME_DIR}/src/rt/msvc_math.c)
+ endif()
+ 
+ # druntime ASM parts
+ set(DRUNTIME_ASM)
+ if(UNIX)
+     list(APPEND DRUNTIME_ASM ${RUNTIME_DIR}/src/core/threadasm.S ${RUNTIME_DIR}/src/ldc/eh_asm.S)
  endif()
- list(APPEND CORE_D ${CORE_D_INTERNAL} ${CORE_D_SYNC} ${CORE_D_SYS} ${CORE_D_STDC})
- list(APPEND CORE_D ${LDC_D} ${RUNTIME_DIR}/src/object.d)
- file(GLOB CORE_C ${RUNTIME_DIR}/src/core/stdc/*.c)
  
  if(PHOBOS2_DIR)
-     file(GLOB PHOBOS2_D ${PHOBOS2_DIR}/std/*.d)
-     file(GLOB PHOBOS2_D_ALGORITHM ${PHOBOS2_DIR}/std/algorithm/*.d)
-     file(GLOB PHOBOS2_D_CONTAINER ${PHOBOS2_DIR}/std/container/*.d)
-     file(GLOB PHOBOS2_D_DIGEST ${PHOBOS2_DIR}/std/digest/*.d)
-     file(GLOB_RECURSE PHOBOS2_D_EXPERIMENTAL ${PHOBOS2_DIR}/std/experimental/*.d)
-     file(GLOB PHOBOS2_D_NET ${PHOBOS2_DIR}/std/net/*.d)
-     file(GLOB PHOBOS2_D_RANGE ${PHOBOS2_DIR}/std/range/*.d)
-     file(GLOB_RECURSE PHOBOS2_D_REGEX ${PHOBOS2_DIR}/std/regex/*.d)
-     file(GLOB_RECURSE PHOBOS2_D_INTERNAL ${PHOBOS2_DIR}/std/internal/*.d)
-     file(GLOB PHOBOS2_D_C ${PHOBOS2_DIR}/std/c/*.d)
-     file(GLOB PHOBOS2_ETC ${PHOBOS2_DIR}/etc/c/*.d)
-     if(APPLE)
-         file(GLOB PHOBOS2_D_C_SYS ${PHOBOS2_DIR}/std/c/osx/*.d)
-     elseif(FreeBSD)
-         file(GLOB PHOBOS2_D_C_SYS ${PHOBOS2_DIR}/std/c/freebsd/*.d)
-     elseif(UNIX)
-         # Install Linux headers on all non-Apple *nixes - not correct, but
-         # shouldn't cause any harm either.
-         file(GLOB PHOBOS2_D_C_SYS ${PHOBOS2_DIR}/std/c/linux/*.d)
+     # Phobos D parts
+     file(GLOB_RECURSE PHOBOS2_D ${PHOBOS2_DIR}/*.d)
+     # remove top-level modules index.d and unittest.d
+     list(REMOVE_ITEM PHOBOS2_D ${PHOBOS2_DIR}/index.d ${PHOBOS2_DIR}/unittest.d)
+     # only include std/c/ modules matching the platform
+     file(GLOB_RECURSE PHOBOS2_D_FREEBSD ${PHOBOS2_DIR}/std/c/freebsd/*.d)
+     file(GLOB_RECURSE PHOBOS2_D_LINUX ${PHOBOS2_DIR}/std/c/linux/*.d)
+     file(GLOB_RECURSE PHOBOS2_D_OSX ${PHOBOS2_DIR}/std/c/osx/*.d)
+     file(GLOB_RECURSE PHOBOS2_D_WINDOWS ${PHOBOS2_DIR}/std/c/windows/*.d)
+     list(REMOVE_ITEM PHOBOS2_D
+         ${PHOBOS2_D_FREEBSD} ${PHOBOS2_D_LINUX} ${PHOBOS2_D_OSX} ${PHOBOS2_D_WINDOWS}
+     )
+     if(UNIX)
+         if(APPLE)
+             list(APPEND PHOBOS2_D ${PHOBOS2_D_OSX})
+         elseif(${CMAKE_SYSTEM} MATCHES "FreeBSD")
+             list(APPEND PHOBOS2_D ${PHOBOS2_D_FREEBSD})
+         elseif(${CMAKE_SYSTEM} MATCHES "Linux")
+             list(APPEND PHOBOS2_D ${PHOBOS2_D_LINUX})
+         endif()
      elseif(WIN32)
-         file(GLOB PHOBOS2_D_C_SYS ${PHOBOS2_DIR}/std/c/windows/*.d)
+         list(APPEND PHOBOS2_D ${PHOBOS2_D_WINDOWS})
      endif()
-     file(GLOB ZLIB_C ${PHOBOS2_DIR}/etc/c/zlib/*.c)
-     list(REMOVE_ITEM ZLIB_C
-         ${PHOBOS2_DIR}/etc/c/zlib/minigzip.c
-         ${PHOBOS2_DIR}/etc/c/zlib/example.c
-         ${PHOBOS2_DIR}/etc/c/zlib/gzio.c
-     )
-     if(WIN32)
-         file(GLOB PHOBOS2_D_WIN ${PHOBOS2_DIR}/std/windows/*.d)
+     # only include std/windows/ modules on Windows
+     if(NOT WIN32)
+         file(GLOB_RECURSE PHOBOS2_D_WINDOWS ${PHOBOS2_DIR}/std/windows/*.d)
+         list(REMOVE_ITEM PHOBOS2_D ${PHOBOS2_D_WINDOWS})
      endif()
-     list(APPEND PHOBOS2_D
-             ${PHOBOS2_D_ALGORITHM}
-             ${PHOBOS2_D_CONTAINER}
-             ${PHOBOS2_D_DIGEST}
-             ${PHOBOS2_D_EXPERIMENTAL}
-             ${PHOBOS2_D_NET}
-             ${PHOBOS2_D_RANGE}
-             ${PHOBOS2_D_REGEX}
-             ${PHOBOS2_D_INTERNAL}
-             ${PHOBOS2_D_WIN}
-             ${PHOBOS2_D_C}
-             ${PHOBOS2_D_C_SYS}
-             ${PHOBOS2_ETC}
-     )
-     list(REMOVE_ITEM PHOBOS2_D
-             ${PHOBOS2_DIR}/std/intrinsic.d
-     )
+ 
+     # Phobos C parts
+     file(GLOB_RECURSE PHOBOS2_C ${PHOBOS2_DIR}/*.c)
+     # remove some obsolete zlib modules
+     list(REMOVE_ITEM PHOBOS2_C ${PHOBOS2_DIR}/etc/c/zlib/minigzip.c ${PHOBOS2_DIR}/etc/c/zlib/example.c)
+ 
      set(CONFIG_NAME ${LDC_EXE}_phobos)
  else()
      set(CONFIG_NAME ${LDC_EXE})

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-d/ldc.git



More information about the pkg-d-commits mailing list