[Bug 221029] AMD Ryzen: strange compilation failures using poudriere or plain buildkernel/buildworld

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Aug 5 21:57:41 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221029

--- Comment #55 from Don Lewis <truckman at FreeBSD.org> ---
It's not really repeatable at all.  I've seen a couple different clang aborts,
but they are pretty rare, and happen when building different ports each time. 
I did manage to get the proper environment set up so that I could analyze the
latest clang core files.  Here's the stack backtrace for the libreoffice
failure:

#0  0x0000000002df8efa in kill ()
#1  0x0000000002df8eae in __fail ()
#2  0x0000000002df8e1e in __stack_chk_fail_local ()
#3  0x0000000000a4cf46 in
clang::FunctionProtoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext
const&) ()
#4  0x0000000002c33ced in llvm::FoldingSetBase::GrowBucketCount(unsigned int)
    ()
#5  0x0000000002c33e09 in
llvm::FoldingSetBase::InsertNode(llvm::FoldingSetBase::Node*, void*) ()
#6  0x0000000000b987ed in
clang::ASTContext::getFunctionTypeInternal(clang::QualType,
llvm::ArrayRef<clang::QualType>, clang::FunctionProtoType::ExtProtoInfo const&,
bool) const ()
#7  0x0000000000b986b0 in
clang::ASTContext::getFunctionTypeInternal(clang::QualType,
llvm::ArrayRef<clang::QualType>, clang::FunctionProtoType::ExtProtoInfo const&,
bool) const ()
#8  0x00000000014a1755 in clang::Sema::BuildFunctionType(clang::QualType,
llvm::MutableArrayRef<clang::QualType>, clang::SourceLocation,
clang::DeclarationName, clang::FunctionProtoType::ExtProtoInfo const&) ()
#9  0x00000000014f6c2c in
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) ()
#10 0x00000000014e2bb2 in
clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*,
llvm::SmallVectorImpl<clang::ParmVarDecl*>&) ()
#11 0x00000000014e02a7 in
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) ()
#12 0x00000000014dfc15 in
clang::TemplateDeclInstantiator::VisitFunctionTemplateDecl(clang::FunctionTemplateDecl*)
()
#13 0x00000000014fa605 in clang::Sema::InstantiateClass(clang::SourceLocation,
clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) ()
#14 0x00000000014fc81d in
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) ()
#15 0x00000000014b2d39 in
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser*) ()
#16 0x000000000109f55f in clang::Sema::IsDerivedFrom(clang::SourceLocation,
clang::QualType, clang::QualType) ()
#17 0x00000000015f7ad5 in clang::Sema::IsPointerConversion(clang::Expr*,
clang::QualType, clang::QualType, bool, clang::QualType&, bool&) ()
#18 0x00000000016218cb in IsStandardConversion(clang::Sema&, clang::Expr*,
clang::QualType, bool, clang::StandardConversionSequence&, bool, bool) ()
#19 0x00000000015f5b17 in TryImplicitConversion(clang::Sema&, clang::Expr*,
clang::QualType, bool, bool, bool, bool, bool, bool) ()
#20 0x0000000001603ed8 in TryCopyInitialization(clang::Sema&, clang::Expr*,
clang::QualType, bool, bool, bool, bool) ()
#21 0x00000000016030c2 in
clang::Sema::AddOverloadCandidate(clang::FunctionDecl*, clang::DeclAccessPair,
llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool,
llvm::MutableArrayRef<clang::ImplicitConversionSequence>) ()
#22 0x0000000001616956 in AddOverloadedCallCandidate(clang::Sema&,
clang::DeclAccessPair, clang::TemplateArgumentListInfo*,
llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool) ()
#23 0x00000000016166d9 in
clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*,
llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) ()
#24 0x0000000001616aba in clang::Sema::buildOverloadedCallSet(clang::Scope*,
clang::Expr*, clang::UnresolvedLookupExpr*,
llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation,
clang::OverloadCandidateSet*, clang::ActionResult<clang::Expr*, true>*) ()
#25 0x0000000001616e90 in clang::Sema::BuildOverloadedCallExpr(clang::Scope*,
clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation,
llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool,
bool) ()
#26 0x0000000000fe720b in clang::Sema::ActOnCallExpr(clang::Scope*,
clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation, clang::Expr*, bool) ()
#27 0x00000000015064a8 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) ()
#28 0x000000000151cb12 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*) ()
#29 0x0000000001515243 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*,
bool) ()
#30 0x00000000014fd764 in clang::Sema::SubstStmt(clang::Stmt*,
clang::MultiLevelTemplateArgumentList const&) ()
#31 0x00000000014e9c1c in
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,
clang::FunctionDecl*, bool, bool, bool) ()
#32 0x00000000014ecf2b in clang::Sema::PerformPendingInstantiations(bool) ()
#33 0x0000000001203c38 in clang::Sema::ActOnEndOfTranslationUnit() ()
#34 0x00000000012524a9 in
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) ()
#35 0x00000000007dff95 in clang::ParseAST(clang::Sema&, bool, bool) ()
#36 0x00000000007d5bbc in clang::FrontendAction::Execute() ()
#37 0x0000000000d0f5f1 in
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) ()
#38 0x000000000040ba0e in
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) ()
#39 0x0000000000400943 in cc1_main (Argv=..., 
    Argv0=0x7fffffff5348 "/usr/bin/c++", 
    MainAddr=0x406470 <GetExecutablePath(char const*, bool)>)
    at
/var/poudriere/jails/120CURRENTamd64/usr/src/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp:221
#40 0x0000000000409038 in ExecuteCC1Tool (Tool=..., argv=...)
    at
/var/poudriere/jails/120CURRENTamd64/usr/src/contrib/llvm/tools/clang/tools/driver/driver.cpp:306
#41 main (argc_=<optimized out>, argv_=<optimized out>)
    at
/var/poudriere/jails/120CURRENTamd64/usr/src/contrib/llvm/tools/clang/tools/driver/driver.cpp:387

__stack_chk_fail_local() is part of the stack smash detector.  It appears that
the stack check canary is random, which might have something to do with the
failures being random ... or we're getting random stack smashes.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list