Index: branches/2018Q1/emulators/rpcs3/Makefile =================================================================== --- branches/2018Q1/emulators/rpcs3/Makefile (revision 460954) +++ branches/2018Q1/emulators/rpcs3/Makefile (revision 460955) @@ -1,82 +1,85 @@ # $FreeBSD$ PORTNAME= rpcs3 DISTVERSIONPREFIX= v DISTVERSION= 0.0.4-293 DISTVERSIONSUFFIX= -g70fe0cc22 +PORTREVISION= 1 CATEGORIES= emulators MAINTAINER= jbeich@FreeBSD.org COMMENT= PS3 emulator/debugger LICENSE= BSD3CLAUSE BSL GPLv2 MIT ZLIB LICENSE_COMB= multi LICENSE_FILE_BSD3CLAUSE=${WRKSRC_cereal}/LICENSE LICENSE_FILE_BSL= ${WRKSRC_Optional}/LICENSE LICENSE_FILE_MIT= ${WRKSRC_GSL}/LICENSE LICENSE_FILE_ZLIB= ${WRKSRC_asmjit}/LICENSE.md LIB_DEPENDS= libpng.so:graphics/png \ libavcodec.so:multimedia/ffmpeg ONLY_FOR_ARCHS= amd64 ONLY_FOR_ARCHS_REASON= requires int128 and SSE2 USE_GITHUB= yes GH_ACCOUNT= RPCS3 GH_TUPLE= RPCS3:hidapi:hidapi-0.8.0-rc1-25-gca39ce8:hidapi/3rdparty/hidapi \ RPCS3:yaml-cpp:release-0.5.3-62-g017626a:yamlcpp/Utilities/yaml-cpp \ akrzemi1:Optional:f27e790:Optional/3rdparty/Optional \ kobalicek:asmjit:673dcef:asmjit/asmjit \ Microsoft:GSL:fc5fce4:GSL/3rdparty/GSL \ USCiLab:cereal:v1.2.0:cereal/3rdparty/cereal \ zeux:pugixml:v1.8.1-148-g257fbb4:pugixml/3rdparty/pugixml USES= cmake compiler:c++14-lang iconv:wchar_t localbase:ldflags \ openal:soft pkgconfig USE_GL= gl glew USE_QT5= qmake_build buildtools_build core dbus gui network widgets USE_XORG= x11 EXTRA_PATCHES+= ${EXTRA_PATCHES_${OPSYS}_${OSREL}} EXTRA_PATCHES_FreeBSD_10.3= ${PATCHDIR}/extra-patch-no-thread_local CONFIGURE_ENV+= TRAVIS=1 # XXX Rename to be less generic CMAKE_ARGS+= -DCMAKE_SKIP_RPATH=on -DUSE_SYSTEM_LIBPNG=on -DUSE_SYSTEM_FFMPEG=on CXXFLAGS+= -D_GLIBCXX_USE_C99 # XXX ports/193528 CXXFLAGS+= -Wno-macro-redefined # __STDC_*_MACROS sys/cdefs.h vs. llvm-config LDFLAGS+= -Wl,--as-needed # GLU +MESA_LLVM_VER?= 50 OPTIONS_DEFINE= ALSA EVDEV GDB LLVM PULSEAUDIO VULKAN OPTIONS_DEFAULT=ALSA LLVM VULKAN .if !exists(${.CURDIR:H:H}/graphics/vulkan-sdk) OPTIONS_EXCLUDE=VULKAN # XXX ports/222175 .endif ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins ALSA_CMAKE_BOOL= USE_ALSA EVDEV_DESC= libevdev-based joystick support EVDEV_CMAKE_BOOL= USE_LIBEVDEV EVDEV_LIB_DEPENDS= libevdev.so:devel/libevdev GDB_DESC= GDB remote stub (powerpc64 target) GDB_CMAKE_BOOL= WITH_GDB LLVM_DESC= LLVM-based PPU recompiler -LLVM_BUILD_DEPENDS= llvm40>0:devel/llvm40 +LLVM_BUILD_DEPENDS= llvm${MESA_LLVM_VER}>0:devel/llvm${MESA_LLVM_VER} +LLVM_CMAKE_ON= -DLLVM_DIR:PATH=${LOCALBASE}/llvm${MESA_LLVM_VER}/lib/cmake/llvm LLVM_CMAKE_BOOL_OFF= WITHOUT_LLVM PULSEAUDIO_LIB_DEPENDS= libpulse-simple.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSE VULKAN_DESC= Vulkan renderer VULKAN_BUILD_DEPENDS= ${LOCALBASE}/lib/libglslang.a:devel/glslang VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-sdk VULKAN_CMAKE_BOOL= USE_VULKAN VULKAN_PREBUILT post-patch: @${REINPLACE_CMD} -e '/GIT_BRANCH/s/unknown/master/' \ -e '/GIT_VERSION/s/unknown/${GH_TAGNAME:C/[^-]*-//}/' \ ${WRKSRC}/${PORTNAME}/git-version.cmake .include Index: branches/2018Q1/emulators/rpcs3/files/patch-llvm6 =================================================================== --- branches/2018Q1/emulators/rpcs3/files/patch-llvm6 (nonexistent) +++ branches/2018Q1/emulators/rpcs3/files/patch-llvm6 (revision 460955) @@ -0,0 +1,125 @@ +Based on https://github.com/hcorion/rpcs3/commit/017958c93018 + +--- Utilities/JIT.cpp.orig 2018-02-02 08:17:12 UTC ++++ Utilities/JIT.cpp +@@ -71,7 +71,7 @@ static void* s_next = s_memory; + #ifdef _WIN32 + static std::deque> s_unwater; + static std::vector> s_unwind; // .pdata +-#else ++#elif LLVM_VERSION_MAJOR < 5 + static std::deque> s_unfire; + #endif + +@@ -107,12 +107,16 @@ extern void jit_finalize() + } + } mem; + ++#if LLVM_VERSION_MAJOR < 5 + for (auto&& t : s_unfire) + { + mem.deregisterEHFrames(std::get<0>(t), std::get<1>(t), std::get<2>(t)); + } + + s_unfire.clear(); ++#else ++ mem.deregisterEHFrames(); ++#endif // LLVM_VERSION_MAJOR < 5 + #endif + + utils::memory_decommit(s_memory, s_memory_size); +@@ -286,14 +290,18 @@ struct MemoryManager : llvm::RTDyldMemoryManager + { + s_unwind.emplace_back(std::move(pdata)); + } +-#else ++#elif LLVM_VERSION_MAJOR < 5 + s_unfire.push_front(std::make_tuple(addr, load_addr, size)); + #endif + + return RTDyldMemoryManager::registerEHFrames(addr, load_addr, size); + } + ++#if LLVM_VERSION_MAJOR < 5 + void deregisterEHFrames(u8* addr, u64 load_addr, std::size_t size) override ++#else ++ virtual void deregisterEHFrames() override ++#endif + { + } + }; +@@ -380,7 +388,11 @@ class ObjectCache final : public llvm::ObjectCache (pu + { + if (fs::file cached{path, fs::read}) + { ++#if LLVM_VERSION_MAJOR < 6 + auto buf = llvm::MemoryBuffer::getNewUninitMemBuffer(cached.size()); ++#else ++ auto buf = llvm::WritableMemoryBuffer::getNewUninitMemBuffer(cached.size()); ++#endif + cached.read(const_cast(buf->getBufferStart()), buf->getBufferSize()); + return buf; + } +--- rpcs3/CMakeLists.txt.orig 2018-02-02 08:17:12 UTC ++++ rpcs3/CMakeLists.txt +@@ -173,7 +173,7 @@ set(CMAKE_MODULE_PATH "${RPCS3_SRC_DIR}/cmake_modules" + find_package(OpenGL REQUIRED) + find_package(OpenAL REQUIRED) + if(NOT WITHOUT_LLVM) +- find_package(LLVM 4.0 CONFIG) ++ find_package(LLVM CONFIG) + if(NOT LLVM_FOUND) + message("System LLVM was not found, LLVM will be built from the submodule.") + +--- rpcs3/Emu/Cell/PPUTranslator.cpp.orig 2018-02-02 08:17:12 UTC ++++ rpcs3/Emu/Cell/PPUTranslator.cpp +@@ -16,7 +16,11 @@ PPUTranslator::PPUTranslator(LLVMContext& context, Mod + , m_module(module) + , m_is_be(false) + , m_info(info) ++#if LLVM_VERSION_MAJOR < 5 + , m_pure_attr(AttributeSet::get(m_context, AttributeSet::FunctionIndex, {Attribute::NoUnwind, Attribute::ReadNone})) ++#else ++ , m_pure_attr(AttributeList::get(m_context,AttributeList::FunctionIndex, AttrBuilder().addAttribute(Attribute::NoUnwind).addAttribute(Attribute::ReadNone))) ++#endif + { + // There is no weak linkage on JIT, so let's create variables with different names for each module part + const u32 gsuffix = m_info.name.empty() ? info.funcs[0].addr : info.funcs[0].addr - m_info.segs[0].addr; +--- rpcs3/Emu/Cell/PPUTranslator.h.orig 2018-02-02 08:17:12 UTC ++++ rpcs3/Emu/Cell/PPUTranslator.h +@@ -120,7 +120,11 @@ class PPUTranslator final //: public CPUTranslator + std::map m_relocs; + + // Attributes for function calls which are "pure" and may be optimized away if their results are unused ++#if LLVM_VERSION_MAJOR < 5 + const llvm::AttributeSet m_pure_attr; ++#else ++ const llvm::AttributeList m_pure_attr; ++#endif + + // IR builder + llvm::IRBuilder<>* m_ir; +@@ -404,7 +408,11 @@ class PPUTranslator final //: public CPUTranslator + + // Call a function with attribute list + template ++#if LLVM_VERSION_MAJOR < 5 + llvm::CallInst* Call(llvm::Type* ret, llvm::AttributeSet attr, llvm::StringRef name, Args... args) ++#else ++ llvm::CallInst* Call(llvm::Type* ret, llvm::AttributeList attr, llvm::StringRef name, Args... args) ++#endif + { + // Call the function + return m_ir->CreateCall(m_module->getOrInsertFunction(name, llvm::FunctionType::get(ret, {args->getType()...}, false), attr), {args...}); +@@ -414,7 +422,11 @@ class PPUTranslator final //: public CPUTranslator + template + llvm::CallInst* Call(llvm::Type* ret, llvm::StringRef name, Args... args) + { ++#if LLVM_VERSION_MAJOR < 5 + return Call(ret, llvm::AttributeSet{}, name, args...); ++#else ++ return Call(ret, llvm::AttributeList{}, name, args...); ++#endif + } + + // Handle compilation errors Property changes on: branches/2018Q1/emulators/rpcs3/files/patch-llvm6 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1 =================================================================== --- branches/2018Q1 (revision 460954) +++ branches/2018Q1 (revision 460955) Property changes on: branches/2018Q1 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r460866