diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-11-17 06:07:30 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-11-17 06:07:30 +0000 |
commit | a9f3bfe7dd2f2b3f690ff88d9ce83858f9b85b6d (patch) | |
tree | e935de25cdf4e47de3302afe959d1acc4d45e44f /ldso | |
parent | 82334a1ba05ac2d3098df9018a20474f7771bcfc (diff) |
Bernd Schmidt writes:
This reintroduces a mechanism identical to the DL_BOOT macro present in
older versions of uClibc. On Blackfin and FRV, we want to pass more
than one argument to _dl_start. We also want to do something special
before returning, so delete the warning when the START macro is defined.
Diffstat (limited to 'ldso')
-rw-r--r-- | ldso/include/dl-defs.h | 6 | ||||
-rw-r--r-- | ldso/ldso/dl-startup.c | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/ldso/include/dl-defs.h b/ldso/include/dl-defs.h index 18eff43c1..a8f6d6aae 100644 --- a/ldso/include/dl-defs.h +++ b/ldso/include/dl-defs.h @@ -66,6 +66,12 @@ typedef struct { #endif +/* Provide a means for a port to pass additional arguments to the _dl_start + function. */ +#ifndef DL_START +# define DL_START(X) static void * __attribute_used__ _dl_start(X) +#endif + /* Machines in which different sections may be relocated by different * amounts should define this and LD_RELOC_ADDR. If you change this, * make sure you change struct link_map in include/link.h accordingly diff --git a/ldso/ldso/dl-startup.c b/ldso/ldso/dl-startup.c index 69398268b..5cf1d049e 100644 --- a/ldso/ldso/dl-startup.c +++ b/ldso/ldso/dl-startup.c @@ -110,7 +110,7 @@ strong_alias(__rtld_stack_end, __libc_stack_end) /* Exported version of __rtld_s NULL auxvt[0...N] Auxiliary Vector Table elements (mixed types) */ -static void * __attribute_used__ _dl_start(unsigned long args) +DL_START(unsigned long args) { unsigned int argc; char **argv, **envp; @@ -313,7 +313,6 @@ static void * __attribute_used__ _dl_start(unsigned long args) #ifndef START return _dl_elf_main; #else -#warning You need to update your arch ldso code START(); #endif } |