From 5a59a3a514de1e5826a6e29081e880354e57565b Mon Sep 17 00:00:00 2001 From: Geoff Keating Date: Thu, 4 May 2000 23:12:19 +0000 Subject: [PATCH] Update sysdeps/powerpc/dl-start.S. 2000-04-11 Geoff Keating * sysdeps/powerpc/dl-start.S (_dl_start): Add _dl_start_user symbol. Call _dl_init rather than the old way. >>>>>>> 1.3514 --- ChangeLog | 6 ++++++ sysdeps/powerpc/dl-start.S | 34 ++++++++++++++-------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 84f02ee..d951370 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-04-11 Geoff Keating + + * sysdeps/powerpc/dl-start.S (_dl_start): Add _dl_start_user + symbol. Call _dl_init rather than the old way. + 2000-05-04 Ulrich Drepper * elf/dl-open.c (dl_open_worker): Use l_map_start and l_map_end to @@ -1176,6 +1181,7 @@ * sysdeps/mips/dl-machine.h: Update some comments. (ELF_MACHINE_ALIGN_MASK): Removed, it's not needed. +>>>>>>> 1.3514 2000-04-11 Ulrich Drepper * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add diff --git a/sysdeps/powerpc/dl-start.S b/sysdeps/powerpc/dl-start.S index 42ae370..40da94f 100644 --- a/sysdeps/powerpc/dl-start.S +++ b/sysdeps/powerpc/dl-start.S @@ -1,5 +1,5 @@ /* Machine-dependent ELF startup code. PowerPC version. - Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -38,6 +38,8 @@ ENTRY(_start) stw r4,0(r1) bl _dl_start@local + /* FALLTHRU */ +ENTRY(_dl_start_user) /* Now, we do our main work of calling initialisation procedures. The ELF ABI doesn't say anything about parameters for these, so we just pass argc, argv, and the environment. @@ -49,28 +51,20 @@ ENTRY(_start) mflr r31 /* the address of _start in r30, */ mr r30,r3 -/* &_dl_argc in 29, &_dl_argv in 27, and _dl_main_searchlist in 28. */ - lwz r28,_dl_main_searchlist@got(r31) +/* &_dl_argc in 29, &_dl_argv in 27, and _dl_loaded in 28. */ + lwz r28,_dl_loaded@got(r31) lwz r29,_dl_argc@got(r31) lwz r27,_dl_argv@got(r31) -0: -/* Set initfunc = _dl_init_next(_dl_main_searchlist) */ + +/* Call _dl_init (_dl_loaded, _dl_argc, _dl_argv, _dl_argv+_dl_argc+1) lwz r3,0(r28) - bl _dl_init_next@plt -/* If initfunc is NULL, we exit the loop; otherwise, */ - cmpwi r3,0 - beq 1f -/* call initfunc(_dl_argc, _dl_argv, _dl_argv+_dl_argc+1) */ - mtlr r3 - lwz r3,0(r29) - lwz r4,0(r27) - slwi r5,r3,2 - add r5,r4,r5 - addi r5,r5,4 - blrl -/* and loop. */ - b 0b -1: + lwz r4,0(r29) + lwz r5,0(r27) + slwi r6,r4,2 + add r6,r5,r6 + addi r6,r6,4 + bl _dl_init@local + /* Now, to conform to the ELF ABI, we have to: */ /* Pass argc (actually _dl_argc) in r3; */ lwz r3,0(r29) -- 2.7.4