| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
are initialised to zero. When freeing TLS, don't attempt to free DTV
slots which were not used.
Pointed out by: Joerg Sonnenberger
X-MFC-After: After the branch, probably
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LD_LIBMAP_DISABLE, LD_LIBRARY_PATH) are used, then make sure the
libraries being loaded aren't on a noexec-mounted filesystem.
This is a compromise position: I'm assuming that nobody will be silly
enough to set the noexec mount flag on part of the default library
path, in order to avoid adding extra overhead into the common case
(where those environment variables aren't used).
Discussed with: csjp, secteam
MFC after: 1 week
|
| |
|
|
|
|
|
|
|
| |
is unloaded. This allows applications which load and unload libraries
like libGL.so.1 several times to work properly.
MFC after: 2 days
|
|
|
|
| |
ARM_HAS_ATOMIC_CMPSET_32 isn't defined.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Another handy libmap patch. Lets you do stuff like this:
LD_LIBMAP="libpthread.so.1=libthr.so.1" mythreadedapp
If you already have a program-specific override in libmap.conf, note
that you must use a program-specific override in LD_LIBMAP:
LD_LIBMAP="[mythreadedapp],libpthread.so.1=libthr.so.1" mythreadedapp
PR: bin/74471
Submitted by: Dan Nelson <dnelson AT allantgroup.com>
MFC after: 2 weeks
|
| |
|
|
|
|
| |
the signals are masked anyway.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In the old world (as the surrounding comment in makefile says), there
was the /usr/libexec/ld-elf.so.1 binary which is now a symlink to
/libexec/ld-elf.so.1. To symlink, we need to make sure that the
_target_ (and the target is /usr/libexec/ld-elf.so.1) doesn't have
"schg" flag set. A real solution is to protect the chflags call only if
target exists, like we do in usr.bin/tip/tip/Makefile.
Requested by: ru
|
|
|
|
|
|
|
|
| |
symlink.
PR: kern/73016
Submitted by: John E. Hein <jhein@timing.com>
MFC after: 1 week
|
|
|
|
| |
file.
|
|
|
|
|
| |
running on an amd64 kernel. Use the recently exposed direct %fs/%gs set
routines instead for the TLS setup of 32 bit binaries.
|
|
|
|
|
|
|
|
| |
to PRECIOUSLIB from bsd.lib.mk. The side effect of this
is making installing the world under jail(8) possible by
using another knob, NOFSCHG.
Reviewed by: oliver
|
|
|
|
| |
Approved by: grehan (mentor)
|
|
|
|
|
|
|
| |
can be overlap in the TLS offsets, if the relocations are done in a
certain order.
Approved by: dfr, grehan (mentor)
|
|
|
|
| |
any fake value.
|
|
|
|
| |
been done before.
|
| |
|
|
|
|
| |
Arbitraly choose the 2nd variant until I figure out which one I should use.
|
|
|
|
| |
Submitted by: ssouhlal
|
| |
|
|
|
|
| |
in <sys/cdefs.h> for compilers without support for inline.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(and that is for now being worked around by a binutils patch).
The rtld code tested &_DYNAMIC against 0 to see whether rtld itself
was built as PIC or not. While the sparc64 MD code did not rely
on the preset value of the GOT slot for _DYNAMIC any more due
to previous binutils changes, it still used to not be 0, so
that this check did work. The new binutils do however initialize
this slot with 0. As a consequence, rtld would not properly initialize
itself and crash.
Fix that by introducing a new macro, RTLD_IS_DYNAMIC, to take the role
of this test. For sparc64, it is implemented using the rtld_dynamic()
code that was already there. If an architecture does not provide its
own implementation, we default to the old check.
While being there, mark _DYNAMIC as a weak symbol in the sparc64
rtld_start.S. This is needed in the LDSCRIPT case, which is however
not currently supported for want of an actual ldscript.
Sanity checked with md5 on alpha, amd64, i386 and ia64.
|
|
|
|
| |
Spotted out by: marcus, simon
|
|
|
|
| |
the latest binutils import mades this gross hack useless, so just remove it.
|
|
|
|
|
|
|
|
| |
PR: 56549
Submitted by: edwin
Reviewed by: joerg, ru
Approved by: joerg
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
eg:
[foo]
...
matches any executable 'foo'
[/usr/bin/foo/]
...
matches any executable under the directory /usr/bin/foo/
Exact matches continue to function as before.
PR: bin/66769
Submitted-by: Dan Nelson
|
|
|
|
| |
breaking any other arch this time.
|
|
|
|
|
|
| |
first!
The previous version made all shared binaries dump core.
|
|
|
|
| |
Obtained from: NetBSD
|
|
|
|
|
| |
change __progname to point at the new storage otherwise it ends up
pointing at freed memory which leads to confusing garbled error messages.
|
|
|
|
|
|
|
|
|
| |
with the correct alignment. This is important because this calls to
library static constructors are made from here. The bug in the old crt*.s
files hid this because in this case, two wrongs do indeed make a right.
Also, call _rtld_bind() with the correct alignment, because it calls back
into the pthread library locking functions. If things happen just
the wrong way, we get a SIG10 due to the broken stack alignment.
|
|
|
|
|
|
|
| |
ld-elf.so.1 on 64 bit systems. Most of this involves using alternate
paths, environment variables and diagnostic messages.
The build glue is seperate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that this provokes. "Wherever possible" means "In the kernel OR NOT
C++" (implying C).
There are places where (void *) pointers are not valid, such as for
function pointers, but in the special case of (void *)0, agreement
settles on it being OK.
Most of the fixes were NULL where an integer zero was needed; many
of the fixes were NULL where ascii <nul> ('\0') was needed, and a
few were just "other".
Tested on: i386 sparc64
|
|
|
|
|
|
| |
obj->mapbase and obj->mapsize instead.
Prompted by: OpenOffice debugging session at last BSDCon.
|
|
|
|
| |
Found by: gcc 2.95.4 [FreeBSD]
|
|
|
|
| |
Thanks to: valgrind
|
|
|
|
|
|
| |
dig up the patches for amd64 support for it.
Note to self: do not put a 64 bit value in a 32 bit space.
|
|
|
|
|
|
| |
Change it to 64 while here.
Reported by: ps
|
| |
|
|
|
|
|
| |
probably be 128 since that is what the hardware prefetch fill size is
on both the p3, p4 and athlon* cpus.
|
|
|
|
| |
MFC after: 1 week
|
| |
|
|
|
|
|
|
|
|
| |
(libmap available) and 1 for failure. Assign this return to the
global 'libmap_disable' variable in rtld.c.
This totally prevents any libmap functions from being called after
lm_init() if no config file is present.
|
| |
|
|
|
|
| |
Pointed out by: obrien
|
|
|
|
| |
the binary name directly.
|