<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/MC/ELF, 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-01-14T07:36:06+00:00</updated>
<entry>
<title>[MC] Don't resolve relocations referencing STB_LOCAL STT_GNU_IFUNC</title>
<updated>2020-01-14T07:36:06+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-01-14T07:35:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0136f226c4e46258ea73fcb994f6559cec4a9aa2'/>
<id>urn:sha1:0136f226c4e46258ea73fcb994f6559cec4a9aa2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[MC][ELF] Emit a relocation if target is defined in the same section and is non-local</title>
<updated>2020-01-12T21:46:24+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-01-04T05:44:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2bfee35cb860859b436de0b780fbd00d68e198a4'/>
<id>urn:sha1:2bfee35cb860859b436de0b780fbd00d68e198a4</id>
<content type='text'>
For a target symbol defined in the same section, currently we don't emit
a relocation if VariantKind is VK_None (with few exceptions like RISC-V
relaxation), while GNU as emits one. This causes program behavior
differences with and without -ffunction-sections, and can break intended
symbol interposition in a -shared link.

```
.globl foo
foo:
  call foo      # no relocation. On other targets, may be written as b foo, etc
  call bar      # a relocation if bar is in another section (e.g. -ffunction-sections)
  call foo@plt  # a relocation
```

Unify these cases by always emitting a relocation. If we ever want to
optimize `call foo` in -shared links, we should emit a STB_LOCAL alias
and call via the alias.

ARM/thumb2-beq-fixup.s: we now emit a relocation to global_thumb_fn as GNU as does.
X86/Inputs/align-branch-64-2.s: we now emit R_X86_64_PLT32 to foo as GNU does.

ELF/relax.s: rewrite the test as target-in-same-section.s .
We omitted relocations to `global` and now emit R_X86_64_PLT32.
Note, GNU as does not emit a relocation for `jmp global` (maybe its own
bug). Our new behavior is compatible except `jmp global`.

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D72197
</content>
</entry>
<entry>
<title>Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351</title>
<updated>2019-12-24T23:57:33+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2019-12-24T23:52:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=502a77f125f43ffde57af34d3fd1b900248a91cd'/>
<id>urn:sha1:502a77f125f43ffde57af34d3fd1b900248a91cd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[llvm-readobj] - Fix letters used for dumping section types in GNU style.</title>
<updated>2019-12-13T08:31:24+00:00</updated>
<author>
<name>Georgii Rymar</name>
<email>grimar@accesssoftek.com</email>
</author>
<published>2019-12-12T14:09:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=422b078c69ee7ae5c2529992eed4fd8a21aedda4'/>
<id>urn:sha1:422b078c69ee7ae5c2529992eed4fd8a21aedda4</id>
<content type='text'>
I've noticed that when we have all regular flags set, we print "WAEXMSILoGTx"
instead of "WAXMSILOGTCE" printed by GNU readelf.

It happens because:
1) We print SHF_EXCLUDE at the wrong place.
2) We do not recognize SHF_COMPRESSED, we print "x" instead of "C".
3) We print "o" instead of "O" for SHF_OS_NONCONFORMING.

This patch fixes differences and adds test cases.

Differential revision: https://reviews.llvm.org/D71418
</content>
</entry>
<entry>
<title>[MC] Emit unused undefined symbol even if its binding is not set</title>
<updated>2019-11-08T22:47:48+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2019-09-29T15:26:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=8f089f2099d39021bbfb76a2cd575612382a7cf6'/>
<id>urn:sha1:8f089f2099d39021bbfb76a2cd575612382a7cf6</id>
<content type='text'>
Recommit r373168, which was reverted by r373242. This actually exposed a
boringssl bug which has been fixed for more than one month.

For the following two cases, we currently suppress the symbols. This
patch emits them (compatible with GNU as).

* `test2_a = undef`: if `undef` is otherwise unused.
* `.hidden hidden`: if `hidden` is unused. This is the main point of the
  patch, because omitting the symbol would cause a linker semantic
  difference.

