Hi, <div><br></div><div>I've just noticed that AddressSanitizer run-time does not work with -pie because the library is not built with -fPIC (or -fPIE). </div><div>This probably applies to other parts of compiler-rt as well. </div>
<div><br></div><div>The simplest fix is to add -fPIC to the compiler-rt build flags (patch below). Does anyone object? </div><div>A more complex alternative would be to build a PIC and non-PIC variants.</div><div><br></div>
<div>Thanks, </div><div><br></div><div>--kcc </div><div><br></div><div><div>Index: make/<a href="http://config.mk">config.mk</a></div><div>===================================================================</div><div>--- make/<a href="http://config.mk">config.mk</a>      (revision 146376)</div>
<div>+++ make/<a href="http://config.mk">config.mk</a>      (working copy)</div><div>@@ -42,4 +42,5 @@</div><div> </div><div> ###</div><div> # Common compiler options</div><div>-COMMON_CXXFLAGS=-fno-exceptions</div><div>+COMMON_CXXFLAGS=-fno-exceptions -fPIC</div>
<div>+COMMON_CFLAGS=-fPIC</div><div>Index: Makefile</div><div>===================================================================</div><div>--- Makefile    (revision 146376)</div><div>+++ Makefile    (working copy)</div><div>
@@ -227,7 +227,7 @@</div><div>        $(Verb) $(Tmp.CC) $(Tmp.CFLAGS) -c -o $$@ $$<</div><div> $(Tmp.ObjPath)/%.o: $(Tmp.SrcPath)/%.c $(Tmp.Dependencies) $(Tmp.ObjPath)/.dir</div><div>        $(Summary) "  COMPILE:   $(Tmp.Name)/$(Tmp.Config)/$(Tmp.Arch): $$<"</div>
<div>-       $(Verb) $(Tmp.CC) $(Tmp.CFLAGS) -c -o $$@ $$<</div><div>+       $(Verb) $(Tmp.CC) $(Tmp.CFLAGS) -c $(COMMON_CFLAGS) -o $$@ $$<</div><div> $(Tmp.ObjPath)/%.o: $(Tmp.SrcPath)/%.cc $(Tmp.Dependencies) $(Tmp.ObjPath)/.dir</div>
<div>        $(Summary) "  COMPILE:   $(Tmp.Name)/$(Tmp.Config)/$(Tmp.Arch): $$<"</div><div>        $(Verb) $(Tmp.CC) $(Tmp.CFLAGS) -c $(COMMON_CXXFLAGS) -o $$@ $$<</div></div><div><br></div>