<div dir="ltr">FYI, now this test fails on Mac with:<div><br></div><div>ld: unknown option: -R<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Feb 25, 2014 at 7:32 PM, Evgeniy Stepanov <span dir="ltr"><<a href="mailto:eugeni.stepanov@gmail.com" target="_blank">eugeni.stepanov@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Indeed, everything seems to work fine without soname.<br>
Fixed in r202156.<br>
<div class="HOEnZb"><div class="h5"><br>
On Tue, Feb 25, 2014 at 6:59 PM, Alexander Potapenko <<a href="mailto:glider@google.com">glider@google.com</a>> wrote:<br>
> I think we do want a similar test on Mac. Maybe just omit the --soname flag?<br>
><br>
> On Tue, Feb 25, 2014 at 6:31 PM, Alexey Samsonov <<a href="mailto:samsonov@google.com">samsonov@google.com</a>> wrote:<br>
>> Should this test be Linux-specific? It fails on Mac with:<br>
>> ld: unknown option: --soname<br>
>><br>
>><br>
>> On Mon, Feb 24, 2014 at 6:31 PM, Evgeniy Stepanov<br>
>> <<a href="mailto:eugeni.stepanov@gmail.com">eugeni.stepanov@gmail.com</a>> wrote:<br>
>>><br>
>>> Author: eugenis<br>
>>> Date: Mon Feb 24 08:31:28 2014<br>
>>> New Revision: 202037<br>
>>><br>
>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=202037&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=202037&view=rev</a><br>
>>> Log:<br>
>>> [asan] Add a test for interceptors in shared libraries.<br>
>>><br>
>>> Added:<br>
>>><br>
>>> compiler-rt/trunk/test/asan/TestCases/interception-in-shared-lib-test.cc<br>
>>> (with props)<br>
>>> Modified:<br>
>>>     compiler-rt/trunk/test/asan/TestCases/SharedLibs/shared-lib-test-so.cc<br>
>>>     compiler-rt/trunk/test/asan/TestCases/asan-symbolize-sanity-test.cc<br>
>>><br>
>>> Modified:<br>
>>> compiler-rt/trunk/test/asan/TestCases/SharedLibs/shared-lib-test-so.cc<br>
>>> URL:<br>
>>> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/SharedLibs/shared-lib-test-so.cc?rev=202037&r1=202036&r2=202037&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/SharedLibs/shared-lib-test-so.cc?rev=202037&r1=202036&r2=202037&view=diff</a><br>

>>><br>
>>> ==============================================================================<br>
>>> --- compiler-rt/trunk/test/asan/TestCases/SharedLibs/shared-lib-test-so.cc<br>
>>> (original)<br>
>>> +++ compiler-rt/trunk/test/asan/TestCases/SharedLibs/shared-lib-test-so.cc<br>
>>> Mon Feb 24 08:31:28 2014<br>
>>> @@ -11,6 +11,7 @@<br>
>>>  //<br>
>>><br>
>>> //===----------------------------------------------------------------------===//<br>
>>>  #include <stdio.h><br>
>>> +#include <string.h><br>
>>><br>
>>>  int pad[10];<br>
>>>  int GLOB[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};<br>
>>> @@ -24,3 +25,8 @@ extern "C"<br>
>>>  void inc2(int *a, int index) {<br>
>>>    a[index]++;<br>
>>>  }<br>
>>> +<br>
>>> +extern "C"<br>
>>> +void my_memset(void *p, size_t sz) {<br>
>>> +  memset(p, 0, sz);<br>
>>> +}<br>
>>><br>
>>> Modified:<br>
>>> compiler-rt/trunk/test/asan/TestCases/asan-symbolize-sanity-test.cc<br>
>>> URL:<br>
>>> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/asan-symbolize-sanity-test.cc?rev=202037&r1=202036&r2=202037&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/asan-symbolize-sanity-test.cc?rev=202037&r1=202036&r2=202037&view=diff</a><br>

