From bf211c4827dd71a07737d9705a82305a81bda6cb Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Wed, 16 Mar 2016 06:15:50 +0000 Subject: [PATCH] llvm: disable rpath, forgot __INTEL__ on x86. --- sys-devel/llvm/llvm-3.8.0.recipe | 10 +-- sys-devel/llvm/patches/clang-3.8.0.patchset | 86 ++++++++++----------- sys-devel/llvm/patches/llvm-3.8.0.patchset | 16 ++-- 3 files changed, 52 insertions(+), 60 deletions(-) diff --git a/sys-devel/llvm/llvm-3.8.0.recipe b/sys-devel/llvm/llvm-3.8.0.recipe index 392a371cc..f66263d6e 100644 --- a/sys-devel/llvm/llvm-3.8.0.recipe +++ b/sys-devel/llvm/llvm-3.8.0.recipe @@ -31,7 +31,7 @@ other than the ones listed above. HOMEPAGE="http://www.llvm.org/" COPYRIGHT="2003-2014 University of Illinois at Urbana-Champaign" LICENSE="UIUC" -REVISION="1" +REVISION="2" SOURCE_URI="http://llvm.org/releases/${portVersion}/llvm-${portVersion}.src.tar.xz" SOURCE_URI_2="http://llvm.org/releases/${portVersion}/cfe-${portVersion}.src.tar.xz" SOURCE_URI_3="http://llvm.org/releases/${portVersion}/clang-tools-extra-${portVersion}.src.tar.xz" @@ -44,8 +44,8 @@ SOURCE_DIR_3="clang-tools-extra-${portVersion}.src" PATCHES="llvm-${portVersion}.patchset" PATCHES_2="clang-${portVersion}.patchset" -ARCHITECTURES="!x86_gcc2 ?x86 x86_64" -SECONDARY_ARCHITECTURES="?x86" +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" PROVIDES=" llvm$secondaryArchSuffix = $portVersion @@ -319,8 +319,8 @@ BUILD() # Haiku C++ requires rtti in a lot of central system components # such as Mesa cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix \ - -DLLVM_ENABLE_RTTI=ON \ - -DLLVM_ENABLE_THREADS=NO \ + -DCMAKE_SKIP_RPATH=YES \ + -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_THREADS=NO \ .. make $jobArgs PROJ_datadir=$dataDir PROJ_docsdir=$docDir \ PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir diff --git a/sys-devel/llvm/patches/clang-3.8.0.patchset b/sys-devel/llvm/patches/clang-3.8.0.patchset index b673a69c0..faf7bf500 100644 --- a/sys-devel/llvm/patches/clang-3.8.0.patchset +++ b/sys-devel/llvm/patches/clang-3.8.0.patchset @@ -1,4 +1,4 @@ -From 3d89411dbc475a5135e4470d0dac2ff430f00034 Mon Sep 17 00:00:00 2001 +From 65ee8527e8cf8d9b9f1868aa9933027eed73ea15 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Sun, 1 Feb 2015 15:13:57 +0000 Subject: haiku: fix header search paths @@ -12,7 +12,7 @@ index 26bab0d..6066d2b 100644 +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -267,38 +267,41 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, } - + case llvm::Triple::Haiku: - AddPath("/boot/common/include", System, false); - AddPath("/boot/develop/headers/os", System, false); @@ -84,11 +84,11 @@ index 26bab0d..6066d2b 100644 break; case llvm::Triple::RTEMS: break; --- -2.2.2 +-- +2.7.0 -From 51e141320e9e337978a551068ad84aaeb64a718b Mon Sep 17 00:00:00 2001 +From 42991b0fe8f1c57eb774b39bb0e9a8f33998a0ee Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 1 Feb 2015 15:15:45 +0000 Subject: libclang: add soname when building on Haiku. @@ -100,18 +100,18 @@ index 84914e0..b9a6b74 100644 +++ b/tools/libclang/Makefile @@ -35,7 +35,7 @@ USEDLIBS = clangIndex.a clangARCMigrate.a \ include $(CLANG_LEVEL)/Makefile - + # Add soname to the library. -ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD GNU GNU/kFreeBSD)) +ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD GNU GNU/kFreeBSD Haiku)) LLVMLibsOptions += -Wl,-soname,lib$(LIBRARYNAME)$(SHLIBEXT) endif - --- -2.2.2 + +-- +2.7.0 -From b5749ce304a1490838e31c7e5df5fdd6f41572c3 Mon Sep 17 00:00:00 2001 +From c6495beaecdc85d3d87128964bfcbe94de996ea8 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Tue, 22 Dec 2015 22:07:06 +0000 Subject: don't include c++ headers in C include search paths. @@ -133,13 +133,13 @@ index 1e0a48d..f31b274 100644 TC = new toolchains::CloudABI(*this, Target, Args); break; diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp -index beede2e..f6ca5c4 100644 +index 99c7b8e..5e95668 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -2971,6 +2971,34 @@ Tool *CloudABI::buildLinker() const { return new tools::cloudabi::Linker(*this); } - + +/// Haiku - Haiku tool chain which can call as(1) and ld(1) directly. + +Haiku::Haiku(const Driver &D, const llvm::Triple& Triple, const ArgList &Args) @@ -169,16 +169,16 @@ index beede2e..f6ca5c4 100644 +} + /// OpenBSD - OpenBSD tool chain which can call as(1) and ld(1) directly. - + OpenBSD::OpenBSD(const Driver &D, const llvm::Triple &Triple, diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h -index b6fd426..906353b 100644 +index f940e58..7b7125e 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -667,6 +667,18 @@ private: void findGccLibDir(); }; - + +class LLVM_LIBRARY_VISIBILITY Haiku : public Generic_ELF { +public: + Haiku(const Driver &D, const llvm::Triple &Triple, @@ -207,24 +207,24 @@ index 6066d2b..d8f0881 100644 AddPath("/boot/system/develop/headers/3rdparty", System, false); AddPath("/boot/system/develop/headers/bsd", System, false); AddPath("/boot/system/develop/headers/glibc", System, false); --- -2.2.2 +-- +2.7.0 -From f3310e0a11fa3a030e79a5c5e509bff1fb297523 Mon Sep 17 00:00:00 2001 +From dbc718a980b634d358968b0b0339876c9febd684 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Thu, 14 Jan 2016 19:19:14 +0000 Subject: add Haiku target info for x86_64 diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp -index 1bc6c51..8160b8c 100644 +index af8aea0..e2c2031 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -373,6 +373,30 @@ public: } }; - + +// Haiku Target +template +class HaikuTargetInfo : public OSTargetInfo { @@ -252,13 +252,13 @@ index 1bc6c51..8160b8c 100644 // Minix Target template class MinixTargetInfo : public OSTargetInfo { -@@ -3874,25 +3898,6 @@ public: - } +@@ -3875,21 +3899,16 @@ public: }; - --// x86-32 Haiku target + + // x86-32 Haiku target -class HaikuX86_32TargetInfo : public X86_32TargetInfo { --public: ++class HaikuX86_32TargetInfo : public HaikuTargetInfo { + public: - HaikuX86_32TargetInfo(const llvm::Triple &Triple) : X86_32TargetInfo(Triple) { - SizeType = UnsignedLong; - IntPtrType = SignedLong; @@ -266,28 +266,20 @@ index 1bc6c51..8160b8c 100644 - ProcessIDType = SignedLong; - this->UserLabelPrefix = ""; - this->TLSSupported = false; -- } -- void getTargetDefines(const LangOptions &Opts, -- MacroBuilder &Builder) const override { ++ HaikuX86_32TargetInfo(const llvm::Triple &Triple) ++ : HaikuTargetInfo(Triple) { + } ++ + void getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const override { - X86_32TargetInfo::getTargetDefines(Opts, Builder); -- Builder.defineMacro("__INTEL__"); ++ HaikuTargetInfo::getTargetDefines(Opts, Builder); + Builder.defineMacro("__INTEL__"); - Builder.defineMacro("__HAIKU__"); -- } --}; -- - // X86-32 MCU target - class MCUX86_32TargetInfo : public X86_32TargetInfo { - public: -@@ -7846,7 +7851,7 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { - } - } - case llvm::Triple::Haiku: -- return new HaikuX86_32TargetInfo(Triple); -+ return new HaikuTargetInfo(Triple); - case llvm::Triple::RTEMS: - return new RTEMSX86_32TargetInfo(Triple); - case llvm::Triple::NaCl: -@@ -7897,6 +7902,8 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { + } + }; + +@@ -7903,6 +7922,8 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { return new MicrosoftX86_64TargetInfo(Triple); } } @@ -296,6 +288,6 @@ index 1bc6c51..8160b8c 100644 case llvm::Triple::NaCl: return new NaClTargetInfo(Triple); case llvm::Triple::PS4: --- -2.2.2 +-- +2.7.0 diff --git a/sys-devel/llvm/patches/llvm-3.8.0.patchset b/sys-devel/llvm/patches/llvm-3.8.0.patchset index d8da27887..8c1a701cb 100644 --- a/sys-devel/llvm/patches/llvm-3.8.0.patchset +++ b/sys-devel/llvm/patches/llvm-3.8.0.patchset @@ -1,4 +1,4 @@ -From 6b8f3f7b0e6b369968bcf9308cff89eed89065a2 Mon Sep 17 00:00:00 2001 +From d6ee5488845a252d380cd25890136de7b54a7ce0 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Wed, 22 Jan 2014 05:04:31 +0000 Subject: haiku: fix Host.h for endian.h @@ -18,10 +18,10 @@ index 8f4bf3c..8114f9b 100644 #else #if !defined(BYTE_ORDER) && !defined(LLVM_ON_WIN32) -- -2.2.2 +2.7.0 -From eaacb667d69e2cb0595041283bbfd95952028fde Mon Sep 17 00:00:00 2001 +From 8974eea683319522bb0e0dafeb409224c2d00768 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 18 May 2014 12:41:16 +0200 Subject: libLTO: add soname when building on Haiku. @@ -43,10 +43,10 @@ index 530c05a..ffa76d2 100644 # Special hack to allow libLTO to have an offset version number. ifdef LLVM_LTO_VERSION_OFFSET -- -2.2.2 +2.7.0 -From 7947f9897c36c3980262fb21e4e69e73e9d8dd8f Mon Sep 17 00:00:00 2001 +From 89aaec4cfcfd3f0f8bbc15fc81bae45b1c74b00b Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Wed, 20 Jan 2016 21:13:28 +0000 Subject: llvm-config: use /develop/headers instead of /include @@ -91,10 +91,10 @@ index 80f6279..8275aac 100644 usage(); } -- -2.2.2 +2.7.0 -From 20d0593975bcacf8f9cf20fb299bf3d946e68077 Mon Sep 17 00:00:00 2001 +From 4e245f44390a3b549b535892d06777e9e4f1009f Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Sun, 31 Jan 2016 10:23:24 +0000 Subject: patch cmake build for Haiku. @@ -358,5 +358,5 @@ index 75b3e89..db5c555 100644 endif( NOT MSVC ) -- -2.2.2 +2.7.0