Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debugging multiple test failures in Cling #534

Open
1 task done
Apteryks opened this issue Sep 21, 2024 · 2 comments
Open
1 task done

Debugging multiple test failures in Cling #534

Apteryks opened this issue Sep 21, 2024 · 2 comments
Assignees
Labels

Comments

@Apteryks
Copy link
Contributor

Apteryks commented Sep 21, 2024

  • Checked for duplicates

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 #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 Apteryks added the bug label Sep 21, 2024
@Apteryks
Copy link
Contributor Author

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.

@Apteryks
Copy link
Contributor Author

Apteryks commented Sep 22, 2024

I've fixed the Clang headers not being found (a custom patch needed updating; the clang headers are now installed to lib/clang/16/, not lib/clang/16.0.0/). The tests summary is now:

Testing Time: 1.21s

Total Discovered Tests: 190
  Unsupported      : 14 (7.37%)
  Passed           : 89 (46.84%)
  Expectedly Failed: 13 (6.84%)
  Failed           : 74 (38.95%)

Attached is the new complete build log.
22yflwihr8gn6h711x0lw4prh0qm31c5-cling-1.1.drv.txt

The cling-bug534-repro repro branch has also been updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants