Files
clang-p2996/lld/test/ELF/note-first-page.s
Fangrui Song 41031d97f2 [ELF] Place .note in the first page to ensure they are available in core files
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
2018-12-18 19:16:37 +00:00

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