Commit Graph

190 Commits

Author SHA1 Message Date
darran
61fb3737eb DTrace: Add CTF generation to the make framework. Only enabled when
MKDTRACE=yes.
2010-03-02 20:49:18 +00:00
mrg
6540a82b31 brace a --fatal-warnings with a NOGCCERROR check. 2009-12-15 04:03:55 +00:00
matt
1e301281a1 Merge from matt-nb5-mips64 2009-12-14 01:00:46 +00:00
christos
2561f2eece Don't add the .h rule for yacc if we are not really building (-n) 2009-12-13 18:40:50 +00:00
uebayasi
d166c4bf28 Support "extsrc", externally added programs and libraries. Users can write
their own reach-overs, cross-build, install, and get set files just like base
and X11 / X.org.  (These sets are not included as TNF releases.)
2009-11-30 16:13:22 +00:00
tron
d6e33297fb Revert SSP changes because at least rmind@, pooka@ and haad@ consider
5% more performance more important than the gain in security.
2009-11-12 14:30:34 +00:00
tron
559872b175 Invent a new flag "USE_SSP_DEFAULT" which defines whether we want to use
SSP for building the whole source tree. Set this to "yes" for
NetBSD/amd64 and NetBSD/i386. It is now possible to get the old
behavior (build libs and certain programs with SSP) by setting
"USE_SSP_DEFAULT" to "no".
2009-11-12 13:22:34 +00:00
tron
47db09157e Fix broken conditional to get manual builds (not using "build.sh")
working again.
2009-11-12 08:51:50 +00:00
tron
840a46601a Enable Stack Smash Protection (SSP) by default for NetBSD/amd64 and
NetBSD/i386 as previously discussed on the "port-amd64" and
"port-i386" mailing lists. No objections from the core team.

Thanks a lot to Tobias Nygren for helping me with the benchmarking
and to Christos Zoulas for fixing SSP problems in cgd(4).
2009-11-11 16:35:45 +00:00
skrll
29d2620fc4 IA64 doesn't have SSP. 2009-11-09 15:58:09 +00:00
lukem
c0d472c616 Enable -Wsign-compare for WARNS=4 (and above).
Test compiled on i386 and amd64; there may be some stragglers
on other platforms.

Note: -Wall has this by default in gcc4, and we explicitly disable it at
WARNS=1 (i.e., -Wall -Wno-sign-compare).  A goal is to reduce the WARNS level
where this feature is enabled, so we can eventually remove -Wno-sign-compare.
2009-02-12 22:49:05 +00:00
apb
2962a4be8e Always define TOOL_* variables in bsd.own.mk, not in bsd.sys.mk.
Previously, they were defined in bsd.own.mk if USETOOLS=yes, but in
bsd.sys.mk if USETOOLS!=yes.  This caused makefiles that did this:

	.include <bsd.own.mk>
	FOO != ${TOOL_BAR} args...

to work in the USETOOLS=yes case but not in the USETOOLS!=yes case.
2008-10-26 23:13:24 +00:00
apb
6710f563cb Set HOST_SH?=/bin/sh unconditionally. Previously, it was conditionally
set to /usr/bin/bash if HOST_CYGWIN was defined, but now build.sh
tries to set HOST_SH appropriately.

Remove the HOST_CYGWIN variable, which was not used for any other purpose.

Document that HOST_SH should be an absolute path.

THis was proposed in tech-toolchain.
2008-10-26 15:51:20 +00:00
apb
8140020f95 Remove AWK variable, which is no longer used. All previous users
now use TOOL_AWK instead.
2008-10-25 18:29:03 +00:00
apb
60f5d15a00 Define TOOL_AWK. 2008-10-19 19:44:47 +00:00
christos
81dd08df0d handle assembly files for MKPIE 2008-10-19 15:22:50 +00:00
christos
18c51ff05b Provide a way for a program to override the PIE flags. 2008-10-16 14:36:42 +00:00
christos
1269d9a570 don't compile/link libraries with pie 2008-10-15 17:31:50 +00:00
apb
4c441fdf08 Use "?=", not "=", to set default values for the TOOL_* variables
added in the previous commit.
2008-10-14 07:24:34 +00:00
apb
59b0ced7eb Add missing TOOL_* variables to bsd.sys.mk and document them in
bsd.README.  Previously, several of these variables were present in
bsd.own.mk but not in bsd.sys.mk or bsd.README.
2008-10-13 18:24:21 +00:00
apb
bbaac8b3bb In bsd.sys.mk and bsd.own.mk, sort lists of TOOL_* variables.
In bsd.README, document all TOOL_* variables that are set in bsd.sys.mk.

