]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r356356, r356358, r356422: replace gcclibs' libssp
authorKyle Evans <kevans@FreeBSD.org>
Thu, 16 Jan 2020 03:38:06 +0000 (03:38 +0000)
committerKyle Evans <kevans@FreeBSD.org>
Thu, 16 Jan 2020 03:38:06 +0000 (03:38 +0000)
commit6df87132a3a5bbee548129be7c5c50efbfefc5c9
tree3757c4c8ec167a12da0e0193da29c7077f04c2b6
parent1cd7880383e4840768f0b02d1be565044a8c1120
MFC r356356, r356358, r356422: replace gcclibs' libssp

r356356:
Provide libssp based on libc

For libssp.so, rebuild stack_protector.c with FORTIFY_SOURCE stubs that just
abort built into it.

For libssp_nonshared.a, steal stack_protector_compat.c from
^/lib/libc/secure and massage it to maintain that __stack_chk_fail_local
is a hidden symbol.

libssp is now built unconditionally regardless of {WITH,WITHOUT}_SSP in the
build environment, and the gcclibs version has been disconnected from the
build in favor of this one.

r356358:
libssp: fix FORTIFY_SOURCE stub declarations

The LSB 4.1 that I referenced omitted the varargs, and I failed to catch it.
The __vsnprintf_chk error was from just downright misreading the page. GCC6
caught all of these, but I had only tested GCC4.2.

r356422:
Update libssp paths in various Makefile.depend* files

I've been advised that the model that uses these are fairly resilient, but
we do know the proper path to use (or remove, in the case of ^/targets/...),
so go ahead and update them to reflect that.
17 files changed:
Makefile.inc1
ObsoleteFiles.inc
gnu/lib/Makefile
lib/Makefile
lib/libc/Makefile.depend.options
lib/libssp/Makefile [new file with mode: 0644]
lib/libssp/Symbol.map [new file with mode: 0644]
lib/libssp/Versions.def [new file with mode: 0644]
lib/libssp/fortify_stubs.c [new file with mode: 0644]
lib/libssp_nonshared/Makefile [new file with mode: 0644]
lib/libssp_nonshared/libssp_nonshared.c [new file with mode: 0644]
lib/libsysdecode/Makefile.depend
share/mk/local.dirdeps.mk
share/mk/local.gendirdeps.mk
share/mk/src.libnames.mk
targets/pseudo/userland/gnu/Makefile.depend
tools/build/mk/OptionalObsoleteFiles.inc