mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 04:56:07 +00:00

relocateNonAlloc is costly for .debug_* section relocating. We don't want to burn CPU cycles on other targets' workarounds. Remove a temporary workaround for Linux objtool after a proper fix https://git.kernel.org/linus/b8ec60e1186cdcfce41e7db4c827cb107e459002 Move the R_386_GOTPC workaround for GCC<8 beside the R_PC workaround.
35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
# REQUIRES: x86
|
|
|
|
# RUN: yaml2obj %s -o %t.o
|
|
# RUN: ld.lld %t.o -o /dev/null --entry 0 2>&1 | FileCheck %s
|
|
# CHECK: warning: {{.*}}:(.debug_info+0x41f): has non-ABS relocation R_386_GOTPC against symbol '_GLOBAL_OFFSET_TABLE_'
|
|
|
|
## This is for https://bugs.llvm.org//show_bug.cgi?id=34852. GCC 8.0 or
|
|
## earlier have a bug which creates non-absolute R_386_GOTPC relocations
|
|
## in non-allocated sections. It is illegal, but we want to make sure that
|
|
## lld skips them instead of reporting errors.
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS32
|
|
Data: ELFDATA2LSB
|
|
Type: ET_REL
|
|
Machine: EM_386
|
|
Sections:
|
|
- Name: .debug_info
|
|
Type: SHT_PROGBITS
|
|
AddressAlign: 0x0000000000000001
|
|
Content: 0000000000000000
|
|
- Name: .rel.debug_info
|
|
Type: SHT_REL
|
|
Link: .symtab
|
|
AddressAlign: 0x0000000000000004
|
|
Info: .debug_info
|
|
Relocations:
|
|
- Offset: 0x000000000000041F
|
|
Symbol: _GLOBAL_OFFSET_TABLE_
|
|
Type: R_386_GOTPC
|
|
Symbols:
|
|
- Name: _GLOBAL_OFFSET_TABLE_
|
|
Binding: STB_GLOBAL
|