Advertisement
hamzaalloush

llvm35-compat.patch

Dec 10th, 2014
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 4.60 KB | None | 0 0
  1. diff -ur a/CMakeLists.txt b/CMakeLists.txt
  2. --- a/CMakeLists.txt    2013-12-25 20:06:20.000000000 +0300
  3. +++ b/CMakeLists.txt    2014-12-10 11:45:38.937987156 +0300
  4. @@ -238,6 +238,12 @@
  5.  IF(${LLVM_STRING_VERSION} VERSION_GREATER 3.0)
  6.     ADD_DEFINITIONS(-DLLVM_31)
  7.  ENDIF(${LLVM_STRING_VERSION} VERSION_GREATER 3.0)
  8. +IF(${LLVM_STRING_VERSION} VERSION_GREATER 3.3)
  9. +   ADD_DEFINITIONS(-DLLVM_34)
  10. +ENDIF(${LLVM_STRING_VERSION} VERSION_GREATER 3.3)
  11. +IF(${LLVM_STRING_VERSION} VERSION_GREATER 3.4)
  12. +   ADD_DEFINITIONS(-DLLVM_35)
  13. +ENDIF(${LLVM_STRING_VERSION} VERSION_GREATER 3.4)
  14.  INCLUDE(FindZLIB REQUIRED)
  15.  INCLUDE(FindFreetype REQUIRED)
  16.  IF(NOT(ENABLE_GLES2))
  17. diff -ur a/conf/FindLLVM.cmake b/conf/FindLLVM.cmake
  18. --- a/conf/FindLLVM.cmake   2013-12-25 20:06:20.000000000 +0300
  19. +++ b/conf/FindLLVM.cmake   2014-12-10 11:42:55.039905259 +0300
  20. @@ -150,6 +150,7 @@
  21.    exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libdir OUTPUT_VARIABLE LLVM_LIB_DIR )
  22.    #MESSAGE(STATUS "LLVM lib dir: " ${LLVM_LIB_DIR})
  23.    exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIR )
  24. +  #MESSAGE(STATUS "LLVM include dir: " ${LLVM_INCLUDE_DIR})
  25.    
  26.    INCLUDE(CheckIncludeFileCXX)
  27.    set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
  28. @@ -161,7 +162,7 @@
  29.    ENDIF(HAVE_SUPPORT_TARGETSELECT_H)
  30.  
  31.    set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
  32. -  set(CMAKE_REQUIRED_DEFINITIONS -D__STDC_LIMIT_MACROS=1 -D__STDC_CONSTANT_MACROS=1)
  33. +  set(CMAKE_REQUIRED_DEFINITIONS -D__STDC_LIMIT_MACROS=1 -D__STDC_CONSTANT_MACROS=1 -std=c++11)
  34.    check_include_file_cxx("llvm/IRBuilder.h" HAVE_IRBUILDER_H)
  35.    unset(CMAKE_REQUIRED_INCLUDES)
  36.    MESSAGE(STATUS "HAVE_IRBUILDER_H: " ${HAVE_IRBUILDER_H})
  37. @@ -172,21 +173,33 @@
  38.    set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
  39.    check_include_file_cxx("llvm/DataLayout.h" HAVE_DATALAYOUT_H)
  40.    check_include_file_cxx("llvm/IR/DataLayout.h" HAVE_IR_DATALAYOUT_H)
  41. +  check_include_file_cxx("llvm/IR/Verifier.h" HAVE_IR_VERIFIER_H)
  42.    unset(CMAKE_REQUIRED_INCLUDES)
  43.    MESSAGE(STATUS "HAVE_DATALAYOUT_H: " ${HAVE_DATALAYOUT_H})
  44.    MESSAGE(STATUS "HAVE_IR_DATALAYOUT_H: " ${HAVE_IR_DATALAYOUT_H})
  45. +  MESSAGE(STATUS "HAVE_IR_VERIFIER_H: " ${HAVE_IR_VERIFIER_H})
  46.    IF(HAVE_DATALAYOUT_H)
  47.      ADD_DEFINITIONS(-DHAVE_DATALAYOUT_H)
  48.    ENDIF(HAVE_DATALAYOUT_H)
  49.    IF(HAVE_IR_DATALAYOUT_H)
  50.      ADD_DEFINITIONS(-DHAVE_IR_DATALAYOUT_H)
  51.    ENDIF(HAVE_IR_DATALAYOUT_H)
  52. +  IF(HAVE_IR_VERIFIER_H)
  53. +    ADD_DEFINITIONS(-DHAVE_IR_VERIFIER_H)
  54. +  ENDIF(HAVE_IR_VERIFIER_H)
  55.    
  56.    exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --cxxflags  OUTPUT_VARIABLE LLVM_COMPILE_FLAGS )
  57.    MESSAGE(STATUS "LLVM CXX flags: " ${LLVM_COMPILE_FLAGS})
  58.    exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --ldflags   OUTPUT_VARIABLE LLVM_LDFLAGS )
  59.    MESSAGE(STATUS "LLVM LD flags: " ${LLVM_LDFLAGS})
  60. -  FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "core ipa ipo instrumentation bitreader bitwriter linker" LLVM_LIBS_CORE LLVM_LIBS_CORE_OBJECTS )
  61. +  exec_program( ${LLVM_CONFIG_EXECUTABLE} ARGS --system-libs  OUTPUT_VARIABLE LLVM_SYSTEM_LIBS RETURN_VALUE LLVM_SYSTEM_LIBS_FAILED)
  62. +  if(LLVM_SYSTEM_LIBS_FAILED)
  63. +    SET(LLVM_SYSTEM_LIBS "")
  64. +  endif(LLVM_SYSTEM_LIBS_FAILED)
  65. +  FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "core ipa ipo instrumentation bitreader bitwriter linker" LLVM_LIBS_CORE_ONLY LLVM_LIBS_CORE_OBJECTS )
  66. +  SET(LLVM_LIBS_CORE ${LLVM_LIBS_CORE_ONLY} ${LLVM_SYSTEM_LIBS})
  67. +  UNSET(LLVM_LIBS_CORE_ONLY)
  68. +  UNSET(LLVM_SYSTEM_LIBS_FAILED)
  69.    MESSAGE(STATUS "LLVM core libs: " ${LLVM_LIBS_CORE})
  70.    IF(APPLE AND UNIVERSAL)
  71.      FIND_LLVM_LIBS( ${LLVM_CONFIG_EXECUTABLE} "jit native x86 PowerPC ARM" LLVM_LIBS_JIT LLVM_LIBS_JIT_OBJECTS )
  72. diff -ur a/src/scripting/abc.cpp b/src/scripting/abc.cpp
  73. --- a/src/scripting/abc.cpp 2014-12-10 11:07:54.870958000 +0300
  74. +++ b/src/scripting/abc.cpp 2014-12-10 11:54:25.675189273 +0300
  75. @@ -46,7 +46,11 @@
  76.  #include <llvm/Target/TargetSelect.h>
  77.  #endif
  78.  #include <llvm/Target/TargetOptions.h>
  79. -#include <llvm/Analysis/Verifier.h>
  80. +#ifdef HAVE_IR_VERIFIER_H
  81. +#  include <llvm/IR/Verifier.h>
  82. +#else
  83. +#  include <llvm/Analysis/Verifier.h>
  84. +#endif
  85.  #include <llvm/Transforms/Scalar.h>
  86.  #include "logger.h"
  87.  #include "swftypes.h"
  88. @@ -1530,7 +1534,9 @@
  89.         assert_and_throw(th->ex);
  90.  
  91.         th->FPM=new llvm::FunctionPassManager(th->module);
  92. -#if defined HAVE_DATALAYOUT_H || defined HAVE_IR_DATALAYOUT_H
  93. +#ifdef LLVM_35
  94. +       th->FPM->add(new llvm::DataLayoutPass(*th->ex->getDataLayout()));
  95. +#elif defined HAVE_DATALAYOUT_H || defined HAVE_IR_DATALAYOUT_H
  96.         th->FPM->add(new llvm::DataLayout(*th->ex->getDataLayout()));
  97.  #else
  98.         th->FPM->add(new llvm::TargetData(*th->ex->getTargetData()));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement