History log of /llvm-project/llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp (Results 1 – 25 of 42)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2
# 32a6e9d6 19-Mar-2024 Jonas Devlieghere <jonas@devlieghere.com>

[dsymutil] Remove support for obfuscated bitcode (#85713)

Remove support for obfuscated bitcode in dsymutil and the DWARF linker.
We no longer support bitcode submissions and the obfuscation suppor

[dsymutil] Remove support for obfuscated bitcode (#85713)

Remove support for obfuscated bitcode in dsymutil and the DWARF linker.
We no longer support bitcode submissions and the obfuscation support has
been removed from the rest of the compiler.

rdar://123863918

show more ...


# 3176c157 19-Mar-2024 Andres Villegas <andresvi@google.com>

Revert "[dsymutil] Remove support for obfuscated bitcode" (#85826)

Reverts llvm/llvm-project#85713 Since it is breaking Linux x64 builds.


# 43a2ec48 19-Mar-2024 Jonas Devlieghere <jonas@devlieghere.com>

[dsymutil] Remove support for obfuscated bitcode (#85713)

Remove support for obfuscated bitcode in dsymutil and the DWARF linker.
We no longer support bitcode submissions and the obfuscation suppor

[dsymutil] Remove support for obfuscated bitcode (#85713)

Remove support for obfuscated bitcode in dsymutil and the DWARF linker.
We no longer support bitcode submissions and the obfuscation support has
been removed from the rest of the compiler.

rdar://123863918

show more ...


Revision tags: llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init
# 0ed81942 23-Jan-2024 Alexey Lapshin <a.v.lapshin@mail.ru>

[dsymutil] Add --linker parallel to more tests. (#78581)

This patch adds check for parallel linker to tests located in the root
of test/tools/dsymutil.


# 9ff4be64 19-Jan-2024 Alexey Lapshin <a.v.lapshin@mail.ru>

[DWARFLinker][NFC] Decrease DWARFLinker dependence on DwarfStreamer. (#77932)

This patch is extracted from #74725.

The DwarfStreamer interface looks overcomplicated and has unnecessary
dependenc

[DWARFLinker][NFC] Decrease DWARFLinker dependence on DwarfStreamer. (#77932)

This patch is extracted from #74725.

The DwarfStreamer interface looks overcomplicated and has unnecessary
dependencies. This patch avoids creation of DwarfStreamer by DWARFLinker and
simplifies interface.

show more ...


# f1fdfe68 18-Jan-2024 Alexey Lapshin <a.v.lapshin@mail.ru>

[dsymutil][llvm-dwarfutil] Rename command line options to avoid using vendor names. (#78135)

This patch renames values of dsymutil/llvm-dwarfutil options:

--linker apple -> --linker classic
--li

[dsymutil][llvm-dwarfutil] Rename command line options to avoid using vendor names. (#78135)

This patch renames values of dsymutil/llvm-dwarfutil options:

--linker apple -> --linker classic
--linker llvm -> --linker parallel

The purpose to rename options is to avoid using vendor names and to
match with library names. It should be safe to rename options at current
stage as they are not seemed widely used(we may not preserve backward
compatibility).

show more ...


# 2357e899 09-Jan-2024 avl-llvm <55248412+avl-llvm@users.noreply.github.com>

[DWARFLinker][DWARFLinkerParallel][NFC] Refactor DWARFLinker&DWARFLinkerParallel to have a common library. Part 1. (#75925)

This patch creates DWARFLinkerBase library, places DWARFLinker code into

[DWARFLinker][DWARFLinkerParallel][NFC] Refactor DWARFLinker&DWARFLinkerParallel to have a common library. Part 1. (#75925)

This patch creates DWARFLinkerBase library, places DWARFLinker code into
DWARFLinker\Classic, places DWARFLinkerParallel into DWARFLinker\Parallel.
updates BOLT to use new library. This patch is NFC.

show more ...


Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4
# 88d00a68 26-Oct-2023 Alpha Abdoulaye <aabdoulaye@apple.com>

Reland [dsymutil] Add support for mergeable libraries (#70256)

Reland https://reviews.llvm.org/D158124
Fixed `-fpermissive` error reported by gcc only.


# 717946f9 24-Oct-2023 Philip Reames <preames@rivosinc.com>

Revert "[dsymutil] Add support for mergeable libraries"

This reverts commit 122c89b271af30b86536cad7bac64ea9c56615ed. Change does not build, with errors such as:

In file included from ../llvm-proje

Revert "[dsymutil] Add support for mergeable libraries"

This reverts commit 122c89b271af30b86536cad7bac64ea9c56615ed. Change does not build, with errors such as:

In file included from ../llvm-project/llvm/tools/dsymutil/DebugMap.h:24,
from ../llvm-project/llvm/tools/dsymutil/DwarfLinkerForBinary.h:13,
from ../llvm-project/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp:9:
../llvm-project/llvm/tools/dsymutil/RelocationMap.h:60:17: error: declaration of ‘llvm::dsymutil::SymbolMapping llvm::dsymutil::ValidReloc::SymbolMapping’ changes meaning of ‘SymbolMapping’ [-fpermissive]
60 | SymbolMapping SymbolMapping;
| ^~~~~~~~~~~~~
../llvm-project/llvm/tools/dsymutil/RelocationMap.h:36:8: note: ‘SymbolMapping’ declared here as ‘struct llvm::dsymutil::SymbolMapping’
36 | struct SymbolMapping {
| ^~~~~~~~~~~~~
In file included from ../llvm-project/llvm/tools/dsymutil/DwarfLinkerForBinary.h:13,
from ../llvm-project/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp:9:
../llvm-project/llvm/tools/dsymutil/DebugMap.h:198:32: error: declaration of ‘std::optional<llvm::dsymutil::RelocationMap> llvm::dsymutil::DebugMapObject::RelocationMap’ changes meaning of ‘RelocationMap’ [-fpermissive]
198 | std::optional<RelocationMap> RelocationMap;
| ^~~~~~~~~~~~~
In file included from ../llvm-project/llvm/tools/dsymutil/DebugMap.h:24,
from ../llvm-project/llvm/tools/dsymutil/DwarfLinkerForBinary.h:13,
from ../llvm-project/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp:9:
../llvm-project/llvm/tools/dsymutil/RelocationMap.h:76:7: note: ‘RelocationMap’ declared here as ‘class llvm::dsymutil::RelocationMap’
76 | class RelocationMap {
| ^~~~~~~~~~~~~

show more ...


# 122c89b2 24-Oct-2023 Alpha Abdoulaye <aabdoulaye@apple.com>

[dsymutil] Add support for mergeable libraries

This adds support in dsymutil for mergeable libraries [1].

dsymutil reads a new stab emitted by ld, allowing it to operate on
dynamic libraries instea

[dsymutil] Add support for mergeable libraries

This adds support in dsymutil for mergeable libraries [1].

dsymutil reads a new stab emitted by ld, allowing it to operate on
dynamic libraries instead of object files. It also now loads the DWARF
files associated to the libraries, and build the debug map for each
binary from the list of symbols exported by the library. For each Debug
Map Object, there is a new associated Relocation Map which is serialized
from the information retrieved in the original debug_info (or
debug_addr) section of the .o file.

The final DWARF file has multiple compile units, so the offsets
information of the relocations are adjusted relatively to the compile
unit they will end up belonging to, inside the final linked DWARF file.

[1] https://developer.apple.com/documentation/xcode/configuring-your-project-to-use-mergeable-libraries

Differential revision: https://reviews.llvm.org/D158124

show more ...


# 1f12223c 22-Oct-2023 Kazu Hirata <kazu@google.com>

[llvm] Stop including Endian.h (NFC)

These files satisfy all of the following:

- misc-include-cleaner indicates that these files do not need
Endian.h.
- They do not mention "endian" anywhere.
- T

[llvm] Stop including Endian.h (NFC)

These files satisfy all of the following:

- misc-include-cleaner indicates that these files do not need
Endian.h.
- They do not mention "endian" anywhere.
- They do not include any *.inc or *.def, which could need
llvm::support::endian.

show more ...


Revision tags: llvmorg-17.0.3, llvmorg-17.0.2
# 697b34fd 22-Sep-2023 Jonas Devlieghere <jonas@devlieghere.com>

[dsymutil] Remove paper trail warnings (#67041)

Remove the paper trail warning from dsymutil and the DWARF linker. The
original purpose of this functionality was to leave a paper trail in the
outp

[dsymutil] Remove paper trail warnings (#67041)

Remove the paper trail warning from dsymutil and the DWARF linker. The
original purpose of this functionality was to leave a paper trail in the
output artifact about missing object files. The current implementation
however has diverged and is the source of a pretty serious bug:

- In the debug map parser, missing object files are not the only
warnings we emit. When paper trail warnings are enabled, all of them end
up in the dSYM which wasn't the goal.

- When warnings are associated with a object file in the debug map, it
is skipped by the DWARF linker. This only makes sense if the object file
is missing and is obviously incorrect for any other type of warning
(such as a missing symbol).

The combination of the two means that we can generate broken DWARF when
the feature is enabled. AFAIK it was only used by Apple and nobody I
spoke to has relied on it, so rather than fixing the broken behavior I
propose we remove it.

show more ...


Revision tags: llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5
# 5f2a7fa6 20-May-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[Reland][Reland][DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel.

This patch is extracted from D96035, it adds support for the existing
DWARFLinker functionality. What is not s

[Reland][Reland][DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel.

This patch is extracted from D96035, it adds support for the existing
DWARFLinker functionality. What is not supported yet:

1. Types deduplication(--odr mode).
2. Modules deduplication.
3. Generation of index tables.

Reland2: temporarily disabled call to "--linker llvm" for tls-variable.test
and location-expression.test as it does not work properly on bigendian
architecture.

Differential Revision: https://reviews.llvm.org/D153268

show more ...


# fab91e95 21-Aug-2023 Nikita Popov <npopov@redhat.com>

Revert "[Reland][DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel."

This reverts commit 0229dd0626b2538c78ebbd2b1bd44c31fbf1cdec.

This introduces two test failures on s390x.

t

Revert "[Reland][DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel."

This reverts commit 0229dd0626b2538c78ebbd2b1bd44c31fbf1cdec.

This introduces two test failures on s390x.

tools/dsymutil/X86/location-expression.test:

warning: cann't load line table.
note: while processing CU1
/builddir/build/BUILD/llvm-18.0.0.src/test/tools/dsymutil/X86/location-expression.test:20:10: error: CHECK: expected string not found in input
# CHECK: DW_AT_name{{.*}}"CU1"
^
<stdin>:34:32: note: scanning from here
0x0000000b: DW_TAG_compile_unit [1] *
^
<stdin>:37:2: note: possible intended match here
DW_AT_name [DW_FORM_strp] ( .debug_str[0x09000000] = )
^

tools/dsymutil/X86/tls-variable.test:

warning: cann't load line table.
note: while processing CU1
/builddir/build/BUILD/llvm-18.0.0.src/test/tools/dsymutil/X86/tls-variable.test:19:10: error: CHECK: expected string not found in input
# CHECK: DW_AT_name{{.*}}"CU1"
^
<stdin>:26:32: note: scanning from here
0x0000000b: DW_TAG_compile_unit
^
<stdin>:29:2: note: possible intended match here
DW_AT_name ()
^

show more ...


# 0229dd06 20-May-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[Reland][DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel.

This patch is extracted from D96035, it adds support for the existing
DWARFLinker functionality. What is not supported

[Reland][DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel.

This patch is extracted from D96035, it adds support for the existing
DWARFLinker functionality. What is not supported yet:

1. Types deduplication(--odr mode).
2. Modules deduplication.
3. Generation of index tables.

Differential Revision: https://reviews.llvm.org/D153268

show more ...


# 32484c17 17-Aug-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

Revert "[DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel."

This reverts commit 1506e4c77624aa3d208658fd356b9caccc1a713f.


# 1506e4c7 20-May-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel.

This patch is extracted from D96035, it adds support for the existing
DWARFLinker functionality. What is not supported yet:

1

[DWARFLinkerParallel] Add limited functionality to DWARFLinkerParallel.

This patch is extracted from D96035, it adds support for the existing
DWARFLinker functionality. What is not supported yet:

1. Types deduplication(--odr mode).
2. Modules deduplication.
3. Generation of index tables.

Differential Revision: https://reviews.llvm.org/D153268

show more ...


# 8f5a68ab 01-Jul-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[DWARFLinker][NFC] Remove RangesTy &getValidAddressRanges().

This patch simplifies line table generation. It removes global
array of all units ranges(RangesTy &getValidAddressRanges()).
The comment

[DWARFLinker][NFC] Remove RangesTy &getValidAddressRanges().

This patch simplifies line table generation. It removes global
array of all units ranges(RangesTy &getValidAddressRanges()).
The comment says that global array of all units ranges is necessary
to handle corner cases inside line table rows. Removing that
special handling shows that its current usage is handling of
"end of range case" which is already handled correctly
(without special handling). .debug_line tables for clang binary
built with and without this patch are equal.

Differential Revision: https://reviews.llvm.org/D154288

show more ...


# a3b9c153 20-Jun-2023 Kazu Hirata <kazu@google.com>

[tools] Use llvm::is_contained (NFC)


Revision tags: llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1
# 36f35109 31-Mar-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[DWARFLinkerParallel][Reland] Add interface files, create a skeleton implementation.

This patch creates skeleton implementation for the DWARFLinkerParallel.
It also integrates DWARFLinkerParallel in

[DWARFLinkerParallel][Reland] Add interface files, create a skeleton implementation.

This patch creates skeleton implementation for the DWARFLinkerParallel.
It also integrates DWARFLinkerParallel into dsymutil and llvm-dwarfutil,
so that empty DWARFLinker::link() can be called. To do this new command
line option is added "--linker apple/llvm". Additionally it changes
existing DWARFLinker interfaces/implementations to be compatible:
use Error for error reporting for the DWARFStreamer, make DWARFFile to
owner of referenced resources, other small refactorings.

Differential Revision: https://reviews.llvm.org/D147952

show more ...


# 66e5678f 04-Jun-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

Revert "[DWARFLinkerParallel] Add interface files, create a skeleton implementation."

This reverts commit e0ba9b2ace7ffc20bf8fe2eb533d638f27619b10.


# e0ba9b2a 31-Mar-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[DWARFLinkerParallel] Add interface files, create a skeleton implementation.

This patch creates skeleton implementation for the DWARFLinkerParallel.
It also integrates DWARFLinkerParallel into dsymu

[DWARFLinkerParallel] Add interface files, create a skeleton implementation.

This patch creates skeleton implementation for the DWARFLinkerParallel.
It also integrates DWARFLinkerParallel into dsymutil and llvm-dwarfutil,
so that empty DWARFLinker::link() can be called. To do this new command
line option is added "--linker apple/llvm". Additionally it changes
existing DWARFLinker interfaces/implementations to be compatible:
use Error for error reporting for the DWARFStreamer, make DWARFFile to
owner of referenced resources, other small refactorings.

Differential Revision: https://reviews.llvm.org/D147952

show more ...


# bd0dd27b 21-Mar-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[DWARFLinker][DWARFv5] Add handling of DW_OP_addrx and DW_OP_constx expression operands.

This patch adds handling of DW_OP_addrx and DW_OP_constx expression operands.
In --update case these operands

[DWARFLinker][DWARFv5] Add handling of DW_OP_addrx and DW_OP_constx expression operands.

This patch adds handling of DW_OP_addrx and DW_OP_constx expression operands.
In --update case these operands are preserved as is. Otherwise they are
converted into the DW_OP_addr and DW_OP_const[*]u correspondingly.

Differential Revision: https://reviews.llvm.org/D147066

show more ...


# 709bc112 31-Mar-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[DWARFLinker][NFC] Make interfaces to be compatible.

This patch makes interface of AddressManager from DWARFLinker
to be compatible with AddressesMap from DWARFLinkerParallel.
This makes both linker

[DWARFLinker][NFC] Make interfaces to be compatible.

This patch makes interface of AddressManager from DWARFLinker
to be compatible with AddressesMap from DWARFLinkerParallel.
This makes both linkers to be interchangeable.

Differential Revision: https://reviews.llvm.org/D147455

show more ...


Revision tags: llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2
# 4c273cd0 02-Feb-2023 Alexey Lapshin <a.v.lapshin@mail.ru>

[DWARFLinker] Refactor cloneAddressAttribute().

As a preparation for implementing DWARFv5 address ranges generation,
this patch refactors cloneAddressAttribute() method. It has special
handling for

[DWARFLinker] Refactor cloneAddressAttribute().

As a preparation for implementing DWARFv5 address ranges generation,
this patch refactors cloneAddressAttribute() method. It has special
handling for addresses which can be relocated in some unrelated value,
for applying relocations twice, for indexed addresses. Instead of
all these special handlings this patch uses general handling:

Read attribute value from InputDIE and apply PCOffset.

Another thing is that current handling of DW_FORM_addrx misses the
fact that relocations might be applied twice in some cases. This
patch fixes this problem also.

Differential Revision: https://reviews.llvm.org/D143269

show more ...


12