Summary: Other large sections (e.g. .rela.dyn .dynstr) may push .note.* off the first page. They won't be available in core files if RLIMIT_CORE is limited. This patch gives priority to alloctable SHT_NOTE sections so that they are assuredly in the first page and will be available in core files. They are small and contain important information (e.g. .note.gnu.build-id identifies the origin of the core, .note.tag stores NT_FREEBSD_ABI_TAG). Note: gold Output_section_order has a similar rule: // Loadable read-only note sections come next so that the PT_NOTE // segment is on the first page of the executable. ORDER_RO_NOTE, Reviewers: ruiu, pcc, espindola Subscribers: emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D55800 llvm-svn: 349524
13 lines
481 B
ArmAsm
13 lines
481 B
ArmAsm
# REQUIRES: x86
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
|
# RUN: ld.lld %t.o --build-id=md5 --shared -o %t.so
|
|
# RUN: llvm-readelf -S %t.so | FileCheck %s
|
|
|
|
# Check .note.gnu.build-id is placed before other potentially large sections
|
|
# (.dynsym .dynstr (and .rela.dyn in PIE)). This ensures the note information
|
|
# available in core files because various core dumpers ensure the first page is
|
|
# available.
|
|
|
|
# CHECK: [ 1] .note.gnu.build-id
|
|
# CHECK: [ 2] .dynsym
|