Commit Graph

28 Commits

Author SHA1 Message Date
bdrewery
b619f0c747 Revert r267233 for now. PIE support needs to be reworked.
1. 50+% of NO_PIE use is fixed by adding -fPIC to INTERNALLIB and other
   build-only utility libraries.
2. Another 40% is fixed by generating _pic.a variants of various libraries.
3. Some of the NO_PIE use is a bit absurd as it is disabling PIE (and ASLR)
   where it never would work anyhow, such as csu or loader. This suggests
   there may be better ways of adding support to the tree. Many of these
   cases can be fixed such that -fPIE will work but there is really no
   reason to have it in those cases.
4. Some of the uses are working around hacks done to some Makefiles that are
   really building libraries but have been using bsd.prog.mk because the code
   is cleaner. Had they been using bsd.lib.mk then NO_PIE would not have
   been needed.

We likely do want to enable PIE by default (opt-out) for non-tree consumers
(such as ports). For in-tree though we probably want to only enable PIE
(opt-in) for common attack targets such as remote service daemons and setuid
utilities. This is also a great performance compromise since ASLR is expected
to reduce performance. As such it does not make sense to enable it in all
utilities such as ls(1) that have little benefit to having it enabled.

Reported by:	kib
2014-08-19 15:04:32 +00:00
bapt
c0cd28f928 use .Mt to mark up email addresses consistently (part2)
PR:		191174
Submitted by:	Franco Fichtner  <franco@lastsummer.de>
2014-06-20 09:57:27 +00:00
bdrewery
989e2c6000 In preparation for ASLR [1] support add WITH_PIE to support building with -fPIE.
This is currently an opt-in build flag. Once ASLR support is ready and stable
it should changed to opt-out and be enabled by default along with ASLR.

Each application Makefile uses opt-out to ensure that ASLR will be enabled by
default in new directories when the system is compiled with PIE/ASLR. [2]

Mark known build failures as NO_PIE for now.

The only known runtime failure was rtld.

[1] http://www.bsdcan.org/2014/schedule/events/452.en.html
Submitted by:		Shawn Webb <lattera@gmail.com>
Discussed between:	des@ and Shawn Webb [2]
2014-06-08 17:29:31 +00:00
brueffer
a73cae5687 In puthdr(), start the ELF .data section on a new page, as this is
what btxldr expects (.set MEM_DATA,start+0x1000 in btxldr.S).

This makes resulting ELF binaries bootable with grub, gptboot and boot2.

PR:		153801
Submitted by:	Gleb Kurtsou <gleb.kurtsou at gmail.com>
Tested by:	Ruben Kerkhof <ruben at rubenkerkhof.com>
Glanced at by:	jhb, peter
MFC after:	1 month
2014-02-25 17:13:42 +00:00
ed
073cafdd42 The last big commit: let usr.sbin/ use WARNS=6 by default. 2010-01-02 11:07:44 +00:00
imp
aae4779c15 The boot loader is a FreeBSD a.out binary for x86, not a VAX binary.
Rather than writing out a MID of '0', write a MID of 0x86 (aka
MID_I386) so that file gets it right.

This is a nop for boot2.  It just checks the MAGIC part of the field,
ignoring the MID.  boot2 is the only thing that loads this file, and
only on x86 so the MID_i386 is always the right value (the rest of the
code is already x86 specific).

Reviewed by:	bde@, jhb@
MFC after:	8.0 is out the door :)
2009-09-10 00:47:32 +00:00
dfr
b7878b140b Allow for a zero length 'loader'. 2008-04-05 10:26:20 +00:00
delphij
e545650ae6 An old patch from Dan Lukes <dan at obluda.cz>:
+ Include netinet/in.h for ntohl()
 * Since the return value was tested separately, cast the values to
   size_t in order to shut up compiler warnings.
 + Raise WARNS= level to 6

PR:	bin/71666
2006-01-23 13:55:32 +00:00
ru
3a53fc798b Fix the same problem that was fixed in rev. 1.6 and got reintroduced
in rev. 1.8 -- make btxld(8) a cross-tool for i386 and now amd64.

Tested on:	alpha (which has a different idea of __LDPGSZ)
2005-02-19 21:32:21 +00:00
ru
c05985f13f Sort sections. 2005-01-18 20:02:45 +00:00
ru
6cc4b6c220 Added the EXIT STATUS section where appropriate. 2005-01-17 07:44:44 +00:00
ru
6294018a20 Mechanically kill hard sentence breaks. 2004-07-02 23:13:00 +00:00
obrien
8abf9484aa Adjust the system endian and a.out headers to be more MI and cross-building
friendly.  Use the systems headers rather than local versions.

Reviewed by:	ru
2004-06-22 17:05:39 +00:00
ru
559f61486d Make this work on different endianness machines.
Tested on:	sparc64

: FreeBSD/i386 bootstrap loader, Revision 1.1
: (ru@panther.freebsd.org, Tue Mar 11 05:31:14 PST 2003)
: Loading /boot/defaults/loader.conf
2003-03-11 13:48:58 +00:00
ru
b1a86b2a11 Added MI version of <sys/imgact_aout.h>, "a.out.h", which is
always compatible with the i386 version.

This fixes one of the problems I had cross-releasing i386 on
Alpha: the produced "-f aout" binaries are now identical.
2003-02-04 18:56:34 +00:00
mike
b9b0e10101 Get howmany() macro from <sys/param.h>, instead of depending on its
existence in <sys/types.h>.
2002-09-24 22:30:56 +00:00
ru
bde8ec1b70 mdoc(7) police: utilize the new .Ex macro. 2001-08-15 09:09:47 +00:00
rnordier
ba4e5273cd Unset MAINTAINER. 2001-07-21 14:32:47 +00:00
obrien
9c97c8f02d Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.
2001-07-20 06:20:32 +00:00
obrien
be022bb715 Remove GCC'isms in CFLAGS. 2001-07-20 04:23:13 +00:00
ru
afd506414e - Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.
2001-03-26 14:42:20 +00:00
ru
f10dc9aca1 Set the default manual section for usr.sbin/ to 8. 2001-03-20 18:17:26 +00:00
ru
71e2293ad4 mdoc(7) police: use the new features of the Nm macro. 2000-11-20 20:10:44 +00:00
rnordier
56de11b718 Set MAINTAINER. 2000-10-02 17:23:16 +00:00
marcel
71adbdbe1a o Allow btxld to be compiled on 64-bit machines
o  s/unsigned/unsigned int/g
o  Add -Wall

btxld can now be built as a cross-tool for cross-building i386/pc98 on
platforms that don't have btxld (such as alpha).
2000-01-04 14:10:36 +00:00
peter
efabb9ccb1 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
rnordier
ac5f389299 Enable client entry point support. 1998-09-13 13:28:07 +00:00
rnordier
abde35fb7b btxld is a link editor for BTX (boot extender) clients, supporting ELF,
a.out, and binary formats.
1998-09-12 06:49:48 +00:00