root-project / cling

The cling C++ interpreter
Other
3.46k stars 268 forks source link

Debugging multiple test failures in Cling #534

Open Apteryks opened 6 hours ago

Apteryks commented 6 hours ago

Describe the bug

After glibc got upgraded to 2.39, among other core dependencies, I've started having segmentation faults again with cling, for example I now reproduce the segfault from the recipe in https://github.com/root-project/cling/issues/451.

I've tried updating Cling from 1.0 to 1.1, using root-project with tag llvm-cling16-20240621-02, and the cling source at tag 1.1. Every component get built separately (different packages) as a shared library, the same LLVM gets built in Guix:

  1. llvm-cling (the Cling LLVM variant)
  2. clang-cling-runtime (the clang-runtime cling variant)
  3. clang-cling (the Cling Clang variant)
  4. cling

Expected behavior

The test suite should pass.

To Reproduce

This can be reproduced using GNU Guix, a package/environment manager that can be installed on top of any GNU/Linux distribution.

  1. Install Guix with https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
  2. Update Guix with guix pull
  3. If you use Fedora you'll need to disable the SELinux, as Guix doesn't support it yet.
  4. Re-login to complete installation.
  5. Build cling with: guix time-machine -q --url=https://gitlab.com/apteryks/guix --branch=cling-bug534-repro -- build cling
  6. Observe the build fail with (see the full log attached).
********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.
FAIL: Cling :: Prompt/ValuePrinter/Ptrs.C (187 of 190)
******************** TEST 'Cling :: Prompt/ValuePrinter/Ptrs.C' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 10: cat /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Ptrs.C | /tmp/guix-build-cling-1.1.drv-0/build/bin/cling --nologo -I/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/tools/clang/include | /gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/bin/FileCheck /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Ptrs.C
+ cat /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Ptrs.C
+ /tmp/guix-build-cling-1.1.drv-0/build/bin/cling --nologo -I/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/tools/clang/include
+ /gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/bin/FileCheck /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Ptrs.C
In file included from input_line_12:1:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/memory:77:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/bits/shared_ptr.h:52:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/iosfwd:40:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/bits/postypes.h:40:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/cwchar:44:
/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/include/wchar.h:35:10: fatal error: 'stddef.h' file not found
#include <stddef.h>
         ^~~~~~~~~~
In file included from input_line_14:1:
In file included from /tmp/guix-build-cling-1.1.drv-0/source/include/cling/Interpreter/RuntimePrintValue.h:20:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/filesystem:44:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/bits/fs_fwd.h:35:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/system_error:39:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/x86_64-unknown-linux-gnu/bits/error_constants.h:34:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/cerrno:42:
In file included from /gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/include/errno.h:28:
/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/include/bits/errno.h:26:11: fatal error: 'linux/errno.h' file not found
# include <linux/errno.h>
          ^~~~~~~~~~~~~~~
 #0 0x00007ffff0c348b1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/lib/libLLVM-16.so+0xe348b1)
 #1 0x00007ffff0c322de (/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/lib/libLLVM-16.so+0xe322de)
 #2 0x00007fffefc60560 __restore_rt (/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6+0x3e560)
 #3 0x000000000091246d (anonymous namespace)::printUnpackedClingValue(cling::Value const&) ValuePrinter.cpp:0:0
 #4 0x0000000000914a36 cling::valuePrinterInternal::printValueInternal[abi:cxx11](cling::Value const&) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x914a36)
 #5 0x000000000090ca9e cling::Value::print(llvm::raw_ostream&, bool) const (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x90ca9e)
 #6 0x00007ffff7e5d03d 
 #7 0x00000000008c3250 cling::IncrementalExecutor::executeWrapper(llvm::StringRef, cling::Value*) const (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x8c3250)
 #8 0x00000000008d98fa cling::Interpreter::RunFunction(clang::FunctionDecl const*, cling::Value*) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x8d98fa)
 #9 0x00000000008d9f97 cling::Interpreter::EvaluateInternal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, cling::CompilationOptions, cling::Value*, cling::Transaction**, unsigned long) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x8d9f97)
#10 0x00000000008da306 cling::Interpreter::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, cling::Value*, cling::Transaction**, bool) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x8da306)
#11 0x0000000000924967 cling::MetaProcessor::process(llvm::StringRef, cling::Interpreter::CompilationResult&, cling::Value*, bool) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x924967)
#12 0x000000000093c303 cling::UserInterface::runInteractively(bool) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x93c303)
#13 0x00000000007e360d main (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x7e360d)
#14 0x00007fffefc4bbf7 __libc_start_call_main (/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6+0x29bf7)
#15 0x00007fffefc4bcac __libc_start_main@GLIBC_2.2.5 (/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6+0x29cac)
#16 0x00000000007f4731 _start (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x7f4731)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.  Program arguments: /tmp/guix-build-cling-1.1.drv-0/build/bin/cling --nologo -I/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/tools/clang/include
/tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Ptrs.C:21:10: error: CHECK: expected string not found in input
//CHECK: (int *) [[PTR:0x[0-9a-f]+]] 
         ^
<stdin>:1:16: note: scanning from here
(int *) nullptr
               ^

Input file: <stdin>
Check file: /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Ptrs.C

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          1: (int *) nullptr 
check:21                    X error: no match found
>>>>>>

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
FAIL: Cling :: Prompt/OutputRedirect.C (188 of 190)
******************** TEST 'Cling :: Prompt/OutputRedirect.C' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: cat /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/OutputRedirect.C | /tmp/guix-build-cling-1.1.drv-0/build/bin/cling --nologo -I/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/tools/clang/include -DCLING_TMP="\"/tmp/guix-build-cling-1.1.drv-0/build/test/Prompt/Output\"" | /gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/bin/FileCheck --check-prefix=CHECKOUT /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/OutputRedirect.C
+ /gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/bin/FileCheck --check-prefix=CHECKOUT /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/OutputRedirect.C
+ cat /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/OutputRedirect.C
+ /tmp/guix-build-cling-1.1.drv-0/build/bin/cling --nologo -I/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/tools/clang/include '-DCLING_TMP="/tmp/guix-build-cling-1.1.drv-0/build/test/Prompt/Output"'
In file included from input_line_11:1:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/iostream:39:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/ostream:38:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/ios:38:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/iosfwd:40:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/bits/postypes.h:40:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/cwchar:44:
/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/include/wchar.h:35:10: fatal error: 'stddef.h' file not found
#include <stddef.h>
         ^~~~~~~~~~
In file included from input_line_18:1:
In file included from /tmp/guix-build-cling-1.1.drv-0/source/include/cling/Interpreter/RuntimePrintValue.h:20:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/filesystem:44:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/bits/fs_fwd.h:35:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/system_error:39:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/x86_64-unknown-linux-gnu/bits/error_constants.h:34:
In file included from /gnu/store/86fc8bi3mciljxz7c79jx8zr4wsx7xw8-gcc-11.4.0/include/c++/cerrno:42:
In file included from /gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/include/errno.h:28:
/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/include/bits/errno.h:26:11: fatal error: 'linux/errno.h' file not found
# include <linux/errno.h>
          ^~~~~~~~~~~~~~~
/tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/OutputRedirect.C:27:13: error: CHECKOUT: expected string not found in input
//CHECKOUT: Error into stdout.
            ^
<stdin>:1:18: note: scanning from here
(double) 0.50000000
                 ^
<stdin>:2:65: note: possible intended match here
 #0 0x00007ffff0c348b1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/lib/libLLVM-16.so+0xe348b1)
                                                                ^

Input file: <stdin>
Check file: /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/OutputRedirect.C

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: (double) 0.50000000 
check:27'0                      X~~ error: no match found
            2:  #0 0x00007ffff0c348b1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/lib/libLLVM-16.so+0xe348b1) 
check:27'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:27'1                                                                     ?                                                                                                              possible intended match
            3:  #1 0x00007ffff0c322de (/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/lib/libLLVM-16.so+0xe322de) 
check:27'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            4:  #2 0x00007fffefc60560 __restore_rt (/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6+0x3e560) 
check:27'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            5:  #3 0x000000000288ee71 clang::CXXBasePaths::lookupInBases(clang::ASTContext&, clang::CXXRecordDecl const*, llvm::function_ref<bool (clang::CXXBaseSpecifier const*, clang::CXXBasePath&)>, bool) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x288ee71) 
check:27'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            6:  #4 0x000000000288f32d clang::CXXBasePaths::lookupInBases(clang::ASTContext&, clang::CXXRecordDecl const*, llvm::function_ref<bool (clang::CXXBaseSpecifier const*, clang::CXXBasePath&)>, bool) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x288f32d) 
check:27'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            7:  #5 0x0000000002893d44 clang::CXXRecordDecl::lookupInBases(llvm::function_ref<bool (clang::CXXBaseSpecifier const*, clang::CXXBasePath&)>, clang::CXXBasePaths&, bool) const (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x2893d44) 
check:27'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            .
            .
            .
>>>>>>

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
FAIL: Cling :: Prompt/ValuePrinter/Collections.C (189 of 190)
******************** TEST 'Cling :: Prompt/ValuePrinter/Collections.C' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 10: cat /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Collections.C | /tmp/guix-build-cling-1.1.drv-0/build/bin/cling --nologo -I/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/tools/clang/include -Xclang -verify 2>&1 | /gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/bin/FileCheck /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Collections.C
+ cat /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Collections.C
+ /tmp/guix-build-cling-1.1.drv-0/build/bin/cling --nologo -I/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/tools/clang/include -Xclang -verify
+ /gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/bin/FileCheck /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Collections.C
/tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Collections.C:19:11: error: CHECK: expected string not found in input
// CHECK: (std::vector<bool> &) { true, true, true, true, true }
          ^
<stdin>:1:1: note: scanning from here
 #0 0x00007ffff0c348b1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/lib/libLLVM-16.so+0xe348b1)
^
<stdin>:18:57: note: possible intended match here
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
                                                        ^

Input file: <stdin>
Check file: /tmp/guix-build-cling-1.1.drv-0/source/test/Prompt/ValuePrinter/Collections.C

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1:  #0 0x00007ffff0c348b1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/lib/libLLVM-16.so+0xe348b1) 
check:19'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
            2:  #1 0x00007ffff0c322de (/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/lib/libLLVM-16.so+0xe322de) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            3:  #2 0x00007fffefc60560 __restore_rt (/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6+0x3e560) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            4:  #3 0x000000000091246d (anonymous namespace)::printUnpackedClingValue(cling::Value const&) ValuePrinter.cpp:0:0 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            5:  #4 0x0000000000914a36 cling::valuePrinterInternal::printValueInternal[abi:cxx11](cling::Value const&) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x914a36) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            6:  #5 0x000000000090ca9e cling::Value::print(llvm::raw_ostream&, bool) const (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x90ca9e) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            .
            .
            .
           13: #12 0x000000000093c303 cling::UserInterface::runInteractively(bool) (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x93c303) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           14: #13 0x00000000007e360d main (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x7e360d) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           15: #14 0x00007fffefc4bbf7 __libc_start_call_main (/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6+0x29bf7) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           16: #15 0x00007fffefc4bcac __libc_start_main@GLIBC_2.2.5 (/gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6+0x29cac) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           17: #16 0x00000000007f4731 _start (/tmp/guix-build-cling-1.1.drv-0/build/bin/cling+0x7f4731) 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           18: PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:19'1                                                             ?                                                    possible intended match
           19: Stack dump: 
check:19'0     ~~~~~~~~~~~~
           20: 0. Program arguments: /tmp/guix-build-cling-1.1.drv-0/build/bin/cling --nologo -I/gnu/store/i2z67ah1756rrir5zmv0ypdqs7nky8p1-llvm-cling-16-20240621-02/tools/clang/include -Xclang -verify 
check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
********************
Failed Tests (79):
  Cling :: CodeGeneration/RecursiveInit.C
  Cling :: CodeGeneration/Statics.C
  Cling :: CodeGeneration/const.C
  Cling :: CodeUnloading/AtExit.C
  Cling :: CodeUnloading/Classes.C
  Cling :: CodeUnloading/DeclShadowing.C
  Cling :: CodeUnloading/Macros.C
  Cling :: CodeUnloading/PCH/VTables.C
  Cling :: Driver/CommandHistory.C
  Cling :: Driver/CurrentDirRm.C
  Cling :: Driver/Shebang.C
  Cling :: Driver/StartupFile.C
  Cling :: DynamicLibraryManager/cached_realpath.C
  Cling :: DynamicLibraryManager/library_path.C
  Cling :: ErrorRecovery/AnonymousDecls.C
  Cling :: ErrorRecovery/Diagnostics.C
  Cling :: ErrorRecovery/IncompleteType.C
  Cling :: ErrorRecovery/Lamda.C
  Cling :: ErrorRecovery/MacroExpansion.C
  Cling :: ErrorRecovery/Redeclarables.C
  Cling :: ErrorRecovery/SubsequentDecls.C
  Cling :: Extensions/Lookup/Arrays.C
  Cling :: Extensions/Lookup/ControlFlow.C
  Cling :: Extensions/Lookup/LifetimeHandler.C
  Cling :: Extensions/Lookup/Simple.C
  Cling :: Extensions/Lookup/SimpleDynamicExprs.C
  Cling :: Extensions/Lookup/StillError.C
  Cling :: Interfaces/Macro.C
  Cling :: Interfaces/address.C
  Cling :: Interfaces/compileFunc.C
  Cling :: Interfaces/echo.C
  Cling :: Interfaces/evaluate.C
  Cling :: Interfaces/execute.C
  Cling :: Interfaces/invocationFlags.C
  Cling :: Interfaces/paths.C
  Cling :: Interfaces/print.C
  Cling :: Interfaces/transactionReuse.C
  Cling :: LibraryCall/library_path.C
  Cling :: Lookup/args.C
  Cling :: Lookup/data.C
  Cling :: Lookup/func.C
  Cling :: Lookup/linkageSpec.C
  Cling :: Lookup/named.C
  Cling :: Lookup/scope.C
  Cling :: Lookup/tag.C
  Cling :: Lookup/template.C
  Cling :: Lookup/type.C
  Cling :: MultipleInterpreters/MultipleInterpreters.C
  Cling :: NullDeref/ExecutionTermination.C
  Cling :: NullDeref/If.C
  Cling :: NullDeref/NonNullArg.C
  Cling :: Pragmas/add_env_path.C
  Cling :: Pragmas/load.C
  Cling :: Pragmas/opt.C
  Cling :: Prompt/BlockComments.C
  Cling :: Prompt/Continuation.C
  Cling :: Prompt/DontWrap.C
  Cling :: Prompt/MetaProcessor/DotO.C
  Cling :: Prompt/MetaProcessor/InputValidator.C
  Cling :: Prompt/MetaProcessor/Regression.C
  Cling :: Prompt/OutputRedirect.C
  Cling :: Prompt/PreprocessorIf.C
  Cling :: Prompt/RecursiveGlobalInits.C
  Cling :: Prompt/Regression.C
  Cling :: Prompt/ValuePrinter/Assignments.C
  Cling :: Prompt/ValuePrinter/Collections.C
  Cling :: Prompt/ValuePrinter/Destruction.C
  Cling :: Prompt/ValuePrinter/Ptrs.C
  Cling :: Prompt/ValuePrinter/Regression.C
  Cling :: Prompt/ValuePrinter/SourceLocation.C
  Cling :: Prompt/ValuePrinter/Strings.C
  Cling :: Prompt/ValuePrinter/TuplesAndPairs.C
  Cling :: Prompt/decls.C
  Cling :: Prompt/globalinit.C
  Cling :: Recursion/Exceptions.C
  Cling :: Recursion/RecursiveClingInstances.C
  Cling :: SourceCall/ErrorMacro.C
  Cling :: SourceCall/decls.C
  Cling :: Utils/Transform.C

