1 | // Make sure BOLT correctly processes --hugify option |
2 | |
3 | #include <stdio.h> |
4 | |
5 | int main(int argc, char **argv) { |
6 | printf(format: "Hello world\n" ); |
7 | return 0; |
8 | } |
9 | |
10 | /* |
11 | REQUIRES: system-linux,bolt-runtime |
12 | |
13 | RUN: %clang %cflags -no-pie %s -o %t.nopie.exe -Wl,-q |
14 | RUN: %clang %cflags -fpic %s -o %t.pie.exe -Wl,-q |
15 | |
16 | RUN: llvm-bolt %t.nopie.exe --lite=0 -o %t.nopie --hugify |
17 | RUN: llvm-bolt %t.pie.exe --lite=0 -o %t.pie --hugify |
18 | |
19 | RUN: llvm-nm --numeric-sort --print-armap %t.nopie | \ |
20 | RUN: FileCheck %s -check-prefix=CHECK-NM |
21 | RUN: %t.nopie | FileCheck %s -check-prefix=CHECK-NOPIE |
22 | |
23 | RUN: llvm-nm --numeric-sort --print-armap %t.pie | \ |
24 | RUN: FileCheck %s -check-prefix=CHECK-NM |
25 | RUN: %t.pie | FileCheck %s -check-prefix=CHECK-PIE |
26 | |
27 | CHECK-NM: W __hot_start |
28 | CHECK-NM-NEXT: T _start |
29 | CHECK-NM: T main |
30 | CHECK-NM: W __hot_end |
31 | CHECK-NM: t __bolt_hugify_start_program |
32 | CHECK-NM-NEXT: W __bolt_runtime_start |
33 | |
34 | CHECK-NOPIE: Hello world |
35 | |
36 | CHECK-PIE: Hello world |
37 | |
38 | */ |
39 | |