History log of /openbsd-current/gnu/usr.bin/binutils/ld/lexsup.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.14 02-Apr-2015 pascal

Change gcc and ld semantics to make static PIE the default when invoking
'cc -static'. To explicitly request the legacy behaviour, use -nopie.

For the few port affected by this, bumps will follow shortly.

looks good to kettenis@, ok kurt@


Revision tags: OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE
# 1.13 05-Feb-2013 kettenis

Disable PIE-by-default if -static (or one of its aliases) is passed on the
command line. While technically -static only controls whether we link against
static libraries, people expect that doing so produces a fully static binary.

tested by sthen@
ok pascal@, miod@


# 1.12 28-Aug-2012 pascal

Add support for PIE-by-default in both ld and gcc. This is a completely
different approach than the one taken in kurt@'s original diff, but deemed
better after discussion and diff exchange with kettenis@ and matthew@.

Lots of feedback by kettenis@ and matthew@, prodding and encouragement by
deraadt@.

ok kettenis@ matthew@


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 02-Nov-2004 miod

Merge conflicts, bringing our changes back in:
- extra $(SHELL) and sugar for make (so that files not mode +x still work)
- safer temp file handling
- our W^X binary layout changes in ld
- OpenBSD policy for library file selection in ld
- arm and m88k changes which were not merged in time for official 2.15
- bfd core file handling
- a couple typos

New for 2.15:
- ld(1) and as(1) manpages now generated at build time
- binutils/stabs.c reverted to use our in-tree libiberty for now
- we still use our VIA C3 crypto code over stock binutils, as it recognizes
more instructions
- new emulations for OpenBSD on mips64 machines, to help OpenBSD/sgi
- relaxed %f# handling in gas on OpenBSD/sparc64 (same as was in 2.14)

Tested on all platforms by various people; special thanks to sturm@ and
otto@.


Revision tags: OPENBSD_3_6_BASE
# 1.10 17-May-2004 drahn

Resolve merge conflicts, adjust method of W^X handing (.sh files)
remove testsuites (not useable) remove mmalloc (not part of new binutils).


Revision tags: OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE
# 1.9 17-Jan-2003 drahn

This is a project to modify executables so that they do not have any
executable regions which are writable. If a section of an executable is
writable and executable, it is much easier for errant code to modify the
executable's behavior.

Two current areas in shared library environments which have this
critical problem are the GOT (Global Offset Table) and PLT (Procedure
Linkage Table). The PLT is required to be executable and both GOT and
PLT are writable on most architectures. On most ELF architecture
machines this would cause shared libraries to have data and BSS marked
as executable.

Padding to the linker script for programs and shared libraries/objects
to isolate the GOT and PLT into their own load sections in the
executables. This allows only the text(readonly) region and the PLT
region to be marked executable with the normal data and BSS not marked
as executable. The PLT region is still marked executable on most
architectures because the PLT lives in the "data" or "BSS" regions
and the dynamic loader will need to modify it. Since the GOT and PLT
should only ever be written by the dynamic linker, it will be modified
to mprotect those regions so that they are not writable during normal
execution. If the dynamic linker needs to modify the regions later,
(eg for lazy binding), it will mprotect the region, make the necessary
changes, and mprotect it back. Since it is possible to receive a
signal which would interrupt the program flow and perhaps cause the
dynamic linker to modify the same (or nearby) PLT references, it is now
necessary for signals to be blocked for the duration of the mprotect.


# 1.8 13-Jan-2003 drahn

Add a compatibilty flag '-Z' for upcoming elf changes, does nothing currently
but will produce old style executables when the other changes appear.


Revision tags: OPENBSD_3_2_BASE
# 1.7 13-May-2002 fgsch

resolve conflicts.


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE OPENBSD_3_1_BASE
# 1.6 12-Sep-2000 espie

Help stupid cvs fixing basic conflicts.


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE
# 1.5 23-Nov-1996 niklas

Merge to Cygnus 961112 + add some support (not ready) for shared libs


Revision tags: OPENBSD_2_0_BASE
# 1.4 04-Sep-1996 niklas

Merge the Cygnus 960904 sources


# 1.3 15-Jul-1996 pefo

A couple of more fixes. -static *IS* static...


# 1.2 10-Jun-1996 niklas

Bring Cygnus versions into the trunk, keeping our local patches


# 1.1 08-Jan-1996 niklas

branches: 1.1.1;
Initial revision