mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
mmap: Avoid the sanitizer configure check failure
When -fsanitize=address,undefined is used to build, the mmap configure check failed with ================================================================= ==231796==ERROR: LeakSanitizer: detected memory leaks Direct leak of 4096 byte(s) in 1 object(s) allocated from: #0 0x7cdd3d0defdf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x5750c7f6d72b in main /home/alan/build/gas-san/all/bfd/conftest.c:239 Direct leak of 4096 byte(s) in 1 object(s) allocated from: #0 0x7cdd3d0defdf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x5750c7f6d2e1 in main /home/alan/build/gas-san/all/bfd/conftest.c:190 SUMMARY: AddressSanitizer: 8192 byte(s) leaked in 2 allocation(s). Define GCC_AC_FUNC_MMAP with export ASAN_OPTIONS=detect_leaks=0 to avoid the sanitizer configure check failure. config/ * mmap.m4 (GCC_AC_FUNC_MMAP): New. * no-executables.m4 (AC_FUNC_MMAP): Renamed to GCC_AC_FUNC_MMAP. Change AC_FUNC_MMAP to GCC_AC_FUNC_MMAP. libiberty/ * Makefile.in (aclocal_deps): Add $(srcdir)/../config/mmap.m4. * acinclude.m4: Change AC_FUNC_MMAP to GCC_AC_FUNC_MMAP. * aclocal.m4: Regenerated. * configure: Likewise. zlib/ * acinclude.m4: Include ../config/mmap.m4. * Makefile.in: Regenerated. * configure: Likewise.
This commit is contained in:
parent
bdefc07306
commit
219822fd5d
@ -95,3 +95,25 @@ if test $gcc_cv_func_mmap_anon = yes; then
|
||||
[Define if mmap with MAP_ANON(YMOUS) works.])
|
||||
fi
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl Avoid the sanitizer run-time memory leak failure in the mmap configure
|
||||
dnl test. This should be removed when autoconf with commit:
|
||||
dnl
|
||||
dnl commit 09b6e78d1592ce10fdc975025d699ee41444aa3f
|
||||
dnl Author: Paul Eggert <eggert@cs.ucla.edu>
|
||||
dnl Date: Fri Feb 5 21:06:20 2016 -0800
|
||||
dnl Fix memory leak in AC_FUNC_MMAP
|
||||
dnl
|
||||
dnl * lib/autoconf/functions.m4 (AC_FUNC_MMAP): Fix memory leak
|
||||
dnl in test case, found by configuring with gcc -fsanitize=address.
|
||||
dnl
|
||||
dnl is in use.
|
||||
dnl
|
||||
AC_DEFUN([GCC_AC_FUNC_MMAP],
|
||||
save_ASAN_OPTIONS="$ASAN_OPTIONS"
|
||||
ASAN_OPTIONS=detect_leaks=0
|
||||
export ASAN_OPTIONS
|
||||
m4_defn([AC_FUNC_MMAP])
|
||||
ASAN_OPTIONS="$save_ASAN_OPTIONS"
|
||||
)
|
||||
|
@ -49,14 +49,14 @@ m4_defn([AC_LINK_IFELSE]))
|
||||
|
||||
dnl This is a shame. We have to provide a default for some link tests,
|
||||
dnl similar to the default for run tests.
|
||||
m4_define([AC_FUNC_MMAP],
|
||||
m4_define([GCC_AC_FUNC_MMAP],
|
||||
if test x$gcc_no_link = xyes; then
|
||||
if test "x${ac_cv_func_mmap_fixed_mapped+set}" != xset; then
|
||||
ac_cv_func_mmap_fixed_mapped=no
|
||||
fi
|
||||
fi
|
||||
if test "x${ac_cv_func_mmap_fixed_mapped}" != xno; then
|
||||
m4_defn([AC_FUNC_MMAP])
|
||||
m4_defn([GCC_AC_FUNC_MMAP])
|
||||
fi)
|
||||
|
||||
m4_divert_pop()dnl
|
||||
|
@ -508,6 +508,7 @@ aclocal_deps = \
|
||||
$(srcdir)/../config/cet.m4 \
|
||||
$(srcdir)/../config/enable.m4 \
|
||||
$(srcdir)/../config/gcc-plugin.m4 \
|
||||
$(srcdir)/../config/mmap.m4 \
|
||||
$(srcdir)/../config/no-executables.m4 \
|
||||
$(srcdir)/../config/override.m4 \
|
||||
$(srcdir)/../config/picflag.m4 \
|
||||
|
@ -19,7 +19,7 @@ dnl On some versions of SunOS4 at least, strncmp reads a word at a time
|
||||
dnl but erroneously reads past the end of strings. This can cause
|
||||
dnl a SEGV in some cases.
|
||||
AC_DEFUN([libiberty_AC_FUNC_STRNCMP],
|
||||
[AC_REQUIRE([AC_FUNC_MMAP])
|
||||
[AC_REQUIRE([GCC_AC_FUNC_MMAP])
|
||||
AC_CACHE_CHECK([for working strncmp], ac_cv_func_strncmp_works,
|
||||
[AC_TRY_RUN([
|
||||
/* Test by Jim Wilson and Kaveh Ghazi.
|
||||
|
1
libiberty/aclocal.m4
vendored
1
libiberty/aclocal.m4
vendored
@ -17,6 +17,7 @@ m4_include([../config/cet.m4])
|
||||
m4_include([../config/enable.m4])
|
||||
m4_include([../config/gcc-plugin.m4])
|
||||
m4_include([../config/hwcaps.m4])
|
||||
m4_include([../config/mmap.m4])
|
||||
m4_include([../config/no-executables.m4])
|
||||
m4_include([../config/override.m4])
|
||||
m4_include([../config/picflag.m4])
|
||||
|
5
libiberty/configure
vendored
5
libiberty/configure
vendored
@ -7724,6 +7724,9 @@ if test x$gcc_no_link = xyes; then
|
||||
fi
|
||||
fi
|
||||
if test "x${ac_cv_func_mmap_fixed_mapped}" != xno; then
|
||||
save_ASAN_OPTIONS="$ASAN_OPTIONS"
|
||||
ASAN_OPTIONS=detect_leaks=0
|
||||
export ASAN_OPTIONS
|
||||
|
||||
for ac_func in getpagesize
|
||||
do :
|
||||
@ -7902,6 +7905,8 @@ $as_echo "#define HAVE_MMAP 1" >>confdefs.h
|
||||
fi
|
||||
rm -f conftest.mmap conftest.txt
|
||||
|
||||
ASAN_OPTIONS="$save_ASAN_OPTIONS"
|
||||
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strncmp" >&5
|
||||
|
@ -98,7 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
|
||||
$(top_srcdir)/../config/override.m4 \
|
||||
$(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
|
||||
$(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
|
||||
$(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/../config/mmap.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
|
@ -1,3 +1,4 @@
|
||||
sinclude(../config/mmap.m4)
|
||||
sinclude(../config/no-executables.m4)
|
||||
sinclude(../libtool.m4)
|
||||
dnl The lines below arrange for aclocal not to bring libtool.m4
|
||||
|
7
zlib/configure
vendored
7
zlib/configure
vendored
@ -11245,12 +11245,6 @@ if test -n "$with_cross_host"; then
|
||||
# We ignore --with-system-zlib in this case.
|
||||
target_all=libzgcj.la
|
||||
else
|
||||
if test x$gcc_no_link = xyes; then
|
||||
if test "x${ac_cv_func_mmap_fixed_mapped+set}" != xset; then
|
||||
ac_cv_func_mmap_fixed_mapped=no
|
||||
fi
|
||||
fi
|
||||
if test "x${ac_cv_func_mmap_fixed_mapped}" != xno; then
|
||||
|
||||
|
||||
|
||||
@ -11452,7 +11446,6 @@ $as_echo "#define HAVE_MMAP 1" >>confdefs.h
|
||||
fi
|
||||
rm -f conftest.mmap conftest.txt
|
||||
|
||||
fi
|
||||
for ac_func in memcpy strerror
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
|
Loading…
Reference in New Issue
Block a user