<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/lld/test, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2020-06-17T23:44:29+00:00</updated>
<entry>
<title>Fix alignment of thunks for ARM/ARM64</title>
<updated>2020-06-17T23:44:29+00:00</updated>
<author>
<name>Martin Storsjö</name>
<email>martin@martin.st</email>
</author>
<published>2020-04-08T21:42:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=783f5c6c5e2a44d5b66f8277ff5917fdb6b455c6'/>
<id>urn:sha1:783f5c6c5e2a44d5b66f8277ff5917fdb6b455c6</id>
<content type='text'>
The alignment of ARM64 range extension thunks was fixed in
7c816492197a, but ARM range extension thunks, and import
and delay import thunks also need aligning (like all code on ARM
platforms).

I'm adding a test for alignment of ARM64 import thunks - not
specifically adding tests for misalignment of all of them though.

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

(cherry picked from commit 12c9e2f1110a4fc73562214cf5dd0194b31e87cf)
</content>
</entry>
<entry>
<title>[ELF] Don't cause assertion failure if --dynamic-list or --version-script takes an empty file</title>
<updated>2020-06-17T05:31:33+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-06-05T22:59:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=dc94773a91c85a05f4f249153cb1e9522b3beb5e'/>
<id>urn:sha1:dc94773a91c85a05f4f249153cb1e9522b3beb5e</id>
<content type='text'>
Fixes PR46184
Report line 1 of the last memory buffer.

(cherry picked from commit ac6abc99e2794e4674a8498f817fda19b176bbfe)
</content>
</entry>
<entry>
<title>[lld][ELF] Mark empty NOLOAD output sections SHT_NOBITS instead of SHT_PROGBITS</title>
<updated>2020-06-17T02:45:27+00:00</updated>
<author>
<name>Matt Schulte</name>
<email>schultetwin1@gmail.com</email>
</author>
<published>2020-03-28T16:54:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b980cc1cd3200dbf7603c7dd04335165b7578baa'/>
<id>urn:sha1:b980cc1cd3200dbf7603c7dd04335165b7578baa</id>
<content type='text'>
This fixes PR# 45336.
Output sections described in a linker script as NOLOAD with no input sections would be marked as SHT_PROGBITS.

Reviewed By: MaskRay

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

(cherry picked from commit fdc41aa22c60958e6b6df461174b814a4aae3384)
</content>
</entry>
<entry>
<title>[ELF][test] Make tests less address sensitive and delete redundant tests</title>
<updated>2020-06-17T02:44:57+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-03-20T00:26:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a85165ccb9cf05a31a9e33defdd9baff5a6d55f7'/>
<id>urn:sha1:a85165ccb9cf05a31a9e33defdd9baff5a6d55f7</id>
<content type='text'>
(cherry picked from commit 09ac859c136b406231ef7547f3800111dd00bc7e)
</content>
</entry>
<entry>
<title>[CodeView] Align type records on 4-bytes when emitting PDBs</title>
<updated>2020-04-16T19:05:11+00:00</updated>
<author>
<name>Alexandre Ganea</name>
<email>alexandre.ganea@ubisoft.com</email>
</author>
<published>2020-03-13T16:22:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6196695ec5819c0df7efe3fecca5c4ef9ea80b1c'/>
<id>urn:sha1:6196695ec5819c0df7efe3fecca5c4ef9ea80b1c</id>
<content type='text'>
When emitting PDBs, the TypeStreamMerger class is used to merge .debug$T records from the input .OBJ files into the output .PDB stream.
Records in .OBJs are not required to be aligned on 4-bytes, and "The Netwide Assembler 2.14" generates non-aligned records.

When compiling with -DLLVM_ENABLE_ASSERTIONS=ON, an assert was triggered in MergingTypeTableBuilder when non-ghash merging was used.
With ghash merging there was no assert.
As a result, LLD could potentially generate a non-aligned TPI stream.

We now align records on 4-bytes when record indices are remapped, in TypeStreamMerger::remapIndices().

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

(cherry picked from commit a7325298e1f311b383b8ce5ba8e2d3698fef472a)
</content>
</entry>
<entry>
<title>[ELF] Allow SHF_LINK_ORDER and non-SHF_LINK_ORDER to be mixed</title>
<updated>2020-04-15T05:35:46+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-03-29T06:12:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=71c3f57326cf956330f47f9061104e0f299cb7cf'/>
<id>urn:sha1:71c3f57326cf956330f47f9061104e0f299cb7cf</id>
<content type='text'>
Currently, `error: incompatible section flags for .rodata` is reported
when we mix SHF_LINK_ORDER and non-SHF_LINK_ORDER sections in an output section.

