Re: libsanitizer merge from upstream r175042

2013-02-28 Thread Konstantin Serebryany
On Fri, Feb 22, 2013 at 8:32 PM, Jakub Jelinek ja...@redhat.com wrote: On Fri, Feb 15, 2013 at 12:47:30PM +0400, Konstantin Serebryany wrote: Sure. ASAN_FIXED_MAPPING should be used for performance measurements only -- this is not a release option. (Added a more precise comment). BTW, today

Re: libsanitizer merge from upstream r175042

2013-02-28 Thread Jakub Jelinek
On Thu, Feb 28, 2013 at 04:30:13PM +0400, Konstantin Serebryany wrote: I am sorry, I missed this message. Indeed, the change looks safe, http://llvm.org/viewvc/llvm-project?rev=176250view=rev Thanks, here is what I've committed to gcc: 2013-02-28 Jakub Jelinek ja...@redhat.com *

Re: libsanitizer merge from upstream r175042

2013-02-22 Thread Jakub Jelinek
On Fri, Feb 15, 2013 at 12:47:30PM +0400, Konstantin Serebryany wrote: Sure. ASAN_FIXED_MAPPING should be used for performance measurements only -- this is not a release option. (Added a more precise comment). BTW, today I think I've discovered what looks like a prelink bug, but perhaps we

Re: libsanitizer merge from upstream r175042

2013-02-18 Thread Jakub Jelinek
On Fri, Feb 15, 2013 at 07:39:28AM -0800, Ian Lance Taylor wrote: On Thu, Feb 14, 2013 at 11:45 PM, Konstantin Serebryany konstantin.s.serebry...@gmail.com wrote: Unfortunately, the test does not work if gold is the system linker. Any suggestion on how to make the test work with either

Re: libsanitizer merge from upstream r175042

2013-02-18 Thread Konstantin Serebryany
On Mon, Feb 18, 2013 at 12:20 PM, Jakub Jelinek ja...@redhat.com wrote: On Fri, Feb 15, 2013 at 07:39:28AM -0800, Ian Lance Taylor wrote: On Thu, Feb 14, 2013 at 11:45 PM, Konstantin Serebryany konstantin.s.serebry...@gmail.com wrote: Unfortunately, the test does not work if gold is the

Re: libsanitizer merge from upstream r175042

2013-02-15 Thread Jakub Jelinek
On Fri, Feb 15, 2013 at 11:45:15AM +0400, Konstantin Serebryany wrote: On Thu, Feb 14, 2013 at 4:19 PM, Jakub Jelinek ja...@redhat.com wrote: On Thu, Feb 14, 2013 at 03:55:47PM +0400, Konstantin Serebryany wrote: The patch seems to work on a simple test. Let me digest it. I am trying to

Re: libsanitizer merge from upstream r175042

2013-02-15 Thread Konstantin Serebryany
Ian, there is a question for you below. On Fri, Feb 15, 2013 at 12:26 PM, Jakub Jelinek ja...@redhat.com wrote: On Fri, Feb 15, 2013 at 11:45:15AM +0400, Konstantin Serebryany wrote: On Thu, Feb 14, 2013 at 4:19 PM, Jakub Jelinek ja...@redhat.com wrote: On Thu, Feb 14, 2013 at 03:55:47PM

Re: libsanitizer merge from upstream r175042

2013-02-15 Thread Jakub Jelinek
On Fri, Feb 15, 2013 at 12:47:30PM +0400, Konstantin Serebryany wrote: This is ungood. First, clang doesn't like it at all: prelink1.cc:18:18: error: init_priority attribute requires integer constant between 101 and 65535 inclusive A __attribute__((init_priority (1))) a; For gcc it is just a

Re: libsanitizer merge from upstream r175042

2013-02-15 Thread Konstantin Serebryany
On Fri, Feb 15, 2013 at 1:05 PM, Jakub Jelinek ja...@redhat.com wrote: On Fri, Feb 15, 2013 at 12:47:30PM +0400, Konstantin Serebryany wrote: This is ungood. First, clang doesn't like it at all: prelink1.cc:18:18: error: init_priority attribute requires integer constant between 101 and 65535

Re: libsanitizer merge from upstream r175042

2013-02-15 Thread Jakub Jelinek
On Fri, Feb 15, 2013 at 01:30:18PM +0400, Konstantin Serebryany wrote: OT, unrelated thing, in include/asan_interface.h there is one #if __has_feature(address_sanitizer) which for GCC should better be: #if (defined __has_feature __has_feature(address_sanitizer)) \ ||