There are several TOOL_* variables that are set in bsd.own.mk, but not
set in bsd.sys.mk and not documented in bsd.README.
2008-10-13 15:29:22 +00:00
apb
1d782af00e Remove the definition of HOST_SED. HOST_SED was previously used only in
tools/atf-compile, which has now been adjusted to use TOOL_SED.
2008-10-05 20:20:55 +00:00
apb
520cbbf81f Build strfile both as a host tool and as an installed program:
* in games/fortune/strfile/Makefile, build strfile as a
  regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
  databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.
2008-09-26 18:23:09 +00:00
christos
99ca374317 support per file lex and yacc prefixes. 2008-09-19 22:54:55 +00:00
gmcgarry
ce206e318d Honour HAVE_PCC 2008-08-24 06:27:00 +00:00
christos
ee372c7d11 Disable PIE for kernel builds. Some architectures pass -mcmodel to gcc and
this is incompatible with PIE. And we don't really want pic objects in the
kernel
2008-07-23 23:21:56 +00:00
lukem
9ceb85ca59 If WARNS>0 and !defined(NOGCCERROR), add
-Wa,--fatal-warnings
to CFLAGS to set assembler warnings to be fatal.
(Done via CFLAGS instead of AFLAGS so that all assembling, not just
that of .S/.s files, uses the option.)
2008-07-21 23:30:48 +00:00
garbled
c3408ed04a Convert prep to use the new unified mkbootimage rather than it's own. This
mkbootimage can be shared by prep, rs6000, and bebox.

TODO: Convert bebox to use this.  Needs someone to test.
2008-04-30 21:15:33 +00:00
tsutsui
c81a918994 Redo a change in rev 1.160 with more proper way:
> Don't make linker warnings fatal on linking static libs since
> there is no proper way to avoid "FOO is a patented algorithm" warnings.

Ok'ed by christos@ and dogcow@ on tech-toolchain, and
tested build.sh build for sun2, news68k, alpha and newsmips.
2008-04-22 12:47:59 +00:00
tsutsui
a91b6f6d11 Backout previous for now. We have to rethink dependency for MKPIC and LDSTATIC.
Pointed out by dogcow@.
2008-04-15 00:08:05 +00:00
tsutsui
6dadfb80d4 Don't make linker warnings fatal on linking static libs since
there is no proper way to avoid "FOO is a patented algorithm" warnings.
Ok'ed by christos@ on tech-toolchain.
2008-04-14 13:41:43 +00:00
lukem
ba936e32d4 Set linker warnings to be fatal if ${WARNS} > 0. 2008-03-03 06:33:17 +00:00
simonb
d8de5b102b Remove support for NetBSD/pc532. 2008-01-09 11:25:58 +00:00
christos
7af2df4395 add MKPIE 2007-12-28 21:35:45 +00:00
jmmv
2965cbca98 Add the atf host tools
This adds reachover Makefiles to build the atf tools required during a
cross-build.
2007-11-12 14:54:43 +00:00
uwe
00fa1e6950 Stack protector codegen bug on sh3 has been fixed, so drop sh3 from
the list of platforms where we disable ssp.
2007-06-03 21:07:33 +00:00
christos
380cacfb28 we can now compile libc with _FORTIFY_SOURCE 2007-06-03 17:42:18 +00:00
uwe
7243a4e86c Fix inverted comparison ${MACHINE_ARCH} != "hppa" when checking for
ssp.  (hi^2 tls!)
2007-05-31 00:17:32 +00:00
uwe
c7bdc65e61 Use matching open and close parens.
Why make doesn't complain about $(foo} ?
2007-05-30 22:54:12 +00:00
tls
14aa3a04d9 Fix typo, and eliminate mention of libssp since it's gone.
Move -D_FORTIFY_SOURCE to CPPFLAGS from COPTS.
2007-05-30 21:27:54 +00:00
tls
dc99372be9 Match usage of FORTIFY_SOURCE on other platforms by not requiring special
include path: the normal header files now include the "SSP" ones (which one
should note are not really named right: SSP and FORTIFY_SOURCE are independent
features).