Testing Time: 1.28s

Total Discovered Tests: 190
  Unsupported      : 14 (7.37%)
  Passed           : 84 (44.21%)
  Expectedly Failed: 13 (6.84%)
  Failed           : 79 (41.58%)
make[3]: *** [test/CMakeFiles/check-cling.dir/build.make:74: test/CMakeFiles/check-cling] Error 1
make[3]: Leaving directory '/tmp/guix-build-cling-1.1.drv-0/build'
make[2]: *** [CMakeFiles/Makefile2:763: test/CMakeFiles/check-cling.dir/all] Error 2
make[2]: Leaving directory '/tmp/guix-build-cling-1.1.drv-0/build'
make[1]: *** [CMakeFiles/Makefile2:770: test/CMakeFiles/check-cling.dir/rule] Error 2
make[1]: Leaving directory '/tmp/guix-build-cling-1.1.drv-0/build'
make: *** [Makefile:367: check-cling] Error 2

Test suite failed, dumping logs.
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("check-cling" "-j" "32") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `check' failed after 1.5 seconds
command "make" "check-cling" "-j" "32" failed with status 2
build process 18 exited with status 256
note: keeping build directory `/tmp/guix-build-cling-1.1.drv-0'
builder for `/gnu/store/m025m5jii2gbg4byqqp29yriw4m2rxz3-cling-1.1.drv' failed with exit code 1
build of /gnu/store/m025m5jii2gbg4byqqp29yriw4m2rxz3-cling-1.1.drv failed
View build log at '/var/log/guix/drvs/m0/25m5jii2gbg4byqqp29yriw4m2rxz3-cling-1.1.drv'.
guix build: error: build of `/gnu/store/m025m5jii2gbg4byqqp29yriw4m2rxz3-cling-1.1.drv' failed

Setup

  1. Cling version: 1.1
  2. Operating system: GNU Guix
  3. How you obtained Cling: Source build using Guix

Additional context

If I disable the test suite, cling builds and runs fine, but there's a problem locating headers:

$ cling '#include <stdio.h>'
In file included from input_line_3:1:
/gnu/store/bs6q65ds38ns2v1m5wf7jgxbz2cx4189-profile/include/stdio.h:34:10: fatal error: 'stddef.h' file not found
#include <stddef.h>
         ^~~~~~~~~~

It seems this header comes from either the linux-headers (which are already in the gcc-toolchain environment, under the linux/ prefix there) or from clang, where it's directly its include/ directory.

A couple questions I have:

  1. Which headers is cling expected to be used with? Its matching clang headers, or the headers of the GCC toolchain it was built with?
  2. Guix being a non-FHS distro, locating the headers is patched in the packaging to find the ones of GCC, along its libstdc++ library. Is this correct?

Other thoughts or tips to debug this would be much appreciated. Thank you! m025m5jii2gbg4byqqp29yriw4m2rxz3-cling-1.1.drv.txt

Apteryks commented 6 hours ago

The test suite (which is run at packaging time) is run in a containerized environment where this is no networking other than the loopback interface. There is no HOME by default and no root user either.