Re: libsanitizer merge from upstream r175042

2013-02-15 Thread Konstantin Serebryany
On Fri, Feb 15, 2013 at 1:37 PM, Jakub Jelinek ja...@redhat.com wrote: On Fri, Feb 15, 2013 at 01:30:18PM +0400, Konstantin Serebryany wrote: OT, unrelated thing, in include/asan_interface.h there is one #if __has_feature(address_sanitizer) which for GCC should better be: #if (defined

Re: libsanitizer merge from upstream r175042

2013-02-15 Thread Konstantin Serebryany
I've submitted http://llvm.org/viewvc/llvm-project?view=revisionrevision=175263 If it survives a few days of testing I'll do another merge to gcc. --kcc On Fri, Feb 15, 2013 at 1:47 PM, Konstantin Serebryany konstantin.s.serebry...@gmail.com wrote: On Fri, Feb 15, 2013 at 1:37 PM, Jakub Jelinek

Re: libsanitizer merge from upstream r175042

2013-02-15 Thread Ian Lance Taylor
On Thu, Feb 14, 2013 at 11:45 PM, Konstantin Serebryany konstantin.s.serebry...@gmail.com wrote: Unfortunately, the test does not work if gold is the system linker. Any suggestion on how to make the test work with either linker? I don't know of a way to set the address of the text segment for

Re: libsanitizer merge from upstream r175042

2013-02-14 Thread Konstantin Serebryany
On Wed, Feb 13, 2013 at 10:29 PM, H.J. Lu hjl.to...@gmail.com wrote: On Wed, Feb 13, 2013 at 1:19 AM, Konstantin Serebryany konstantin.s.serebry...@gmail.com wrote: Hi, The attached patch is the libsanitizer merge from upstream r175042. Lots of changes. Among other things: - x86_64 linux

Re: libsanitizer merge from upstream r175042

2013-02-14 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 04:19:14PM +0100, Jakub Jelinek wrote: Here is the patch, works just fine for me here during asan.exp testing. You can very easily either install and enable prelink on one of your x86_64-linux testing boxes, or just install it and add test that will say prelink -r

Re: libsanitizer merge from upstream r175042

