]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: correctly detect ASan on s390x
authorFrantisek Sumsal <frantisek@sumsal.cz>
Thu, 29 Jul 2021 16:44:51 +0000 (18:44 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 6 Aug 2021 14:43:07 +0000 (16:43 +0200)
s390x uses BRAS(L) instead of CALL(Q), e.g.:

```
 1009528: c0 e5 ff ff f8 a0  brasl %r14,1008668 <__asan_report_load1@plt>
 10095f0: c0 e5 ff ff ea ec  brasl %r14,1006bc8 <__asan_stack_malloc_4@plt>
 10097f8: c0 e5 ff ff f8 f8  brasl %r14,10089e8 <__asan_report_load8@plt>
```

x86_64 for reference:

```
  4011f3: e8 48 fe ff ff        callq  401040 <__asan_report_load1@plt>
  401227: e8 24 fe ff ff        callq  401050 <__asan_report_load8@plt>
  401251: e8 da fd ff ff        callq  401030 <__asan_init@plt>
```

(cherry picked from commit 8bf79f05532162d19fe6ee211297cff81b4f9874)
(cherry picked from commit 5a6a08284d7ca89218d9e9ccfe44fce8898ef6bf)
(cherry picked from commit 365ed29af67a511c1a1bc427a54bbfe69a3ebc96b)

test/test-functions

index beaf4fae2f16a07f338a18e8b745169c8c28e2ad..59416974b1882e0ee5e5b10d58c749b1be9e8b2b 100644 (file)
@@ -155,7 +155,7 @@ is_built_with_asan() {
     fi
 
     # Borrowed from https://github.com/google/oss-fuzz/blob/cd9acd02f9d3f6e80011cc1e9549be526ce5f270/infra/base-images/base-runner/bad_build_check#L182
-    local _asan_calls=$(objdump -dC $SYSTEMD_JOURNALD | egrep "callq\s+[0-9a-f]+\s+<__asan" -c)
+    local _asan_calls=$(objdump -dC $SYSTEMD_JOURNALD | egrep "(callq?|brasl?)\s+[0-9a-f]+\s+<__asan" -c)
     if (( $_asan_calls < 1000 )); then
         return 1
     else