Commit Graph

9328 Commits

Author SHA1 Message Date
kamil
1dee2ebd2c Avoid using dummy tsan_rtl_unimpl.cc
Instead of providing broken support, error during build to catch the
problem quickly.
2020-09-14 14:33:01 +00:00
kamil
9f140fc4da Catch unsupported LONG_JMP_SP_ENV_SLOT
A variation of this patch is pending upstream: https://reviews.llvm.org/D87602
2020-09-14 11:56:01 +00:00
rin
379e44a136 Sync with external/gpl3/gdb/dist/gdb by removing unused files:
- rust-exp.c is generated file.
- x86bsd-nat.[ch] were replaced by x86-bsd-nat.[ch] when 8.0.1 was merged.
2020-09-14 06:50:31 +00:00
mrg
eaf57fb942 fixed armv7-eb build issue; as not gcc related. 2020-09-14 01:19:50 +00:00
christos
47c37bc275 merge conflicts 2020-09-14 00:40:04 +00:00
christos
e148fee9e4 merge conflicts 2020-09-14 00:40:02 +00:00
christos
ae1832950f merge conflicts 2020-09-14 00:40:02 +00:00
christos
815e1b14f3 merge conflicts 2020-09-14 00:39:47 +00:00
mrg
c51a5adcd2 switch riscv and ia64 to GCC 9.
switch riscv to binutils 2.34.
2020-09-13 23:32:04 +00:00
mrg
08422490a2 riscv64 vs xorg-server is solved (non-gcc specific issue.) 2020-09-13 23:23:00 +00:00
mrg
7fcbece421 remove additional -DHAVE_DIX_CONFIG_H.
add ${X11FLAGS.DIX} ${X11INCS.DIX} to record.  fixes build on riscv64.
2020-09-13 23:01:02 +00:00
christos
7f2ac4106a Import gdb-8.3 from the latest HEAD of the NetBSD tree with our local
modifications.
2020-09-13 21:44:03 +00:00
mrg
ed0af92660 note some platforms switched and some are ready to switch. 2020-09-13 21:21:04 +00:00
mrg
0d31d1b3fe regen for riscv32/riscv64 target emulation list. 2020-09-13 21:18:50 +00:00
mrg
5aa87be48b merge riscv*-netbsd* target support. 2020-09-13 21:14:01 +00:00
martin
7799f82205 Add missing dkbad.h include and define _KERNTYPES so we get all internal
types (like register_t) that we need for ptrace.
Fixes the build on sparc64.
2020-09-13 08:51:58 +00:00
kamil
e94bb09cf6 Sync netbsd_syscall_hooks.h with LLVM r. 74760bb00fb9b78a
Update the syscall definitionss from a snapshot 2.5 years old to the
current one.
2020-09-13 03:00:12 +00:00
kamil
4b3dee3027 Build and install GCC TSan for 64-bit CPUs 2020-09-13 02:37:31 +00:00
kamil
35d5e69e5a Always link TSan runtime with librt and libm
With these changes, TSan/amd64 works.
2020-09-12 23:04:44 +00:00
kamil
999ae5b7da Disable GetNamedMappingFd for NetBSD
Analogous logic is in LLVM rev. 74760bb00fb9b78a2fe122.

Removes undefined symbol linkage to shm_unlink and shm_open.
2020-09-12 22:52:24 +00:00
kamil
2f7e7363ca Ignore unused functions in tsan_interceptors.cc 2020-09-12 22:24:22 +00:00
kamil
e654846f5f Sync chunks of tsan_interceptors.cc with LLVM rev. 74760bb00fb9b78a2fe122
Sync tsan_interceptors.cc with upstream file tsan_interceptors_posix.cpp.

Changes:
 - define fileno_unlocked() for NetBSD
 - use defined __sanitizer_FILE for NetBSD
 - handle symbol indirection for vfork and nanosleep
 - delete sem_* API, currently moved to common code with sanitizers
 - undef SANITIZER_INTERCEPT_PTHREAD_SIGMASK to fix build
 - remove locally introduced SANITIZER_NETBSD

