mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-09 05:31:37 +00:00
[gold] Enable function-sections by default.
This is needed, among others, to respect --section-ordering-file with LTO. I'll follow up with a similar change for data sections. I hope every version of gold available on the bots has support for --section-ordering file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309056 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0c862f5c0f
commit
67d8465a23
40
test/tools/gold/X86/multiple-sections.ll
Normal file
40
test/tools/gold/X86/multiple-sections.ll
Normal file
@ -0,0 +1,40 @@
|
||||
; RUN: echo ".text.tin" > %t_order_lto.txt
|
||||
; RUN: echo ".text._start" >> %t_order_lto.txt
|
||||
; RUN: echo ".text.pat" >> %t_order_lto.txt
|
||||
; RUN: llvm-as %s -o %t.o
|
||||
; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
|
||||
; RUN: -m elf_x86_64 -o %t.exe %t.o \
|
||||
; RUN: --section-ordering-file=%t_order_lto.txt
|
||||
; RUN: llvm-readobj -elf-output-style=GNU -t %t.exe | FileCheck %s
|
||||
|
||||
; Check that the order of the sections is tin -> _start -> pat.
|
||||
|
||||
; CHECK: Symbol table '.symtab' contains 8 entries:
|
||||
; CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name
|
||||
; CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
|
||||
; CHECK-NEXT: 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS ld-temp.o
|
||||
; CHECK-NEXT: 2: 00000000004000d0 1 FUNC LOCAL DEFAULT 1 pat
|
||||
; CHECK-NEXT: 3: 00000000004000b0 1 FUNC LOCAL DEFAULT 1 tin
|
||||
; CHECK-NEXT: 4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT ABS _end
|
||||
; CHECK-NEXT: 5: 0000000000000000 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
|
||||
; CHECK-NEXT: 6: 0000000000000000 0 NOTYPE GLOBAL DEFAULT ABS _edata
|
||||
; CHECK-NEXT: 7: 00000000004000c0 15 FUNC GLOBAL DEFAULT 1 _start
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
define void @pat() #0 {
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @tin() #0 {
|
||||
ret void
|
||||
}
|
||||
|
||||
define i32 @_start() {
|
||||
call void @pat()
|
||||
call void @tin()
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
attributes #0 = { noinline optnone }
|
@ -750,6 +750,9 @@ static std::unique_ptr<LTO> createLTO() {
|
||||
// FIXME: Check the gold version or add a new option to enable them.
|
||||
Conf.Options.RelaxELFRelocations = false;
|
||||
|
||||
// Enable function sections by default.
|
||||
Conf.Options.FunctionSections = true;
|
||||
|
||||
Conf.MAttrs = MAttrs;
|
||||
Conf.RelocModel = RelocationModel;
|
||||
Conf.CGOptLevel = getCGOptLevel();
|
||||
|
Loading…
Reference in New Issue
Block a user