Take an ugly workaround to build with gcc 7

See https://bugs.llvm.org/show_bug.cgi?id=34140
This commit is contained in:
Sylvestre Ledru 2017-08-24 21:00:55 +00:00
parent 57f4448435
commit d1998126f0
5 changed files with 84 additions and 3 deletions

2
debian/changelog vendored
View File

@ -1,6 +1,8 @@
llvm-toolchain-5.0 (1:5.0~+rc2-2) unstable; urgency=medium
* Link LLDB with -latomic on powerpcspe (Closes: #872267)
* Take an ugly workaround to build with gcc 7
See https://bugs.llvm.org/show_bug.cgi?id=34140
-- Sylvestre Ledru <sylvestre@debian.org> Wed, 16 Aug 2017 09:57:56 +0200

3
debian/control vendored
View File

@ -13,8 +13,7 @@ Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect,
ocaml-findlib [amd64 arm64 armel armhf i386],
libctypes-ocaml-dev [amd64 arm64 armel armhf i386],
dh-ocaml [amd64 arm64 armel armhf i386],
g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32],
g++-6
g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32]
Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev,
libllvm-3.8-ocaml-dev, libllvm-3.9-ocaml-dev
Standards-Version: 4.0.0

79
debian/patches/gcc-7.1-workaround.diff vendored Normal file
View File

@ -0,0 +1,79 @@
Index: clang/include/clang/AST/DeclObjC.h
===================================================================
--- clang.orig/include/clang/AST/DeclObjC.h (revision 311595)
+++ clang/include/clang/AST/DeclObjC.h (working copy)
@@ -413,12 +413,12 @@
/// Determines the family of this method.
ObjCMethodFamily getMethodFamily() const;
- bool isInstanceMethod() const { return IsInstance; }
+ bool isInstanceMethod() const LLVM_ATTRIBUTE_USED { return IsInstance; }
void setInstanceMethod(bool isInst) { IsInstance = isInst; }
bool isVariadic() const { return IsVariadic; }
void setVariadic(bool isVar) { IsVariadic = isVar; }
- bool isClassMethod() const { return !IsInstance; }
+ bool isClassMethod() const LLVM_ATTRIBUTE_USED { return !IsInstance; }
bool isPropertyAccessor() const { return IsPropertyAccessor; }
void setPropertyAccessor(bool isAccessor) { IsPropertyAccessor = isAccessor; }
@@ -832,8 +832,8 @@
(OBJC_PR_retain | OBJC_PR_strong | OBJC_PR_copy));
}
- bool isInstanceProperty() const { return !isClassProperty(); }
- bool isClassProperty() const { return PropertyAttributes & OBJC_PR_class; }
+ bool isInstanceProperty() const LLVM_ATTRIBUTE_USED { return !isClassProperty(); }
+ bool isClassProperty() const LLVM_ATTRIBUTE_USED { return PropertyAttributes & OBJC_PR_class; }
ObjCPropertyQueryKind getQueryKind() const {
return isClassProperty() ? ObjCPropertyQueryKind::OBJC_PR_query_class :
ObjCPropertyQueryKind::OBJC_PR_query_instance;
@@ -1562,7 +1562,7 @@
/// \brief Test whether the given category is visible.
///
/// Used in the \c visible_categories_iterator.
- static bool isVisibleCategory(ObjCCategoryDecl *Cat);
+ static bool isVisibleCategory(ObjCCategoryDecl *Cat) LLVM_ATTRIBUTE_USED;
public:
/// \brief Iterator that walks over the list of categories and extensions
@@ -1598,7 +1598,7 @@
/// \brief Test whether the given category... is a category.
///
/// Used in the \c known_categories_iterator.
- static bool isKnownCategory(ObjCCategoryDecl *) { return true; }
+ static bool isKnownCategory(ObjCCategoryDecl *) LLVM_ATTRIBUTE_USED { return true; }
public:
/// \brief Iterator that walks over all of the known categories and
@@ -1632,7 +1632,7 @@
/// \brief Test whether the given category is a visible extension.
///
/// Used in the \c visible_extensions_iterator.
- static bool isVisibleExtension(ObjCCategoryDecl *Cat);
+ static bool isVisibleExtension(ObjCCategoryDecl *Cat) LLVM_ATTRIBUTE_USED;
public:
/// \brief Iterator that walks over all of the visible extensions, skipping
@@ -1668,7 +1668,7 @@
/// \brief Test whether the given category is an extension.
///
/// Used in the \c known_extensions_iterator.
- static bool isKnownExtension(ObjCCategoryDecl *Cat);
+ static bool isKnownExtension(ObjCCategoryDecl *Cat) LLVM_ATTRIBUTE_USED;
public:
/// \brief Iterator that walks over all of the known extensions.
Index: clang/include/clang/ASTMatchers/ASTMatchersMacros.h
===================================================================
--- clang.orig/include/clang/ASTMatchers/ASTMatchersMacros.h (revision 311595)
+++ clang/include/clang/ASTMatchers/ASTMatchersMacros.h (working copy)
@@ -54,7 +54,7 @@
/// defines a zero parameter function named DefineMatcher() that returns a
/// ReturnType object.
#define AST_MATCHER_FUNCTION(ReturnType, DefineMatcher) \
- inline ReturnType DefineMatcher##_getInstance(); \
+ inline ReturnType DefineMatcher##_getInstance() LLVM_ATTRIBUTE_USED; \
inline ReturnType DefineMatcher() { \
return ::clang::ast_matchers::internal::MemoizedMatcher< \
ReturnType, DefineMatcher##_getInstance>::getInstance(); \

View File

@ -46,3 +46,4 @@ disable-path-test-failing.diff
silent-amd-tet.diff
disable-error-xray.diff
lldb-disable-swig-error.diff
gcc-7.1-workaround.diff

2
debian/rules vendored
View File

@ -6,7 +6,7 @@ DEB_INST := $(CURDIR)/debian/tmp/
GXX_VERSIONED_PACKAGE := $(shell dpkg-query -W -f '$${Depends}' g++ | grep -o 'g++-[0-9][0-9.]*' | tail -n1 )
GXX_VERSIONED_EXECUTABLE := $(shell dpkg -L $(GXX_VERSIONED_PACKAGE) | grep '/usr/bin/g++-[0-9][0-9.]*' | xargs ls -d | tail -n1 )
GCC_VERSION := $(subst /usr/bin/g++-,,$(GXX_VERSIONED_EXECUTABLE))
GCC_VERSION := 6
LLVM_VERSION := 5.0
LLVM_VERSION_FULL := $(LLVM_VERSION).0