]> 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)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 29 Jul 2021 22:59:08 +0000 (23:59 +0100)
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>
```

test/test-functions

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