force build of gcc and friends with -std=gnu++03 when the host compiler
is clang. New clang versions default to newer c++ standards and the
old gcc in this branch has not been updated to those.
tools/gcc/mknative-gcc: revision 1.94
also pullout INTERNAL_CFLAGS for the libgcc build, where it may have
-DHAVE_CC_TLS defined on the command line. (we already collect all
the other components.)
tools/gcc/gcc-version.mk: revision 1.11
tools/gcc/mknative-gcc: revision 1.93
external/gpl3/gcc/dist/config/tls.m4: revision 1.2
external/gpl3/gcc/dist/libgcc/configure: revision 1.5
Correct extra parens, regen configure (selectively)
Fixes root cause of PR toolchain/53567
in configargs.h, as well as normalising to /usr/src, normalise the
--build to the same as the --host, so that it never changes based
upon the host you ran mknative on. (some recent changes are only
because i updated a system from netbsd-7 to netbsd-8. this will
avoid that in the future.)
remove GCC 5 marker. this is now nb3 20180905.
tools/mdsetimage/Makefile: revision 1.15
tools/compat/Makefile: revision 1.82
tools/gdb/Makefile: revision 1.35
tools/lorder/Makefile: revision 1.13
tools/gcc/Makefile: revision 1.85
tools/dtc/Makefile: revision 1.3
tools/cvslatest/Makefile: revision 1.2
tools/ctfmerge/Makefile: revision 1.8
tools/libelf/Makefile: revision 1.9
tools/libdwarf/Makefile: revision 1.8
tools/ctfconvert/Makefile: revision 1.7
tools/makekeys/Makefile: revision 1.2
tools/gettext/Makefile: revision 1.7
tools/binstall/Makefile: revision 1.12
tools/libfdt/Makefile: revision 1.3
tools/libctf/Makefile: revision 1.7
tools/binutils/Makefile: revision 1.27
tools/mandoc/Makefile: revision 1.11
tools/Makefile.host: revision 1.32
tools/dbsym/Makefile: revision 1.13
tools/genassym/Makefile: revision 1.7
tools/Makefile.inc: revision 1.14
PR/53238: Robert Elz: Disable MKREPRO in tools; the host compiler might
not support the necessary options. This is done thusly:
1. Set MKREPRO=no in Makefile.host. This handles all the Makefiles that
use it and don't include bsd.own.mk.
2. Create Makefile.inc and set MKREPRO=no in it. Change the Makefiles that
include bsd.own.mk, to include bsd.init.mk which includes Makefile.inc
first. This will also allow us to control other tools options from a
single location if we need to.
XXX: pullup-8
tools/Makefile.gnuhost: revision 1.46-1.48
external/gpl3/gcc/dist/gcc/genattrtab.c: revision 1.2
do the bracket nesting only for clang for now.
Use the __clang__ preprocessor symbol to check for clang, since --version
might barf. From joerg@
Apply upstream commit:
From: ppalka <ppalka@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 27 Apr 2016 21:18:05 +0000
Subject: [PATCH] Reduce nesting of parentheses in conditionals generated by
genattrtab
gcc/ChangeLog:
* genattrtab.c (write_test_expr): New parameter EMIT_PARENS
which defaults to true. Emit an outer pair of parentheses only if
EMIT_PARENS. When continuing a chain of && or || (or & or |),
don't emit parentheses for the right-hand operand.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235536
gcc/arm generates so many parens it hits a bracket depth limited which is
enforced by clang. This reduces the number of parens generated and avoids the
need to increase bracket depth.
Fixes PR toolchain/53178 properly.
Remove hack previously needed to build gcc/arm with clang.
genattrtab.c:1.2 makes this unnecessary.
Tested by thorpej.
tools/Makefile.gnuhost: revision 1.45
GCC build exceeds the macOS clang default bracket nesting level of 256.
Work around with -fbracket-depth=512.
From potr in PR toolchain/53178.
tools/gcc/gcc-version.mk: revision 1.10 (via patch)
external/gpl3/gcc.old/dist/gcc/config/i386/i386.c: revision 1.10
external/gpl3/gcc.old/dist/gcc/config/i386/i386-protos.h: revision 1.6
external/gpl3/gcc.old/dist/gcc/config/i386/constraints.md: revision 1.6
external/gpl3/gcc.old/dist/gcc/doc/invoke.texi: revision 1.7
external/gpl3/gcc.old/dist/gcc/config/i386/i386.md: revision 1.7
external/gpl3/gcc.old/dist/gcc/doc/extend.texi: revision 1.7
external/gpl3/gcc.old/dist/gcc/config/i386/i386-opts.h: revision 1.4
external/gpl3/gcc.old/dist/gcc/config/i386/predicates.md: revision 1.6
external/gpl3/gcc.old/dist/gcc/config/i386/i386.h: revision 1.7
external/gpl3/gcc.old/dist/gcc/config/i386/i386.opt: revision 1.7
(with external/gpl3/gcc.old/ -> external/gpl3/gcc/)
add the spectre mitigation options for x86:
-mindirect-branch=<choice>
-mfunction-return=<choice>
-mindirect-branch-register
the values for 'choice' are "keep" (default, existing behaviour),
"thunk", "thunk-inline", and "thunk-extern".
as taken from the Ubuntu port of these changes in their
ubuntu:gcc-5_5.5.0-8ubuntu1.diff. i've also included the doc
updates that are missing from ubuntu from gcc itself.
i've tested both i386 and amd64 fairly heavily with these options
enabled in both kernels and userland, atf runs and hundreds of
package builds.
bump the NetBSD GCC version. both GCC 5 and 6 got x86 spectre
mitigation code, and both are now "nb2 20180327".
build.sh: 1.322-1.323
tools/make/buildmake.sh.in: 1.9-1.12
Make sure nbmake is always built with the right _PATH_DEFSYSPATH.
--
Restore formatting/indentation of the configure call in rebuildmake()
to what it used to be.
--
G/c unused runcmd.
--
Do not use HOST_CFLAGS to link the make binary.
--
Do not use HOST_CFLAGS and others. build.sh calls configure with
CFLAGS set to HOST_CFLAGS, etc - so HOST_* environment variables are
already taken into account if set.
OTOH, if configure were to add anything to CFLAGS etc, the old code
would happily ignore those changes, picking up original environment
variables instead.
tools/compat/configure: revision 1.88 via patch
tools/compat/configure.ac: revision 1.89 via patch
tools/compat/nbtool_config.h.in: revision 1.42
Add asnprintf() to the AC_CHECK_DECLS list.
Resolves conflict when cross compiling on Cygwin the provided implementation
does not get picked up.
Closes PR toolchain/52797
--
regen
tools/compat/compat_defs.h: 1.108
tools/compat/configure: 1.87-1.88
tools/compat/configure.ac: 1.88-1.89
tools/compat/fpurge.c: 1.2
tools/compat/nbtool_config.h.in: 1.41-1.42
handle __fpurge being declared in <stdio_ext.h>
--
regen
--
Add asnprintf() to the AC_CHECK_DECLS list.
Resolves conflict when cross compiling on Cygwin the provided implementation
does not get picked up.
Closes PR toolchain/52797
--
regen
Originally, MKCRYPTO was introduced because the United States
classified cryptography as a munition and restricted its export. The
export controls were substantially relaxed fifteen years ago, and are
essentially irrelevant for software with published source code.
In the intervening time, nobody bothered to remove the option after
its motivation -- the US export restriction -- was eliminated. I'm
not aware of any other operating system that has a similar option; I
expect it is mainly out of apathy for churn that we still have it.
Today, cryptography is an essential part of modern computing -- you
can't use the internet responsibly without cryptography.
The position of the TNF board of directors is that TNF makes no
representation that MKCRYPTO=no satisfies any country's cryptography
regulations.
My personal position is that the availability of cryptography is a
basic human right; that any local laws restricting it to a privileged
few are fundamentally immoral; and that it is wrong for developers to
spend effort crippling cryptography to work around such laws.
As proposed on tech-crypto, tech-security, and tech-userlevel to no
objections:
https://mail-index.netbsd.org/tech-crypto/2017/05/06/msg000719.htmlhttps://mail-index.netbsd.org/tech-security/2017/05/06/msg000928.htmlhttps://mail-index.netbsd.org/tech-userlevel/2017/05/06/msg010547.html
P.S. Reviewing all the uses of MKCRYPTO in src revealed a lot of
*bad* crypto that was conditional on it, e.g. DES in telnet... That
should probably be removed too, but on the grounds that it is bad,
not on the grounds that it is (nominally) crypto.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
The problem is that the gnulib interception of <stdint.h> and <inttypes.h>
does not really work because we implement those internally with
<sys/inttypes.h> and <sys/stdint.h> and those internal headers are used
by other internal headers *before* they get a chance to be intercepted
(where the __STDC_ macros are defined).
Another way to fix this is to move the inclusion of the other headers
in <stdint.h> and <inttypes.h> outside multiple inclusion protection.
We don't have a tool that strips tools -- we have only a tool that
strips target programs. $TOOLDIR/bin/$PLATFORM-install supports -s
by invoking the target-stripping tool, which chokes if you try to use
it to strip tools on a sufficiently different cross build. So let's
just not strip the pcc tool -- it's tiny enough that I'm not worried
about its unstripped size!
- reenable cxx rt support
- don't grab insn-modes.h, we build it
- rename the c98 and c11 subdir codecvt.cc files while extracting
them with mknative
- grab GGC_H as well, and use it in dependency lists