Fix a DTLS-protocol regression (caused by TLS1.3 support).
The DTLS client would not contribute any randomness to the DTLS negotiation,
breaking the security guarantees of the DTLS protocol.
on i386; link with -Wl,-z,notext for now (this knocks out a large chunk
of the ports tree). ok aja@
ld: error: can't create dynamic relocation R_386_32 against symbol: _gnutls_x86_cpuid_s in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
to match the visibility of max_align_t between C and C++.
GCC 4.9 defaults to C89 and does not accept the "restrict" keyword
by default. This causes a configure check to add -std=gnu99 to the
compiler flags. Since max_align_t is from C11, the -std=gnu99 flag
removes it from visibility and gnutls's copy of gnulib then provides
its own replacement definition of max_align_t. When gnutls builds
its C++ library, the C++ visibility rules are different. The
max_align_t from stddef.h reappears and collides with the gnulib
replacement.
some existing COMPILER lines with arch restrictions etc. In the usual
case this is now using "COMPILER = base-clang ports-gcc base-gcc" on
ports with c++ libraries in WANTLIB.
This is basically intended to be a noop on architectures using clang
as the system compiler, but help with other architectures where we
currently have many ports knocked out due to building with an unsuitable
compiler -
- some ports require c++11/newer so the GCC version in base that is used
on these archirtectures is too old.
- some ports have conflicts where an executable is built with one compiler
(e.g. gcc from base) but a library dependency is built with a different
one (e.g. gcc from ports), resulted in mixing incompatible libraries in the
same address space.
devel/gmp is intentionally skipped as it's on the path to building gcc -
the c++ library there is unused in ports (and not built by default upstream)
so intending to disable building gmpcxx in a future commit.