blob: fd369bb152477df9a8b13e3a8c5856184cfb1cbd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Consider doing runtime detection of MAP_FIXED_NOREPLACE
Description of problem:
```
qemu-i386-static: Unable to reserve 0xfffff000 bytes of virtual address space at 0x1000 (Operation not supported) for use as guest address space (check your virtual memory ulimit setting, min_mmap_addr or reserve less using -R option)
```
strace says
```
mmap(0x1000, 4294963200, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE|MAP_FIXED_NOREPLACE, -1, 0) = -1 EOPNOTSUPP (Operation not supported)
```
Steps to reproduce:
1. `apt install qemu-i386-static 32subsystem`
2. `strace qemu-i386-static /opt/32/bin/as`
Additional information:
Repeating the strace call in a minimal C program gives the same errno as expected -- the kernel is only 4.4. The problem here is that qemu only does `MAP_FIXED_NOREPLACE` feature detection at build-time via a `#ifndef` and even that behavior is poorly documented. Maybe do something at runtime?
|