Skip to content

Commit

Permalink
Merge pull request #2704 from kinke/fix2703
Browse files Browse the repository at this point in the history
Fix compilation issues on 64-bit macOS with DMD host compiler >= 2.079
  • Loading branch information
kinke committed May 21, 2018
2 parents 8b0e470 + 0348811 commit e7beba6
Show file tree
Hide file tree
Showing 7 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -26,7 +26,7 @@ matrix:
d: ldc-beta
env: LLVM_VERSION=6.0.0 OPTS="-DBUILD_SHARED_LIBS=OFF" LLVM_SPIRV_AVAILABLE=ON
- os: osx
d: ldc
d: dmd
env: LLVM_VERSION=4.0.0 OPTS="-DBUILD_SHARED_LIBS=ON"
allow_failures:
- env: LLVM_VERSION=6.0.0 OPTS="-DBUILD_SHARED_LIBS=OFF" LLVM_SPIRV_AVAILABLE=ON
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Expand Up @@ -429,6 +429,7 @@ append("-DOPAQUE_VTBLS" LDC_CXXFLAGS)
append("\"-DLDC_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}\"" LDC_CXXFLAGS)
append("-DLDC_LLVM_VER=${LDC_LLVM_VER}" LDC_CXXFLAGS)
append("\"-DLDC_LIBDIR_SUFFIX=\\\"${LIB_SUFFIX}\\\"\"" LDC_CXXFLAGS)
append("-DLDC_HOST_${D_COMPILER_ID}=1" LDC_CXXFLAGS)
append("-DLDC_HOST_FE_VER=${D_COMPILER_FE_VERSION}" LDC_CXXFLAGS)

if(GENERATE_OFFTI)
Expand Down
1 change: 1 addition & 0 deletions cmake/Modules/FindDCompiler.cmake
Expand Up @@ -73,6 +73,7 @@ endif()

if (D_COMPILER_FOUND)
message(STATUS "Found host D compiler ${D_COMPILER}, with default flags '${D_COMPILER_FLAGS}'")
message(STATUS "Host D compiler ID: ${D_COMPILER_ID}")
message(STATUS "Host D compiler version: ${D_COMPILER_VERSION_STRING}")
message(STATUS "Host D compiler front-end version: ${D_COMPILER_FE_VERSION}")
else()
Expand Down
2 changes: 1 addition & 1 deletion dmd/globals.h
Expand Up @@ -334,7 +334,7 @@ extern Global global;
// Because int64_t and friends may be any integral type of the
// correct size, we have to explicitly ask for the correct
// integer type to get the correct mangling with dmd
#if __LP64__
#if __LP64__ && !(__APPLE__ && LDC_HOST_DigitalMars && LDC_HOST_FE_VER >= 2079)
// Be careful not to care about sign when using dinteger_t
// use this instead of integer_t to
// avoid conflicts with system #include's
Expand Down
2 changes: 1 addition & 1 deletion dmd/identifier.h
Expand Up @@ -38,7 +38,7 @@ class Identifier : public RootObject
static StringTable stringtable;
static Identifier *generateId(const char *prefix);
static Identifier *generateId(const char *prefix, size_t i);
static Identifier *idPool(const char *s, size_t len);
static Identifier *idPool(const char *s, d_size_t len);

static inline Identifier *idPool(const char *s)
{
Expand Down
2 changes: 2 additions & 0 deletions dmd/root/rmem.h
Expand Up @@ -17,6 +17,8 @@
* than D's 'uint'
*/
typedef unsigned d_size_t;
#elif __APPLE__ && __LP64__ && LDC_HOST_DigitalMars && LDC_HOST_FE_VER >= 2079
typedef unsigned long long d_size_t;
#else
typedef size_t d_size_t;
#endif
Expand Down
10 changes: 3 additions & 7 deletions driver/cache_pruning.h
Expand Up @@ -10,14 +10,10 @@
#ifndef LDC_DRIVER_IR2OBJ_CACHE_PRUNING_H
#define LDC_DRIVER_IR2OBJ_CACHE_PRUNING_H

#if __LP64__
using d_ulong = unsigned long;
#else
using d_ulong = unsigned long long;
#endif
#include "globals.h"

void pruneCache(const char *cacheDirectoryPtr, size_t cacheDirectoryLen,
void pruneCache(const char *cacheDirectoryPtr, d_size_t cacheDirectoryLen,
uint32_t pruneIntervalSeconds, uint32_t expireIntervalSeconds,
d_ulong sizeLimitBytes, uint32_t sizeLimitPercentage);
uinteger_t sizeLimitBytes, uint32_t sizeLimitPercentage);

#endif

0 comments on commit e7beba6

Please sign in to comment.