Skip to content

Commit

Permalink
aarch64: build tst-elf-permissions.cc with correctly named sections
Browse files Browse the repository at this point in the history
The assembler on aarch64 uses different characters - '//' - for the end
of line comment (see https://sourceware.org/binutils/docs-2.26/as/i386_002dChars.html#i386_002dChars
and https://sourceware.org/binutils/docs-2.26/as/AArch64_002dChars.html#AArch64_002dChars
respectively). So we add the relevant ifdef directives to make it build
correctly on each arch.

Signed-off-by: Waldemar Kozaczuk <jwkozaczuk@gmail.com>
  • Loading branch information
wkozaczuk committed May 4, 2022
1 parent 78a42c5 commit a26f0b2
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions tests/tst-elf-permissions.cc
Expand Up @@ -20,9 +20,19 @@ static int test_text_section() __attribute__((noinline));
// solution is to take advantage from the fact that gcc passes section name
// verbatim to the assembler and thus adding '#' makes whatever gcc appends
// to the directive ignored.
#ifdef __x86_64__
static int test_data_section() __attribute__((noinline, section(".data #")));
#endif
#ifdef __aarch64__
static int test_data_section() __attribute__((noinline, section(".data //")));
#endif

#ifdef __x86_64__
static int test_gnu_relro __attribute__((section(".got #")));
#endif
#ifdef __aarch64__
static int test_gnu_relro __attribute__((section(".got //")));
#endif

volatile int value = 123;
static int test_text_section()
Expand Down

0 comments on commit a26f0b2

Please sign in to comment.