Comment 14 for bug 605042

Yao Qi (yao-codesourcery) wrote :

Can't reproduce this problem, here are steps,

1 Remove cvs-revert-flush-cache-textrels.diff from patch/series.
2 Rebuild eglibc
3 dpkg -i libc6_2.12.1-0ubuntu1_armel.deb
4 cp /usr/lib/jvm/java-6-openjdk/jre/lib/arm/server/libjvm.so .
5 Run ./testcase, no seg fault.
6. strace -o 3.log java -version
.....
mmap2(0x40499000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x64) = 0x40499000
close(3) = 0
mprotect(0x40499000, 4096, PROT_READ) = 0
mprotect(0x40172000, 2572288, PROT_READ|PROT_WRITE) = 0
mprotect(0x40172000, 2572288, PROT_READ|PROT_EXEC) = 0
cacheflush(0x40172000, 0x403e6000, 0, 0x274000, 0x19448) = 0 // <---- [1]
mprotect(0x403ed000, 57344, PROT_READ) = 0
open("/proc/self/auxv", O_RDONLY) = 3
read(3, "\20\0\0\0\3278\0\0\6\0\0\0\0\20\0\0\21\0\0\0d\0\0\0\3\0\0\0004\200\0\0"..., 256) = 144
.....

It got seg fault on [1] in comment#1. In my case, cacheflush is executed without seg faults.

# java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-2ubuntu2)
OpenJDK Zero VM (build 14.0-b16, mixed mode)