[llvm] [BOLT] Add a test for BOLT-reserved space in a binary (PR #91399)
Maksim Panchenko via llvm-commits
llvm-commits at lists.llvm.org
Tue May 7 13:59:15 PDT 2024
https://github.com/maksfb created https://github.com/llvm/llvm-project/pull/91399
Test case for #90300.
>From ab0201ff90da31c03ddcd9c3332acc6b331a1bc4 Mon Sep 17 00:00:00 2001
From: Maksim Panchenko <maks at fb.com>
Date: Tue, 7 May 2024 13:55:18 -0700
Subject: [PATCH] [BOLT] Add a test for BOLT reserved space
---
bolt/test/runtime/bolt-reserved.cpp | 40 +++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 bolt/test/runtime/bolt-reserved.cpp
diff --git a/bolt/test/runtime/bolt-reserved.cpp b/bolt/test/runtime/bolt-reserved.cpp
new file mode 100644
index 0000000000000..5e93b4f7c3d40
--- /dev/null
+++ b/bolt/test/runtime/bolt-reserved.cpp
@@ -0,0 +1,40 @@
+// REQUIRES: system-linux
+
+/*
+ * Check that llvm-bolt uses reserved space in a binary for allocating
+ * new sections.
+ */
+
+// RUN: %clang %s -o %t.exe -Wl,-q
+// RUN: llvm-bolt %t.exe -o %t.bolt.exe 2>&1 | FileCheck %s
+// RUN: %t.bolt.exe
+
+// CHECK: BOLT-INFO: using reserved space
+
+/*
+ * Check that llvm-bolt detects a condition when the reserved space is
+ * not enough for allocating new sections.
+ */
+
+// RUN: %clang %s -o %t.exe -Wl,--no-eh-frame-hdr -Wl,-q -DTINY
+// RUN: not llvm-bolt %t.exe -o %t.bolt.exe 2>&1 | \
+// RUN: FileCheck %s --check-prefix=CHECK-TINY
+
+// CHECK-TINY: BOLT-ERROR: reserved space (1 byte) is smaller than required
+
+#ifdef TINY
+#define RSIZE "1"
+#else
+#define RSIZE "8192 * 1024"
+#endif
+
+asm(".pushsection .text \n\
+ .globl __bolt_reserved_start \n\
+ .type __bolt_reserved_start, @object \n\
+ __bolt_reserved_start: \n\
+ .space " RSIZE " \n\
+ .globl __bolt_reserved_end \n\
+ __bolt_reserved_end: \n\
+ .popsection");
+
+int main() { return 0; }
More information about the llvm-commits
mailing list