With these changes, TSan for GCC builds.
2020-09-12 22:23:57 +00:00
kamil
f6a496b345 Remove dead code block (from a local patch) 2020-09-12 21:30:36 +00:00
jmcneill
0d54a9589a Add HAVE_ACPI and HAVE_UEFI flags to bsd.own.mk and use them to
conditionally include ACPI and UEFI bits instead of relying on adhoc
MACHINE_ARCH tests.
2020-09-12 15:25:41 +00:00
kamil
4bd8828721 Sync interceptors of sanitizers with LLVM rev. 00460ae520
Use the 2020-09-10 snapshot to replace two-years-old GCC9 copy of
interceptors.

With this change, ASan works with the locally patched GCC tree (as there
were IOCTL operations not properly defined).
2020-09-12 15:01:38 +00:00
jmcneill
f2c0a93275 Build acpi tools and iasl on aarch64eb, and fix set lists for MKDEBUG. 2020-09-11 14:06:00 +00:00
mrg
c823d03c48 __mips64 does not mean 64 bit address space. also check _LP64. 2020-09-11 09:01:41 +00:00
rin
8f02e7cc73 Update table for alpha, m68000, m68k, and powerpc:
- alpha is running and no regression in ATF (tests in lib/libc/sys are
  skipped due to port-alpha/55652).

- m68000 is successfully built and running at a same level as before.

- m68k (amiga, mac68k, sun3) is running and no regression in a tiny
  subset of ATF (kernel, lib/libc/{gen,sys}).

- macppc (oea) and evbppc (booke, ibm4xx) are running and no regression
  in ATF.
2020-09-11 05:24:14 +00:00
kamil
fba137c2fa Add prototypes of internal_sigdelset() and internal_clone()
Cherry-pick the missing change from:

commit 983d7ddd0b278b45d815cbac9197205b39c4860a
Author: Kamil Rytarowski <n54@gmx.com>
Date:   Thu Jul 11 06:22:35 2019 +0000

    Add NetBSD LSan support

    Summary:
    Combine few relatively small changes into one:

     - implement internal_ptrace() and internal_clone() for NetBSD
     - add support for stoptheworld based on the ptrace(2) API
     - define COMPILER_RT_HAS_LSAN for NetBSD
     - enable tests for NetBSD/amd64

    Inspired by the original implementation by Christos Zoulas in netbsd/src for GCC.

    The implementation is in theory CPU independent through well defined macros
    across all NetBSD ports, however only the x86_64 version was tested.

    Reviewers: mgorny, dvyukov, vitalybuka, joerg, jfb

    Reviewed By: vitalybuka

    Subscribers: dexonsmith, jfb, srhines, kubamracek, llvm-commits, christos

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64057

    llvm-svn: 365735
2020-09-11 01:45:53 +00:00
kamil
a2d7733122 Add getauxval() compat for NetBSD
Cherry-pick and adapt:

commit 02519fc7a6f8c528f67975a9f78ce64dabf402b4
Author: Kamil Rytarowski <n54@gmx.com>
Date:   Thu Sep 12 18:57:58 2019 +0000

    Add getauxval() compat for NetBSD

    Summary:
    getauxval() is not available on NetBSD and there is no a direct equivalent.

    Add a function that implements the same semantics with NetBSD internals.

    Reorder the GetPageSize() functions to prefer the sysctl approach for NetBSD.
    It no longer makes a difference which approach is better. Avoid changing
    conditional code path.

    Reviewers: vitalybuka, dvyukov, mgorny, joerg

    Reviewed By: vitalybuka

    Subscribers: llvm-commits, #sanitizers

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D67329

    llvm-svn: 371758
2020-09-11 01:08:36 +00:00
kamil
6db3e45ad2 Use sysctl to implement GetPageSize()
Cherry-pick code chunk from newer LLVM compiler-rt.
2020-09-11 01:07:53 +00:00
kamil
69763b91ed Enable SANITIZER_CAN_USE_PREINIT_ARRAY on NetBSD
Cherry-pick:

commit 3a189bac9bb111c9a59339015ab0d4e2fed735f4
Author: Kamil Rytarowski <n54@gmx.com>
Date:   Thu Dec 19 03:21:46 2019 +0100

    [compiler-rt] Enable SANITIZER_CAN_USE_PREINIT_ARRAY on NetBSD

    .preinit_array is supported since 9.0.
2020-09-11 01:07:27 +00:00
kamil
86bc1e72b9 Adapt stop-the-world for ptrace changes in NetBSD-9.99.30
Cherry-pick and adapt:

commit fc356dcc11c10003ff22acff667b0a9f5e6c1e0f
Author: Kamil Rytarowski <n54@gmx.com>
Date:   Tue Dec 24 20:33:54 2019 +0100

    [compiler-rt] Adapt stop-the-world for ptrace changes in NetBSD-9.99.30

    Handle PT_LWPNEXT for newer kernels and keep PT_LWPINFO for older ones.
2020-09-11 01:07:00 +00:00
kamil
39b6a894c0 Add NetBSD LSan support
Cherry-pick and adapt:

commit 983d7ddd0b278b45d815cbac9197205b39c4860a
Author: Kamil Rytarowski <n54@gmx.com>
Date:   Thu Jul 11 06:22:35 2019 +0000

    Add NetBSD LSan support

    Summary:
    Combine few relatively small changes into one:

     - implement internal_ptrace() and internal_clone() for NetBSD
     - add support for stoptheworld based on the ptrace(2) API
     - define COMPILER_RT_HAS_LSAN for NetBSD
     - enable tests for NetBSD/amd64

    Inspired by the original implementation by Christos Zoulas in netbsd/src for GCC.

    The implementation is in theory CPU independent through well defined macros
    across all NetBSD ports, however only the x86_64 version was tested.

    Reviewers: mgorny, dvyukov, vitalybuka, joerg, jfb

    Reviewed By: vitalybuka

    Subscribers: dexonsmith, jfb, srhines, kubamracek, llvm-commits, christos

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64057

    llvm-svn: 365735
2020-09-11 01:05:28 +00:00
kamil
f445ab3a7e Stop tracking atexit/__cxa_atexit/pthread_atfork allocations in LSan/NetBSD
Cherry-pick and adapt:

commit 8827047551570b7ed7088765c3de2a8cce6823b8
Author: Kamil Rytarowski <n54@gmx.com>
Date:   Sat Sep 21 07:30:42 2019 +0000

    Stop tracking atexit/__cxa_atexit/pthread_atfork allocations in LSan/NetBSD

    Summary:
    The atexit(3) and __cxa_atexit() calls allocate internally memory and free on exit,
    after executing all callback. This causes false positives as DoLeakCheck() is called
    from the atexit handler. In the LSan/ASan tests there are strict checks triggering
    false positives here.

    Intercept all atexit(3) and __cxa_atexit() calls and disable LSan when calling the
    real functions.

    Stop tracing allocations in pthread_atfork(3) funtions, as there are performed
    internal allocations that are not freed for the time of running StopTheWorld()
    code. This avoids false-positives.

    The same changes have to be replicated in the ASan and LSan runtime.

    Non-NetBSD OSs are not tested and this code is restricted to NetBSD only.

    Reviewers: dvyukov, joerg, mgorny, vitalybuka, eugenis

    Reviewed By: vitalybuka

    Subscribers: jfb, llvm-commits, #sanitizers

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D67331

    llvm-svn: 372459
2020-09-11 01:04:33 +00:00
kamil
31e31781c6 Add __lsan::ScopedInterceptorDisabler for strerror(3)
Cherry-pick and adapt:

