We normally want to ignore SHT_NOBITS sections when computing offsets. The sh_offset of section itself seems to be irrelevant and - If the section is in the middle of a PT_LOAD, it will make no difference on the computed offset of the followup section. - If it is in the end of a PT_LOAD, we want to avoid its alignment changing the offset of the followup sections. The issue is if it is at the start of the PT_LOAD. In that case we do have to align it so that the following sections have congruent address and offset module the page size. We were not handling this case. This should fix freebsd kernel link. llvm-svn: 321657
19 lines
527 B
ArmAsm
19 lines
527 B
ArmAsm
# REQUIRES: x86
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
|
# RUN: echo "SECTIONS { \
|
|
# RUN: .sec1 (NOLOAD) : { . += 1; } \
|
|
# RUN: .text : { *(.text) } \
|
|
# RUN: };" > %t.script
|
|
# RUN: ld.lld %t.o -T %t.script -o %t
|
|
# RUN: llvm-readelf --sections %t | FileCheck %s
|
|
|
|
# We used to misalign section offsets if the first section in a
|
|
# PT_LOAD was SHT_NOBITS.
|
|
|
|
# CHECK: [ 2] .text PROGBITS 0000000000000010 001010 000010 00 AX 0 0 16
|
|
|
|
.global _start
|
|
_start:
|
|
nop
|
|
.p2align 4
|