OpenBSD CVS

CVS log for src/libexec/ld.so/Makefile


[BACK] Up to [local] / src / libexec / ld.so

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.88 / (download) - annotate - [select for diffs], Fri Apr 5 13:51:47 2024 UTC (8 weeks, 1 day ago) by deraadt
Branch: MAIN
CVS Tags: HEAD
Changes since 1.87: +2 -2 lines
Diff to previous 1.87 (colored)

ld.so should stop calling msyscall(2), since it is fully neutered and
about to be removed.  Please be careful building through this, you need
a kernel at least March 29th or so to build through it, otherwise use
snapshots to cross over.
ok various people

Revision 1.87 / (download) - annotate - [select for diffs], Fri Jan 19 14:16:41 2024 UTC (4 months, 1 week ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5
Changes since 1.86: +2 -2 lines
Diff to previous 1.86 (colored)

Stop initializing pinsyscall(SYS_execve in dynamic binaries that contain
a reference reaching the execve(2) stub.  The new pinsyscalls(2) that
applies to all system calls has made this redundant.

Revision 1.86 / (download) - annotate - [select for diffs], Wed Dec 20 14:54:29 2023 UTC (5 months, 1 week ago) by deraadt
Branch: MAIN
Changes since 1.85: +3 -2 lines
Diff to previous 1.85 (colored)

create a stub for pinsyscalls(2)

Revision 1.85 / (download) - annotate - [select for diffs], Sat Jul 8 11:03:45 2023 UTC (10 months, 3 weeks ago) by jasper
Branch: MAIN
CVS Tags: OPENBSD_7_4_BASE, OPENBSD_7_4
Changes since 1.84: +2 -2 lines
Diff to previous 1.84 (colored)

zap stray backslash

ok deraadt@

Revision 1.84 / (download) - annotate - [select for diffs], Sat Feb 18 01:22:50 2023 UTC (15 months, 1 week ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_3_BASE, OPENBSD_7_3
Changes since 1.83: +3 -3 lines
Diff to previous 1.83 (colored)

Lookup the start,len of the "execve" stub in libc.so, and tell the kernel
where it is with pinsyscall().  In non-static binaries, kernel execve(2)
will now insist upon being called from that small region.  Arriving from
a different region smells like ROP methodology, and the process is killed.

Revision 1.83 / (download) - annotate - [select for diffs], Sat Nov 5 18:44:09 2022 UTC (18 months, 3 weeks ago) by deraadt
Branch: MAIN
Changes since 1.82: +3 -3 lines
Diff to previous 1.82 (colored)

teach ld.so how to call the mimmutable() system call
ok kettenis

Revision 1.82 / (download) - annotate - [select for diffs], Thu Dec 23 18:50:32 2021 UTC (2 years, 5 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.81: +10 -9 lines
Diff to previous 1.81 (colored)

Roll the syscalls that have an off_t argument to remove the explicit padding.
Switch libc and ld.so to the generic stubs for these calls.
WARNING: reboot to updated kernel before installing libc or ld.so!

Time for a story...

When gcc (back in 1.x days) first implemented long long, it didn't (always)
pass 64bit arguments in 'aligned' registers/stack slots, with the result that
argument offsets didn't match structure offsets.  This affected the nine system
calls that pass off_t arguments:
   ftruncate lseek mmap mquery pread preadv pwrite pwritev truncate

To avoid having to do custom ASM wrappers for those, BSD put an explicit pad
argument in so that the off_t argument would always start on a even slot and
thus be naturally aligned.  Thus those odd wrappers in lib/libc/sys/ that use
__syscall() and pass an extra '0' argument.

The ABIs for different CPUs eventually settled how things should be passed on
each and gcc 2.x followed them.  The only arch now where it helps is landisk,
which needs to skip the last argument register if it would be the first half of
a 64bit argument.  So: add new syscalls without the pad argument and on landisk
do that skipping directly in the syscall handler in the kernel.  Keep compat
support for the existing syscalls long enough for the transition.

ok deraadt@

Revision 1.81 / (download) - annotate - [select for diffs], Sat Jun 26 14:46:48 2021 UTC (2 years, 11 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0
Changes since 1.80: +4 -3 lines
Diff to previous 1.80 (colored)

Use AFLAGS when building syscall stubs.  Drop AINC wich isn't used.

ok deraadt@

Revision 1.80 / (download) - annotate - [select for diffs], Mon Dec 2 17:19:25 2019 UTC (4 years, 6 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.79: +1 -2 lines
Diff to previous 1.79 (colored)

It is not always clear what ld.so was backed up to ld.so.backup, and
better that folk doing development in here use their own cp tooling.

Revision 1.79 / (download) - annotate - [select for diffs], Fri Nov 29 19:30:56 2019 UTC (4 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.78: +2 -1 lines
Diff to previous 1.78 (colored)

As additional paranoia, make a copy of system ld.so into obj/ld.so.backup
We don't want to CLEANFILES this one.  On occasion this comes in useful.

Revision 1.78 / (download) - annotate - [select for diffs], Fri Nov 29 06:34:44 2019 UTC (4 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.77: +2 -2 lines
Diff to previous 1.77 (colored)

Repurpose the "syscalls must be on a writeable page" mechanism to
enforce a new policy: system calls must be in pre-registered regions.
We have discussed more strict checks than this, but none satisfy the
cost/benefit based upon our understanding of attack methods, anyways
let's see what the next iteration looks like.

This is intended to harden (translation: attackers must put extra
effort into attacking) against a mixture of W^X failures and JIT bugs
which allow syscall misinterpretation, especially in environments with
polymorphic-instruction/variable-sized instructions.  It fits in a bit
with libc/libcrypto/ld.so random relink on boot and no-restart-at-crash
behaviour, particularily for remote problems. Less effective once on-host
since someone the libraries can be read.

For static-executables the kernel registers the main program's
PIE-mapped exec section valid, as well as the randomly-placed sigtramp
page.  For dynamic executables ELF ld.so's exec segment is also
labelled valid; ld.so then has enough information to register libc's
exec section as valid via call-once msyscall(2)

For dynamic binaries, we continue to to permit the main program exec
segment because "go" (and potentially a few other applications) have
embedded system calls in the main program.  Hopefully at least go gets
fixed soon.

We declare the concept of embedded syscalls a bad idea for numerous
reasons, as we notice the ecosystem has many of
static-syscall-in-base-binary which are dynamically linked against
libraries which in turn use libc, which contains another set of
syscall stubs.  We've been concerned about adding even one additional
syscall entry point... but go's approach tends to double the entry-point
attack surface.

This was started at a nano-hackathon in Bob Beck's basement 2 weeks
ago during a long discussion with mortimer trying to hide from the SSL
scream-conversations, and finished in more comfortable circumstances
next to a wood-stove at Elk Lakes cabin with UVM scream-conversations.

ok guenther kettenis mortimer, lots of feedback from others
conversations about go with jsing tb sthen

Revision 1.77 / (download) - annotate - [select for diffs], Sun Oct 20 03:44:49 2019 UTC (4 years, 7 months ago) by guenther
Branch: MAIN
Changes since 1.76: +19 -3 lines
Diff to previous 1.76 (colored)

For more archs, ld.so itself only needs/uses the arch's "just add load offset"
'relative' relocation.  Take advantage of that to simplify ld.so's self-reloc
code:
 * give the exceptional archs (hppa and mips64) copies of the current boot.c
   as boot_md.c
 * teach the Makefile to use boot_md.c when present
 * reduce boot.c down to the minimum necessary to handle just relative reloc
 * teach the Makefile to fail if the built ld.so has other types of relocs

ok visa@ kettenis@

Revision 1.76 / (download) - annotate - [select for diffs], Sat Aug 3 19:36:55 2019 UTC (4 years, 9 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.75: +3 -3 lines
Diff to previous 1.75 (colored)

Suppress DWARF2 warnings on clang archs by building with -gdwarf-4

ok deraadt@, kettenis@

Revision 1.75 / (download) - annotate - [select for diffs], Sun Jul 14 03:23:12 2019 UTC (4 years, 10 months ago) by guenther
Branch: MAIN
Changes since 1.74: +4 -4 lines
Diff to previous 1.74 (colored)

ld.so's $ORIGIN handling when argv[0] is a relative path was broken by
the change in __getcwd(2)'s return value.  Fix it by switching to the
__realpath(2) syscall, eliminating the ld.so copy of realpath().

problem caught by regress and noted by bluhm@
ok deraadt@

Revision 1.74 / (download) - annotate - [select for diffs], Fri May 10 13:29:21 2019 UTC (5 years ago) by guenther
Branch: MAIN
Changes since 1.73: +10 -5 lines
Diff to previous 1.73 (colored)

ld.so boot cleanup support:
 - put functions and data which are only used before calling the executable's
   start function into their own page-aligned segments for unmapping
   (only done on amd64, arm64, armv7, powerpc, and sparc64 so far)
 - pass .init_array and .preinit_array functions an addition argument which
   is a callback to get a structure which includes a function that frees
   the boot text and data
 - sometimes delay doing RELRO processing: for a shared-object marked
   DF_1_INITFIRST do it after the object's .init_array, for the executable
   do it after the .preinit_array
 - improve test-ld.so to link against libpthread and trigger its initialization
   late
libc changes to use this will come later

ok kettenis@

Revision 1.73 / (download) - annotate - [select for diffs], Wed Aug 29 15:56:46 2018 UTC (5 years, 9 months ago) by robert
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.72: +12 -4 lines
Diff to previous 1.72 (colored)

make ld.so build reproducible by including a FILE symbol and by removing
-x from ld; this is only used for syspatch creation so builds are still
randomized just as before

ok guenther@

Revision 1.72 / (download) - annotate - [select for diffs], Tue Jan 30 20:15:25 2018 UTC (6 years, 4 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.71: +2 -2 lines
Diff to previous 1.71 (colored)

provide ffs, gcc generates calls to it, even when __builtin_ffs() is used.
ok deraadt@

Revision 1.71 / (download) - annotate - [select for diffs], Fri Dec 8 05:30:16 2017 UTC (6 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.70: +3 -1 lines
Diff to previous 1.70 (colored)

also cleanout ld.so.a

Revision 1.70 / (download) - annotate - [select for diffs], Sun Nov 5 10:29:24 2017 UTC (6 years, 6 months ago) by rpe
Branch: MAIN
Changes since 1.69: +4 -2 lines
Diff to previous 1.69 (colored)

Consolidate lib.so.*.a, ld.so.a and the kernel relink kit into
one location under /usr/share/relink.

Be more specific in src/etc/rc reorder_libs() what filesystems
need r/w remount and ensure that their mount state is restored.

Idea and positive feedback from deraadt@
OK aja@ tb@

Revision 1.69 / (download) - annotate - [select for diffs], Sun Aug 27 22:18:08 2017 UTC (6 years, 9 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.68: +9 -0 lines
Diff to previous 1.68 (colored)

Place all .o files, Symbols.map, and the test program into /usr/libdata/ld.so.a.
My work is done; the next piece is coming from rpe.
ok visa kettenis

Revision 1.68 / (download) - annotate - [select for diffs], Sun Aug 27 22:16:14 2017 UTC (6 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.67: +1 -1 lines
Diff to previous 1.67 (colored)

The test program run before ld.so is installed was encoding the $OBJDIR
path to ld.so.  Since the testprogram is run from inside $OBJDIR, encode
with a ./ path instead.
ok kettenis visa

Revision 1.67 / (download) - annotate - [select for diffs], Sun Aug 27 22:14:12 2017 UTC (6 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.66: +4 -3 lines
Diff to previous 1.66 (colored)

Link the ~45 .o which become ld.so in a random order.
ok kettenis visa

Revision 1.66 / (download) - annotate - [select for diffs], Sun Aug 27 22:04:47 2017 UTC (6 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.65: +2 -2 lines
Diff to previous 1.65 (colored)

hppa & sh use support functions from libgcc.  Rather than linking against
the library, extract the specific pieces and link them directly.
ok kettenis visa

Revision 1.65 / (download) - annotate - [select for diffs], Sun Aug 27 21:59:49 2017 UTC (6 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.64: +13 -1 lines
Diff to previous 1.64 (colored)

Replace heaps of hand-written syscall stubs with a simpler framework
which is largely MI.
ok visa kettenis

Revision 1.64 / (download) - annotate - [select for diffs], Sat Aug 19 17:28:32 2017 UTC (6 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.63: +2 -2 lines
Diff to previous 1.63 (colored)

Build ld.so with ${DEBUG} which defults to -g, like other "libraries" are.
This provides some unwind benefits.
ok kettenis dlg

Revision 1.63 / (download) - annotate - [select for diffs], Thu Jan 5 21:14:22 2017 UTC (7 years, 4 months ago) by naddy
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.62: +2 -1 lines
Diff to previous 1.62 (colored)

Build with -fno-builtin to keep clang from optimizing the _dl_memset()
and _dl_bcopy() functions into calls to memset() and memcpy().
ok kettenis@

Revision 1.62 / (download) - annotate - [select for diffs], Mon Jul 4 21:15:06 2016 UTC (7 years, 10 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.61: +2 -2 lines
Diff to previous 1.61 (colored)

Remove prebind support: binding to symbol table indices is too fragile
for our development process.

ok kettenis@ deraadt@

Revision 1.61 / (download) - annotate - [select for diffs], Sat May 7 19:05:23 2016 UTC (8 years ago) by guenther
Branch: MAIN
Changes since 1.60: +2 -2 lines
Diff to previous 1.60 (colored)

Use a Thread Information Block in both single and multi-threaded programs.
This stores errno, the cancelation flags, and related bits for each thread
and is allocated by ld.so or libc.a.  This is an ABI break from 5.9-stable!

Make libpthread dlopen'able by moving the cancelation wrappers into libc
and doing locking and fork/errno handling via callbacks that libpthread
registers when it first initializes.  'errno' *must* be declared via
<errno.h> now!

Clean up libpthread's symbol exports like libc.

On powerpc, offset the TIB/TCB/TLS data from the register per the ELF spec.

Testing by various, particularly sthen@ and patrick@
ok kettenis@

Revision 1.60 / (download) - annotate - [select for diffs], Mon Aug 31 02:53:57 2015 UTC (8 years, 9 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.59: +2 -1 lines
Diff to previous 1.59 (colored)

Add framework for resolving (pun intended) libc namespace issues, using
wrapper .h files and asm labels to let internal calls resolve directly and
not be overridable or use the PLT.  Then, apply that framework to most of
the functions in stdio.h, string.h, err.h, and wchar.h.  Delete the
should-have-been-hidden-all-along _v?(err|warn)[cx]? symbols while here.

tests clean on i386, amd64, sparc64, powerpc, and mips64

naming feedback from kettenis@ and millert@
ok kettenis@

Revision 1.59 / (download) - annotate - [select for diffs], Fri Aug 28 14:16:01 2015 UTC (8 years, 9 months ago) by kettenis
Branch: MAIN
Changes since 1.58: +2 -2 lines
Diff to previous 1.58 (colored)

Use ELF_LDFLAGS to pass the --version-script argument such that we actually
hide symbols on all our architectures; hppa, hppa64 and sh override LDADD.
LDADD isn't really the proper variable for passing linker flags anyway.

ok guenther@, deraadt@

Revision 1.58 / (download) - annotate - [select for diffs], Sun Aug 23 23:20:00 2015 UTC (8 years, 9 months ago) by guenther
Branch: MAIN
Changes since 1.57: +5 -2 lines
Diff to previous 1.57 (colored)

Apply a symbol export list to ld.so with just the expected dl*() and the
two symbols needed by gdb.  Remember: ld.so exports override those in
shared libs.

ok deraadt@

Revision 1.57 / (download) - annotate - [select for diffs], Sun Jul 26 19:30:58 2015 UTC (8 years, 10 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.56: +4 -4 lines
Diff to previous 1.56 (colored)

Reenable the ld.so pre-install test; the "am I cross-compiling" test was
too loose.  Update the test to try to exercise the printf binding twice.

ok miod@

Revision 1.56 / (download) - annotate - [select for diffs], Tue May 26 20:15:54 2015 UTC (9 years ago) by miod
Branch: MAIN
Changes since 1.55: +2 -2 lines
Diff to previous 1.55 (colored)

Better cross-compilation check

Revision 1.55 / (download) - annotate - [select for diffs], Sun Feb 8 00:15:22 2015 UTC (9 years, 3 months ago) by uebayasi
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.54: +3 -1 lines
Diff to previous 1.54 (colored)

Fix cross-build.  OK jsing@ miod@ guenther@ deraadt@

Revision 1.54 / (download) - annotate - [select for diffs], Mon Dec 22 19:14:59 2014 UTC (9 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.53: +1 -5 lines
Diff to previous 1.53 (colored)

Static PIE has been delayed for quite a while.  By pushing hard with pascal
towards a wimpy (but sufficient) model, kurt and kettenis got upset enough
to do it the right way, right away before we got out of hand.  Bravo!
We no longer need /sbin/ld.so on the new roadmap.

Revision 1.53 / (download) - annotate - [select for diffs], Fri Dec 19 14:19:41 2014 UTC (9 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.52: +4 -5 lines
Diff to previous 1.52 (colored)

place the afterinstall: target correctly for static-only architectures

Revision 1.52 / (download) - annotate - [select for diffs], Tue Dec 16 23:59:47 2014 UTC (9 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.51: +3 -2 lines
Diff to previous 1.51 (colored)

install both ld.so with mode 444

Revision 1.51 / (download) - annotate - [select for diffs], Tue Dec 16 20:53:12 2014 UTC (9 years, 5 months ago) by pascal
Branch: MAIN
Changes since 1.50: +5 -1 lines
Diff to previous 1.50 (colored)

Install a copy of ld.so into /sbin.  Soon to be used in order to make "static"
PIE possible.

ok deraadt@ tedu@

Revision 1.50 / (download) - annotate - [select for diffs], Sat Jun 21 08:00:22 2014 UTC (9 years, 11 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.49: +2 -2 lines
Diff to previous 1.49 (colored)

Move to a non-zeroing _dl_malloc, a _dl_calloc and _dl_reallocarry and
fix _dl_strdup to return NULL instead of crash; ok deraadt@

Revision 1.49 / (download) - annotate - [select for diffs], Thu Jun 5 08:41:09 2014 UTC (9 years, 11 months ago) by otto
Branch: MAIN
Changes since 1.48: +3 -1 lines
Diff to previous 1.48 (colored)

add malloc.c

Revision 1.48 / (download) - annotate - [select for diffs], Wed May 28 18:57:56 2014 UTC (10 years ago) by brad
Branch: MAIN
Changes since 1.47: +3 -1 lines
Diff to previous 1.47 (colored)

Remove additional files generated during ld.so build on make clean.

From drahn Bitrig

ok miod@ guenther@

Revision 1.47 / (download) - annotate - [select for diffs], Sun Feb 16 01:16:38 2014 UTC (10 years, 3 months ago) by martynas
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.46: +6 -3 lines
Diff to previous 1.46 (colored)

Unbreak ld.so with ssp-strong/all on sparc64 and powerpc.  With the
new SSP logic it additionally protects functions which have their
local addresses taken of, and _dl_boot_bind() gets selected.

We have to go through GOT to reach __guard_local, however it hasn't
been relocated yet.  So add boot.c and don't protect everything up
to the point until it has been relocated and no longer needs the
loff adjustment.

OK matthew@.  Full build done & tested by florian@.

Revision 1.46 / (download) - annotate - [select for diffs], Tue Dec 31 04:07:34 2013 UTC (10 years, 5 months ago) by guenther
Branch: MAIN
Changes since 1.45: +12 -3 lines
Diff to previous 1.45 (colored)

Don't consider ld.so to be successfully built unless a test program
using it works, because seeing "make build" fail right after it
installs a broken ld.so is *#!&%(@*)# annoying.

Presumably needs to be fixed for cross-builds.

ok matthew@ deraadt@ miod@

Revision 1.45 / (download) - annotate - [select for diffs], Fri Jul 5 21:29:51 2013 UTC (10 years, 10 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.44: +1 -5 lines
Diff to previous 1.44 (colored)

ELF_TOOLCHAIN bye bye.

Revision 1.44 / (download) - annotate - [select for diffs], Sat Jun 1 09:57:55 2013 UTC (11 years ago) by miod
Branch: MAIN
Changes since 1.43: +2 -2 lines
Diff to previous 1.43 (colored)

Introduce ltrace(1). This tool works with ld.so to inject utrace record for
each plt call, allowing to trace a binary linked against shared library at the
public function call level.

To do so, ltrace(1) sets up some environment variables to enable plt tracing
in ld.so, and invokes ktrace(2) for utrace events. ld.so will force lazy
binding and will send an utrace record in the plt resolver, without updating
the plt.

Minimal filtering capabilities are provided, inspired by Solaris' truss -u,
to limit tracing to libraries and/or symbol names. Non-traced libraries and
symbols will have the regular resolver processing, with the expected plt
update.

"Get it in" deraadt

Revision 1.43 / (download) - annotate - [select for diffs], Fri Apr 5 12:58:03 2013 UTC (11 years, 1 month ago) by kurt
Branch: MAIN
Changes since 1.42: +3 -2 lines
Diff to previous 1.42 (colored)

- Add ORIGIN, OSNAME, OSREL and PLATFORM substitution support for rpaths.
Improvements and okay matthew@, millert@, guenther@

Revision 1.42 / (download) - annotate - [select for diffs], Wed Mar 20 21:49:59 2013 UTC (11 years, 2 months ago) by kurt
Branch: MAIN
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (colored)

- Parse colon separated paths into NULL terminated arrays of string
pointers to prepare for adding rpath ORIGIN support.
okay matthew@ millert@

Revision 1.41 / (download) - annotate - [select for diffs], Sun Feb 17 22:06:31 2013 UTC (11 years, 3 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.40: +6 -2 lines
Diff to previous 1.40 (colored)

Always enter this ld.so and subdirectories to create obj (and then the
MI man pages, even if vax currently lacks the programs)

Revision 1.40 / (download) - annotate - [select for diffs], Sat Jan 5 11:19:25 2013 UTC (11 years, 4 months ago) by miod
Branch: MAIN
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 (colored)

if defined(NOPIC), do not attempt to .include arch/Makefile.inc for it may
not exist yet.

Revision 1.39 / (download) - annotate - [select for diffs], Wed Sep 12 09:19:54 2012 UTC (11 years, 8 months ago) by haesbaert
Branch: MAIN
Changes since 1.38: +2 -1 lines
Diff to previous 1.38 (colored)

Define empty CDIAGFLAGS for programs that use Werror.
Makes "make build" build with WARNINGS=Yes on amd64.

ok espie

Revision 1.38 / (download) - annotate - [select for diffs], Fri Aug 31 20:09:27 2012 UTC (11 years, 9 months ago) by kettenis
Branch: MAIN
Changes since 1.37: +2 -1 lines
Diff to previous 1.37 (colored)

Compile ld.so with debug info.  This will not only help people hacking on
ld.so itself, but also make it easier to debug code that uses dlopen(3).

ok deraadt@, matthew@

Revision 1.37 / (download) - annotate - [select for diffs], Wed Feb 3 20:49:00 2010 UTC (14 years, 4 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8, OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.36: +4 -4 lines
Diff to previous 1.36 (colored)

Use MACHINE_CPU instead of MACHINE_ARCH to pick the correct machine dependent
files or directories when applicable.
The inspiration and name of MACHINE_CPU come from NetBSD, although the way to
provide it to Makefiles is completely different.
ok kettenis@

Revision 1.36 / (download) - annotate - [select for diffs], Wed Aug 8 21:04:13 2007 UTC (16 years, 9 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6, OPENBSD_4_5_BASE, OPENBSD_4_5, OPENBSD_4_4_BASE, OPENBSD_4_4, OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2
Changes since 1.35: +11 -3 lines
Diff to previous 1.35 (colored)

on NOPIC architectures, do not build and install ld.so.  this is in
particular for landisk (sh) where ld.so does not yet 100% work, but
was still being installed.  libtool cares.  modified from matthieu
patch; ok drahn

Revision 1.35 / (download) - annotate - [select for diffs], Tue Dec 26 22:36:51 2006 UTC (17 years, 5 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_1_BASE, OPENBSD_4_1
Changes since 1.34: +1 -2 lines
Diff to previous 1.34 (colored)

no more seperate prebind

Revision 1.34 / (download) - annotate - [select for diffs], Thu May 11 22:03:22 2006 UTC (18 years ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_0_BASE, OPENBSD_4_0
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 (colored)

move prebind_strip(8) into ldconfig as the -D option; ok drahn

Revision 1.33 / (download) - annotate - [select for diffs], Thu May 4 01:52:16 2006 UTC (18 years, 1 month ago) by drahn
Branch: MAIN
Changes since 1.32: +2 -2 lines
Diff to previous 1.32 (colored)

Dont build/install prebind tools just yet.

Revision 1.32 / (download) - annotate - [select for diffs], Wed May 3 16:10:51 2006 UTC (18 years, 1 month ago) by drahn
Branch: MAIN
Changes since 1.31: +4 -3 lines
Diff to previous 1.31 (colored)

prebind - how to prelink a binary without throwing security out the window

Prelink fixes the address of libraries making 'return to libc' attacks trival,
prebind uses a different method to achieve most of the same gains, however
without adding any security conerns.

Still under development, now in-tree.

Revision 1.31 / (download) - annotate - [select for diffs], Wed May 3 15:48:16 2006 UTC (18 years, 1 month ago) by drahn
Branch: MAIN
Changes since 1.30: +2 -2 lines
Diff to previous 1.30 (colored)

Extra paranoid, do not allow the dynamic linker to have unresolved references
as this causes much frustration as it fails to run after being installed
and is a paint to recover.

Revision 1.30 / (download) - annotate - [select for diffs], Wed Sep 28 16:20:01 2005 UTC (18 years, 8 months ago) by drahn
Branch: MAIN
CVS Tags: OPENBSD_3_9_BASE, OPENBSD_3_9
Changes since 1.29: +2 -2 lines
Diff to previous 1.29 (colored)

If there is some compilation error/warning in ld.so do not allow it to
build, ld.so is too fragile and destructive otherwise.

Revision 1.29 / (download) - annotate - [select for diffs], Fri Sep 23 01:15:03 2005 UTC (18 years, 8 months ago) by drahn
Branch: MAIN
Changes since 1.28: +1 -3 lines
Diff to previous 1.28 (colored)

sigh. again

Revision 1.28 / (download) - annotate - [select for diffs], Thu Sep 22 22:33:40 2005 UTC (18 years, 8 months ago) by drahn
Branch: MAIN
Changes since 1.27: +3 -1 lines
Diff to previous 1.27 (colored)

Track if symbols are searched but missing while resolving GOT, if
any are missing exit instead of later causing an abort, ok kurt@

Revision 1.27 / (download) - annotate - [select for diffs], Fri Sep 16 23:20:51 2005 UTC (18 years, 8 months ago) by drahn
Branch: MAIN
Changes since 1.26: +1 -3 lines
Diff to previous 1.26 (colored)

revert the debug enable.

Revision 1.26 / (download) - annotate - [select for diffs], Fri Sep 16 23:19:41 2005 UTC (18 years, 8 months ago) by drahn
Branch: MAIN
Changes since 1.25: +3 -1 lines
Diff to previous 1.25 (colored)

Rework symbol lookup to more closely match sun's documentation, now
treats dlopens as load groups. ok kurt@

Revision 1.25 / (download) - annotate - [select for diffs], Wed Mar 23 19:48:05 2005 UTC (19 years, 2 months ago) by drahn
Branch: MAIN
CVS Tags: OPENBSD_3_8_BASE, OPENBSD_3_8
Changes since 1.24: +2 -2 lines
Diff to previous 1.24 (colored)

Code reorganization, move copied code in library.c and library_mquery.c
into its own file. no functional change.

Revision 1.24 / (download) - annotate - [select for diffs], Wed May 26 19:16:30 2004 UTC (20 years ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_3_7_BASE, OPENBSD_3_7, OPENBSD_3_6_BASE, OPENBSD_3_6
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

allow md makefile to supply LDADD; drahn@ ok

Revision 1.23 / (download) - annotate - [select for diffs], Thu Nov 20 23:23:09 2003 UTC (20 years, 6 months ago) by avsm
Branch: MAIN
CVS Tags: OPENBSD_3_5_BASE, OPENBSD_3_5
Changes since 1.22: +2 -2 lines
Diff to previous 1.22 (colored)

remove -Werror from userland builds, to give us a chance to
use more verbose warning options if desired.
ok millert@, henning@, david@

Revision 1.22 / (download) - annotate - [select for diffs], Sun Jul 6 20:03:57 2003 UTC (20 years, 11 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_3_4_BASE, OPENBSD_3_4
Changes since 1.21: +5 -5 lines
Diff to previous 1.21 (colored)

various proto, ansi, and knf repair.  tested on all architectures that
use it. (build may require make cleandir because of .depend balony)

Revision 1.21 / (download) - annotate - [select for diffs], Fri Jun 27 01:13:00 2003 UTC (20 years, 11 months ago) by deraadt
Branch: MAIN
Changes since 1.20: +2 -2 lines
Diff to previous 1.20 (colored)

put it in section 1

Revision 1.20 / (download) - annotate - [select for diffs], Thu Jun 26 17:55:42 2003 UTC (20 years, 11 months ago) by drahn
Branch: MAIN
Changes since 1.19: +1 -2 lines
Diff to previous 1.19 (colored)

Manpage for ELF ld.so, derived from a.out version, not yet complete
also points out missing features in the ELF ld.so.

Revision 1.19 / (download) - annotate - [select for diffs], Thu Apr 17 03:40:45 2003 UTC (21 years, 1 month ago) by drahn
Branch: MAIN
Changes since 1.18: +8 -2 lines
Diff to previous 1.18 (colored)

mquery support, currently for i386 only.

Revision 1.18 / (download) - annotate - [select for diffs], Mon Oct 21 16:28:18 2002 UTC (21 years, 7 months ago) by drahn
Branch: MAIN
CVS Tags: OPENBSD_3_3_BASE, OPENBSD_3_3
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored)

Remove the -D__PIC__ from this, it does not affect the building
of any current platform, so makes no sense. pointed out by Per.
Tested on alpha, i386, macppc, sparc, sparc64 (binary diff).

Revision 1.17 / (download) - annotate - [select for diffs], Wed Aug 21 15:40:30 2002 UTC (21 years, 9 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.16: +6 -34 lines
Diff to previous 1.16 (colored)

Split out MD makefile parts into separate files and do
some other cleanup in the Makefile.
drahn@ ok.

Revision 1.16 / (download) - annotate - [select for diffs], Sat Jul 27 13:19:26 2002 UTC (21 years, 10 months ago) by art
Branch: MAIN
Changes since 1.15: +9 -1 lines
Diff to previous 1.15 (colored)

Just a skeleton for sparc. Builds, but pieces are missing and it doesn't
even get to dl_boot_bind correctly.

Revision 1.15 / (download) - annotate - [select for diffs], Fri Jul 12 20:18:30 2002 UTC (21 years, 10 months ago) by drahn
Branch: MAIN
Changes since 1.14: +10 -8 lines
Diff to previous 1.14 (colored)

Change ld.so search order/method to match the a.out ld.so.

run destructors on dlclose()

Move more symbols into _dl_ private space, so that the proper (libc)
version of the function will be used.

Add readdir() functionality to perform the proper library searching.

Support DL_PRELOAD

Do not relocate symbols if ld.so is being traced (and will exit).

Misc lint cleanup.

ok art@

Revision 1.14 / (download) - annotate - [select for diffs], Sat May 25 02:46:09 2002 UTC (22 years ago) by drahn
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 (colored)

use _dl_strncmp() not strncmp(), _dl version is already present and used.

Revision 1.13 / (download) - annotate - [select for diffs], Sat May 25 02:34:45 2002 UTC (22 years ago) by drahn
Branch: MAIN
Changes since 1.12: +2 -3 lines
Diff to previous 1.12 (colored)

_dl_strcmp() and _dl_strchr() exist, do not pull these routines
from libsa source.

Revision 1.12 / (download) - annotate - [select for diffs], Thu Feb 21 23:17:53 2002 UTC (22 years, 3 months ago) by drahn
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1
Changes since 1.11: +4 -3 lines
Diff to previous 1.11 (colored)

cleanup of MD/MI ld.so (elf), most changes by art@ cleanup by me.
tested on alpha sparc64 powerpc.

Revision 1.11 / (download) - annotate - [select for diffs], Tue Nov 20 01:13:44 2001 UTC (22 years, 6 months ago) by pvalchev
Branch: MAIN
Changes since 1.10: +2 -2 lines
Diff to previous 1.10 (colored)

bye bye, libdl

Revision 1.10 / (download) - annotate - [select for diffs], Mon Sep 24 23:38:09 2001 UTC (22 years, 8 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE, OPENBSD_3_0
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

sparc64 needs slightly different flags.

Revision 1.9 / (download) - annotate - [select for diffs], Sun Sep 23 02:24:07 2001 UTC (22 years, 8 months ago) by drahn
Branch: MAIN
Changes since 1.8: +5 -1 lines
Diff to previous 1.8 (colored)

pass appropriate compilation flags for sparc64. needs to be compiled PIC.
both C and asm files.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Jul 20 20:16:29 2001 UTC (22 years, 10 months ago) by mickey
Branch: MAIN
Changes since 1.7: +1 -3 lines
Diff to previous 1.7 (colored)

do not include or define things which are common for this subdir's parent

Revision 1.7 / (download) - annotate - [select for diffs], Fri Jun 8 06:50:34 2001 UTC (22 years, 11 months ago) by art
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6 (colored)

No more need to pull in strlen from libc.

Revision 1.6 / (download) - annotate - [select for diffs], Wed May 23 14:24:03 2001 UTC (23 years ago) by drahn
Branch: MAIN
Changes since 1.5: +2 -2 lines
Diff to previous 1.5 (colored)

Do not enable debugging, such as PRINTF_DEBUG for ld.so, it becomes
too verbose for normal usage.

Revision 1.5 / (download) - annotate - [select for diffs], Tue May 15 11:38:25 2001 UTC (23 years ago) by deraadt
Branch: MAIN
Changes since 1.4: +2 -2 lines
Diff to previous 1.4 (colored)

Niklas, there is no excuse for breaking this code

Revision 1.4 / (download) - annotate - [select for diffs], Mon May 14 22:18:19 2001 UTC (23 years ago) by niklas
Branch: MAIN
Changes since 1.3: +13 -8 lines
Diff to previous 1.3 (colored)

Commit initial alpha bits, to facilitate in-tree dev.
This code is not yet working.

Revision 1.3 / (download) - annotate - [select for diffs], Sun Sep 17 17:50:57 2000 UTC (23 years, 8 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_9_BASE, OPENBSD_2_9, OPENBSD_2_8_BASE, OPENBSD_2_8
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (colored)

activate ldd, and indent some ld.so messages to make it easier to see what is going on

Revision 1.2 / (download) - annotate - [select for diffs], Fri Sep 8 04:23:45 2000 UTC (23 years, 8 months ago) by rahnds
Branch: MAIN
Changes since 1.1: +19 -3 lines
Diff to previous 1.1 (colored)

PowerPC does not need to build this -Wall, if other archs would not.

Revision 1.1.1.2 / (download) - annotate - [select for diffs] (vendor branch), Tue Jun 13 03:39:53 2000 UTC (23 years, 11 months ago) by rahnds
Branch: per, dsr
CVS Tags: r20000612
Changes since 1.1.1.1: +18 -2 lines
Diff to previous 1.1.1.1 (colored)

Updated version of ld.so, contains additional functionality and fixes/
design changes required by egcs.

added support for ldconfig/ld.so.hints

changes to low level relocation code, required by egcs pic
code generation that moved global variable loads to before the
self relocation was performed. Only powerpc supported, mips code not updated.

Code cleaned up somewhat reasonably.

This code needs to be reviewed closely for significant problems
such as correctness and security.

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Tue Jun 13 03:33:55 2000 UTC (23 years, 11 months ago) by rahnds
Branch: per, dsr
CVS Tags: r19990103
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

Initial import of ELF ld.so. This was written indepently of the gnu rtld
code and is fully BSD copyrighted.
This initial import contains a mostly working mips and partially working
powerpc version. No support for ld.so.hints or system run path exists.


Revision 1.1 / (download) - annotate - [select for diffs], Tue Jun 13 03:33:55 2000 UTC (23 years, 11 months ago) by rahnds
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.