intel / intel/llvm

program_manager unit tests failing with libcxx

Open
#19,597 0 comments 0 reactions 0 assignees View on GitHub
bug confirmed
Dominant language
LLVM
Stars
1.5k
Forks
854
Avg merge
3d 17h
Merged PRs (30d)
137

Description

### Describe the bug

Failing when the compiler is built with `LLVM_ENABLE_LIBCXX=1` and `CXX=clang++`

```
2025-07-25T18:05:47.1310918Z SYCL-Unit :: program_manager/./ProgramManagerTests/ImageRemoval/BaseContainers
2025-07-25T18:05:47.1312834Z SYCL-Unit :: program_manager/DynamicLinking/./DynamicLinkingTests/10/13
2025-07-25T18:05:47.1314355Z SYCL-Unit :: program_manager/DynamicLinking/./DynamicLinkingTests/11/13
2025-07-25T18:05:47.1315913Z SYCL-Unit :: program_manager/DynamicLinking/./DynamicLinkingTests/12/13
2025-07-25T18:05:47.1317408Z SYCL-Unit :: program_manager/DynamicLinking/./DynamicLinkingTests/2/13
2025-07-25T18:05:47.1319138Z SYCL-Unit :: program_manager/DynamicLinking/./DynamicLinkingTests/8/13
2025-07-25T18:05:47.1320136Z SYCL-Unit :: program_manager/DynamicLinking/./DynamicLinkingTests/9/13
```

https://github.com/intel/llvm/actions/runs/16528335388/job/46747217225

Logs are long, one example

```
2025-07-25T18:04:59.4063980Z # executed command: /__w/llvm/llvm/build/bin/clang --driver-mode=g++ -fsycl /__w/llvm/llvm/src/sycl/test/regression/check_config_processing.cpp -o /__w/llvm/llvm/build/tools/sycl/test/regression/Output/check_config_processing.cpp.tmp.out
2025-07-25T18:04:59.4065699Z # .---command stderr------------
2025-07-25T18:04:59.4067111Z # | /usr/bin/ld: /tmp/lit-tmp-19gc68u4/check_config_processing-dc56c9.o: in function `sycl::_V1::buffer, void>::buffer(sycl::_V1::range<1> const&, sycl::_V1::property_list const&, sycl::_V1::detail::code_location)':
2025-07-25T18:04:59.4070746Z # | check_config_processing.cpp:(.text._ZN4sycl3_V16bufferIiLi1ENS0_6detail17aligned_allocatorIiEEvEC2ERKNS0_5rangeILi1EEERKNS0_13property_listENS2_13code_locationE[_ZN4sycl3_V16bufferIiLi1ENS0_6detail17aligned_allocatorIiEEvEC2ERKNS0_5rangeILi1EEERKNS0_13property_listENS2_13code_locationE]+0x77): undefined reference to `sycl::_V1::detail::buffer_plain::buffer_plain(unsigned long, unsigned long, sycl::_V1::property_list const&, std::unique_ptr >)'
2025-07-25T18:04:59.4074794Z # | /usr/bin/ld: /tmp/lit-tmp-19gc68u4/check_config_processing-dc56c9.o: in function `sycl::_V1::accessor >::throwIfUsedByGraph() const':
2025-07-25T18:04:59.4078273Z # | check_config_processing.cpp:(.text._ZNK4sycl3_V18accessorIiLi1ELNS0_6access4modeE1026ELNS2_6targetE2018ELNS2_11placeholderE0ENS0_3ext6oneapi22accessor_property_listIJEEEE18throwIfUsedByGraphEv[_ZNK4sycl3_V18accessorIiLi1ELNS0_6access4modeE1026ELNS2_6targetE2018ELNS2_11placeholderE0ENS0_3ext6oneapi22accessor_property_listIJEEEE18throwIfUsedByGraphEv]+0x4f): undefined reference to `sycl::_V1::exception::exception(std::error_code, char const*)'
2025-07-25T18:04:59.4081903Z # | /usr/bin/ld: /tmp/lit-tmp-19gc68u4/check_config_processing-dc56c9.o: in function `sycl::_V1::accessor >::preScreenAccessor(sycl::_V1::ext::oneapi::accessor_property_list<> const&)':
2025-07-25T18:04:59.4086657Z # | check_config_processing.cpp:(.text._ZN4sycl3_V18accessorIiLi1ELNS0_6access4modeE1026ELNS2_6targetE2018ELNS2_11placeholderE0ENS0_3ext6oneapi22accessor_property_listIJEEEE17preScreenAccessorERKS9_[_ZN4sycl3_V18accessorIiLi1ELNS0_6access4modeE1026ELNS2_6targetE2018ELNS2_11placeholderE0ENS0_3ext6oneapi22accessor_property_listIJEEEE17preScreenAccessorERKS9_]+0x5b): undefined reference to `sycl::_V1::exception::exception(std::error_code, char const*)'
2025-07-25T18:04:59.4089682Z # | /usr/bin/ld: /tmp/lit-tmp-19gc68u4/check_config_processing-dc56c9.o: in function `sycl::_V1::detail::array<1>::operator[](int)':
2025-07-25T18:04:59.4091463Z # | check_config_processing.cpp:(.text._ZN4sycl3_V16detail5arrayILi1EEixEi[_ZN4sycl3_V16detail5arrayILi1EEixEi]+0x61): undefined reference to `sycl::_V1::exception::exception(std::error_code, char const*)'
2025-07-25T18:04:59.4093301Z # | /usr/bin/ld: /tmp/lit-tmp-19gc68u4/check_config_processing-dc56c9.o: in function `sycl::_V1::detail::array<3>::operator[](int)':
2025-07-25T18:04:59.4095067Z # | check_config_processing.cpp:(.text._ZN4sycl3_V16detail5arrayILi3EEixEi[_ZN4sycl3_V16detail5arrayILi3EEixEi]+0x61): undefined reference to `sycl::_V1::exception::exception(std::error_code, char const*)'
2025-07-25T18:04:59.4096985Z # | /usr/bin/ld: /tmp/lit-tmp-19gc68u4/check_config_processing-dc56c9.o: in function `sycl::_V1::detail::array<1>::operator[](int) const':
2025-07-25T18:04:59.4098654Z # | check_config_processing.cpp:(.text._ZNK4sycl3_V16detail5arrayILi1EEixEi[_ZNK4sycl3_V16detail5arrayILi1EEixEi]+0x61): undefined reference to `sycl::_V1::exception::exception(std::error_code, char const*)'
2025-07-25T18:04:59.4100216Z # | clang: error: linker command failed with exit code 1 (use -v to see invocation)
2025-07-25T18:04:59.4100935Z # `-----------------------------
```

### To reproduce

_No response_

### Environment

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

The failure is in SYCL program_manager unit tests, with check_config_processing.cpp showing linker errors under LLVM_ENABLE_LIBCXX=1 and CXX=clang++. Start by reproducing the cited CI failure and inspect the program_manager tests and generated link command. Done means the affected tests pass in that libc++ configuration without the undefined references.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.