diff options
author | Tavian Barnes | 2020-12-31 12:45:29 -0500 |
---|---|---|
committer | Tavian Barnes | 2020-12-31 12:45:29 -0500 |
commit | e3d47c37e95eb9800e20684c5453e0e5abc1a493 (patch) | |
tree | d253ad257e89e5682c1dae8fad1fc638adde4997 | |
parent | 7cb5b589b96bec887347cf93678811537b0d6b3d (diff) | |
download | aur-e3d47c37e95eb9800e20684c5453e0e5abc1a493.tar.gz |
Fix the build against LLVM 11
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | 0001-Link-clang_delta-only-with-lclang-cpp-193.patch | 82 | ||||
-rw-r--r-- | 0002-Make-it-compile-with-LLVM11.patch | 136 | ||||
-rw-r--r-- | PKGBUILD | 24 |
4 files changed, 244 insertions, 12 deletions
@@ -1,17 +1,15 @@ -# Generated by mksrcinfo v8 -# Thu May 16 15:51:48 UTC 2019 pkgbase = creduce pkgdesc = A C/C++ program reducer pkgver = 2.10.0 - pkgrel = 1 + pkgrel = 2 url = https://embed.cs.utah.edu/creduce/ arch = i686 arch = x86_64 license = custom:University of Illinois Open Source License depends = astyle - depends = clang>=8.0.0 + depends = clang>=9.0.0 depends = indent - depends = llvm>=8.0.0 + depends = llvm>=9.0.0 depends = perl-benchmark-timer depends = perl-exporter-lite depends = perl-file-which @@ -19,8 +17,14 @@ pkgbase = creduce depends = perl-regexp-common depends = perl-sys-cpu source = https://embed.cs.utah.edu/creduce/creduce-2.10.0.tar.gz + source = 0001-Link-clang_delta-only-with-lclang-cpp-193.patch + source = 0002-Make-it-compile-with-LLVM11.patch md5sums = ec9d5fd3c71840c7361cdf626fe1f202 + md5sums = 40d922b34f0d820ac61a8274093094ba + md5sums = df763f8f9a52bbdc8e8da6b574fd8d1b sha256sums = db1c0f123967f24d620b040cebd53001bf3dcf03e400f78556a2ff2e11fea063 + sha256sums = eb5b1d38a35b2f6b74db49ce0e9d29b287694915d17941cdf1455cd34fe967df + sha256sums = 837c18c5d3cea9d51a52aeb5f191e00275b7f9ba09116b26a13f478d59f848bb pkgname = creduce diff --git a/0001-Link-clang_delta-only-with-lclang-cpp-193.patch b/0001-Link-clang_delta-only-with-lclang-cpp-193.patch new file mode 100644 index 000000000000..95f4d14a431e --- /dev/null +++ b/0001-Link-clang_delta-only-with-lclang-cpp-193.patch @@ -0,0 +1,82 @@ +From e9bb8686c5ef83a961f63744671c5e70066cba4e Mon Sep 17 00:00:00 2001 +From: Martin Liska <mliska@suse.cz> +Date: Mon, 11 Nov 2019 09:30:43 +0100 +Subject: [PATCH] Link clang_delta only with -lclang-cpp (#193). + +The change is needed to link clang_delta with LLVM version 9. +--- + clang_delta/CMakeLists.txt | 19 +------------------ + clang_delta/Makefile.am | 8 +------- + clang_delta/Makefile.in | 7 +------ + 3 files changed, 3 insertions(+), 31 deletions(-) + +diff --git a/clang_delta/CMakeLists.txt b/clang_delta/CMakeLists.txt +index a94ec0d..a7dae12 100644 +--- a/clang_delta/CMakeLists.txt ++++ b/clang_delta/CMakeLists.txt +@@ -86,24 +86,7 @@ llvm_map_components_to_libnames(LLVM_LIBS + ) + + set(CLANG_LIBS +- clangStaticAnalyzerFrontend +- clangStaticAnalyzerCheckers +- clangStaticAnalyzerCore +- clangFrontendTool +- clangFrontend +- clangDriver +- clangSerialization +- clangCodeGen +- clangParse +- clangSema +- clangAnalysis +- clangRewriteFrontend +- clangRewrite +- clangAST +- clangBasic +- clangEdit +- clangLex +- clangARCMigrate ++ clang-cpp + ) + + add_executable(clang_delta +diff --git a/clang_delta/Makefile.am b/clang_delta/Makefile.am +index 1bb3569..155da98 100644 +--- a/clang_delta/Makefile.am ++++ b/clang_delta/Makefile.am +@@ -127,13 +127,7 @@ clang_delta_CXXFLAGS = \ + # In LLVM 3.5, `llvm-config --ldflags' does not contain the list of system + # libraries. So probably, we could move `LLVMLDFLAGS' back to the definition + # of `clang_delta_LDFLAGS'. I'll do that later. +-clang_delta_LDADD = \ +- -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers \ +- -lclangStaticAnalyzerCore \ +- -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization \ +- -lclangCodeGen -lclangParse -lclangSema -lclangAnalysis \ +- -lclangRewriteFrontend -lclangRewrite -lclangAST -lclangBasic -lclangEdit -lclangLex \ +- -lclangARCMigrate \ ++clang_delta_LDADD = -lclang-cpp \ + $(LLVMLIBS) \ + $(CLANG_LDFLAGS) \ + $(LLVMLDFLAGS) +diff --git a/clang_delta/Makefile.in b/clang_delta/Makefile.in +index 5bd6e56..b915946 100644 +--- a/clang_delta/Makefile.in ++++ b/clang_delta/Makefile.in +@@ -575,12 +575,7 @@ clang_delta_CXXFLAGS = \ + # libraries. So probably, we could move `LLVMLDFLAGS' back to the definition + # of `clang_delta_LDFLAGS'. I'll do that later. + clang_delta_LDADD = \ +- -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers \ +- -lclangStaticAnalyzerCore \ +- -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization \ +- -lclangCodeGen -lclangParse -lclangSema -lclangAnalysis \ +- -lclangRewriteFrontend -lclangRewrite -lclangAST -lclangBasic -lclangEdit -lclangLex \ +- -lclangARCMigrate \ ++ -lclang-cpp \ + $(LLVMLIBS) \ + $(CLANG_LDFLAGS) \ + $(LLVMLDFLAGS) +-- +2.29.2 + diff --git a/0002-Make-it-compile-with-LLVM11.patch b/0002-Make-it-compile-with-LLVM11.patch new file mode 100644 index 000000000000..1304d0f522ca --- /dev/null +++ b/0002-Make-it-compile-with-LLVM11.patch @@ -0,0 +1,136 @@ +From 3e1f5a1ec1365fafae965c97603221c9ccbc2d61 Mon Sep 17 00:00:00 2001 +From: Yang Chen <chenyang@cs.utah.edu> +Date: Tue, 13 Oct 2020 00:49:53 -0700 +Subject: [PATCH] Make it compile with LLVM11 + +Applied the patch provided by Vegard Nossum (vegard@github). +--- + clang_delta/CommonRenameClassRewriteVisitor.h | 4 ++-- + clang_delta/RemoveNamespace.cpp | 2 +- + clang_delta/RewriteUtils.cpp | 2 +- + clang_delta/Transformation.cpp | 2 +- + clang_delta/TransformationManager.cpp | 18 ++++++++++-------- + 5 files changed, 15 insertions(+), 13 deletions(-) + +diff --git a/clang_delta/CommonRenameClassRewriteVisitor.h b/clang_delta/CommonRenameClassRewriteVisitor.h +index e400f3f..ba860d9 100644 +--- a/clang_delta/CommonRenameClassRewriteVisitor.h ++++ b/clang_delta/CommonRenameClassRewriteVisitor.h +@@ -98,7 +98,7 @@ bool CommonRenameClassRewriteVisitor<T>::VisitUsingDecl(UsingDecl *D) + return true; + + IdentifierInfo *IdInfo = DeclName.getAsIdentifierInfo(); +- std::string IdName = IdInfo->getName(); ++ std::string IdName = IdInfo->getName().str(); + std::string Name; + if (getNewNameByName(IdName, Name)) { + SourceLocation LocStart = NameInfo.getBeginLoc(); +@@ -337,7 +337,7 @@ template<typename T> bool CommonRenameClassRewriteVisitor<T>:: + TransAssert(DTST && "Bad DependentTemplateSpecializationType!"); + + const IdentifierInfo *IdInfo = DTST->getIdentifier(); +- std::string IdName = IdInfo->getName(); ++ std::string IdName = IdInfo->getName().str(); + std::string Name; + if (getNewNameByName(IdName, Name)) { + SourceLocation LocStart = DTSLoc.getTemplateNameLoc(); +diff --git a/clang_delta/RemoveNamespace.cpp b/clang_delta/RemoveNamespace.cpp +index 71ea571..867e9c0 100644 +--- a/clang_delta/RemoveNamespace.cpp ++++ b/clang_delta/RemoveNamespace.cpp +@@ -458,7 +458,7 @@ bool RemoveNamespaceRewriteVisitor::VisitDependentTemplateSpecializationTypeLoc( + TransAssert(DTST && "Bad DependentTemplateSpecializationType!"); + + const IdentifierInfo *IdInfo = DTST->getIdentifier(); +- std::string IdName = IdInfo->getName(); ++ std::string IdName = IdInfo->getName().str(); + std::string Name; + + // FIXME: +diff --git a/clang_delta/RewriteUtils.cpp b/clang_delta/RewriteUtils.cpp +index 71e9914..8c185aa 100644 +--- a/clang_delta/RewriteUtils.cpp ++++ b/clang_delta/RewriteUtils.cpp +@@ -748,7 +748,7 @@ std::string RewriteUtils::getStmtIndentString(Stmt *S, + ++I; + indentSpace = MB.substr(lineOffs, I-lineOffs); + +- return indentSpace; ++ return indentSpace.str(); + } + + bool RewriteUtils::addLocalVarToFunc(const std::string &VarStr, +diff --git a/clang_delta/Transformation.cpp b/clang_delta/Transformation.cpp +index 9ef79cc..41153f3 100644 +--- a/clang_delta/Transformation.cpp ++++ b/clang_delta/Transformation.cpp +@@ -357,7 +357,7 @@ unsigned int Transformation::getConstArraySize( + llvm::SmallString<8> IntStr; + Result.toStringUnsigned(IntStr); + +- std::stringstream TmpSS(IntStr.str()); ++ std::stringstream TmpSS(IntStr.str().str()); + + if (!(TmpSS >> Sz)) { + TransAssert(0 && "Non-integer value!"); +diff --git a/clang_delta/TransformationManager.cpp b/clang_delta/TransformationManager.cpp +index b123632..98fc67e 100644 +--- a/clang_delta/TransformationManager.cpp ++++ b/clang_delta/TransformationManager.cpp +@@ -16,7 +16,9 @@ + + #include <sstream> + ++#include "clang/Basic/Builtins.h" + #include "clang/Basic/Diagnostic.h" ++#include "clang/Basic/FileManager.h" + #include "clang/Basic/TargetInfo.h" + #include "clang/Lex/Preprocessor.h" + #include "clang/Frontend/CompilerInstance.h" +@@ -101,16 +103,16 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg) + CompilerInvocation &Invocation = ClangInstance->getInvocation(); + InputKind IK = FrontendOptions::getInputKindForExtension( + StringRef(SrcFileName).rsplit('.').second); +- if (IK.getLanguage() == InputKind::C) { +- Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind::C, T, PPOpts); ++ if (IK.getLanguage() == Language::C) { ++ Invocation.setLangDefaults(ClangInstance->getLangOpts(), Language::C, T, PPOpts); + } +- else if (IK.getLanguage() == InputKind::CXX) { ++ else if (IK.getLanguage() == Language::CXX) { + // ISSUE: it might cause some problems when building AST + // for a function which has a non-declared callee, e.g., + // It results an empty AST for the caller. +- Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind::CXX, T, PPOpts); ++ Invocation.setLangDefaults(ClangInstance->getLangOpts(), Language::CXX, T, PPOpts); + } +- else if(IK.getLanguage() == InputKind::OpenCL) { ++ else if(IK.getLanguage() == Language::OpenCL) { + //Commandline parameters + std::vector<const char*> Args; + Args.push_back("-x"); +@@ -122,7 +124,7 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg) + ClangInstance->createFileManager(); + + if(CLCPath != NULL && ClangInstance->hasFileManager() && +- ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) { ++ ClangInstance->getFileManager().getDirectory(CLCPath, false)) { + Args.push_back("-I"); + Args.push_back(CLCPath); + } +@@ -132,10 +134,10 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg) + Args.push_back("-fno-builtin"); + + CompilerInvocation::CreateFromArgs(Invocation, +- &Args[0], &Args[0] + Args.size(), ++ ArrayRef<const char*>(&Args[0], &Args[0] + Args.size()), + ClangInstance->getDiagnostics()); + Invocation.setLangDefaults(ClangInstance->getLangOpts(), +- InputKind::OpenCL, T, PPOpts); ++ Language::OpenCL, T, PPOpts); + } + else { + ErrorMsg = "Unsupported file type!"; +-- +2.29.2 + @@ -2,20 +2,30 @@ pkgname=creduce pkgver=2.10.0 -#_commit=fb91843c547794f165e5764a003166191e6c6643 -pkgrel=1 +pkgrel=2 epoch= pkgdesc="A C/C++ program reducer" arch=('i686' 'x86_64') url="https://embed.cs.utah.edu/creduce/" license=('custom:University of Illinois Open Source License') -depends=('astyle' 'clang>=8.0.0' 'indent' 'llvm>=8.0.0' +depends=('astyle' 'clang>=9.0.0' 'indent' 'llvm>=9.0.0' 'perl-benchmark-timer' 'perl-exporter-lite' 'perl-file-which' 'perl-getopt-tabular' 'perl-regexp-common' 'perl-sys-cpu') -source=("https://embed.cs.utah.edu/$pkgname/$pkgname-$pkgver.tar.gz") -md5sums=('ec9d5fd3c71840c7361cdf626fe1f202') -sha256sums=('db1c0f123967f24d620b040cebd53001bf3dcf03e400f78556a2ff2e11fea063') -#source=("$pkgname-$_commit.tar.gz::https://github.com/csmith-project/creduce/archive/$_commit.tar.gz") +source=("https://embed.cs.utah.edu/$pkgname/$pkgname-$pkgver.tar.gz" + '0001-Link-clang_delta-only-with-lclang-cpp-193.patch' + '0002-Make-it-compile-with-LLVM11.patch') +md5sums=('ec9d5fd3c71840c7361cdf626fe1f202' + '40d922b34f0d820ac61a8274093094ba' + 'df763f8f9a52bbdc8e8da6b574fd8d1b') +sha256sums=('db1c0f123967f24d620b040cebd53001bf3dcf03e400f78556a2ff2e11fea063' + 'eb5b1d38a35b2f6b74db49ce0e9d29b287694915d17941cdf1455cd34fe967df' + '837c18c5d3cea9d51a52aeb5f191e00275b7f9ba09116b26a13f478d59f848bb') + +prepare() { + cd "$pkgname-$pkgver" + patch -p1 -i "$srcdir/0001-Link-clang_delta-only-with-lclang-cpp-193.patch" + patch -p1 -i "$srcdir/0002-Make-it-compile-with-LLVM11.patch" +} build() { cd "$pkgname-$pkgver" |