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 <jwkozac...@gmail.com>
---
 tests/tst-elf-permissions.cc | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tests/tst-elf-permissions.cc b/tests/tst-elf-permissions.cc
index 3b704787..4ff045a4 100644
--- a/tests/tst-elf-permissions.cc
+++ b/tests/tst-elf-permissions.cc
@@ -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()
-- 
2.27.0

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/20220503205612.41541-1-jwkozaczuk%40gmail.com.

Reply via email to