<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Sep 12, 2015 at 2:01 PM, Greg Stark <span dir="ltr"><<a href="mailto:stark@mit.edu" target="_blank" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=stark@mit.edu&cc=&bcc=&su=&body=','_blank');return false;">stark@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sat, Sep 12, 2015 at 7:48 PM, Greg Stark <<a href="mailto:stark@mit.edu" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=stark@mit.edu&cc=&bcc=&su=&body=','_blank');return false;">stark@mit.edu</a>> wrote:<br>
> I get that even if I put -fPIE in CFLAGS.<br>
<br>
</span>Er, yeah. Even a trivial test case doesn't work:<br>
<br></blockquote><div><br></div><div>What's the version of Linux and Clang? </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
$ cat foo.c<br>
int main(int argc, char *argv[], char *envp[]) {<br>
return 1;<br>
}<br>
<br>
$ clang -o foo -fsanitize=memory -fPIE -pie   foo.c<br>
<br>
$ sysctl kernel.randomize_va_space<br>
kernel.randomize_va_space = 2<br>
<br>
$ ./foo<br>
FATAL: Code 0x55873d194390 is out of application range. Non-PIE build?<br>
<span class="">FATAL: MemorySanitizer can not mmap the shadow memory.<br>
FATAL: Make sure to compile with -fPIE and to link with -pie.<br>
FATAL: Disabling ASLR is known to cause this error.<br>
FATAL: If running under GDB, try 'set disable-randomization off'.<br>
</span>==25950==Process memory map follows:<br>
0x55873d177000-0x55873d216000 /tmp/foo<br>
0x55873d415000-0x55873d419000 /tmp/foo<br>
0x55873d419000-0x55873f88c000<br>
0x7f276d5cf000-0x7f276d921000<br>
0x7f276d921000-0x7f276dac0000 /lib/x86_64-linux-gnu/<a href="http://libc-2.19.so" rel="noreferrer" target="_blank">libc-2.19.so</a><br>
0x7f276dac0000-0x7f276dcc0000 /lib/x86_64-linux-gnu/<a href="http://libc-2.19.so" rel="noreferrer" target="_blank">libc-2.19.so</a><br>
0x7f276dcc0000-0x7f276dcc4000 /lib/x86_64-linux-gnu/<a href="http://libc-2.19.so" rel="noreferrer" target="_blank">libc-2.19.so</a><br>
0x7f276dcc4000-0x7f276dcc6000 /lib/x86_64-linux-gnu/<a href="http://libc-2.19.so" rel="noreferrer" target="_blank">libc-2.19.so</a><br>
0x7f276dcc6000-0x7f276dcca000<br>
0x7f276dcca000-0x7f276dce0000 /lib/x86_64-linux-gnu/libgcc_s.so.1<br>
0x7f276dce0000-0x7f276dedf000 /lib/x86_64-linux-gnu/libgcc_s.so.1<br>
0x7f276dedf000-0x7f276dee0000 /lib/x86_64-linux-gnu/libgcc_s.so.1<br>
0x7f276dee0000-0x7f276dee3000 /lib/x86_64-linux-gnu/<a href="http://libdl-2.19.so" rel="noreferrer" target="_blank">libdl-2.19.so</a><br>
0x7f276dee3000-0x7f276e0e2000 /lib/x86_64-linux-gnu/<a href="http://libdl-2.19.so" rel="noreferrer" target="_blank">libdl-2.19.so</a><br>
0x7f276e0e2000-0x7f276e0e3000 /lib/x86_64-linux-gnu/<a href="http://libdl-2.19.so" rel="noreferrer" target="_blank">libdl-2.19.so</a><br>
0x7f276e0e3000-0x7f276e0e4000 /lib/x86_64-linux-gnu/<a href="http://libdl-2.19.so" rel="noreferrer" target="_blank">libdl-2.19.so</a><br>
0x7f276e0e4000-0x7f276e1e4000 /lib/x86_64-linux-gnu/<a href="http://libm-2.19.so" rel="noreferrer" target="_blank">libm-2.19.so</a><br>
0x7f276e1e4000-0x7f276e3e3000 /lib/x86_64-linux-gnu/<a href="http://libm-2.19.so" rel="noreferrer" target="_blank">libm-2.19.so</a><br>
0x7f276e3e3000-0x7f276e3e4000 /lib/x86_64-linux-gnu/<a href="http://libm-2.19.so" rel="noreferrer" target="_blank">libm-2.19.so</a><br>
0x7f276e3e4000-0x7f276e3e5000 /lib/x86_64-linux-gnu/<a href="http://libm-2.19.so" rel="noreferrer" target="_blank">libm-2.19.so</a><br>
0x7f276e3e5000-0x7f276e3ec000 /lib/x86_64-linux-gnu/<a href="http://librt-2.19.so" rel="noreferrer" target="_blank">librt-2.19.so</a><br>
0x7f276e3ec000-0x7f276e5eb000 /lib/x86_64-linux-gnu/<a href="http://librt-2.19.so" rel="noreferrer" target="_blank">librt-2.19.so</a><br>
0x7f276e5eb000-0x7f276e5ec000 /lib/x86_64-linux-gnu/<a href="http://librt-2.19.so" rel="noreferrer" target="_blank">librt-2.19.so</a><br>
0x7f276e5ec000-0x7f276e5ed000 /lib/x86_64-linux-gnu/<a href="http://librt-2.19.so" rel="noreferrer" target="_blank">librt-2.19.so</a><br>
0x7f276e5ed000-0x7f276e605000 /lib/x86_64-linux-gnu/<a href="http://libpthread-2.19.so" rel="noreferrer" target="_blank">libpthread-2.19.so</a><br>
0x7f276e605000-0x7f276e804000 /lib/x86_64-linux-gnu/<a href="http://libpthread-2.19.so" rel="noreferrer" target="_blank">libpthread-2.19.so</a><br>
0x7f276e804000-0x7f276e805000 /lib/x86_64-linux-gnu/<a href="http://libpthread-2.19.so" rel="noreferrer" target="_blank">libpthread-2.19.so</a><br>
0x7f276e805000-0x7f276e806000 /lib/x86_64-linux-gnu/<a href="http://libpthread-2.19.so" rel="noreferrer" target="_blank">libpthread-2.19.so</a><br>
0x7f276e806000-0x7f276e80a000<br>
0x7f276e80a000-0x7f276e82a000 /lib/x86_64-linux-gnu/<a href="http://ld-2.19.so" rel="noreferrer" target="_blank">ld-2.19.so</a><br>
0x7f276ea03000-0x7f276ea08000<br>
0x7f276ea1e000-0x7f276ea2a000<br>
0x7f276ea2a000-0x7f276ea2b000 /lib/x86_64-linux-gnu/<a href="http://ld-2.19.so" rel="noreferrer" target="_blank">ld-2.19.so</a><br>
0x7f276ea2b000-0x7f276ea2c000 /lib/x86_64-linux-gnu/<a href="http://ld-2.19.so" rel="noreferrer" target="_blank">ld-2.19.so</a><br>
0x7f276ea2c000-0x7f276ea2d000<br>
0x7ffd99d31000-0x7ffd99d52000 [stack]<br>
0x7ffd99d73000-0x7ffd99d75000 [vvar]<br>
0x7ffd99d75000-0x7ffd99d77000 [vdso]<br>
0xffffffffff600000-0xffffffffff601000 [vsyscall]<br>
==25950==End of process memory map.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
greg<br>
</font></span></blockquote></div><br></div></div>