https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112353

            Bug ID: 112353
           Summary: asan-enabled, aarch64-gcc cross-compiled elf
                    executables fail ro run in qemu-user on x86
           Product: gcc
           Version: 12.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: robert at bedrocksystems dot com
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at 
gcc dot gnu.org
  Target Milestone: ---

On Ubuntu 23.04 x86_64, an aarch64 cross-compiled elf executable with Address
Sanitizer (asan) enabled, fails with the run-time error:
```
AddressSanitizer: CHECK failed: asan_poisoning.cpp:38 "((AddrIsInMem(addr))) !=
(0)" (0x0, 0x0) (tid=1909)
    <empty stack>
```

This might be related to qemu and not gcc, but it reproduced also with gcc
13.2.0, but not with gcc 11.4.0.

Versions used:

```
$ aarch64-linux-gnu-g++ --version
aarch64-linux-gnu-g++ (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0

$ qemu-aarch64-static -version
qemu-aarch64 version 7.2.0 (Debian 1:7.2+dfsg-5ubuntu2.3)
```

Steps to reproduce:
```
$ echo "int main() {return 1;}" > /tmp/poc.cpp
$ aarch64-linux-gnu-g++ -fsanitize=address /tmp/poc.cpp -o /tmp/poc 
$ qemu-aarch64-static /tmp/poc ## this takes a while
AddressSanitizer: CHECK failed: asan_poisoning.cpp:38 "((AddrIsInMem(addr))) !=
(0)" (0x0, 0x0) (tid=2220)
    <empty stack>
```

Reply via email to