This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/2] Libsanitizer merge from upstream r253555.


+ Adhemerval

Christophe, it looks like your kernel headers (asm/ptrace.h) don't contain ARM_VFPREGS_SIZE. Do you use old kernel version?

-Maxim

On 23/11/15 15:16, Christophe Lyon wrote:
On 23 November 2015 at 09:07, Jakub Jelinek <jakub@redhat.com> wrote:
On Mon, Nov 23, 2015 at 10:46:33AM +0300, Maxim Ostapenko wrote:
Index: libsanitizer/configure.ac
===================================================================
--- libsanitizer/configure.ac (revision 230597)
+++ libsanitizer/configure.ac (working copy)
@@ -136,6 +136,12 @@
  esac
  AM_CONDITIONAL(USING_MAC_INTERPOSE, $MAC_INTERPOSE)

+case "$target" in
+  aarch64-*-linux*) tsan_aarch64=true ;;
+  *) tsan_aarch64=false ;;
+esac
+AM_CONDITIONAL(TSAN_AARCH64, $tsan_aarch64)
+
I don't understand the purpose of the above.

Index: libsanitizer/configure.tgt
===================================================================
--- libsanitizer/configure.tgt        (revision 230597)
+++ libsanitizer/configure.tgt        (working copy)
@@ -37,6 +37,8 @@
    aarch64*-*-linux*)
       if test x$ac_cv_sizeof_void_p = x8; then
               TSAN_SUPPORTED=yes
+             LSAN_SUPPORTED=yes
+             TSAN_TARGET_DEPENDENT_OBJECTS=tsan_rtl_aarch64.lo
       fi
       ;;
    x86_64-*-darwin[1]* | i?86-*-darwin[1]*)
You already have this.

Index: libsanitizer/tsan/Makefile.am
===================================================================
--- libsanitizer/tsan/Makefile.am     (revision 230597)
+++ libsanitizer/tsan/Makefile.am     (working copy)
@@ -21,6 +21,8 @@
       tsan_interface_atomic.cc \
       tsan_interface.cc \
       tsan_interface_java.cc \
+     tsan_libdispatch_mac.cc \
+     tsan_malloc_mac.cc \
       tsan_md5.cc \
       tsan_mman.cc \
       tsan_mutex.cc \
@@ -28,6 +30,7 @@
       tsan_new_delete.cc \
       tsan_platform_linux.cc \
       tsan_platform_mac.cc \
+     tsan_platform_posix.cc \
       tsan_platform_windows.cc \
       tsan_report.cc \
       tsan_rtl.cc \
@@ -41,7 +44,11 @@
       tsan_sync.cc

  libtsan_la_SOURCES = $(tsan_files)
+if TSAN_AARCH64
+EXTRA_libtsan_la_SOURCES = tsan_rtl_aarch64.S
+else
  EXTRA_libtsan_la_SOURCES = tsan_rtl_amd64.S
+endif
And if I understand automake manual, you can list in there both
EXTRA_libtsan_la_SOURCES = tsan_rtl_amd64.S tsan_rtl_aarch64.S
unconditionally, and what object actually gets linked in is picked from the
$(TSAN_TARGET_DEPENDENT_OBJECTS) (and similarly dependencies).

Otherwise LGTM.
Since this commit (r230739), I've noticed that the arm*linux* builds fail:
libtool: compile:
/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3/./gcc/xgcc
-shared-libgcc -B/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/g
cc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3/./gcc -nostdinc++
-L/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3/arm-none-linux-gnueabi/
libstdc++-v3/src
-L/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3/arm-none-linux-gnueabi/libstdc++-v3/src/.libs
-L/tmp/1800227_1.tmpdir/
aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3/arm-none-linux-gnueabi/libstdc++-v3/libsupc++/.libs
-B/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/t
ools/arm-none-linux-gnueabi/bin/
-B/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/tools/arm-none-linux-gnueabi/lib/
-isystem /tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gc
c-fsf-gccsrc/tools/arm-none-linux-gnueabi/include -isystem
/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/tools/arm-none-linux-gnueabi/sys-include
-D_GNU_SOURCE -D_DEBU
G -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS -DHAVE_RPC_XDR_H=1 -DHAVE_TIRPC_RPC_XDR_H=0 -I.
-I/tmp/1800227_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsr
c/libsanitizer/sanitizer_common -I.. -I
/tmp/1800227_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libsanitizer/include
-isystem /tmp/1800227_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/
gccsrc/libsanitizer/include/system -Wall -W -Wno-unused-parameter
-Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin
-fno-exceptions -fno-rtti -fomit-frame-pointer -fun
wind-tables -fvisibility=hidden -Wno-variadic-macros
-I../../libstdc++-v3/include
-I../../libstdc++-v3/include/arm-none-linux-gnueabi
-I/tmp/1800227_1.tmpdir/aci-gcc-fsf/sources
/gcc-fsf/gccsrc/libsanitizer/../libstdc++-v3/libsupc++ -std=gnu++11
-DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I
/tmp/1800227_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/
libsanitizer/../libbacktrace -I ../libbacktrace -I
/tmp/1800227_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libsanitizer/../include
-include /tmp/1800227_1.tmpdir/aci-gcc-fsf/so
urces/gcc-fsf/gccsrc/libsanitizer/libbacktrace/backtrace-rename.h -g
-O2 -D_GNU_SOURCE -MT sanitizer_platform_limits_posix.lo -MD -MP -MF
.deps/sanitizer_platform_limits_posix.T
po -c /tmp/1800227_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
  -fPIC -DPIC -o .libs/sanitizer_platform_limits_p
osix.o
/tmp/1800227_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:326:44:
error: 'ARM_VFPREGS_SIZE' was not declared in t
his scope
    unsigned struct_user_vfpregs_struct_sz = ARM_VFPREGS_SIZE;
                                             ^~~~~~~~~~~~~~~~

make[4]: *** [sanitizer_platform_limits_posix.lo] Error 1
make[4]: Leaving directory
`/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3/arm-none-linux-gnueabi/libsanitizer/sanitizer_common'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory
`/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3/arm-none-linux-gnueabi/libsanitizer'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3/arm-none-linux-gnueabi/libsanitizer'
make[1]: *** [all-target-libsanitizer] Error 2
make[1]: Leaving directory
`/tmp/1800227_1.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabi/gcc3'
make: *** [all] Error 2


         Jakub



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]