10000 Merge upstream release/8.x branch by alexcrichton · Pull Request #7 · rust-lang/llvm-project · GitHub
[go: up one dir, main page]

Skip to content

Merge upstream release/8.x branch #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 126 commits into from
Feb 12, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
18f9cee
Merging r351396:
rui314 Jan 16, 2019
cfa6241
Merging r351360:
zmodem Jan 17, 2019
bcabeb4
Merging r351340:
zmodem Jan 17, 2019
66303bc
Merging r351431:
zmodem Jan 17, 2019
9d7c270
Merging r351436:
zmodem Jan 17, 2019
2b727e7
Merging r351349:
zmodem Jan 17, 2019
ec0bc4c
Merging r351344:
zmodem Jan 17, 2019
edcbea9
Merging r351345:
zmodem Jan 17, 2019
f308f98
Merging r351351:
zmodem Jan 17, 2019
6f53381
Merging r351381:
zmodem Jan 17, 2019
37174c6
Merging r351326:
zmodem Jan 17, 2019
961b84b
Merging r351335:
zmodem Jan 17, 2019
3553f3e
Merging r351370:
zmodem Jan 17, 2019
2f1402b
Merging r351421:
zmodem Jan 17, 2019
8593d60
Merging r351475:
zmodem Jan 18, 2019
47149c4
Merging r351325:
zmodem Jan 18, 2019
c4fa34c
Merging r351457:
zmodem Jan 18, 2019
ad1624f
Merging r351459:
zmodem Jan 18, 2019
d4d3f77
Merging r351504:
zmodem Jan 18, 2019
6e751e8
Merging r351463, r351466, r351467, and r351468
zmodem Jan 18, 2019
e264dae
Merging r351426:
zmodem Jan 18, 2019
119d8a5
Merging r351580:
zmodem Jan 22, 2019
eb74b59
Merging r351686:
zmodem Jan 22, 2019
2bebfeb
Merging r351753:
zmodem Jan 22, 2019
ee231d0
Merging r351754:
zmodem Jan 22, 2019
642a173
Merging r351788:
zmodem Jan 22, 2019
a05d35f
[docs] Amend the release notes with more things I've contributed sinc…
mstorsjo Jan 22, 2019
78ecdd7
[docs] Add release notes for notable things I've contributed since la…
mstorsjo Jan 22, 2019
1e7e399
[docs] Add release notes for notable things I've contributed since la…
mstorsjo Jan 22, 2019
d0fae09
Merging r351531:
zmodem Jan 23, 2019
f669262
Merging r351738:
zmodem Jan 23, 2019
40cbc00
Merging r351898:
zmodem Jan 23, 2019
b00b2b8
Merging r351899:
zmodem Jan 23, 2019
17c9824
Merging r351670:
zmodem Jan 23, 2019
22c2b2b
Merging r351930 and r351932:
zmodem Jan 24, 2019
a008fbe
Merging r352040:
zmodem Jan 24, 2019
de8481e
Merging r352040:
zmodem Jan 24, 2019
400f8a3
Merging r352102:
zmodem Jan 24, 2019
24479b1
Merging r352116:
zmodem Jan 25, 2019
22f92b5
Merging r352082:
zmodem Jan 25, 2019
4474451
Merging r351485:
zmodem Jan 25, 2019
b7988f7
Merging r351579:
zmodem Jan 25, 2019
e25507d
Merging r352034:
zmodem Jan 25, 2019
af62a72
Merging r352068:
zmodem Jan 25, 2019
4ba28fc
Merging r352079:
zmodem Jan 25, 2019
9fbd743
Merging r352204:
zmodem Jan 25, 2019
30d3a54
Merging r352234:
zmodem Jan 25, 2019
f149bca
Merging r352257:
zmodem Jan 28, 2019
01ddd7c
Remove failing test expectations.
zmodem Jan 28, 2019
8f1376f
Merging r352302:
zmodem Jan 28, 2019
f86097d
Merging r352323:
zmodem Jan 28, 2019
246bce4
Merging r352099:
zmodem Jan 28, 2019
b73d705
Merging r352105:
zmodem Jan 28, 2019
1680cb5
Merging r352221 and r352222:
zmodem Jan 28, 2019
accabdd
Merging r352229:
zmodem Jan 28, 2019
d1ba949
Merging r352231:
zmodem Jan 28, 2019
be5f5b3
Merging r352413:
zmodem Jan 29, 2019
53ba53b
Merging r352381:
zmodem Jan 29, 2019
caadceb
Merging r352382:
zmodem Jan 29, 2019
84d97e3
Merging r352459:
zmodem Jan 29, 2019
71b117e
Merging r352374:
zmodem Jan 29, 2019
5751c2b
Merging r352374:
zmodem Jan 29, 2019
2cc5c39
Merging r352374:
zmodem Jan 29, 2019
c1d99f8
Merging r352374:
zmodem Jan 29, 2019
f103e43
Merging r351910:
zmodem Jan 29, 2019
3c554e2
Merging r352539:
zmodem Jan 29, 2019
88481d5
Merging r352610:
zmodem Jan 30, 2019
dbbe633
[docs][mips] Add MIPS specific release notes for LLD 8.0
atanasyan Jan 30, 2019
dfc033d
[docs][mips] Clang 8.0 Release notes
atanasyan Jan 30, 2019
8a11e14
[docs][mips] 8.0 Release notes
atanasyan Jan 30, 2019
6dcd982
Merging r352407:
zmodem Feb 1, 2019
9f0ae69
Merging r352435:
zmodem Feb 1, 2019
15decd1
Merging r352482:
zmodem Feb 1, 2019
538ee73
Merging r352606:
zmodem Feb 1, 2019
2a08347
Merging r352672:
zmodem Feb 1, 2019
e26a2f2
Merging r352822:
zmodem Feb 1, 2019
d4c2ff4
Merging r352770:
zmodem Feb 1, 2019
c081a5f
Merging r352156:
zmodem Feb 1, 2019
f66fbcf
Merging r352463:
zmodem Feb 1, 2019
61ff0b6
Merging r352246:
zmodem Feb 1, 2019
b96362f
[Hexagon] Update release notes with the changes to the Hexagon backend
Feb 1, 2019
36e9afb
Release Notes: Add Zig to External Open Source Projects Using LLVM 8
zmodem Feb 4, 2019
8cc77b4
Merging r352889:
zmodem Feb 4, 2019
44c7930
Merging r352307:
zmodem Feb 4, 2019
ca26c44
Merging r352928:
zmodem Feb 5, 2019
9c110d5
Merging r352929:
zmodem Feb 5, 2019
f7f9945
Merging r352945:
zmodem Feb 5, 2019
a10d2d2
Merging r353082:
zmodem Feb 5, 2019
a9a9c27
Merging r352555:
zmodem Feb 5, 2019
30ce79e
Merging rr353218:
rnk Feb 5, 2019
35f4f2f
Merging r353155:
zmodem Feb 6, 2019
5581990
Merging r352016:
zmodem Feb 6, 2019
a2f4603
Merging r353224:
zmodem Feb 6, 2019
7ec84db
Merging r353250:
zmodem Feb 6, 2019
f582206
Merging r353304:
zmodem Feb 7, 2019
238045f
lld-link: Add some entries to the 8.0 release notes
zmodem Feb 7, 2019
33fc712
Merging r353367:
zmodem Feb 7, 2019
7399f70
Merging r353327:
zmodem Feb 7, 2019
104c654
Merging r353393:
zmodem Feb 7, 2019
8c33d4f
Re-generate docs/ClangCommandLineReference.rst
zmodem Feb 7, 2019
cb2d048
Generate docs/AttributeReference.rst
zmodem Feb 7, 2019
829bb6f
[docs] Update the release notes for the backported feature with thunk…
mstorsjo Feb 7, 2019
ac29b65
Fix sphinx warning
zmodem Feb 7, 2019
98ebe74
Merging r353399:
zmodem Feb 7, 2019
2699311
Add external project LDC to release notes.
redstar Feb 7, 2019
ce52769
Merging r351387, r351765, and r353374:
zmodem Feb 8, 2019
22558d3
Merging r353463:
zmodem Feb 8, 2019
15f159c
- Update ReleaseNotes for lld 8.0.0.
rui314 Feb 8, 2019
62ead03
Minor update to lld/ReleaseNotes.
rui314 Feb 11, 2019
e055d7f
Merging r353495:
zmodem Feb 12, 2019
0cbe0b9
ReleaseNotes about the toolchain version cmake check
zmodem Feb 12, 2019
75ff7d0
Merging r353551 and r353809:
zmodem Feb 12, 2019
018cd5f
Merging r352607 r352608 r353015 r353061 r353138 r353141 r353334 r353489
zmodem Feb 12, 2019
e552366
Merging r353142:
zmodem Feb 12, 2019
2ccd8c1
Merging r353308 and r353383:
zmodem Feb 12, 2019
df368fd
Merging r353411:
zmodem Feb 12, 2019
e57cf6c
Merging r353431:
zmodem Feb 12, 2019
dfde9d6
Merging r353480:
zmodem Feb 12, 2019
eb0faeb
Merging r353493:
zmodem Feb 12, 2019
a576b44
Merging r353402:
zmodem Feb 12, 2019
ae61627
Merging r351322:
zmodem Feb 12, 2019
33e2530
Merging r353656:
zmodem Feb 12, 2019
ef182d5
[WebAssembly] Backport custom import name changes for lld to 8.0.
zmodem Feb 12, 2019
16b7c08
[WebAssembly] Backport custom import name changes for clang to 8.0.
zmodem Feb 12, 2019
33a2b52
[WebAssembly] Backport custom import name changes for LLVM to 8.0.
zmodem Feb 12, 2019
2ebc272
Merge remote-tracking branch 'llvm/release/8.x' into rustc/8.0-2019-0…
alexcrichton Feb 12, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merging r351335:
------------------------------------------------------------------------
r351335 | psmith | 2019-01-16 14:24:02 +0100 (Wed, 16 Jan 2019) | 17 lines

