[GCC-11] libsanitizer: Cherry-pick LLVM release/13.x commit d96358a28193

Message ID 20211217224510.7938-1-hjl.tools@gmail.com
State New
Headers
Series [GCC-11] libsanitizer: Cherry-pick LLVM release/13.x commit d96358a28193 |

Commit Message

H.J. Lu Dec. 17, 2021, 10:45 p.m. UTC
  OK for release branches?


H.J.
---
Cherry-pick from LLVM release/13.x branch:

commit d96358a2819399a2abb60ad3b26444ab7b4409cf
Author: Michał Górny <mgorny@moritz.systems>
Date:   Mon Dec 13 22:28:26 2021 +0100

    [compiler-rt] Increase kDlsymAllocPoolSize to fix test failures

    Increase kDlsymAllocPoolSize on the release branch as discussed on bug
    51620, as an alternative to backporting
    cb0e14ce6dcdd614a7207f4ce6fcf81a164471ab and its dependencies.
    The minimum size is 8192, as needed for the following test to pass:

      AddressSanitizer-i386-linux :: TestCases/Linux/long-object-path.cpp

    Fixes #51620

	PR sanitizer/102911
	* asan/asan_malloc_linux.cpp (kDlsymAllocPoolSize): Set it to
	8192 on Linux.
---
 libsanitizer/asan/asan_malloc_linux.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Richard Biener Jan. 3, 2022, 2:06 p.m. UTC | #1
On Fri, Dec 17, 2021 at 11:45 PM H.J. Lu via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> OK for release branches?

OK - I assume the size is not leaked as ABI detail?

>
> H.J.
> ---
> Cherry-pick from LLVM release/13.x branch:
>
> commit d96358a2819399a2abb60ad3b26444ab7b4409cf
> Author: Michał Górny <mgorny@moritz.systems>
> Date:   Mon Dec 13 22:28:26 2021 +0100
>
>     [compiler-rt] Increase kDlsymAllocPoolSize to fix test failures
>
>     Increase kDlsymAllocPoolSize on the release branch as discussed on bug
>     51620, as an alternative to backporting
>     cb0e14ce6dcdd614a7207f4ce6fcf81a164471ab and its dependencies.
>     The minimum size is 8192, as needed for the following test to pass:
>
>       AddressSanitizer-i386-linux :: TestCases/Linux/long-object-path.cpp
>
>     Fixes #51620
>
>         PR sanitizer/102911
>         * asan/asan_malloc_linux.cpp (kDlsymAllocPoolSize): Set it to
>         8192 on Linux.
> ---
>  libsanitizer/asan/asan_malloc_linux.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libsanitizer/asan/asan_malloc_linux.cpp b/libsanitizer/asan/asan_malloc_linux.cpp
> index 9c3f0a5338e..7a5776b29ed 100644
> --- a/libsanitizer/asan/asan_malloc_linux.cpp
> +++ b/libsanitizer/asan/asan_malloc_linux.cpp
> @@ -31,7 +31,7 @@ using namespace __asan;
>
>  static uptr allocated_for_dlsym;
>  static uptr last_dlsym_alloc_size_in_words;
> -static const uptr kDlsymAllocPoolSize = SANITIZER_RTEMS ? 4096 : 1024;
> +static const uptr kDlsymAllocPoolSize = SANITIZER_RTEMS ? 4096 : 8192;
>  static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize];
>
>  static inline bool IsInDlsymAllocPool(const void *ptr) {
> --
> 2.33.1
>
  
H.J. Lu Jan. 12, 2022, 1:51 a.m. UTC | #2
On Mon, Jan 3, 2022 at 6:06 AM Richard Biener
<richard.guenther@gmail.com> wrote:
>
> On Fri, Dec 17, 2021 at 11:45 PM H.J. Lu via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
> >
> > OK for release branches?
>
> OK - I assume the size is not leaked as ABI detail?

No, it is not.  I am checking it into GCC 11 and will backport
it to GCC 10/9 branches later.

> >
> > H.J.
> > ---
> > Cherry-pick from LLVM release/13.x branch:
> >
> > commit d96358a2819399a2abb60ad3b26444ab7b4409cf
> > Author: Michał Górny <mgorny@moritz.systems>
> > Date:   Mon Dec 13 22:28:26 2021 +0100
> >
> >     [compiler-rt] Increase kDlsymAllocPoolSize to fix test failures
> >
> >     Increase kDlsymAllocPoolSize on the release branch as discussed on bug
> >     51620, as an alternative to backporting
> >     cb0e14ce6dcdd614a7207f4ce6fcf81a164471ab and its dependencies.
> >     The minimum size is 8192, as needed for the following test to pass:
> >
> >       AddressSanitizer-i386-linux :: TestCases/Linux/long-object-path.cpp
> >
> >     Fixes #51620
> >
> >         PR sanitizer/102911
> >         * asan/asan_malloc_linux.cpp (kDlsymAllocPoolSize): Set it to
> >         8192 on Linux.
> > ---
> >  libsanitizer/asan/asan_malloc_linux.cpp | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libsanitizer/asan/asan_malloc_linux.cpp b/libsanitizer/asan/asan_malloc_linux.cpp
> > index 9c3f0a5338e..7a5776b29ed 100644
> > --- a/libsanitizer/asan/asan_malloc_linux.cpp
> > +++ b/libsanitizer/asan/asan_malloc_linux.cpp
> > @@ -31,7 +31,7 @@ using namespace __asan;
> >
> >  static uptr allocated_for_dlsym;
> >  static uptr last_dlsym_alloc_size_in_words;
> > -static const uptr kDlsymAllocPoolSize = SANITIZER_RTEMS ? 4096 : 1024;
> > +static const uptr kDlsymAllocPoolSize = SANITIZER_RTEMS ? 4096 : 8192;
> >  static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize];
> >
> >  static inline bool IsInDlsymAllocPool(const void *ptr) {
> > --
> > 2.33.1
> >

Thanks.
  

Patch

diff --git a/libsanitizer/asan/asan_malloc_linux.cpp b/libsanitizer/asan/asan_malloc_linux.cpp
index 9c3f0a5338e..7a5776b29ed 100644
--- a/libsanitizer/asan/asan_malloc_linux.cpp
+++ b/libsanitizer/asan/asan_malloc_linux.cpp
@@ -31,7 +31,7 @@  using namespace __asan;
 
 static uptr allocated_for_dlsym;
 static uptr last_dlsym_alloc_size_in_words;
-static const uptr kDlsymAllocPoolSize = SANITIZER_RTEMS ? 4096 : 1024;
+static const uptr kDlsymAllocPoolSize = SANITIZER_RTEMS ? 4096 : 8192;
 static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize];
 
 static inline bool IsInDlsymAllocPool(const void *ptr) {