| # REQUIRES: x86 |
| ## Test discarding .eh_frame and/or .eh_frame_hdr. |
| |
| # RUN: rm -rf %t && split-file %s %t && cd %t |
| # RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o |
| # RUN: ld.lld --eh-frame-hdr -T 1.lds a.o -o out1 |
| # RUN: llvm-readelf -Sl out1 | FileCheck %s |
| # RUN: ld.lld --eh-frame-hdr -T 2.lds a.o -o out2 |
| # RUN: llvm-readelf -Sl out2 | FileCheck %s |
| # RUN: ld.lld --eh-frame-hdr -T 3.lds a.o -o out3 |
| # RUN: llvm-readelf -Sl out3 | FileCheck %s --check-prefix=CHECK3 |
| |
| # CHECK-NOT: .eh_frame |
| # CHECK: .text |
| # CHECK-NOT: .eh_frame |
| |
| # CHECK: Program Headers: |
| # CHECK-NOT: PT_GNU_EH_FRAME |
| |
| # CHECK3-NOT: .eh_frame_hdr |
| # CHECK3: .eh_frame PROGBITS |
| # CHECK3-NOT: .eh_frame_hdr |
| # CHECK3: Program Headers: |
| # CHECK3-NOT: PT_GNU_EH_FRAME |
| |
| #--- a.s |
| .global _start |
| _start: |
| nop |
| |
| .section .dah,"ax",@progbits |
| .cfi_startproc |
| nop |
| .cfi_endproc |
| |
| #--- 1.lds |
| ## Regression test for https://github.com/llvm/llvm-project/pull/179089#issuecomment-3888507749 |
| SECTIONS { /DISCARD/ : { *(.eh_frame) } } |
| |
| #--- 2.lds |
| SECTIONS { /DISCARD/ : { *(.eh_frame .eh_frame_hdr) } } |
| |
| #--- 3.lds |
| SECTIONS { /DISCARD/ : { *(.eh_frame_hdr) } } |