This is overconstrained. This patch allows mixed flags with the
requirement that SHF_LINK_ORDER sections must be contiguous. Mixing
flags is used by Linux aarch64 (https://github.com/ClangBuiltLinux/linux/issues/953)

  .init.data : { ... KEEP(*(__patchable_function_entries)) ... }

When the integrated assembler is enabled, clang's -fpatchable-function-entry=N[,M]
implementation sets the SHF_LINK_ORDER flag (D72215) to fix a number of
garbage collection issues.

Strictly speaking, the ELF specification does not require contiguous
SHF_LINK_ORDER sections but for many current uses of SHF_LINK_ORDER like
.ARM.exidx/__patchable_function_entries there has been a requirement for
the sections to be contiguous on top of the requirements of the ELF
specification.

This patch also imposes one restriction: SHF_LINK_ORDER sections cannot
be separated by a symbol assignment or a BYTE command. Not allowing BYTE
is a natural extension that a non-SHF_LINK_ORDER cannot be a separator.
Symbol assignments can delimiter the contents of SHF_LINK_ORDER
sections.  Allowing SHF_LINK_ORDER sections across symbol assignments
(especially __start_/__stop_) can make things hard to explain. The
restriction should not be a problem for practical use cases.

Reviewed By: psmith

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

(cherry picked from commit 673e81eee4fa3ffa38736f1063e6c4fa2d9278b0)
</content>
</entry>
<entry>
<title>[ELF][test] Improve linkerscript/linkorder.s</title>
<updated>2020-04-15T05:35:18+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-03-29T06:11:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b2881de649ca27bd00942a4dc6b0e3a0f7e7f32f'/>
<id>urn:sha1:b2881de649ca27bd00942a4dc6b0e3a0f7e7f32f</id>
<content type='text'>
(cherry picked from commit 2d19270efcf01672c8eaab1ccb0e5b89ea953cc9)
</content>
</entry>
<entry>
<title>[ELF][test] Rename SHF_LINK_ORDER related "metadata" to "linkorder"</title>
<updated>2020-04-15T05:31:55+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-02-27T00:24:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b6ccc88d575c78cb6cfebf545ef2c8d159cbdf3c'/>
<id>urn:sha1:b6ccc88d575c78cb6cfebf545ef2c8d159cbdf3c</id>
<content type='text'>
Test cleanups.

(cherry picked from commit b305b8a256eade076bb13f52668a6015631ac0e5)
</content>
</entry>
<entry>
<title>[COFF] Don't treat DWARF sections as GC roots</title>
<updated>2020-04-13T20:48:04+00:00</updated>
<author>
<name>Reid Kleckner</name>
<email>rnk@google.com</email>
</author>
<published>2020-03-27T16:09:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=edbe962459da6e3b7b4168118f93a77847b54e02'/>
<id>urn:sha1:edbe962459da6e3b7b4168118f93a77847b54e02</id>
<content type='text'>
DWARF sections are typically live and not COMDAT, so they would be
treated as GC roots. Enabling DWARF would essentially keep all code with
debug info alive, preventing any section GC.

Fixes PR45273

Reviewed By: mstorsjo, MaskRay

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

(cherry picked from commit c579a5b1d92a9bc2046d00ee2d427832e0f5ddec)
</content>
</entry>
<entry>
<title>[ELF] Fix a null pointer dereference when --emit-relocs and --strip-debug are used together</title>
<updated>2020-04-11T00:17:37+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-02-12T22:08:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=489a7356cca373de761ada4c06c5b43edc581b4b'/>
<id>urn:sha1:489a7356cca373de761ada4c06c5b43edc581b4b</id>
<content type='text'>
Fixes https://bugs.llvm.org//show_bug.cgi?id=44878

When --strip-debug is specified, .debug* are removed from inputSections
while .rel[a].debug* (incorrectly) remain.

LinkerScript::addOrphanSections() requires the output section of a relocated
InputSectionBase to be created first.

.debug* are not in inputSections -&gt;
output sections .debug* are not created -&gt;
getOutputSectionName(.rel[a].debug*) dereferences a null pointer.

Fix the null pointer dereference by deleting .rel[a].debug* from inputSections as well.

Reviewed By: grimar, nickdesaulniers

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

(cherry picked from commit 6c73246179376442705b3a545f4e1f1478777a04)
</content>
</entry>
</feed>
