Commit Graph

2185 Commits

Author SHA1 Message Date
fox
5b7a3dc736 external/gpl3/gcc: Suppress -Werror=format-overflow error.
Add -Wno-error=format-overflow for c-cppbuiltin.c and c-typeck.c to prevent
build failure.

Error was reported when build.sh was run with MKLIBCSANITIZER=yes flag.

Reviewed by: kamil@
2020-02-09 08:04:40 +00:00
mrg
86ab731f62 powerpc switched. 2020-02-07 07:16:32 +00:00
joerg
68f38f2c72 Don't implicitly cast away const char * when using correct C++ string.h
implementations. Those have overloaded string operations that preserve
constness.
2020-01-30 20:38:12 +00:00
uwe
109609bc84 Do not override STACK_BOUNDARY in netbsd.h
sysv4.h already overrides PREFERRED_STACK_BOUNDARY b/c SYSV ABI
requires 16 bytes alignment for %sp anyway and so we already get that
for free.

More importantly this also fixes alloca() in GCC 8, that was somehow
confused by that STACK_BOUNDARY value we had and created a buffer that
overlapped top local variable slots.
2020-01-22 21:39:43 +00:00
mgorny
26a48dd100 Install gcc's unwind.h instead of libexecinfo's
The prototypes in libexecinfo's unwind.h do not match those commonly
used (e.g. by gcc, clang, GNU libunwind, LLVM libunwind...), causing
C++ programs to fail to build on type mismatches (e.g. compiler-rt,
libc++abi).  Rather than providing our own header, reuse the one
included in gcc.
2020-01-22 15:10:31 +00:00
kamil
4f79a48470 Introduce PT_LWPSTATUS + PT_LWPNEXT, obsolete PT_LWPINFO
PT_LWPINFO is a legacy ptrace(2) operation that was originally intended
to retrieve the thread (LWP) information inside a traced process.

It has a number of flaws and is confused with PT_LWPINFO from FreeBSD.

PT_LWPSTATUS and PT_LWPNEXT address the problems (shortly by: rename,
removal of pl_event) and introduces new features: signal context
(pl_sigpend, pl_sigmask), LWP name (pl_name), LWP TLS base address
(pl_private). The private pointer was so far missing information for
a debugger.

PT_LWPSTATUS@nnn is now shipped with core(5) files and contain LWP specific
information, so far missed in the core(5) files.

PT_LWPSTATUS retrieves LWP information for the prompted thread.
PT_LWPNEXT retrieves LWP information for the next thread, borrowing the
semantics from NetBSD specific PT_LWPINFO.

PT_LWPINFO is namespaced with __LEGACY_PT_LWPINFO and still available for
the foreseeable future, without plans of removing it.

Add ATF tests for PT_LWPSTATUS + PT_LWPNEXT.

Keep ATF tests for PT_LWPINFO.

Switch GDB to new API.

Proposed on tech-kern@.
2019-12-24 14:50:59 +00:00
rin
f2a119be2e Fix 'nm /dev/ksyms' (noticed by ryo).
Since binutils 2.15, nm(1) cannot be used for character devices.
We worked around this by a local patch:

http://cvsweb.netbsd.org/bsdweb.cgi/src/gnu/dist/binutils/binutils/Attic/bucomm.c?r1=1.1.1.2&hideattic=0#rev1.2

With recent update of binutils, 'nm /dev/ksyms' got broken again.
This is due to a consistency check involving file size reported by
stat(2), which is always zero for character devices. So, skip this
check if file size is zero.
2019-11-30 22:50:11 +00:00
mrg
f3e1e5aaf8 note that earm and riscv switched to GCC 8. 2019-11-28 19:31:27 +00:00
christos
54e278d262 more regen stuff. 2019-11-22 14:57:01 +00:00
christos
01b509c1c7 regen x86_64 for i386 support 2019-11-22 01:52:20 +00:00
christos
356e78ed45 add missing files for 32 bit debugging on 64 bit host. 2019-11-22 01:49:20 +00:00
christos
e1c84f8601 Support for compat-32 type shared library paths. 2019-11-22 01:48:50 +00:00
mrg
e881204900 few gcc 8 clean ups:
- port lsan_allocator.h to riscv and ia64.
- remove configure output garbage from ia64/defs.mk
- update README.gcc8 to reality:
  - arms mostly work, but not quite
  - most ports now build
  - some ports have switched
2019-11-18 01:13:39 +00:00
mrg
a8b195cdfe note i386 and sparc* conversion. note arm32 issues. 2019-11-16 11:50:58 +00:00
mrg
a782ceec24 duplicate a some of Makefile.gnuhost.
should fix PR#53561.
2019-11-14 09:27:08 +00:00
mrg
5052e4c83f update a bunch of reality. 2019-11-10 10:31:38 +00:00
mrg
2c291b342a oops, regen these again with right iconv prototype present. 2019-11-06 21:33:07 +00:00
mrg
88ed255da2 regen mknative for powerpc and powerpc64. 2019-11-06 19:14:29 +00:00
mrg
96ef73dee0 update the comment above LIB_SPEC to remove 2 wrong things we fixed. 2019-11-06 10:42:00 +00:00
mrg
7c07e1db8f revert the powerpc config.gcc changes i made while merging,
they end up mis-ordering tm files.

revert the rs6000/netbsd64.h change and put it back as
SUBSUBTARGET_EXTRA_SPECS.


this seems to make the build work again, though mknative will
need a re-run for ppc*.
2019-11-06 09:10:50 +00:00
christos
1bfb63bfe1 regen powerpc64 2019-11-05 20:07:20 +00:00
christos
9c9fe86bc2 - Use EXTRA_SPECS like we did for aarch64 instead of SUBSUBTARGET_EXTRA_SPECS
so that assembly specs get propagated (they were lost before)
- adjust the block register padding (like the other OS's) so that code compiles
- XXX: linker still broken for shared libraries because the os specific spec
  is not chosen
2019-11-05 20:06:41 +00:00
mrg
c3f2d15f93 netbsd/hppa uses 16 byte alignment. the inherited default changed.. 2019-11-03 01:03:30 +00:00
mrg
304edd729a regen mknative for all arm after christos fixes. 2019-10-30 00:07:33 +00:00
skrll
6c41bebf88 G/C 2019-10-29 07:57:29 +00:00
christos
fbb09d761c Add more -O0 files for vax, sort 2019-10-29 02:49:05 +00:00
christos
f3b58f9273 vaxinate sanitizer_file.cc against the optimizer virus. 2019-10-28 16:25:05 +00:00
christos
b83b36aedd remove build output. 2019-10-27 21:07:37 +00:00
christos
c61fe20bc9 add some more machines to the 32 bit part 2019-10-26 18:36:25 +00:00
christos
876570509c Unbreak the sanitizers for gcc. The sanitizer offset defined in
libsanitizer needs to match with the compiler concept of
TARGET_ASAN_SHADOW_OFFSET, since the compiler generates instructions
to access memory at that offset in the code, and expects the
sanitizer library to have mapped something there. If there is
disagreement, Mr. Segmentation Fault comes and resolves it for you.
2019-10-25 18:03:59 +00:00
christos
943bd98d5c arm-common.c uses bitmap stuff so put the common-target.a before common.a 2019-10-24 18:48:43 +00:00
christos
741a117e19 arm-common.c needs stack-protector treatment 2019-10-24 18:48:09 +00:00
kamil
77a1ad5f00 Switch the iconv(3) prototype to the POSIX conformant variation
Remove const from the 2nd argument.

const char ** and char ** are incompatible types and it was a cost to keep
the technically incompatible form for a more purist variation. NetBSD was
almost the last alive OS to still keep the const argument (known leftovers:
Minix and Illumos).

Keep the const form for the internal purposes inside citrus and rump.

Address the build breakage fallout in the same change.

There are no ABI changes.

Change accepted by core@.
2019-10-24 18:17:14 +00:00
christos
8cb33180ff mknative tries to build this file with c++ and c++ does not like types
inside offsetof() (a language limitation).
2019-10-24 03:31:38 +00:00
christos
d05d30e64c add new files
XXX: all the arms need regen
2019-10-24 03:26:06 +00:00
christos
ad28d61a37 Since add_debug_regex_map is used in opts-global.c unconditionally, we can't
disable the code with #ifndef __NetBSD__ because it breaks cross-building.
2019-10-23 18:55:36 +00:00
christos
9fb3a182b9 prevent DFmode re-definition. 2019-10-16 15:01:56 +00:00
mrg
4c9e8c010a regen arm ports for config.gcc fix. 2019-10-16 07:38:02 +00:00
mrg
c1069780e3 make sure to include bpabi.h before arm.h. 2019-10-16 07:35:14 +00:00
mrg
669eddb156 use sanitizer_platform_limits_netbsd.cc.
link asan with libm so it can find signgam.

basic libasan works now.
2019-10-13 21:18:20 +00:00
mrg
de11d87641 introduce some common variables for use in GCC warning disables:
GCC_NO_FORMAT_TRUNCATION    -Wno-format-truncation (GCC 7/8)
GCC_NO_STRINGOP_TRUNCATION  -Wno-stringop-truncation (GCC 8)
GCC_NO_STRINGOP_OVERFLOW    -Wno-stringop-overflow (GCC 8)
GCC_NO_CAST_FUNCTION_TYPE   -Wno-cast-function-type (GCC 8)

use these to turn off warnings for most GCC-8 complaints.  many
of these are false positives, most of the real bugs are already
commited, or are yet to come.


we plan to introduce versions of (some?) of these that use the
"-Wno-error=" form, which still displays the warnings but does
not make it an error, and all of the above will be re-considered
as either being "fix me" (warning still displayed) or "warning
is wrong."
2019-10-13 07:28:04 +00:00
mrg
31fd77d90f remove ubsan_handlers_cxx.cc from sources. shouldn't be used with gcc. 2019-10-06 00:15:22 +00:00
maya
6b43361992 We might've switched modes, re-init the move cost table again if necessary.
Fixes unlikely segfault on VAX.
2019-10-04 12:46:43 +00:00
mrg
5e850be408 - update README.gcc8 to include current status
- netbsd/arm64 uses 64 byte malloc alignment
- make lsan compile on sparc*, mips*, ppc and arm64 again
- add missing sparc, alpha and i386 abi compat for struct __sanitizer_addrinfo
- avoid linux includes on arm64
- avoid multiply defined __ubsan_handle_cfi_bad_type when UBSAN_CAN_USE_CXXABI
  isn't defined, and, undefine it
- bad_array_length.cc and bad_array_new.cc lose special build rules
- regen arm64 mknative
2019-10-04 08:51:32 +00:00
christos
0ce1e4fd59 Fix core-dump register fetching. 2019-10-02 15:15:09 +00:00
skrll
c3fbc82630 Remove garbage. Maybe something is wrong with mknative or mrg's script? 2019-10-02 10:34:48 +00:00
mrg
41cead3c75 mknative-gcc for GCC 8.3 and all ports. 2019-10-02 07:14:31 +00:00
mrg
c79e82c597 make most of this compile:
- sanitizer_procmaps_netbsd.cc is obsolete.
- fix merge botches where upstrem has as slightly different version
  is upstream than prior local
- libstdc++ default is now gnu++17
- ubsan needs UBSAN_CAN_USE_CXXABI set
- properly use $G_RTL_BASE_H not (empty) $RTL_BASE_H
- libbackend HH gains new generated insn-modes-inline.h, and read-md.c
  gains the HH dep.
2019-10-02 06:51:59 +00:00
mrg
06250edab5 avoid multiple tm_file headers being listed and breaking builds. 2019-10-02 05:58:03 +00:00
mrg
415bf64101 don't undef SDB_DEBUGGING_INFO. obsolete (and triggers a warning.)
disable isInDeadlySignal() for now.
fix some compile errors in asan and lsan.
2019-10-02 05:04:58 +00:00
mrg
013d491e47 recycle README.gcc7 as README.gcc8 and give it a fresh clean 2019-10-02 04:23:58 +00:00
mrg
78e1884efe remove obsolete code and merge botch. 2019-10-02 03:46:21 +00:00
mrg
9c540241b2 remove obsolete gcc 4.9 or1k code. 2019-10-02 02:59:46 +00:00
mrg
e66a3c37e9 - use /usr/include/gcc-8
- update sanitizer makefiles

also, reduce diffs to upstream:
- remove or1k support
- re-order various lines to match upstream
- move regex map code into file-prefix-map.[ch]
2019-10-02 02:54:34 +00:00
mrg
200c7aa165 retire or1k gcc 4.9 code. 2019-10-02 02:50:38 +00:00
mrg
eb6947af76 merge GCC 8.3.
XXX: our change for e500 has moved into 'powerpcspe' port, which has
XXX: been marked deprecated in GCC 8.  this may affect what ppc ports
XXX: can update to GCC 8 easily, and we may need to add support for
XXX: 'powerpcspe' while we can.
2019-10-01 22:44:18 +00:00
mrg
78fc770276 regen for GCC 8.3 and our changes. 2019-10-01 22:41:59 +00:00
mrg
251c9c162b merge debug/file prefix/merge stuff with upstream, which has gained
a lot of the same features.  builds, but may not actually run right.
adjust for add_path()'s SYSTEM -> INC_SYSTEM.
2019-10-01 21:17:27 +00:00
mrg
ee69d28dd0 final GCC 8.3 sanitizer merge, untested. 2019-10-01 21:13:43 +00:00
mrg
c08ccaef18 merge GCC 8.3.0 pass 2. still will not compile yet. these
files are yet to merge:

C gcc/config/rs6000/rs6000.c
C libsanitizer/lsan/lsan_allocator.cc
C libsanitizer/sanitizer_common/sanitizer_internal_defs.h
2019-10-01 11:49:12 +00:00
mrg
3f8cba227b merge GCC 8.3.0 pass 1. will not compile yet. thare are still
about 25 files with merge issues.
2019-10-01 10:38:15 +00:00
mrg
14f5a3b000 import GCC 8.3. it includes these new features:
- many optimisations improved: inter-procedural, profile-directed,
  LTO, loops including user-controllable unroll support, and more.
- columns numbers added to line numbers in dwarf
- gcov extended significantly
- many sanitizer updates
- many new warning messages
- many better hints and more useful error messages
- minor ABI changes on x86-64 libstdc++, and some c++17 modes
- draft c++2a features
- better c++17 experimental support
- Armv8.4-A supported, better 8.2-A and 8.3-A support, including
  32 bit arm port.  cortex a-55, a-75 and a-55.a-75 combo support.
- in the GCC bugzilla, 8.1 shows 1149 bugs fixed, 8.2 shows 100, and
  8.3 shows 158.
2019-10-01 09:36:01 +00:00
christos
5c69aad9bb Validate register number before fetching/storing it (Gopikrishnan Sidhardhan) 2019-09-26 20:11:10 +00:00
mrg
36ac495d2b merge gcc 7.4 into gcc.old part 3 (last?) 2019-09-26 08:02:28 +00:00
mrg
1debfc3d3f merge gcc 7.4 into gcc.old part 2. 2019-09-26 05:55:33 +00:00
mrg
ac10021d3f merge gcc 7.4 into gcc.old. 2019-09-26 05:51:13 +00:00
mrg
3ad841b2f6 import GCC 7.4 as gcc.old 2019-09-26 05:45:16 +00:00
kamil
7c33168b4c Add LSan and UBSan specific preprocessor macros
__SANITIZE_LEAK__ patch:
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg01270.html

__SANITIZE_UNDEFINED__
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg01286.html

GCC upstream does not see value in feature parity with LLVM sanitizers.
For the time being this will be a NetBSD specific extension.

__SANITIZE_LEAK__ is needed for __NO_LEAKS in <sys/cdefs.h>
__SANITIZE_UNDEFINED__ is planned to be reused in the kernel headers.
2019-09-22 23:34:13 +00:00
maya
fe084afe4c Initialize the mode before accessing the move costs.
This matches the code of the rest of the file, and might be acceptable
by upstream.

PR toolchain/53176.
2019-09-14 15:02:47 +00:00
maya
4f2290cb73 Revert ira-color.c r1.2.
"VAX does not fully populate the register move costs table, so do not
access it w/o checks.
Hack to work around PR toolchain/53176."

Will commit a more upstream-friendly variant shortly.
2019-09-14 15:00:04 +00:00
kamil
1d6035aaec Cherry-pick upstream GDB patch to fix SIGTTOU handling
Fixes toolchain/54508 by Tobias Ulmer

commit 766f883622ef008230250aa5aecef9fb9b29f233
Author: Alan Hayward <alan.hayward@arm.com>
Date:   Tue May 28 10:07:54 2019 +0100

    Suppress SIGTTOU when handling errors

    Calls to error () can cause SIGTTOU to send gdb to the background.

    For example, on an Arm build:
      (gdb) b main
      Breakpoint 1 at 0x10774: file /build/gdb/testsuite/../../../src/binutils-gdb/gdb/testsuite/gdb.base/watchpoint.c, line 174.
      (gdb) r
      Starting program: /build/gdb/testsuite/outputs/gdb.base/watchpoint/watchpoint

      [1]+  Stopped                 ../gdb ./outputs/gdb.base/watchpoint/watchpoint
      localhost$ fg
      ../gdb ./outputs/gdb.base/watchpoint/watchpoint
      Cannot parse expression `.L1199 4@r4'.
      warning: Probes-based dynamic linker interface failed.
      Reverting to original interface.

    The SIGTTOU is raised whilst inside a syscall during the call to tcdrain.
    Fix is to use scoped_ignore_sigttou to ensure SIGTTOU is blocked.

    In addition fix include comments - job_control is not included via terminal.h

    gdb/ChangeLog:

            * event-top.c: Remove include comment.
            * inflow.c (class scoped_ignore_sigttou): Move from here...
            * inflow.h (class scoped_ignore_sigttou): ...to here.
            * ser-unix.c (hardwire_drain_output): Block SIGTTOU during drain.
            * top.c:  Remove include comment.
2019-09-06 14:37:00 +00:00
skrll
f24a6747bb Restore the kvm support 2019-08-31 20:16:25 +00:00
maya
5dd22a92f0 Don't keep our local modifications as ifdef __NetBSD__.
When we build netbsd on another OS, we produce a cross compiler without
these definitions.

Fixes some compiler crashes when building netbsd/vax on linux.
2019-08-29 11:45:29 +00:00
rjs
c50f68c427 Fix to PR port-arm/54159.
From:

<http://mail-index.netbsd.org/tech-toolchain/2019/08/26/msg003596.html>

Pullup -9
2019-08-27 19:23:22 +00:00
mrg
1db21b1df3 fix MKCXX=no:
- don't build GDB
- don't build sanitizers
- don't build GCC commands
- fix some set lists
2019-08-23 08:17:26 +00:00
kamil
c208434299 Ship with sanitizer/lsan_interface.h for GCC 7
Leak Sanitizer is there.
2019-08-15 16:01:27 +00:00
christos
c599e3d1b6 On NetBSD the auxv tag is always 32 bits long. Gdb assumes it is 64 on _LP64.
This works most of the time, except for 64 bit big endian (sparc64 eg).
2019-08-12 05:40:42 +00:00
mrg
952758b2ca regen mknative for everyone after:
- NETBSD_ENABLE_PTHREADS removed (default always)
- HAVE_GNU_INDIRECT_FUNCTION enabled for some platforms
- switch to dragondfly bsd locale routines after christos made them work for us
2019-08-01 21:29:39 +00:00
christos
2d6048637c Manually patch the locale configuration to use the dragonfly code instead
of generic.
2019-07-31 16:40:25 +00:00
christos
062a414ce2 Use the dragonfly locale code for NetBSD too. 2019-07-31 16:39:02 +00:00
christos
00ecc5eae9 Add a forward declaration for the specialized __timepunct<wchar_t> destructor
that the dragonfly code needs to avoid "instantiation before specialization",
and an empty implementation for the generic code.
2019-07-30 20:28:50 +00:00
christos
6afa7d32cf There is no specialized constructor for ctype<char> so the
destructor ends up trying to free uninitialized memory for
_M_c_locale_ctype.
2019-07-30 20:24:58 +00:00
christos
a0d7985299 Arrange so that the Makefile works for both the generic and the dragonfly
locale code.
2019-07-30 20:19:18 +00:00
christos
f5ca8a60e2 Remove extra paren 2019-07-29 08:03:47 +00:00
christos
648d051fe8 remove extra paren 2019-07-29 07:59:47 +00:00
christos
813c7a947a Factor out the uselocale() calls by providing the _l missing functions as
inlines in xlocale_port.h except in c_locale.{cc,h} because the header gets
installed.
2019-07-28 17:41:21 +00:00
christos
f9b8013d85 PR/54375: Andreas Gustafsson: gdb attached to running process shows extra
thread. When attaching to a process that has threads make sure that we
mutate the inferior_ptid (that currently has lwpid == 0 to the first thread
we encounter.
2019-07-14 18:50:58 +00:00
christos
870d594d5a Use ULONGEST_MAX instead of (ULONGEST)-1 2019-07-13 21:55:52 +00:00
christos
5625e95427 Add (ULONGEST) to prevent narrowing warnings. 2019-07-13 21:53:48 +00:00
christos
a8a9d504b1 Regen mips 2019-07-12 22:45:07 +00:00
christos
8c59d46439 remove ancient and unused regset_t definitions 2019-07-12 22:44:33 +00:00
christos
e81dba3600 remove dup solib-svr4 defs 2019-07-12 22:44:11 +00:00
christos
434b3c9777 put back the kvm stuff lost in previous merge. 2019-07-12 22:43:15 +00:00
christos
ca881224bd add the bfd ntrad vectors so that core files are recognized on mips64 2019-07-12 22:42:45 +00:00
mlelstv
e810f82151 Don't sign-extend bytes when dumping description data. 2019-07-06 12:30:36 +00:00
kamil
e81678c69d Sync (c) note in GDB:sh-nbsd-tdep.c with upstream
This file is now GPLv3+, not GPLv2+.
2019-06-21 19:20:18 +00:00
mrg
4d79f33340 delete GCC 6.5. every platform has been on GCC 7 for a while now. 2019-06-20 10:29:53 +00:00
mrg
0f3896e83f fix cross gdb build on sh and ppc:
- gdb_assert.h has moved into common/gdb_assert.h.
- force promotion to avoid compile errors

XXX why aren't these files built into the native binary, and
triggered normal build failures.
2019-06-17 06:33:53 +00:00
kamil
93c1a1e955 Enhance the GDB support for NetBSD
- Enable VFORK events
- Add syscall number for SCE/SCX events
- Add commented out posix_spawn(3) events
2019-06-14 01:00:52 +00:00
maya
eb9b74df38 Remove unused macro 2019-06-12 17:04:35 +00:00