It causes a behavior change that is not compatible with GNU as:

.weakref foo1, bar1

When neither foo1 nor bar1 is used, we now emit bar1, which is arguably
more consistent.

Another change is that we will emit .TOC. for .TOC.@tocbase .  For this
directive, suppressing .TOC. can be seen as a size optimization, but we
choose to drop it for simplicity and consistency.
</content>
</entry>
<entry>
<title>Added support for "#pragma clang section relro=&lt;name&gt;"</title>
<updated>2019-10-15T18:31:10+00:00</updated>
<author>
<name>Dmitry Mikulin</name>
<email>dmitry.mikulin@sony.com</email>
</author>
<published>2019-10-15T18:31:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f14642f2f185f9af290f9fcace4851adbbe16432'/>
<id>urn:sha1:f14642f2f185f9af290f9fcace4851adbbe16432</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D68806

llvm-svn: 374934
</content>
</entry>
<entry>
<title>Revert "[MC] Emit unused undefined symbol even if its binding is not set"</title>
<updated>2019-09-30T18:13:48+00:00</updated>
<author>
<name>Nico Weber</name>
<email>nicolasweber@gmx.de</email>
</author>
<published>2019-09-30T18:13:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2331cd69cd7812d13e68a84dc9e1189cb14cff55'/>
<id>urn:sha1:2331cd69cd7812d13e68a84dc9e1189cb14cff55</id>
<content type='text'>
This reverts r373168. It caused PR43511.

llvm-svn: 373242
</content>
</entry>
<entry>
<title>[MC] Emit unused undefined symbol even if its binding is not set</title>
<updated>2019-09-29T15:26:12+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2019-09-29T15:26:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=c5133606627036df0275849ac3d140a86908e310'/>
<id>urn:sha1:c5133606627036df0275849ac3d140a86908e310</id>
<content type='text'>
For the following two cases, we currently suppress the symbols. This
patch emits them (compatible with GNU as).

* `test2_a = undef`: if `undef` is otherwise unused.
* `.hidden hidden`: if `hidden` is unused. This is the main point of the
  patch, because omitting the symbol would cause a linker semantic
  difference.

It causes a behavior change that is not compatible with GNU as:

.weakref foo1, bar1

When neither foo1 nor bar1 is used, we now emit bar1, which is arguably
more consistent.

Another change is that we will emit .TOC. for .TOC.@tocbase .  For this
directive, suppressing .TOC. can be seen as a size optimization, but we
choose to drop it for simplicity and consistency.

llvm-svn: 373168
</content>
</entry>
<entry>
<title>Remove some unnecessary REQUIRES: shell lines</title>
<updated>2019-09-10T00:06:52+00:00</updated>
<author>
<name>Reid Kleckner</name>
<email>rnk@google.com</email>
</author>
<published>2019-09-10T00:06:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=87d47cb7c4792cb4dbb6911b9d11e5bd9f2dc928'/>
<id>urn:sha1:87d47cb7c4792cb4dbb6911b9d11e5bd9f2dc928</id>
<content type='text'>
This means these tests will run on Windows. Replace one with
UNSUPPORTED: system-windows.

llvm-svn: 371473
</content>
</entry>
<entry>
<title>[ELF][MC] Set types of aliases of IFunc to STT_GNU_IFUNC</title>
<updated>2019-09-07T14:58:47+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2019-09-07T14:58:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=72e99e63a2f9b51853cf74eddae37d7eaf106ca5'/>
<id>urn:sha1:72e99e63a2f9b51853cf74eddae37d7eaf106ca5</id>
<content type='text'>
```
.type  foo,@gnu_indirect_function
.set   foo,foo_resolver

.set foo2,foo
.set foo3,foo2
```

The types of foo2 and foo3 should be STT_GNU_IFUNC, but we currently
resolve them to the type of foo_resolver. This patch fixes it.

Differential Revision: https://reviews.llvm.org/D67206
Patch by Senran Zhang

llvm-svn: 371312
</content>
</entry>
</feed>
