Commit Graph

101 Commits

Author SHA1 Message Date
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
jmmv 465d2fa6dc Add the ability for platform-specific Makefiles to indicate which kernel
images to install into / (which might be more than just "netbsd").

Addresses PR port-shark/17569.
2007-03-12 15:09:01 +00:00
christos d68432cc82 We don't need to include kern_exit43.c to the list of files that we cannot
use SSP on now that zero sized arrays are treated properly in gcc.
2007-01-27 01:37:57 +00:00
tls aa99a9cd13 Add --param ssp-buffer-size=1 if USE_SSP as for userspace.
Add kern_exit_43.c to VARSTACK -- it isn't, really, but it causes an error
because it has a 0-element array on the stack and SSP always emits the
error that it is not protecting such a small array (ssp-buffer-size=0 is
not supported, so, really, it should not emit this error!).
2006-12-18 22:37:36 +00:00
christos 64c377519a use -fstack-protector instead of -fstack-protector-all since this breaks
on amd64 (it works on sparc64).
2006-12-12 21:31:58 +00:00
christos 3526467a3d there is no stack-protector for gcc3 2006-12-10 23:09:31 +00:00
tls 53786c9e89 Add arch/xen/i386/gdt.c to list of kernel files that do variable-size
allocations on the stack.  This allocation could potentially be quite
large -- I am not sure how to best fix that.

Fixes USE_SSP i386 build.sh failure.
2006-12-03 01:45:57 +00:00
christos 02b04bf496 add aic97xx.c to the varstack list. from shannonjr. 2006-11-15 23:09:53 +00:00
jnemeth daa80ec43e add another file to the VARSTACK list 2006-11-11 08:40:42 +00:00
christos a62de02966 Add SSP support.
XXX: This is broken for me right now, because my kernel resets after fxp0
is probed, but it could be some bug in the driver/compiler.
2006-11-11 02:12:53 +00:00
garbled bcb7c3b253 Add -Wextra -Wno-unused for prep. 2006-10-30 17:56:30 +00:00
thorpej 03e8889986 Insert a .WAIT between "depend" and "all" in the "dependall" target, so
that "make -j4 dependall" has the intended effect.
2006-10-26 05:10:55 +00:00
martin f2df2d2b3b Sparc64 is -Wextra ready - but we are not sure where to go with __unused,
so add -Wno-unused-parameter for now.
Ok'd by christos.
2006-10-17 14:28:46 +00:00
christos 4d595fd7b1 - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
2006-10-12 01:30:41 +00:00
christos 6565c53658 Add -Wextra -Wno-unused for i386. Portmasters, please check your ports
and make sure they compile with these flags.
2006-10-04 16:03:01 +00:00
matt ecaf18c847 Add AFLAGS+= ${AOPTS.${.IMPSRC:T}} 2006-09-11 03:12:48 +00:00
mrg baafcdbb23 make the bpendtsleep: label only active if KERN_SYNCH_BPENDTSLEEP_LABEL
is defined.  if this option is present in the Makefile CFLAGS and we are
using GCC4, build kern_synch.c with -fno-reorder-blocks, so that this
actually works.

XXX be nice if KERN_SYNCH_BPENDTSLEEP_LABEL was a normal 'defflag' option
XXX but for now take the easy way out and make it checkable in CFLAGS.
2006-09-07 18:41:28 +00:00
simonb d4fec3837e Add -Wa,-fatal-warnings to AFLAGS. We want assembler warnings to be
fatal as well as compiler warnings.
Vague nods of agreement from Christos and Gimpy.
2006-08-27 06:49:27 +00:00
dsl 5464d4dc61 Create a linker map file.
Very useful when trying to find out where recent 'bloat' has come from,
as well as giving exact details of what is actually in the kernel.
2006-08-24 21:23:40 +00:00
mrg db19e89e04 remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.
2006-06-02 22:16:18 +00:00
christos ce07c2d219 it is attributes no attribute 2006-05-21 05:49:54 +00:00
christos a4d71852e0 Put back -Wno-attribute for now since not all archs have been fixed. 2006-05-21 04:53:23 +00:00
christos a58b86d582 Don't use -Wno-attributes for gcc4. All the code has been fixed and it will
just hide bugs.
2006-05-20 00:47:27 +00:00
mrg efb8c0c93f if GCC>3:
- add -Wno-attributes -Wno-pointer-sign to CWARNFLAGS.
- add -fno-strict-aliasing to CFLAGS [*]