[ELF][AArch64] Add R_AARCH64_PLT_PAGE_PC to isRelExpr

As a follow on to D56666 (r351186) there is a case when taking the address
of an ifunc when linking -pie that can generate a spurious can't create
dynamic relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol in readonly
segment. Specifically the case is where the ifunc is in the same
translation unit as the address taker, so given -fpie the compiler knows
the ifunc is defined in the executable so it can use a non-got-generating
relocation.

The error message is due to R_AARCH64_PLT_PAGE_PC not being added to
isRelExpr, its non PLT equivalent R_AARCH64_PAGE_PC is already in
isRelExpr.

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


------------------------------------------------------------------------

llvm-svn: 351446
  • Loading branch information
zmodem committed Jan 17, 2019
commit 961b84b221558e07a055c38fa12f66ab45e577a5
2 changes: 1 addition & 1 deletion lld/ELF/Relocations.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ static bool needsGot(RelExpr Expr) {
static bool isRelExpr(RelExpr Expr) {
return isRelExprOneOf<R_PC, R_GOTREL, R_GOTREL_FROM_END, R_MIPS_GOTREL,
R_PPC_CALL, R_PPC_CALL_PLT, R_AARCH64_PAGE_PC,
R_RELAX_GOT_PC>(Expr);
R_AARCH64_PLT_PAGE_PC, R_RELAX_GOT_PC>(Expr);
}

// Returns true if a given relocation can be computed at link-time.
Expand Down
44 changes: 44 additions & 0 deletions lld/test/ELF/aarch64-gnu-ifunc-address-pie.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# REQUIRES: aarch64
# RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux-gnu %s -o %t.o
# RUN: ld.lld -pie %t.o -o %tout
# RUN: llvm-objdump -D %tout | FileCheck %s
# RUN: llvm-readobj -r %tout | FileCheck %s -check-prefix=CHECK-RELOCS

# Test that when we take the address of a preemptible ifunc using -fpie, we can
# handle the case when the ifunc is in the same translation unit as the address
# taker. In this case the compiler knows that ifunc is not defined in a shared
# library so it can use a non got generating relative reference.
.text
.globl myfunc
.type myfunc,@gnu_indirect_function
myfunc:
ret

.text
.globl main
.type main,@function
main:
adrp x8, myfunc
add x8, x8, :lo12: myfunc
ret

# CHECK: 0000000000010000 myfunc:
# CHECK-NEXT: 10000: c0 03 5f d6 ret
# CHECK: 0000000000010004 main:
# CHECK-NEXT: 10004: 08 00 00 90 adrp x8, #0
# x8 = 0x10000
# CHECK-NEXT: 10008: 08 41 00 91 add x8, x8, #16
# x8 = 0x10010 = .plt for myfunc
# CHECK-NEXT: 1000c: c0 03 5f d6 ret
# CHECK-NEXT: Disassembly of section .plt:
# CHECK-NEXT: 0000000000010010 .plt:
# CHECK-NEXT: 10010: 90 00 00 90 adrp x16, #65536
# CHECK-NEXT: 10014: 11 02 40 f9 ldr x17, [x16]
# CHECK-NEXT: 10018: 10 02 00 91 add x16, x16, #0
# CHECK-NEXT: 1001c: 20 02 1f d6 br x17

# CHECK-RELOCS: Relocations [
# CHECK-RELOCS-NEXT: Section {{.*}} .rela.plt {
# CHECK-RELOCS-NEXT: 0x20000 R_AARCH64_IRELATIVE - 0x10000
# CHECK-RELOCS-NEXT: }
# CHECK-RELOCS-NEXT: ]
0