>>><br>
>>> ==============================================================================<br>
>>> --- compiler-rt/trunk/test/asan/TestCases/asan-symbolize-sanity-test.cc<br>
>>> (original)<br>
>>> +++ compiler-rt/trunk/test/asan/TestCases/asan-symbolize-sanity-test.cc<br>
>>> Mon Feb 24 08:31:28 2014<br>
>>> @@ -30,7 +30,7 @@ int main(int argc, char *argv[]) {<br>
>>>    inc2(array, -1);  // BOOM<br>
>>>    // CHECK: ERROR: AddressSanitizer: heap-buffer-overflow<br>
>>>    // CHECK: READ of size 4 at 0x{{.*}}<br>
>>> -  // CHECK: #0 {{.*}} in inc2 {{.*}}shared-lib-test-so.cc:25<br>
>>> +  // CHECK: #0 {{.*}} in inc2 {{.*}}shared-lib-test-so.cc:26<br>
>>>    // CHECK: #1 {{.*}} in main<br>
>>> {{.*}}asan-symbolize-sanity-test.cc:[[@LINE-4]]<br>
>>>    // CHECK: allocated by thread T{{.*}} here:<br>
>>>    // CHECK: #{{.*}} in {{(wrap_|__interceptor_)?}}malloc<br>
>>><br>
>>> Added:<br>
>>> compiler-rt/trunk/test/asan/TestCases/interception-in-shared-lib-test.cc<br>
>>> URL:<br>
>>> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/interception-in-shared-lib-test.cc?rev=202037&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/interception-in-shared-lib-test.cc?rev=202037&view=auto</a><br>

>>><br>
>>> ==============================================================================<br>
>>> ---<br>
>>> compiler-rt/trunk/test/asan/TestCases/interception-in-shared-lib-test.cc<br>
>>> (added)<br>
>>> +++<br>
>>> compiler-rt/trunk/test/asan/TestCases/interception-in-shared-lib-test.cc Mon<br>
>>> Feb 24 08:31:28 2014<br>
>>> @@ -0,0 +1,21 @@<br>
>>> +// Check that memset() call from a shared library gets intercepted.<br>
>>> +<br>
>>> +// RUN: %clangxx_asan -O0 %p/SharedLibs/shared-lib-test-so.cc \<br>
>>> +// RUN:     -shared -o %T/libinterception-in-shared-lib-test.so \<br>
>>> +// RUN:     -fPIC -Wl,--soname,libinterception-in-shared-lib-test.so<br>
>>> +// RUN: %clangxx_asan -O0 %s -o %t -Wl,-R,\$ORIGIN -L%T<br>
>>> -linterception-in-shared-lib-test && \<br>
>>> +// RUN:     not %t 2>&1 | FileCheck %s<br>
>>> +<br>
>>> +#include <stdio.h><br>
>>> +#include <string.h><br>
>>> +<br>
>>> +extern "C" void my_memset(void *p, size_t sz);<br>
>>> +<br>
>>> +int main(int argc, char *argv[]) {<br>
>>> +  char buf[10];<br>
>>> +  my_memset(buf, 11);<br>
>>> +  // CHECK: {{.*ERROR: AddressSanitizer: stack-buffer-overflow}}<br>
>>> +  // CHECK: {{WRITE of size 11 at 0x.* thread T0}}<br>
>>> +  // CHECK: {{    #0 0x.* in my_memset .*shared-lib-test-so.cc:31}}<br>
>>> +  return 0;<br>
>>> +}<br>
>>><br>
>>> Propchange:<br>
>>> compiler-rt/trunk/test/asan/TestCases/interception-in-shared-lib-test.cc<br>
>>><br>
>>> ------------------------------------------------------------------------------<br>
>>>     svn:eol-style = LF<br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> llvm-commits mailing list<br>
>>> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
>><br>
>><br>
>><br>
>><br>
>> --<br>
>> Alexey Samsonov, MSK<br>
><br>
><br>
><br>
> --<br>
> Alexander Potapenko<br>
> Software Engineer<br>
> Google Moscow<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div>
</div>