FreeBSD: Disable missing reflection metadata tests

LLD relocates some of the metadata sections resulting in bad offsets at
runtime.

The workaround is to pass `-no-rosegment` to the linker invocation.

rdar://159139154
This commit is contained in:
Evan Wilde
2025-08-25 15:32:33 -07:00
parent cc4f323b71
commit dfccee66ad
2 changed files with 12 additions and 0 deletions

View File

@@ -9,6 +9,12 @@
// RUN: %target-build-swift %s -emit-module -emit-library -module-name capture_descriptors -o %t/capture_descriptors%{target-shared-library-suffix} -L%t/../../.. -lBlocksRuntime
// RUN: %target-swift-reflection-dump %t/capture_descriptors%{target-shared-library-suffix} | %FileCheck %s
// lld on FreeBSD relocates some of the metadata sections resulting in invalid
// offsets in section headers, breaking the Swift reflection data ELF parser
// resulting in missing metadata.
// rdar://159139154
// XFAIL: OS=freebsd
sil_stage canonical
import Builtin

View File

@@ -23,6 +23,12 @@
// UNSUPPORTED: OS=linux-android, OS=linux-androideabi
// lld on FreeBSD relocates some of the metadata sections resulting in invalid
// offsets in section headers, breaking the Swift reflection data ELF parser
// resulting in missing metadata.
// rdar://159139154
// XFAIL: OS=freebsd
// CHECK-32: FIELDS:
// CHECK-32: =======
// CHECK-32: TypesToReflect.HasCTypes