2013-02-14 Thread Konstantin Serebryany
The patch seems to work on a simple test. Let me digest it. I am trying to understand if there are problems with it other than the added complexity (which is what I don't like the most). -Wl,-Ttext-segment=0x36 does not work with binutils-gold. gold understands -Wl,-Ttext=0x36,

Re: libsanitizer merge from upstream r175042

2013-02-14 Thread Konstantin Serebryany
On Thu, Feb 14, 2013 at 4:19 PM, Jakub Jelinek ja...@redhat.com wrote: On Thu, Feb 14, 2013 at 03:55:47PM +0400, Konstantin Serebryany wrote: The patch seems to work on a simple test. Let me digest it. I am trying to understand if there are problems with it other than the added complexity

Re: libsanitizer merge from upstream r175042

2013-02-14 Thread Konstantin Serebryany
On Thu, Feb 14, 2013 at 4:19 PM, Jakub Jelinek ja...@redhat.com wrote: On Thu, Feb 14, 2013 at 03:55:47PM +0400, Konstantin Serebryany wrote: The patch seems to work on a simple test. Let me digest it. I am trying to understand if there are problems with it other than the added complexity

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 01:19:47PM +0400, Konstantin Serebryany wrote: The attached patch is the libsanitizer merge from upstream r175042. Lots of changes. Among other things: - x86_64 linux: change the shadow offset to 0x7fff8000 (~5% speedup) - the new asan allocator is enabled on Mac

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 02:28:25PM +0400, Konstantin Serebryany wrote: Right. In LLVM we test only with ASAN_FLEXIBLE_MAPPING_AND_OFFSET==1, so this came unnoticed. Fixed in r175049. ... This is ok, thanks. Jakub

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 11:32:00AM +0100, Jakub Jelinek wrote: On Wed, Feb 13, 2013 at 02:28:25PM +0400, Konstantin Serebryany wrote: Right. In LLVM we test only with ASAN_FLEXIBLE_MAPPING_AND_OFFSET==1, so this came unnoticed. Fixed in r175049. ... This is ok, thanks. Unfortunately,

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Konstantin Serebryany
On Wed, Feb 13, 2013 at 3:59 PM, Jakub Jelinek ja...@redhat.com wrote: On Wed, Feb 13, 2013 at 11:32:00AM +0100, Jakub Jelinek wrote: On Wed, Feb 13, 2013 at 02:28:25PM +0400, Konstantin Serebryany wrote: Right. In LLVM we test only with ASAN_FLEXIBLE_MAPPING_AND_OFFSET==1, so this came

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 04:32:33PM +0400, Konstantin Serebryany wrote: Unfortunately, it seems everything fails with that change :( on Linux. The problem is that the default prelink library range for x86_64 is 0x30LL to 0x40LL, and that unfortunately overlaps Forgive my

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Konstantin Serebryany
On Wed, Feb 13, 2013 at 4:48 PM, Jakub Jelinek ja...@redhat.com wrote: On Wed, Feb 13, 2013 at 04:32:33PM +0400, Konstantin Serebryany wrote: Unfortunately, it seems everything fails with that change :( on Linux. The problem is that the default prelink library range for x86_64 is

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 04:57:30PM +0400, Konstantin Serebryany wrote: On Wed, Feb 13, 2013 at 4:48 PM, Jakub Jelinek ja...@redhat.com wrote: On Wed, Feb 13, 2013 at 04:32:33PM +0400, Konstantin Serebryany wrote: Unfortunately, it seems everything fails with that change :( on Linux. The

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Richard Biener
On Wed, Feb 13, 2013 at 2:07 PM, Jakub Jelinek ja...@redhat.com wrote: On Wed, Feb 13, 2013 at 04:57:30PM +0400, Konstantin Serebryany wrote: On Wed, Feb 13, 2013 at 4:48 PM, Jakub Jelinek ja...@redhat.com wrote: On Wed, Feb 13, 2013 at 04:32:33PM +0400, Konstantin Serebryany wrote:

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 02:27:56PM +0100, Richard Biener wrote: ASAN could set an ELF flag on the executable to tell the kernel not to use prelinked objects? That is, similar to how we handle executable stacks? But we don't have such a flag right now, and what should old kernels that don't

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Konstantin Serebryany
On Wed, Feb 13, 2013 at 5:07 PM, Jakub Jelinek ja...@redhat.com wrote: On Wed, Feb 13, 2013 at 04:57:30PM +0400, Konstantin Serebryany wrote: On Wed, Feb 13, 2013 at 4:48 PM, Jakub Jelinek ja...@redhat.com wrote: On Wed, Feb 13, 2013 at 04:32:33PM +0400, Konstantin Serebryany wrote:

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jack Howarth
On Wed, Feb 13, 2013 at 11:32:00AM +0100, Jakub Jelinek wrote: On Wed, Feb 13, 2013 at 02:28:25PM +0400, Konstantin Serebryany wrote: Right. In LLVM we test only with ASAN_FLEXIBLE_MAPPING_AND_OFFSET==1, so this came unnoticed. Fixed in r175049. ... This is ok, thanks. Jakub

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 05:39:15PM +0400, Konstantin Serebryany wrote: No. You can disable it for the whole system (prelink -ua), but that is not a sane requirement to running sanitized programs. Why not? :) Because that is a fully system operation, requires root access, etc. The fact

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jack Howarth
On Wed, Feb 13, 2013 at 04:19:14PM +0100, Jakub Jelinek wrote: The reexec is problematic, what if the program already in constructors run before __asan_init (perhaps ctors of other libraries etc.) does something that really shouldn't be done twice? Jakub, Wouldn't sorting all of the

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread H.J. Lu
On Wed, Feb 13, 2013 at 1:19 AM, Konstantin Serebryany konstantin.s.serebry...@gmail.com wrote: Hi, The attached patch is the libsanitizer merge from upstream r175042. Lots of changes. Among other things: - x86_64 linux: change the shadow offset to 0x7fff8000 (~5% speedup) - the new asan

Re: libsanitizer merge from upstream r175042

2013-02-13 Thread Jakub Jelinek
On Wed, Feb 13, 2013 at 11:48:32AM -0500, Jack Howarth wrote: On Wed, Feb 13, 2013 at 04:19:14PM +0100, Jakub Jelinek wrote: The reexec is problematic, what if the program already in constructors run before __asan_init (perhaps ctors of other libraries etc.) does something that really