This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I get this warning when compiling glibc: rtld.c:246: warning: passing arg 2 of `_dl_sysdep_start' from incompatible pointer type dl_main is declared as: dl_main (const ElfW(Phdr) *phdr, ElfW(Half) phent, ElfW(Addr) *user_entry) but _dl_sysdep_start has the following: extern ElfW(Addr) _dl_sysdep_start (void **start_argptr, void (*dl_main) (const ElfW(Phdr) *phdr, ElfW(Word) phnum, ElfW(Addr) *user_entry)); Note the difference between phent and phnum. Looking at the implementation of dl_main, I've come up with the appended patch. Ok to commit? Andreas 2000-12-31 Andreas Jaeger <aj@suse.de> * elf/rtld.c (dl_main): Fix prototype. ============================================================ Index: elf/rtld.c --- elf/rtld.c 2000/12/05 17:29:37 1.186 +++ elf/rtld.c 2000/12/31 17:25:02 @@ -119,7 +119,7 @@ static void dl_main (const ElfW(Phdr) *phdr, - ElfW(Half) phent, + ElfW(Word) phnum, ElfW(Addr) *user_entry); struct link_map _dl_rtld_map; @@ -371,7 +371,7 @@ static void dl_main (const ElfW(Phdr) *phdr, - ElfW(Half) phent, + ElfW(Word) phnum, ElfW(Addr) *user_entry) { const ElfW(Phdr) *ph; @@ -513,7 +513,7 @@ } phdr = _dl_loaded->l_phdr; - phent = _dl_loaded->l_phnum; + phnum = _dl_loaded->l_phnum; /* We overwrite here a pointer to a malloc()ed string. But since the malloc() implementation used at this point is the dummy implementations which has no real free() function it does not @@ -529,7 +529,7 @@ if (_dl_loaded == NULL) _dl_sysdep_fatal ("cannot allocate memory for link map\n", NULL); _dl_loaded->l_phdr = phdr; - _dl_loaded->l_phnum = phent; + _dl_loaded->l_phnum = phnum; _dl_loaded->l_entry = *user_entry; /* At this point we are in a bit of trouble. We would have to @@ -557,7 +557,7 @@ _dl_loaded->l_map_start = ~0; /* Scan the program header table for the dynamic section. */ - for (ph = phdr; ph < &phdr[phent]; ++ph) + for (ph = phdr; ph < &phdr[phnum]; ++ph) switch (ph->p_type) { case PT_PHDR: -- Andreas Jaeger SuSE Labs aj@suse.de private aj@arthur.inka.de http://www.suse.de/~aj
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |