diff options
author | Andreas Schwab <schwab@suse.de> | 1999-07-26 08:27:39 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@suse.de> | 1999-07-26 08:27:39 +0000 |
commit | 60bb3e188c65ddc1bfa92c716c1ef87277fac38b (patch) | |
tree | 5dc37a7b6d29dab07c075daa7600d19f5d6c119c /sysdeps/m68k | |
parent | f1778711c8a5b50052e9c7165d612449ba2ad087 (diff) | |
download | glibc-60bb3e188c65ddc1bfa92c716c1ef87277fac38b.tar.gz glibc-60bb3e188c65ddc1bfa92c716c1ef87277fac38b.tar.xz glibc-60bb3e188c65ddc1bfa92c716c1ef87277fac38b.zip |
* sysdeps/m68k/dl-machine.h (RTLD_START): Call pre-init funtions.
Diffstat (limited to 'sysdeps/m68k')
-rw-r--r-- | sysdeps/m68k/dl-machine.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h index f9f9bf7626..e3ebca5a9d 100644 --- a/sysdeps/m68k/dl-machine.h +++ b/sysdeps/m68k/dl-machine.h @@ -181,6 +181,20 @@ _dl_start_user: 0: | Push the searchlist of the main object as argument in | the _dl_init_next call below. move.l ([_dl_main_searchlist@GOT.w, %a5]), %d2 + | First dun the pre-initializers. +0: move.l %d2, -(%sp) + | Call _dl_preinit_next to return the address of an pre-initializer + | function to run. + bsr.l _dl_preinit_next@PLTPC + add.l #4, %sp | Pop argument. + | Check for zero return, when out of pre-initializers. + tst.l %d0 + jeq 0f + | Call the shared object pre-initializer function. + move.l %d0, %a0 + jsr (%a0) + | Loop to call _dl_preinit_next for the next pre-initializer. + jra 0b 0: move.l %d2, -(%sp) | Call _dl_init_next to return the address of an initializer | function to run. |