Disable USE_SSP on targets where the compiler doesn't support it at all
(mips, alpha) or it's known broken (sh3).  But enable FORTIFY_SOURCE,
without SSP, on those platforms -- tested on mipsel.
2007-05-30 21:14:35 +00:00
tls
a83c0ab035 mipsel || mipseb, not mipsel || mipsel 2007-05-30 14:21:31 +00:00
tls
2368dc663d Move FORTIFY_SOURCE implementation from the somewhat ill-named "libssp"
(what other systems keep in libssp, we already have in libc) into libc
to match what other systems with FORTIFY_SOURCE do.  Goodbye, libssp
dependency in libraries and executables.  Discussed with christos and
mrg; Christos will merge the headers to get us the rest of the way to a
FORTIFY_SOURCE implementation that works as others' code expects.
2007-05-30 01:13:14 +00:00
tls
6c43b583d4 Sigh, revert previous and fix right: we don't have MACHINE_CPU in bsd.sys.mk. 2007-05-29 21:24:57 +00:00
tls
e5545ad98b MACHINE_ARCH -> MACHINE_CPU so excluding mips from SSP/FORT works right. 2007-05-29 21:09:18 +00:00
tls
64e3562f4f Fix two bugs reported by Simon Burge: 1) USE_FORT and USE_SSP should be
disabled on platforms where GCC doesn't support -fstack-protector.  2) The
libssl Makefile had a hard-coded USE_FORT=yes.
2007-05-29 13:55:31 +00:00
tls
1e799aacf7 Sigh. Fix USE_FORT: do not use /usr/include/ssp from *host* system. 2007-05-29 04:56:34 +00:00
tls
4147a3c54a Add new Makefile knob, USE_FORT, which extends USE_SSP by turning on the
FORTIFY_SOURCE feature of libssp, thus checking the size of arguments to
various string and memory copy and set functions (as well as a few system
calls and other miscellany) where known at function entry.  RedHat has
evidently built all "core system packages" with this option for some time.

This option should be used at the top of Makefiles (or Makefile.inc where
this is used for subdirectories) but after any setting of LIB.

This is only useful for userland code, and cannot be used in libc or in
any code which includes the libc internals, because it overrides certain
libc functions with macros.  Some effort has been made to make USE_FORT=yes
work correctly for a full-system build by having the bsd.sys.mk logic
disable the feature where it should not be used (libc, libssp iteself,
the kernel) but no attempt has been made to build the entire system with
USE_FORT and doing so will doubtless expose numerous bugs and misfeatures.

Adjust the system build so that all programs and libraries that are setuid,
directly handle network data (including serial comm data), perform
authentication, or appear likely to have (or have a history of having)
data-driven bugs (e.g. file(1)) are built with USE_FORT=yes by default,
with the exception of libc, which cannot use USE_FORT and thus uses
only USE_SSP by default.  Tested on i386 with no ill results; USE_FORT=no
per-directory or in a system build will disable if desired.
2007-05-28 12:06:17 +00:00
tls
d307e49627 Add -D_FORTIFY_SOURCE=2 where it can safely/sanely be used if building
with USE_SSP: not in the kernel, and not in libssp itself.
2007-05-22 23:58:54 +00:00
apb
a45dfb93f4 Define TOOL_JOIN. 2007-01-14 16:19:55 +00:00