summaryrefslogtreecommitdiff
path: root/share/mk
AgeCommit message (Collapse)Author
2018-06-06Add RETGUARD to clang for amd64. This security mechanism uses per-functionmortimer
random cookies to protect access to function return instructions, with the effect that the integrity of the return address is protected, and function return instructions are harder to use in ROP gadgets. On function entry the return address is combined with a per-function random cookie and stored in the stack frame. The integrity of this value is verified before function return, and if this check fails, the program aborts. In this way RETGUARD is an improved stack protector, since the cookies are per-function. The verification routine is constructed such that the binary space immediately before each ret instruction is padded with int03 instructions, which makes these return instructions difficult to use in ROP gadgets. In the kernel, this has the effect of removing approximately 50% of total ROP gadgets, and 15% of unique ROP gadgets compared to the 6.3 release kernel. Function epilogues are essentially gadget free, leaving only the polymorphic gadgets that result from jumping into the instruction stream partway through other instructions. Work to remove these gadgets will continue through other mechanisms. Remaining work includes adding this mechanism to assembly routines, which must be done by hand. Many thanks to all those who helped test and provide feedback, especially deaadt, tb, espie and naddy. ok deraadt@
2018-02-28move to 6.3-betaTheo de Raadt
2018-01-19Build clang on sparc64.Mark Kettenis
ok deraadt@
2018-01-19Switch the default compiler on armv7 to clang.Mark Kettenis
ok patrick@
2018-01-15We have no deprecated regress variables in our tree. Remove theAlexander Bluhm
compatibility layer.
2017-11-14Set soname when building shared libraries.Mark Kettenis
ok guenther@
2017-11-05Consolidate lib.so.*.a, ld.so.a and the kernel relink kit intoRobert Peichaer
one location under /usr/share/relink. Be more specific in src/etc/rc reorder_libs() what filesystems need r/w remount and ensure that their mount state is restored. Idea and positive feedback from deraadt@ OK aja@ tb@
2017-10-26Build clang on armv7.Mark Kettenis
ok jsg@, patrick@, deraadt@
2017-10-17remove the remaining references to .depend files since nothing creates themChristian Weisgerber
any longer; ok espie@ deraadt@
2017-08-20crank to 6.2-betaTheo de Raadt
2017-08-12Let DFLAGS been added to by the per-directory MakefilePhilip Guenther
ok espie@
2017-08-09switch the order of substitutions for syspatch object file order to avoidRobert Nagy
deleting ../ in the path
2017-07-26switch the default compiler on amd64 and i386 to clang,Robert Nagy
but keep gcc4 in the build for these as well ok deraadt@
2017-07-25convert one more -Os -> -OzTheo de Raadt
2017-07-25change -Os to -Oz all around the treeRobert Nagy
clang optimizes better for size with -Oz so use that as a default to avoid overflowing the ramdisk floppies. gcc now accepts -Oz as an alias for -Os. ok kettenis@
2017-07-21document that usage of .PHONY, since it's not exactly obvious.Marc Espie
okay schwarze@
2017-07-21Garbage collect unused manual page .SUFFIXES, left overIngo Schwarze
years ago when we formatted manual pages at build time. Opportunity for cleanup discovered by espie@. Make build & release in base and Xenocara checked myself, and checked in a bulk build by ajacoutot@. OK espie@ millert@ deraadt@
2017-07-19Avoid the historical term "loader", consistently talk about the "linker".Ingo Schwarze
Outdated terminology noticed by espie@.
2017-07-191. The cleandir target no longer deletes manual pages, that's aIngo Schwarze
remnant from the remote past when we used to install preformatted manuals. 2. The list of files deleted by the clean target grew out of date and was incomplete, but we already know that it will change again soon, so delete overdocumentation. Feedback and OK espie@.
2017-07-13add sys.mk to the table of contents, and make the description ofIngo Schwarze
bsd.sys.mk more specific; wording with one tweak from espie@
2017-07-11explain the limitations of PROGS; joint work with espie@Ingo Schwarze
2017-07-11Move the section about <bsd.sys.mk> up just below <sys.mk> which it isIngo Schwarze
closely related to. Delete the example involving PARALLEL, which no longer exists. Instead, add a different example involving yacc(1). OK espie@
2017-07-11use the previous syspatch's fake root for getting the link orderRobert Nagy
instead of using / where the libraries are re-ordered on reboot ok aja@
2017-07-10two minor tweaks and two minor fixes; OK espie@Ingo Schwarze
2017-07-10re-add unintentionally removed cleandir part that rm tags from the .CURDIRMarc Espie
2017-07-10Thinko. It's called BUILDAFTERMarc Espie
"noticed" by Ingo.
2017-07-09document PROGS, okay jmc@Marc Espie
2017-07-09document more reality.Marc Espie
proper english usage and okay jmc@
2017-07-09add support to compile several progs at once usMarc Espie
by using alternate setup PROGS = a b c along with SRCS_a = ... , SRCS_b = ... , SRCS_c = ... okay millert@
2017-07-09have bsd.prog.mk/bsd.lib.mk generate .y -> .c/.h rules without intermediateMarc Espie
files. This fixes up parallel builds in the default case. FreeBSD does something similar. okay millert@
2017-07-07COMPILE.c already does -c, so no need to double it.Marc Espie
no functional change
2017-07-07unbreakMarc Espie
this specific rule is only triggered twice in the whole ports tree (sysutils/xjobs and print/l2a) This fixes them
2017-07-05make use of (f)lex -o option to create unique temporary files, so thatMarc Espie
make -j will be happier. okay millert@
2017-07-05based on florian@'s observation and guenther@'s work in kernel makefiles.Marc Espie
don't include .d files during obj and cleanup, because those files might be utterly bogus following an untimely reboot. This allows cleaning stuff up without needing to manually remove those files. okay millert@, kettenis@
2017-07-05document that we're no longer using 'make depend'Marc Espie
2017-07-04let BUILDFIRST just build first, using the same trick guenther@ did inMarc Espie
kernel Makefiles (thank you!), also add lex and yacc generated files to that list. Let those lex/yacc variables be defined for bsd.lib.mk as well. Complete the SRCS -> OBJS hints with the library dependency This should fix most dependency problems. Commit now, so that people can check if something else is still amiss. krw@ agrees
2017-07-03re-add dependencies from SRCS to corresponding OBJS.Marc Espie
the old mkdep run did walk the SRCS list and write those as a side-effect. Without this, bsd.prog.mk .SUFFIXES order will have OBJS depend on the wrong src file. Causes of the alpha/stand/bootxx breakage.
2017-07-03explicitly pass -MD -MP in DFLAGS, so that even if CFLAGS are forcedMarc Espie
on the command line, things will still work
2017-07-02somehow, I did NOT commit the patch I sent to tb@. Matthieu noticed it.Marc Espie
commit the right DEPS definition.
2017-07-02document new depends somewhat.Marc Espie
I asked jmc, told me to go ahead and he'd review it when he can.
2017-07-01effectively kill depend as an independant target (there are a few cornersMarc Espie
where a separate depend step is still needed, mostly gcc3 and mesa). Use of BUILDFIRST is mostly enough to make sure important stuff is built first. Otherwise, this makes use of -M* compiler options to generate dependencies on the fly. There is a bit of behind-the-scene for targets with several steps (like yacc and/or libraries) and the compiler needs extra hand-holding with assembler files (don't know why, don't care). Idea based on guenther@'s initial kernel work, loads of input from drahn, aoyama, tb, etc. okay tb@ "why wait" deraadt@
2017-06-19g/c ASPICFLAG.Martin Pieuchot
This used to be necessary a long time ago in the... gcc 2.95 days. from miod@
2017-06-16introduce a BUILDFIRST/BUILDAFTER mechanism:Marc Espie
record every standard component built in bsd.lib.mk/bsd.prog.mk in BUILDAFTER and have BUILDAFTER depend on BUILDFIRST, thus making possible to build some stuff early without relying on "make depend" okay tb@ millert@
2017-06-07make sure there are no duplicate object files linked when building syspatchesRobert Nagy
2017-06-05exclude more objects from the readelf output when building syspatches ↵Robert Nagy
(needed on i386)
2017-06-04pass better arguments to mkdep.Marc Espie
- some std= parameters are actually critical, -std=c++11 makes a huge difference for clang. - explicitly ask mkdep to run the C++ compiler for C++ code, as again, some compilers will see the difference. (this should allow us to repair make depend under src/gnu/usr.bin/clang) okay kettenis@
2017-05-31Drop -t option from ctags call.anton
The option has been deprecated for almost 7 years by now. ok tb@
2017-04-27syspatch needs to create shared libs with the same object sequence insteadRobert Nagy
of randomizing the order so let's read the libs on the system and link the same way in case a syspatch is being built
2017-04-18ship clang with i386 and amd64. It does not become the main compiler YET.Theo de Raadt
ok kettenis
2017-04-17Change build infrastructure to allow building both gcc and clang. ThisMark Kettenis
doesn't actually flip the switch yet, so aarch64 continues to be the only architecture for which we build clang. ok jsg@, deraadt@