our kernel again needs a bunch of work for this to be enabled.
2006-05-11 17:21:38 +00:00
thorpej fbade90aaa Also search for headers in common/include 2006-04-28 03:40:15 +00:00
lukem 2eb5047221 Order & uniq DEPS, a la <bsd.dep.mk>. 2006-04-19 07:08:17 +00:00
lukem 7caf2ff17d Sort SYSTEM_OBJ before adding to SYSTEM_DEP.
Kernel builds are now more consistent with userland
(and IMHO building in order is more asthetically pleasing.)
2006-04-19 07:06:22 +00:00
uwe 3f6e548563 Don't add CPUFLAGS to CFLAGS twice. 2006-03-29 21:35:32 +00:00
dsl 04e3bf3418 If we are going to run mkdep separately for each file, we might as well
get this makefile to execute the mkdep commands - no need for a submake
and xargs at that point.
However we do need to do something to stop the 'mkdep -d' and CLEANDEPEND
command lines being to long.
Note that 'echo ${xxx} | cmd' is ok because echo is a shell builtin, and
isn't (usually) subject to the kernel's command line limits.
2005-12-12 22:44:04 +00:00
lukem bc201c2f02 Remove the .d files during __CLEANDEPEND 2005-12-01 06:01:18 +00:00
yamt 6eaa98c111 use .d mechanism for kernel as well. 2005-11-24 13:01:42 +00:00
dbj 8000972bbe . Have dbsym explicitly suggest increasing SYMTAB_SPACE when
an overflow occurs.
   . Make this error a fatal build time error
   . Move the support for dbsym into the MI Makefile.kern.inc,
     conditional upon the SYMTAB_SPACE option being defined in
     the kernel config file.
2005-11-24 12:54:29 +00:00
yamt 94809e83ec don't pass -t option to xargs unless MAKEVERBOSE is 2. 2005-11-02 14:29:52 +00:00
martin 40860f4eb5 Do not use -Wreturn-type with gcc 2.95.x 2005-06-18 22:56:02 +00:00
sjg aa7b975acd Sometimes .BEGIN target is not wanted - eg in sub-make's. 2005-06-07 18:11:34 +00:00
sjg bfae9bbcab Don't assume infinite command line length. 2005-06-02 05:11:55 +00:00
uwe 609ad365b1 Add CWARNFLAGS.<fn> 2005-06-01 00:11:32 +00:00
yamt e5559b5cd1 - move COPTS.${.IMPSRC:T} and friends after other options so that
they can override global options.
- put CPPFLAGS.${.IMPSRC:T} into CPPFLAGS, rather than CFLAGS.
2005-05-31 14:59:31 +00:00
christos dfa84069f5 Add overrides for tools we use (genassym and hexdump). Now kernel compiles
work again (hi jason!)
2005-05-31 04:03:46 +00:00
christos 49f85b90ec Most of the kernel source now works with "-Wcast-qual -Wshadow
-Wreturn-type -Wwrite-strings -Wswitch" so I am turning them on. There
is going to be a little lossage on some platforms but you can always
compile with "make DEFWARNINGS=no". Tested on sparc64 and i386.
2005-05-31 02:25:39 +00:00
thorpej 1fcb464db4 Use TOOL_GENASSYM. Part of PR toolchain/30350 2005-05-30 15:54:30 +00:00
dbj 8b8acc85db tweak reference of DEBUG variable to ignore options that don't start with -g 2005-05-23 22:01:11 +00:00
perry 477853c351 nuke trailing whitespace 2005-02-26 22:58:54 +00:00
heas d7dac6089c Adjust the cscope target so that each source file on a separate line to avoid
overrunning cscope's read buffer and prefix files within lib/{kern,compat}
with the appropriate path.
2004-12-16 00:35:48 +00:00
chs cbc396ce30 work around a binutils bug where converting ELF kernels to a.out with objcopy
produces corrupted binaries when the link_set_* sections extend into another
page after the end of the .text section by using a generated an ldscript that
puts all the link_set_* data into the .text section in the first place.
2004-09-13 09:39:40 +00:00
lukem 66ff0c053c Rename LIBCOMPAT* -> SYSLIBCOMPAT*, now that <bsd.own.mk> provides LIBCOMPAT.
Fixes kernel link problem noted by Sebastien Erard.
2004-07-31 00:55:51 +00:00
atatat 1ce3b064a0 Make uudecode into a tool that can be used to build a kernel and redo
the athhal-elf.o handling to take advantage of it.  This means that
bsd.files.mk is no longer included by Makefile.i386 so CFLAGS won't be
duplicated.
2004-07-15 03:35:20 +00:00
uebayasi 2909021c43 Narrow a sed(1) RE handling a file/directory name so that build under a
directory named like 'xxx.cxxx/' succeeds.
2004-07-13 09:07:54 +00:00
matt 08381af38e -fno-zero-initialized-in-bss only to gcc3, not gcc2.95 2004-04-25 04:24:06 +00:00
pk 3c83ebd4ab Force zero-initialised variables into the .data segment. 2004-04-24 22:07:15 +00:00