Issue 87628
Summary LD.LLD 16.0.0: Broken Module: Fragment is larger than or outside of variable
Labels lld
Assignees
Reporter hmihaylov-sc
    Hello,

I'm compiling a bunch of cmake based projects with different `CMAKE_BUILD_TYPE` options, a mix of static libraries, dynamic libraries, and the main target is an an executable. I am running Ubuntu 22.04 on an x86 laptop. Here's my `clang` output:

```
clang version 16.0.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: <hidden>/llvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
```

And my kernel version:

```
Linux L8M2L224 6.5.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar 12 10:22:43 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
```

When running the build I receive the following exception:

```cpp
fragment is larger than or outside of variable
  call void @llvm.dbg.declare(metadata ptr undef, metadata !1439417, metadata !DIExpression(DW_OP_LLVM_fragment, 72, 56)), !dbg !1439424
!1439417 = !DILocalVariable(name: "__guard", scope: !1439418, file: !61448, line: 1188, type: !146663)
fragment is larger than or outside of variable
  call void @llvm.dbg.value(metadata ptr %2, metadata !1439417, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !1439429
!1439417 = !DILocalVariable(name: "__guard", scope: !1439418, file: !61448, line: 1188, type: !146663)
fragment is larger than or outside of variable
  call void @llvm.dbg.value(metadata i8 0, metadata !1439417, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 8)), !dbg !1439429
!1439417 = !DILocalVariable(name: "__guard", scope: !1439418, file: !61448, line: 1188, type: !146663)
fragment is larger than or outside of variable
  call void @llvm.dbg.declare(metadata ptr undef, metadata !1439485, metadata !DIExpression(DW_OP_LLVM_fragment, 200, 56)), !dbg !1439493
!1439485 = !DILocalVariable(name: "__guard", scope: !1439486, file: !146437, line: 550, type: !146685)
fragment is larger than or outside of variable
  call void @llvm.dbg.value(metadata ptr %2, metadata !1439485, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !1439495
!1439485 = !DILocalVariable(name: "__guard", scope: !1439486, file: !146437, line: 550, type: !146685)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr undef, metadata !1439485, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !1439495
!1439485 = !DILocalVariable(name: "__guard", scope: !1439486, file: !146437, line: 550, type: !146685)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr undef, metadata !1439485, metadata !DIExpression(DW_OP_LLVM_fragment, 128, 64)), !dbg !1439495
!1439485 = !DILocalVariable(name: "__guard", scope: !1439486, file: !146437, line: 550, type: !146685)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata i8 0, metadata !1439485, metadata !DIExpression(DW_OP_LLVM_fragment, 192, 8)), !dbg !1439495
!1439485 = !DILocalVariable(name: "__guard", scope: !1439486, file: !146437, line: 550, type: !146685)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata i8 1, metadata !1439485, metadata !DIExpression(DW_OP_LLVM_fragment, 192, 8)), !dbg !1439495
!1439485 = !DILocalVariable(name: "__guard", scope: !1439486, file: !146437, line: 550, type: !146685)
fragment is larger than or outside of variable
 call void @llvm.dbg.declare(metadata ptr undef, metadata !1569610, metadata !DIExpression(DW_OP_LLVM_fragment, 72, 56)), !dbg !1569623
!1569610 = !DILocalVariable(name: "__guard", scope: !1569611, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr %0, metadata !1569610, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !1569631
!1569610 = !DILocalVariable(name: "__guard", scope: !1569611, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata i8 0, metadata !1569610, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 8)), !dbg !1569631
!1569610 = !DILocalVariable(name: "__guard", scope: !1569611, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.declare(metadata ptr undef, metadata !1570258, metadata !DIExpression(DW_OP_LLVM_fragment, 72, 56)), !dbg !1570271
!1570258 = !DILocalVariable(name: "__guard", scope: !1570259, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr %0, metadata !1570258, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !1570279
!1570258 = !DILocalVariable(name: "__guard", scope: !1570259, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata i8 0, metadata !1570258, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 8)), !dbg !1570279
!1570258 = !DILocalVariable(name: "__guard", scope: !1570259, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.declare(metadata ptr undef, metadata !1597700, metadata !DIExpression(DW_OP_LLVM_fragment, 200, 56)), !dbg !1597708
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
 call void @llvm.dbg.declare(metadata ptr undef, metadata !1597700, metadata !DIExpression(DW_OP_LLVM_fragment, 200, 56)), !dbg !1597719
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr %0, metadata !1597700, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !1597870
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
  call void @llvm.dbg.value(metadata ptr undef, metadata !1597700, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !1597870
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
  call void @llvm.dbg.value(metadata ptr undef, metadata !1597700, metadata !DIExpression(DW_OP_LLVM_fragment, 128, 64)), !dbg !1597870
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
  call void @llvm.dbg.value(metadata i8 0, metadata !1597700, metadata !DIExpression(DW_OP_LLVM_fragment, 192, 8)), !dbg !1597870
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
  call void @llvm.dbg.value(metadata ptr %0, metadata !1597700, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !1598120
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr undef, metadata !1597700, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !1598120
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr undef, metadata !1597700, metadata !DIExpression(DW_OP_LLVM_fragment, 128, 64)), !dbg !1598120
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata i8 0, metadata !1597700, metadata !DIExpression(DW_OP_LLVM_fragment, 192, 8)), !dbg !1598120
!1597700 = !DILocalVariable(name: "__guard", scope: !1597701, file: !146437, line: 550, type: !146626)
fragment is larger than or outside of variable
 call void @llvm.dbg.declare(metadata ptr undef, metadata !1707387, metadata !DIExpression(DW_OP_LLVM_fragment, 72, 56)), !dbg !1707400
!1707387 = !DILocalVariable(name: "__guard", scope: !1707388, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr %0, metadata !1707387, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !1707410
!1707387 = !DILocalVariable(name: "__guard", scope: !1707388, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata i8 0, metadata !1707387, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 8)), !dbg !1707410
!1707387 = !DILocalVariable(name: "__guard", scope: !1707388, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.declare(metadata ptr undef, metadata !2172123, metadata !DIExpression(DW_OP_LLVM_fragment, 72, 56)), !dbg !2172134
!2172123 = !DILocalVariable(name: "__guard", scope: !2172124, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata ptr %0, metadata !2172123, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !2172142
!2172123 = !DILocalVariable(name: "__guard", scope: !2172124, file: !61448, line: 1153, type: !146604)
fragment is larger than or outside of variable
 call void @llvm.dbg.value(metadata i8 0, metadata !2172123, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 8)), !dbg !2172142
!2172123 = !DILocalVariable(name: "__guard", scope: !2172124, file: !61448, line: 1153, type: !146604)
LLVM ERROR: Broken module found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ld.lld -pie -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o ht_app_min/ht_app_min /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L<hidden> -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/lib -L/usr/lib -rpath=${ORIGIN} -Bstatic -lc++abi -Bdynamic --build-id --gc-sections ht_app_min/CMakeFiles/ht_app_min.dir/main.cpp.o -rpath $ORIGIN dep_spectacles-hand-tracking/modules/SpectaclesHandTracking/libSpectaclesHandTracking.a app_tools_min/libapp_tools_min.a dep_spectacles-hand-tracking/modules/SpectaclesHandTrackingTools/libSpectaclesHandTrackingTools.a dep_spectacles-hand-tracking/modules/SpectaclesHandTracking/libSpectaclesHandTracking.a <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> -lm <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> <hidden> -lpthread <hidden> -ldl <hidden> -lm -lpthread -lrt <hidden> -Bstatic -lc++ -Bdynamic -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /lib/x86_64-linux-gnu/crtn.o
 #0 0x0000584bd3560e78 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (llvm/bin/ld.lld+0xb60e78)
 #1 0x0000584bd355edbe llvm::sys::RunSignalHandlers() (llvm/bin/ld.lld+0xb5edbe)
 #2 0x0000584bd35617bd SignalHandler(int) Signals.cpp:0:0
 #3 0x00007bcc5f242520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007bcc5f2969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x00007bcc5f242476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007bcc5f2287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x0000584bd3513d7c llvm::report_fatal_error(llvm::Twine const&, bool) (llvm/bin/ld.lld+0xb13d7c)
 #8 0x0000584bd3513ba6 (llvm/bin/ld.lld+0xb13ba6)
 #9 0x0000584bd64b7e5c (llvm/bin/ld.lld+0x3ab7e5c)
#10 0x0000584bd4dc438d llvm::detail::PassModel<llvm::Module, llvm::VerifierPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (llvm/bin/ld.lld+0x23c438d)
#11 0x0000584bd648ee87 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (llvm/bin/ld.lld+0x3a8ee87)
#12 0x0000584bd4dbe58e llvm::lto::opt(llvm::lto::Config const&, llvm::TargetMachine*, unsigned int, llvm::Module&, bool, llvm::ModuleSummaryIndex*, llvm::ModuleSummaryIndex const*, std::vector<unsigned char, std::allocator<unsigned char>> const&) (llvm/bin/ld.lld+0x23be58e)
#13 0x0000584bd4dbf11d llvm::lto::backend(llvm::lto::Config const&, std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex&) (llvm/bin/ld.lld+0x23bf11d)
#14 0x0000584bd4db2d7c llvm::lto::LTO::runRegularLTO(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) (llvm/bin/ld.lld+0x23b2d7c)
#15 0x0000584bd4db2605 llvm::lto::LTO::run(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, std::function<llvm::Expected<std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>> (unsigned int, llvm::StringRef, llvm::Twine const&)>) (llvm/bin/ld.lld+0x23b2605)
#16 0x0000584bd36ec145 lld::elf::BitcodeCompiler::compile() (llvm/bin/ld.lld+0xcec145)
#17 0x0000584bd3668ec4 void lld::elf::LinkerDriver::compileBitcodeFiles<llvm::object::ELFType<(llvm::support::endianness)1, true>>(bool) (llvm/bin/ld.lld+0xc68ec4)
#18 0x0000584bd36649a2 lld::elf::LinkerDriver::link(llvm::opt::InputArgList&) (llvm/bin/ld.lld+0xc649a2)
#19 0x0000584bd365865a lld::elf::LinkerDriver::linkerMain(llvm::ArrayRef<char const*>) (llvm/bin/ld.lld+0xc5865a)
#20 0x0000584bd3656d63 lld::elf::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) (llvm/bin/ld.lld+0xc56d63)
#21 0x0000584bd34f968e lldMain(int, char const**, llvm::raw_ostream&, llvm::raw_ostream&, bool) lld.cpp:0:0
#22 0x0000584bd34f8e4a lld_main(int, char**) (llvm/bin/ld.lld+0xaf8e4a)
#23 0x00007bcc5f229d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#24 0x00007bcc5f229e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#25 0x0000584bd34f89ca _start (llvm/bin/ld.lld+0xaf89ca)
```

Do you need any other information about my system?
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to