Age | Commit message (Collapse) | Author |
|
|
|
|
|
ok deraadt@
|
|
Gives us working objcopy, objdump, etc, and the ability to process core files
to some extent.
ok and pushed upstream kettenis@
|
|
ok drahn@
|
|
ok drahn@
|
|
|
|
HAVE_DECL_GETOPT. pointed out by a few.
|
|
|
|
remove testsuites (not useable) remove mmalloc (not part of new binutils).
|
|
|
|
ok deraadt@, otto@, pval@
|
|
ok deraadt@, millert@, krw@ - mdoc ok jmc@
|
|
ok deraadt@
|
|
the toolchain to remain at the name x86_64. Tested on all other
architectures that care. Done as very small snippets, so that espie does
not blow a fuse.
|
|
From: binutils CVS HEAD branch, based on rev 1.231
Provided by: Daniel Lucq <daniel at lucq dot org>
ok fgsch@ drahn@
|
|
From: binutils CVS HEAD branch, based on rev 1.113
Provided by: Daniel Lucq <daniel at lucq dot org>
ok fgsch@ drahn@
|
|
From: binutils CVS HEAD branch, based on rev 1.8
Reported by: Daniel Lucq <daniel at lucq dot org>
ok miod@
|
|
|
|
|
|
in VIA C3 cpus. Very simple encoding: 0f a7 {c0, c8, d0, e0, d8}. This
change is placed into the public domain, so someone get it back to FSF
|
|
and xcrypt-{ecb,cbc,cfb,ofb} instructions. This chagne is placed into
the public domain, so someone get it back to FSF
|
|
Not pushed upstream, ELF toolchain is in the pipeline and coming soon...
|
|
|
|
|
|
|
|
Fixes PR 3623
From: binutils CVS 2.11 branch, based on rev 1.15.2.3
ok otto@
|
|
and try not to fopen(NULL, ...) later.
ok millert@
|
|
"Works for me" todd@ ok mickey@ fgsch@
|
|
|
|
and the location of the GOT. reorder GOT and the CTOR/DTOR section.
|
|
|
|
without an argument. problem reported by adrian at coresecurity.com
ok millert@
|
|
Configuration settings mostly borrowed from the former gcc 2.8 configuration.
A few typos and fixes backported from gcc 3.3, and a hell lot of fixes from
my fingertips.
This is enough to yield a compiler which will produce correct code at -O0.
Optimization is slightly broken for some constructs, and more fixes are in
the pipeline.
ok deraadt@
|
|
|
|
|
|
interleave of exe/shared libs. Raise MAXDSIZ back to 1G.
This change REQUIRES a binary update on i386.
|
|
RODATA_* align macros to preserve current behavior on other
archs and allow for 1G sep between beginning of exe and beginning of data
DARPA funded work.
|
|
|
|
ok miod@ pvalchev@
|
|
installed.
Noticed by jmc@
|
|
for hppa; drahn@ lots of helps and ok
|
|
This `repairs' setting up BSDSRCDIR in /etc/mk.conf and nowhere else.
|
|
|
|
of putting it with the text. This removes the execute permission
from readonly data. This constrains the executable region to portions
of the executable which need to be executable. Note: not all processors
or mmus are capable of -X protection at the page level, but should
handle ELF images which specify specific RWX protections on each section.
|
|
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.
This diff was omitted from the original commit, this implements the
-Z option to produce traditional (non protected) executables.
|
|
|
|
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.
|
|
but will produce old style executables when the other changes appear.
|
|
|