commit 1b58389428ed07a7322ba9c2bcaeec99807f9457
Author: Kamil Rytarowski <n54@gmx.com>
Date:   Sat Sep 21 07:45:02 2019 +0000

    Add __lsan::ScopedInterceptorDisabler for strerror(3)

    Summary:
    strerror(3) on NetBSD uses internally TSD with a destructor that is never
    fired for exit(3). It's correctly called for pthread_exit(3) scenarios.

    This is a case when a leak on exit(3) is expected, unavoidable and harmless.

    Reviewers: joerg, vitalybuka, dvyukov, mgorny

    Reviewed By: vitalybuka

    Subscribers: dmgreen, kristof.beyls, jfb, llvm-commits, #sanitizers

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D67337

    llvm-svn: 372461
2020-09-11 01:03:31 +00:00
kamil
a476aad3c2 Disable sanitizer_stoptheworld_linux_libcdep.cc for NetBSD 2020-09-11 01:01:14 +00:00
kre
c2105d446d Replace a pipe into tr to normalise a var name (convert '.' or '-'
into '_' to meet sh variable name rules) into a shell string processing
loop.

On my test system, this reduces the total elapsed time for the bin/sh ATF
tests from about 109 secs to about 102 (user cpu from 24.5 to 21, sys cpu
from 34 to 30) and the usr.bin/make tests elapsed time from 42.5 to 40
secs (user from a bit over 15 to a bit over 13, and sys from 16+ to 13+).
(Recorded on an AMD64 domU).

These probably exaggerate the effect, as there are a bunch of quite small
tests, which means the ATF overhead (which this change affects) is a greater
proportion of the total test time than for some other tests where most of
the time is spent actually testing.

But I am fairly confident that there will be at least some improvement.

This could be further improved by removing the cmdsub invocation method,
and instead passing the name of a variable containing the string to
normalise (with the result returned in that same var) - but that would
mean altering all the callers as well.   Some other time maybe.
2020-09-10 22:51:10 +00:00
kamil
47333b4890 Avoid using internal RTLD/libpthread/libc symbol in sanitizers
Cherry-pick and adapt:

commit 0da15ff318480f30bbc90b9e8ecb9bb9431c7fd3
Author: Kamil Rytarowski <n54@gmx.com>
Date:   Fri Jan 3 02:35:33 2020 +0100

    [compiler-rt] [netbsd] Switch to syscall for ThreadSelfTlsTcb()

    This change avoids using internal, namespaced per-CPU calls that
    are not a stable interface to read the TSL base value.
2020-09-10 12:53:05 +00:00
mrg
02f683bda2 fix path for largefile-config.h 2020-09-09 09:52:16 +00:00
mrg
71ddf99ad7 add build rules for G_CPP17_SOURCES sources, and fix their build. 2020-09-09 09:49:16 +00:00
mrg
248797713d regen for sparc and binutils 2.34. 2020-09-09 09:10:52 +00:00
mrg
66bd25a419 regen gcc 9.3 / arm64eb for includes fixes.
also fixes a bunch of configuration (like finding acosf() etc.)
2020-09-09 08:22:04 +00:00
mrg
c5ada2fa0b mknative-gcc for everything except arm64be: includes fixes 2020-09-09 07:27:45 +00:00
mrg
154bfe8e08 install new libstdc++ pstl headers. remove some dead makefile
code and consolidate some of the header installation.
2020-09-09 07:23:45 +00:00
mrg
5d7c2fdd95 ia64 works, sun3 (m68k?) works, powerpc works, note powerpc64 issue,
evbarmv7-eb dtb issue, prep overflow issue, note that almost all
platform builds are now working for m68k/mips/ppc.
2020-09-07 23:47:02 +00:00
mrg
6b90dfb69d use the generic ppc64 LINK_GCC_C_SEQUENCE_SPEC. 2020-09-07 22:21:55 +00:00
dogcow
1a71ad483f Fix build.sh tools -j1 compilation, where bfd.h wasn't generated early
enough.
2020-09-07 19:46:45 +00:00
christos
29ff04b87c Simplify to avoid packed struct alignment issue. 2020-09-07 19:37:21 +00:00
christos
625508a57b Disable an init-list-lifetime warning from gcc-9. 2020-09-07 19:05:41 +00:00