summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes2020-12-31 12:45:29 -0500
committerTavian Barnes2020-12-31 12:45:29 -0500
commite3d47c37e95eb9800e20684c5453e0e5abc1a493 (patch)
treed253ad257e89e5682c1dae8fad1fc638adde4997
parent7cb5b589b96bec887347cf93678811537b0d6b3d (diff)
downloadaur-e3d47c37e95eb9800e20684c5453e0e5abc1a493.tar.gz
Fix the build against LLVM 11
-rw-r--r--.SRCINFO14
-rw-r--r--0001-Link-clang_delta-only-with-lclang-cpp-193.patch82
-rw-r--r--0002-Make-it-compile-with-LLVM11.patch136
-rw-r--r--PKGBUILD24
4 files changed, 244 insertions, 12 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b38b469e37d8..6a8ed50bbcdb 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
+
diff --git a/PKGBUILD b/PKGBUILD
index a773652386da..b1a24f71c092 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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"