summaryrefslogtreecommitdiff
path: root/libexec/ld.so/loader.c
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2003-07-09 21:01:11 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2003-07-09 21:01:11 +0000
commit1a399a2e7d8d7fe218e25ec0015b939ccb1ad2f8 (patch)
treef92e10c426e11b3d56728b63c217fd6cd910e967 /libexec/ld.so/loader.c
parentc3f38c3eb3966de3e327342ab5c8512bb3a44472 (diff)
changes to ld.so to be compatible with newer binutils, requires
slight changes in the startup code on most archs. ok art@ brad@
Diffstat (limited to 'libexec/ld.so/loader.c')
-rw-r--r--libexec/ld.so/loader.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libexec/ld.so/loader.c b/libexec/ld.so/loader.c
index 1fdc48cb4e0..2299ad6027c 100644
--- a/libexec/ld.so/loader.c
+++ b/libexec/ld.so/loader.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: loader.c,v 1.65 2003/07/06 20:03:57 deraadt Exp $ */
+/* $OpenBSD: loader.c,v 1.66 2003/07/09 21:01:10 drahn Exp $ */
/*
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
@@ -51,7 +51,7 @@ unsigned long _dl_boot(const char **, char **, const long, long *);
void _dl_debug_state(void);
void _dl_setup_env(char **);
void _dl_dtors(void);
-void _dl_boot_bind(const long, long *);
+void _dl_boot_bind(const long, long *, Elf_Dyn *);
const char *_dl_progname;
int _dl_pagesz;
@@ -414,7 +414,7 @@ _dl_boot(const char **argv, char **envp, const long loff, long *dl_data)
}
void
-_dl_boot_bind(const long sp, long *dl_data)
+_dl_boot_bind(const long sp, long *dl_data, Elf_Dyn *dynamicp)
{
struct elf_object dynld; /* Resolver data for the loader */
AuxInfo *auxstack;
@@ -464,6 +464,8 @@ _dl_boot_bind(const long sp, long *dl_data)
#if defined(__alpha__)
dynp = (Elf_Dyn *)((long)_DYNAMIC);
+#elif defined(__sparc__) || defined(__sparc64__) || defined(__powerpc__)
+ dynp = dynamicp;
#else
dynp = (Elf_Dyn *)((long)_DYNAMIC + loff);
#endif