Age | Commit message (Collapse) | Author |
|
noticed by and ok jsg@
|
|
ok pascal@
Original commit message:
[SSP] Do not set __guard_local to hidden for OpenBSD SSP
guard_local is defined as long on OpenBSD. If the source file contains
a definition of guard_local, it mismatches with the int8 pointer type
used in LLVM. In that case, Module::getOrInsertGlobal() returns a
cast operation instead of a GlobalVariable. Trying to set the
visibility on the cast operation leads to random segfaults (seen when
compiling the OpenBSD kernel, which also runs with stack
protection).
In the kernel, the hidden attribute does not matter. For userspace code,
guard_local is defined as hidden in the startup code. If a program
re-defines guard_local, the definition from the startup code will
either win or the linker complains about multiple definitions
(depending on whether the re-defined __guard_local is placed in the
common segment or not).
It also matches what gcc on OpenBSD does.
|
|
looks good to stefan@
|
|
does not tell our linker to produce that header for statically linked
binaries. Just create that header for all binaries and we are fine.
ok guenther@
|
|
ok jsg@
|
|
use the old libstdc++ by specifying -stdlib=libstdc++.
with hints from/looks good to patrick@, ok kettenis@
|
|
ok kettenis@
|
|
|
|
to get a working "clang" binary.
Note that you need GCC from ports to bootstrap clang.
looks good to patrick@, ok jsg@ kettenis@
|
|
|
|
ok hackroom@
|
|
ok hackroom@
|
|
shared library need to test for 'shared && !executable' so that PIE
files can optimize to initial-exec and local-exec models
ok kettenis@
|
|
for __{got,plt}_{start,end} symbols
ok kettenis@
|
|
ok and testing aoyama@
|
|
used and the m88k-specific logic can be retired
ok and testing aoyama@
|
|
generation. From daniel, ok tb
|
|
|
|
libsupc++. Passes the (limited) tests in the gcc 4.2.1 testsuite.
ok patrick@, tom@
|
|
ok guenther@
|
|
break which cannot be easily crossed.
ok kettenis@ jsg@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this version bails out if the revision has a commitid already
ok guenther deraadt tom
|
|
(committing without log message), but to a)bort.
ok jcs, natano; millert and tj agree
|
|
section; remove the PAD_GOT0 use that I should have deleted before. This
caused ld.so crashes on arm when building binutils.
critical debugging observations by kettenis@
|
|
Per feedback from kettenis@, Miod, and deraadt@, the padding between
text and rodata will be retained for consistency with other archs,
to minimize reliance on the R4000 EOP bug workaround, and to enable
possible future work.
ok deraadt@
|
|
Teach ld to access that and PT_GNU_RELRO in linker scripts.
ok deraadt@
|
|
have been disturbed: rework the linker script and then enable RELRO support
on all but mips64 (something something padding) and m88k (untested).
This extends the RO coverage from just .got and .cdtors to also include
.openbsd.randomdata, .jcr, .dynamic, and .data.rel.ro., and moves more
segments from the text section to the rodata section. Depends on the
previous csu and ld.so work; reinstall those *before* rebuilding ld, or
just get a snapshot.
clues from kettenis
assistance testing and ok deraadt@
|
|
ok kettenis@
|
|
when generating the link map output (-M) too
ok kettenis@
|
|
In elf.c, do not increment `s' before it is initialized. At the time
of the increment, `s' is otherwise unused anyway.
In elflink.c, initialize sec_contents and l_sec_contents to make
sure that the free(sec_contents) and free(l_sec_contents) are called
on valid pointers.
ok jca@ guenther@
|
|
OK sthen@
|
|
problem noted by Juan Francisco Cantero Hurtado (iam (at) juanfra.info)
ok deraadt@
|
|
The problem relates to Perl 5 ("perl") loading modules from the
includes directory array ("@INC") in which the last element is the
current directory ("."). That means that, when "perl" wants to
load a module (during first compilation or during lazy loading of
a module in run-time), perl will look for the module in the current
directory at the end, since '.' is the last include directory in
its array of include directories to seek. The issue is with requiring
libraries that are in "." but are not otherwise installed.
The major problem with this behavior is that it unexpectedly puts
a user at risk whenever they execute any Perl scripts from a directory
that is writable by other accounts on the system. For instance, if
a user is logged in as root and changes directory into /tmp or an
account's home directory, it is possible to now run any shell
commands that are written in C, Python or Ruby without fear.
The same isn't true for any shell commands that are written in Perl,
since a significant proportion of Perl scripts will execute code
in the current working directory whenever they are run. For example,
if a user on a shared system creates the file /tmp/Pod/Perldoc/Toterm.pm,
and then I log in as root, change directory to /tmp, and run "perldoc
perlrun", it will execute the code they have placed in the file.
ok deraadt@
|
|
|
|
|
|
|
|
|
|
This fixes a bug where XSLoader could try to load from a subdir
of the cwd when called via eval. OK afresh1@
|
|
|
|
contains -g by default anyway
problem noted by Edgar Pettijohn (edgar (at) pettijohn-web.com)
ok millert@ kettenis@ deraadt@
|
|
OK bluhm@
|
|
|
|
OK espie@ sthen@ deraadt@
|
|
|