[llvm-bugs] [Bug 39904] New: Ubuntu 16.04 TGZ release: clang segmentation fault in versions >=5.0.2 with `-debug-info-kind=limited`

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Dec 6 08:37:43 PST 2018


https://bugs.llvm.org/show_bug.cgi?id=39904

            Bug ID: 39904
           Summary: Ubuntu 16.04 TGZ release: clang segmentation fault in
                    versions >=5.0.2 with `-debug-info-kind=limited`
           Product: clang
           Version: 5.0
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: kaveh at vaghefi.org
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org,
                    neeilans at live.com, richard-llvm at metafoo.co.uk

We run clang in a docker container based on Ubuntu 16.04.  In it we download
the tar.xz archive for clang, place it in /opt, and symlink it in using
`update-alternatives` (here's the line from our Dockerfile)

RUN export CLANG_VERSION=5.0.1 && \
   export CLANG_PKG=clang+llvm-$CLANG_VERSION-x86_64-linux-gnu-ubuntu-16.04 &&
\
   wget --progress=bar:force
http://llvm.org/releases/$CLANG_VERSION/$CLANG_PKG.tar.xz && \
   tar xvfJ $CLANG_PKG.tar.xz -C /opt && \
   chmod -R 755 /opt/$CLANG_PKG && \
   # make symlinks to abstract compiler version
   update-alternatives --install /usr/bin/clang clang /opt/$CLANG_PKG/bin/clang
100 \
       --slave /usr/bin/clang++ clang++ /opt/$CLANG_PKG/bin/clang++ \
       --slave /usr/bin/llvm-symbolizer llvm-symbolizer
/opt/$CLANG_PKG/bin/llvm-symbolizer \
       --slave /usr/bin/llvm-profdata llvm-profdata
/opt/$CLANG_PKG/bin/llvm-profdata\
       --slave /usr/bin/llvm-ar llvm-ar /opt/$CLANG_PKG/bin/llvm-ar \
       --slave /usr/bin/lld lld /opt/$CLANG_PKG/bin/lld \
       --slave /usr/bin/llvm-nm llvm-nm /opt/$CLANG_PKG/bin/llvm-nm \
       --slave /usr/bin/llvm-objdump llvm-objdump
/opt/$CLANG_PKG/bin/llvm-objdump \
       --slave /usr/bin/clang-format clang-format
/opt/$CLANG_PKG/bin/clang-format \
       --slave /usr/bin/llvm-ranlib llvm-ranlib /opt/$CLANG_PKG/bin/llvm-ranlib
\
       --slave /lib/libc++.so libc++.so /opt/$CLANG_PKG/lib/libc++.so \
       --slave /lib/libc++.so.1 libc++.so.1 /opt/$CLANG_PKG/lib/libc++.so.1 \
       --slave /lib/libc++.so.1.0 libc++.so.1.0
/opt/$CLANG_PKG/lib/libc++.so.1.0 \
       --slave /lib/libc++abi.so libc++abi.so /opt/$CLANG_PKG/lib/libc++abi.so
\
       --slave /lib/libc++abi.so.1 libc++abi.so.1
/opt/$CLANG_PKG/lib/libc++abi.so.1 \
       --slave /lib/libc++abi.so.1.0 libc++abi.so.1.0
/opt/$CLANG_PKG/lib/libc++abi.so.1.0 \
       --slave /lib/libomp.so libomp.so /opt/$CLANG_PKG/lib/libomp.so

I'm finding that if I use any version after 5.0.1, clang exhibits a
segmentation fault with the `-g` option passed in.  If I remove the
`-debug-info-kind=limited` command on the invocation below, the segmentation
fault does not happen.  I believe this is a bug that needs to be fixed, but I'd
appreciate the insight of someone more knowledgable with clang.  It seems to be
like more recent versions might be built without the option for ZLIB
compression enabled.

$ /opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0 \
-cc1 \
-triple x86_64-unknown-linux-gnu \
-emit-obj \
--compress-debug-sections \
-disable-free \
-disable-llvm-verifier \
-discard-value-names \
-main-file-name buildinfo_query.cc \
-mrelocation-model static \
-mthread-model posix \
-mdisable-fp-elim \
-fmath-errno \
-masm-verbose \
-mconstructor-aliases \
-munwind-tables \
-fuse-init-array \
-target-cpu x86-64 \
-momit-leaf-frame-pointer \
-dwarf-column-info \
-debug-info-kind=limited \
-dwarf-version=4 \
-debugger-tuning=gdb \
-coverage-notes-file
/proc/self/cwd/bazel-out/k8-py3-opt/bin/devtools/_objs/buildinfo_query/devtools/buildinfo_query.gcno
\
-resource-dir
/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/lib/clang/5.0.2 \
-dependency-file
bazel-out/k8-py3-opt/bin/devtools/_objs/buildinfo_query/devtools/buildinfo_query.d
\
-MT
bazel-out/k8-py3-opt/bin/devtools/_objs/buildinfo_query/devtools/buildinfo_query.o
\
-sys-header-deps \
-iquote . \
-iquote bazel-out/k8-py3-opt/genfiles \
-iquote external/bazel_tools \
-iquote bazel-out/k8-py3-opt/genfiles/external/bazel_tools \
-isystem external/bazel_tools/tools/cpp/gcc3 \
-D NDEBUG \
-internal-isystem
/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/../include/c++/v1 \
-internal-isystem /usr/local/include \
-internal-isystem
/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/lib/clang/5.0.2/include \
-internal-externc-isystem /usr/include/x86_64-linux-gnu \
-internal-externc-isystem /usr/include \
-O3 \
-Wthread-safety \
-Wno-unknown-pragmas \
-Wno-inconsistent-missing-override \
-Wno-deprecated-register \
-Werror \
-Wno-sign-compare \
-Wno-invalid-partial-specialization \
-std=c++1z \
-fdeprecated-macro \
-fdebug-compilation-dir /proc/self/cwd \
-ferror-limit 19 \
-fmessage-length 0 \
-fopenmp \
-fobjc-runtime=gcc \
-fcxx-exceptions \
-fexceptions \
-fdiagnostics-show-option \
-vectorize-loops \
-vectorize-slp \
-o
bazel-out/k8-py3-opt/bin/devtools/_objs/buildinfo_query/devtools/buildinfo_query.o
\
-x c++ devtools/buildinfo_query.cc
#0 0x0000000001a63ae4 PrintStackTraceSignalHandler(void*)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x1a63ae4)
#1 0x0000000001a63dc6 SignalHandler(int)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x1a63dc6)
#2 0x00007fa3729bd390 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#3 0x000000000181e2a4 llvm::Error
llvm::handleErrors<llvm::consumeError(llvm::Error)::{lambda(llvm::ErrorInfoBase
const&)#1}>(llvm::Error,
llvm::consumeError(llvm::Error)::{lambda(llvm::ErrorInfoBase const&)#1}&&)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x181e2a4)
#4 0x0000000001819b37 (anonymous
namespace)::ELFObjectWriter::writeObject(llvm::MCAssembler&, llvm::MCAsmLayout
const&)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x1819b37)
#5 0x000000000182a8bb llvm::MCAssembler::Finish()
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x182a8bb)
#6 0x000000000207ef9c llvm::AsmPrinter::doFinalization(llvm::Module&)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x207ef9c)
#7 0x000000000169b163 llvm::FPPassManager::doFinalization(llvm::Module&)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x169b163)
#8 0x000000000169b561 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x169b561)
#9 0x0000000001ba4dd2 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout
const&, llvm::Module*, clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x1ba4dd2)
#10 0x0000000002298f0d
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x2298f0d)
#11 0x00000000024c5636 clang::ParseAST(clang::Sema&, bool, bool)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x24c5636)
#12 0x0000000001f2cf0f clang::FrontendAction::Execute()
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x1f2cf0f)
#13 0x0000000001ede2b8
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x1ede2b8)
#14 0x0000000001fa94ad
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x1fa94ad)
#15 0x00000000008afd51 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*)
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x8afd51)
#16 0x00000000008ae5e6 main
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x8ae5e6)
#17 0x00007fa371955830 __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x20830)
#18 0x00000000008ab999 _start
(/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0+0x8ab999)
Stack dump:
0.      Program arguments:
/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/clang-5.0 -cc1 -triple
x86_64-unknown-linux-gnu -emit-obj --compress-debug-sections -disable-free
-disable-llvm-verifier -discard-value-names -main-file-name buildinfo_query.cc
-mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno
-masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array
-target-cpu x86-64 -momit-leaf-frame-pointer -dwarf-column-info
-debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb
-coverage-notes-file
/proc/self/cwd/bazel-out/k8-py3-opt/bin/devtools/_objs/buildinfo_query/devtools/buildinfo_query.gcno
-resource-dir
/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/lib/clang/5.0.2
-dependency-file
bazel-out/k8-py3-opt/bin/devtools/_objs/buildinfo_query/devtools/buildinfo_query.d
-MT
bazel-out/k8-py3-opt/bin/devtools/_objs/buildinfo_query/devtools/buildinfo_query.o
-sys-header-deps -iquote . -iquote bazel-out/k8-py3-opt/genfiles -iquote
external/bazel_tools -iquote bazel-out/k8-py3-opt/genfiles/external/bazel_tools
-isystem external/bazel_tools/tools/cpp/gcc3 -D NDEBUG -internal-isystem
/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/bin/../include/c++/v1
-internal-isystem /usr/local/include -internal-isystem
/opt/clang+llvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04/lib/clang/5.0.2/include
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /usr/include -O3 -Wthread-safety -Wno-unknown-pragmas
-Wno-inconsistent-missing-override -Wno-deprecated-register -Werror
-Wno-sign-compare -Wno-invalid-partial-specialization -std=c++1z
-fdeprecated-macro -fdebug-compilation-dir /proc/self/cwd -ferror-limit 19
-fmessage-length 0 -fopenmp -fobjc-runtime=gcc -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -vectorize-loops -vectorize-slp -o
bazel-out/k8-py3-opt/bin/devtools/_objs/buildinfo_query/devtools/buildinfo_query.o
-x c++ devtools/buildinfo_query.cc
1.      <eof> parser at end of file
2.      Code generation
Segmentation fault (core dumped)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20181206/09c68d86/attachment.html>


More information about the llvm-bugs mailing list