aboutsummaryrefslogtreecommitdiff
path: root/elf
AgeCommit message (Collapse)Author
2000-05-22(do_lookup_versioned): Replace reloc_type parameter with noexec and noplt ↵Ulrich Drepper
parameter. (do_lookup): Likewise.
2000-05-17Update.Andreas Jaeger
2000-05-17 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/dl-cache.h (_DL_CACHE_DEFAULT_ID): Only define if not yet defined. (_dl_cache_check_flags): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h: include_next dl-cache.h. 2000-05-17 Andreas Jaeger <aj@suse.de> * manual/creature.texi (Feature Test Macros): Remove paragraph since the description is wrong. Closes PR libc/1691, reported by Geoff Clare <gwc@unisoft.com>. 2000-05-17 Andreas Jaeger <aj@suse.de> * time/test_time.args: Removed. * time/Makefile (test_time-ARGS): Added contents here instead. * posix/tstgetopt.args: Removed. * posix/Makefile (tstgetopt-ARGS): Added contents here instead. * Rules: Allow arguments for test files to be specified in Makefile with testname-ARGS; remove rules with .args in it. * dirent/Makefile (opendir-tst1-ARGS): Use this for opendir-tst1, remove old bogus rule for opendir-tst1.args. * stdlib/test-canon.c: Rewrite to use test-skeleton.c. * stdlib/Makefile (test-canon-ARGS): New, supply argument to chdir into objdir. This allows a readonly sourcetree. Reported by lrgallardo@yahoo.com, closes PR libc/1421. 2000-05-16 Andreas Jaeger <aj@suse.de>, David Huggins-Daines <dhd@linuxcare.com> * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Set cache_data in case of only new cache format correctly. * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Align struct cache_file_new. * sysdeps/generic/dl-cache.h (ALIGN_CACHE): New macro to align struct cache_file_new. * elf/cache.c (save_cache): Fix str_offset if only new cache is present. * elf/cache.c (save_cache): Align struct new_file_cache. (print_cache): Likewise.
2000-05-152000-05-13 Jakub Jelinek <jakub@redhat.com>Andreas Jaeger
* elf/soinit.c (__libc_global_ctors): Move __pthread_initialize_minimal call out of HAVE_DWARF2_* defines. * resolv/resolv.h (__res_state): Added __attribute__((const)). (_res): If __RES_PTHREAD_INTERNAL is defined, declare it as variable, don't define it to __res_state call. 2000-05-13 Jakub Jelinek <jakub@redhat.com> * internals.h (__RES_PTHREAD_INTERNAL): Define. 2000-05-13 Jakub Jelinek <jakub@redhat.com> * internals.h (__RES_PTHREAD_INTERNAL): Define.
2000-05-10Update.Andreas Jaeger
* elf/dl-reloc.c (_dl_reloc_bad_type): Sync messages with plt argument. * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Handle R_SPARC_UA64. * sysdeps/unix/sysv/linux/sparc/sparc64/time.c: New file. 2000-05-10 Jakub Jelinek <jakub@redhat.com>
2000-05-10Update.Andreas Jaeger
at proper place. Compute the high nibble correctly.
2000-05-10Update.Andreas Jaeger
2000-05-10 Jakub Jelinek <jakub@redhat.com> * elf/dl-reloc.c (_dl_reloc_bad_type): Write type into the message at proper place.
2000-05-10Update.Andreas Jaeger
* elf/ldconfig.c: Include elf.h.
2000-05-10Update.Andreas Jaeger
2000-05-09 Jakub Jelinek <jakub@redhat.com> * elf/dl-sym.c (_dl_sym): Test ref not result for non-zero. (_dl_vsym): Likewise. Reported by Owen Taylor <otaylor@redhat.com>. * elf/dl-deps.c (_dl_map_object_deps): Zero terminate L->l_initfini always.
2000-05-08Update.Ulrich Drepper
2000-05-08 Jakub Jelinek <jakub@redhat.com> * elf/dl-fini.c (_dl_fini): Bump l_opencount of all objects so that they are not dlclose'd from underneath us.
2000-05-082000-05-08 Jakub Jelinek <jakub@redhat.com>Andreas Jaeger
* elf/dl-lookup.c (add_dependency): Reallocate l_reldeps in sizeof(struct link_map *) chunks, not in bytes.
2000-05-07Update.Ulrich Drepper
2000-05-06 Bruno Haible <haible@clisp.cons.org> * iconv/gconv_open.c (__gconv_open): If __gconv_find_transform returned != __GCONV_OK, there is nothing to clean up. 2000-05-06 Bruno Haible <haible@clisp.cons.org> * intl/tst-gettext.c (main): Disable possibly existing LC_CTYPE and OUTPUT_CHARSET environment variables. 2000-05-06 Andreas Jaeger <aj@suse.de> * sysdeps/generic/dl-cache.h (struct file_entry_new): New. (struct cache_file_new): New. (struct file_entry): New (moved from cache.c). (struct cache_file): New (moved from cache.c). * sysdeps/generic/dl-cache.c (SEARCH_CACHE): New macro, broken out from _dl_load_cache_lookup. (_dl_load_cache_lookup): Move search to SEARCH_CACHE macro, handle the different cache formats. New variable cache_new for new format. * elf/ldconfig.h: Change according to changes in cache.c and ldconfig.c; remove cache_libcmp; add opt_format. * elf/ldconfig.c: Include "dl-cache.h" and "dl-procinfo.h"; remove stuff that's defined in those headers. Add hwcap to struct lib_entry. (opt_format): New variable to select cache format. (options): Add format parameter. (is_hwcap): New function. (path_hwcap): New function. (parse_opt): Handle new format parameter. (search_dir): Handle hwcap, search also subdirectories with hwcap. * elf/cache.c (_GNU_SOURCE): Removed. Not needed anymore since ldconfig is part of glibc. Include dl-cache.h and remove stuff that's defined there. (struct cache_entry): Add new member hwcap. (print_entry): Print hwcap, cleanup a bit. (print_cache): Print new and old formats. (compare): Use _dl_cache_libcmp from dl-cache.h; handle hwcap. (save_cache): Save new and old formats. (add_to_cache): Handle hwcap. * sysdeps/generic/dl-cache.c (_dl_cache_libcmp): Moved from here... * sysdeps/generic/dl-cache.h (_dl_cache_libcmp): ...to here. * sysdeps/generic/dl-cache.c (LD_SO_CACHE): Moved from here... * sysdeps/generic/dl-cache.h (LD_SO_CACHE): ...to here. * sysdeps/generic/dl-cache.c (CACHEMAGIC): Moved from here... * sysdeps/generic/dl-cache.h (CACHEMAGIC): ...to here. 2000-05-05 Bruno Haible <haible@clisp.cons.org> * intl/dcigettext.c (alignof): New macro. (_nl_find_msg): Use it instead of __alignof__. Pass correct output buffer length to __gconv/iconv. If malloc (freemem_size) fails, set freemem_size to 0. 2000-05-05 Bruno Haible <haible@clisp.cons.org> * intl/dcigettext.c (dcigettext): Fix interpretation of tsearch return value.
2000-05-05Update.Ulrich Drepper
* elf/Makefile (distribute): Add dl-lookupcfg.h. * sysdeps/ia64/Dist: New file.
2000-05-05Update.Ulrich Drepper
2000-05-05 Ulrich Drepper <drepper@redhat.com> * elf/dl-load.c (_dl_map_object_from_fd): Little of computation of parameter to mprotect and for variable assignments. 2000-05-03 Jes Sorensen <jes@linuxcare.com> * sysdeps/generic/ldsodefs.h (LOOKUP_VALUE_ADDRESS): Check the validity of map before dereferencing it. * elf/dl-reloc.c (RESOLVE_MAP): Define. 2000-05-02 Jes Sorensen <jes@linuxcare.com> * elf/dl-runtime.c (fixup): Add the value returned in the symbol lookup to the arguments to elf_machine_fixup_plt(). * sysdeps/ia64/dl-machine.h (elf_machine_fixup_plt): Add Link_map of the symbol being resolved to input argument list and make the function return the pointer to the reloc. * sysdeps/alpha/dl-machine.h (elf_machine_fixup_plt): Change return valuie to lookup_t and return the value. * sysdeps/arm/dl-machine.h (elf_machine_fixup_plt): Likewise. * sysdeps/generic/dl-machine.h (elf_machine_fixup_plt): Likewise. * sysdeps/i386/dl-machine.h (elf_machine_fixup_plt): Likewise. * sysdeps/m68k/dl-machine.h (elf_machine_fixup_plt): Likewise. * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_fixup_plt): Likewise. * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_fixup_plt): Likewise. * sysdeps/powerpc/dl-machine.h (elf_machine_fixup_plt): Likewise. Make it an inline function returning value after calling __elf_machine_fixup_plt(). * elf/dl-sym.c (_dl_vsym): Use DL_SYMBOL_ADDRESS() to obtain the symbol address. * elf/dl-symbol.c (_dl_symbol_value): Use LOOKUP_VALUE_ADDRESS to obtain the symbol address. * sysdeps/generic/ldsodefs.h: Add generic DL_SYMBOL_ADDRESS() macro depending on the definition of ELF_FUNCTION_PTR_IS_SPECIAL. * sysdeps/ia64/dl-machine.h: Add DL_SYMBOL_ADDRESS() macro calling _dl_symbol_address() - this way DL_SYMBOL_ADDRESS() turns into an inline on non ia64. 2000-04-28 Jes Sorensen <jes@linuxcare.com> * elf/dl-runtime.c (fixup): Use the portable macros to get the symbol address of an object. * elf/dl-runtime.c (fixup-profile): Use the portable macros to get the symbol address of an object. * elf/dl-libc.c (struct do_dlsym_args): Change loadbase to a lookup_t. * elf/dl-lookup.c (_dl_lookup_symbol): Likewise. (_dl_lookup_symbol_skip): Likewise. (_dl_lookup_versioned_symbol): Likewise. (_dl_lookup_versioned_symbol_skip): Likewise. 2000-04-27 Jes Sorensen <jes@linuxcare.com> * elf/rtld.c (_dl_start): Get the function pointer return address via _dl_start_address for architectures that need a function pointer descriptor rather than just a pointer (ia64). * sysdeps/generic/dl-lookupcfg.h: New file. * sysdeps/ia64/dl-lookupcfg.h: New file. * sysdeps/ia64/dl-machine.h: New file. * sysdeps/ia64/dl-symaddr.c: New file. * sysdeps/ia64/dl-fptr.c: New file. * elf/elf.h: Add IA-64 specific definitions.
2000-05-04(dl_open_worker): Use l_map_start and l_map_end to test for pointer in range ↵Ulrich Drepper
of DSO address space.
2000-04-28Update.Ulrich Drepper
* wcsmbs/wcrtomb.c (__wcrtomb): Set end of buffer correctly if s == NULL. Little optimization. * elf/dl-init.c (_dl_init): Correct typo (DT_PREINIT_ARRAY not DT_PREINIT_ARRAYSZ). Reported by Jes Sorensen <Jes.Sorensen@cern.ch>.
2000-04-27Update.Ulrich Drepper
2000-04-27 Ulrich Drepper <drepper@redhat.com> * elf/soinit.c (__libc_global_ctors): Call __pthread_initialize_minimal if this function is available. * sysdeps/i386/i486/atomicity.h (exchange_and_add): Use uint32_t for all values. <haible@clisp.cons.org>.
2000-04-25Update.Ulrich Drepper
2000-04-25 Ulrich Drepper <drepper@redhat.com> * elf/dl-profile.c (_dl_mcount): Try to be thread-safe while not setting the state to GMON_PROF_BUSY.
2000-04-25Update.Ulrich Drepper
* elf/dl-profile.c (_dl_start_profile): define all variables which do not have to be global as local variables.
2000-04-24Update.Ulrich Drepper
* elf/dl-reloc.c (_dl_relocate_object): Add one more __builtin_expect saying that we don't normally expect to profile.
2000-04-21Update.Ulrich Drepper
2000-04-19 Jakub Jelinek <jakub@redhat.com> * locale/programs/ld-ctype.c (ctype_output): Set size of the idx field to nelems * sizeof (uint32_t). * locale/programs/ld-address.c (address_output): Align word fields properly. * locale/programs/ld-monetary.c (monetary_output): Likewise. Don't restart idx pointers to idx end at the duo_int_curr_symbol field. Avoid giving arbitrary garbage in the crncystr field. Use sizeof(uint32_t) instead of 4 for len in uno_valid_from, uno_valid_to, duo_valid_from, duo_valid_to and conversion_rate fields. * locale/programs/ld-numeric.c (numeric_output): Likewise. Don't restart idx pointers to idx end at the decimal_point_wc field. * locale/programs/ld-time.c (time_output): week_1stday should be word, not byte. Align it properly. 2000-04-19 H.J. Lu <hjl@gnu.org> * csu/gmon-start.c (_start): Declared as "extern void". (etext): Likewise. 2000-04-18 Andreas Jaeger <aj@suse.de> * manual/install.texi (Running make install): Don't mention utmpd anymore. 2000-04-18 Andreas Jaeger <aj@suse.de> * linuxthreads/Versions: Use ld instead of ld.so. * elf/Makefile (ld-map): Use ld.map. * Versions.def: Use ld instead of ld.so. * elf/Versions: Likewise. * sysdeps/mach/hurd/Versions: Likewise.
2000-04-212000-04-20 Andreas Jaeger <aj@suse.de>Andreas Jaeger
* elf/rtld.c (print_statistics): Move ifndef further up. (_dl_start_final): Added HP_TIMINIG_NONAVAIL to avoid warnings. (dl_main): Likewise. 2000-04-20 Andreas Jaeger <aj@suse.de> * elf/rtld.c (print_statistics): Move ifndef further up. (_dl_start_final): Added HP_TIMINIG_NONAVAIL to avoid warnings. (dl_main): Likewise.
2000-04-182000-04-18 Andreas Jaeger <aj@suse.de>Andreas Jaeger
* elf/rtld.c (process_dl_debug): Remove obsolete comment. * elf/rtld.c (process_dl_debug): Remove obsolete comment.
2000-04-18Update.Ulrich Drepper
* elf/rtld.c: Display statitics option also if hp timing is not available.
2000-04-182000-04-18 Andreas Jaeger <aj@suse.de>Andreas Jaeger
* elf/rtld.c (print_statistics): Added HP_TIMINIG_NONAVAIL where needed. 2000-04-18 Andreas Jaeger <aj@suse.de> * elf/rtld.c (print_statistics): Added HP_TIMINIG_NONAVAIL where needed.
2000-04-18Update.Ulrich Drepper
* sysdeps/generic/hp-timing.h (HP_TIMING_NONAVAIL): Define to signal timing is not really implemented. 2000-04-17 Andreas Jaeger <aj@suse.de> * elf/rtld.c (process_dl_debug): Mention statistics in help message. 2000-04-17 Jakub Jelinek <jakub@redhat.com> * Makefile (install): Use slibdir and libdir instead of inst_slibdir and inst_libdir. 2000-04-17 Ulrich Drepper <drepper@redhat.com>
2000-04-17Update.Ulrich Drepper
* elf/dl-reloc.c (_dl_relocate_object): Add more __builtin_expect. * elf/dl-lookup.c: Likewise. * elf/dl-init.c (_dl_init): Likewise. * elf/dl-fini.c (_dl_fini): Likewise. * elf/dl-deps.c (_dl_map_object_deps): Likewise. * elf/dl-close.c (_dl_close): Likewise. * elf/rtld.c (_dl_start_final): Likewise.
2000-04-17Update.Ulrich Drepper
* elf/dl-reloc.c (_dl_relocat_object): Add more __builtin_expect. * elf/dl-lookup.c: Add more __builtin_expect. * elf/dl-init.c (_dl_init): Add more __builtin_expect. * elf/dl-fini.c (_dl_fini): Add more __builtin_expect. * elf/dl-deps.c (_dl_map_object_deps): Add more __builtin_expect. * elf/dl-close.c (_dl_close): Add more __builtin_expect. * elf/rtld.c (_dl_start_final): Add more __builtin_expect.
2000-04-17Update.Ulrich Drepper
2000-04-17 Ulrich Drepper <drepper@redhat.com> * elf/dl-lookup.c (add_dependency): Correct __builtin_expect use.
2000-04-15Update.Ulrich Drepper
* elf/dl-version.c (_dl_check_map_versions): New argument trace_mode. Before testing versions check that we actually loaded the object and whether we are in trace mode. If not loaded during tracing don't test versions in this object. (_dl_check_all_versions): Take new parameter and pass to _dl_check_map_versions. * sysdeps/generic/ldsodefs.h: Update prototypes for _dl_check_all_versions and _dl_check_map_versions. * elf/rtld.c (struct version_check_args): Add dotrace. (version_check_doit): Pass args->dotrace to _dl_check_all_versions. (dl_main): Pass info about trace mode to version_check_doit. * elf/dl-open.c (dl_open_worker): Pass zero as new argument to _dl_check_all_versions. * manual/users.texi (XPG Functions): Document utmpxname, getutmp, and getutmpx. Patch by Bryan Henderson <bryanh@giraffe-data.com>.
2000-04-11Update.Ulrich Drepper
2000-04-11 Ulrich Drepper <drepper@redhat.com> * posix/globtest.sh: Fix last change. 2000-04-10 Philip Blundell <philb@gnu.org> * sysdeps/unix/sysv/linux/bits/in.h (IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP): New names for IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP. * sysdeps/generic/bits/in.h (IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP): Likewise. 2000-04-11 Ulrich Drepper <drepper@redhat.com> * elf/readlib (process_file): Close streams in case of an error. 2000-04-09 Andreas Jaeger <aj@suse.de> * elf/readlib.c (process_file): Check if file is big enough to contain aout and ELF headers. Reported by Reinhard Moosauer <RMoosauer@steinecker.com>. 2000-04-10 Jes Sorensen <Jes.Sorensen@cern.ch> * elf/dl-fini.c: Include alloca.h to get proper prototype for alloca(). 2000-04-11 Ulrich Drepper <drepper@redhat.com> * test-skeleton.c (main): If STDOUT_UNBUFFERED is defined, make stdout stream unbuffered. * rt/Makefile (tests): Add tst-clock. Add rules to build tst-clock. * rt/tst-clock.c: New file. * sysdeps/unix/i386/i586/clock_getres.c: Correct expression to decide about initialization of nsec. * sysdeps/unix/i386/i586/clock_gettime.c: Correct expression to decide about initialization of freq. Set retval to zero if successful. * sysdeps/unix/sysv/linux/i386/get_clockfreq.c: Cache result.
2000-04-10Update.Ulrich Drepper
2000-04-10 Thorsten Kukuk <kukuk@suse.de> * elf/cache.c (save_cache): Make sure /etc/ld.so.cache is mode 644.
2000-04-04Update.Ulrich Drepper
* elf/dl-runtime.c (fixup): Correct handling of symbols marked STV_HIDDEN and STV_INTERNAL during lookup. (profile_fixup): Likewise. * elf/dl-reloc.c (RESOLVE): Likewise.
2000-04-04Update.Ulrich Drepper
* elf/cache.c (print_entry): Only look at the type field when printing the type. 2000-04-04 Andreas Schwab <schwab@suse.de> * iconvdata/big5.c (BODY): Fix typo. 2000-04-04 Andreas Schwab <schwab@suse.de>
2000-04-04Update.Ulrich Drepper
2000-04-01 Andreas Jaeger <aj@suse.de> * sysdeps/mach/hurd/mips/init-first.c: Use SHARED instead of PIC. * sysdeps/unix/mips/sysdep.h: Use __PIC__ instead of PIC. * sysdeps/mach/mips/thread_state.h: Likewise. * sysdeps/generic/fclrexcpt.c: Use shlib-compat macros. * sysdeps/generic/fegetenv.c: Likewise. * sysdeps/generic/fesetenv.c: Likewise. * sysdeps/generic/feupdateenv.c: Likewise. * sysdeps/generic/fraiseexcpt.c: Likewise. * sysdeps/generic/fsetexcptflg.c: Likewise. * sysdeps/unix/sysv/linux/alpha/glob.c: Likewise. * sysdeps/unix/sysv/linux/arm/errlist.c: Likewise. * sysdeps/unix/sysv/linux/errlist.c: Likewise. * sysdeps/unix/sysv/linux/i386/chown.c: Likewise. 2000-04-02 H.J. Lu <hjl@gnu.org> * elf/ldconfig.h (FLAG_IA64_LIB64): New. Defined.
2000-04-03Update.Ulrich Drepper
* elf/dl-load.c (_dl_dst_substitute): Pretty print comment. (add_name_to_object): Add cast in malloc call. (fillin_rpath): Optimize loop to initialize ->status a bit.
2000-04-03* sysdeps/mach/hurd/i386/init-first.c (init): Don't set __environRoland McGrath
here, before we might move the stack. (posixland_init): Set __libc_argc, __libc_argc, and __environ here. (init1): And not here. * sysdeps/i386/dl-machine.h (RTLD_START): Fix code broken by last change, to restore argc value in call-clobbered register after RTLD_START_SPECIAL_INIT, which will contain a call. * elf/dl-deps.c (_dl_map_object_deps): Fix size calculations for allocating and initializing L->l_initfini. * resolv/Makefile (headers): Add bits/netdb.h, so it gets installed.
2000-04-03Update.Ulrich Drepper
2000-04-03 Ulrich Drepper <drepper@redhat.com> * elf/dl-load.c (_dl_init_paths): Use (void*) -1 to signal non-existing RUNPATH, RPATH, and LD_LIBRARY_PATH. (open_path): Change type of fourth parameter. Make pointer to array of pointers. Create variable dirs with original type. Track whether any directory for the object exists and if not, change *DIRSP to (void*) -1 to signal there is no such search path. (_dl_map_object): Change all calls of open_path. Rewrite decompose_rpath calls.
2000-04-03Update.Ulrich Drepper
2000-04-02 Ulrich Drepper <drepper@redhat.com> * elf/dl-fini.c (_dl_fini): Increment j counter after swapping in element at this position. * elf/Versions [ld.so] (GLIBC_2.2): Export _dl_load_lock. * elf/link.h (struct link_map): Add l_reldepsmax, l_reldepsact, and l_reldeps elements. * elf/dl-lookup.c (add_dependency): New function. (_dl_lookup_symbol): Use it whenever symbol was found in a global, dynamically loaded object. (_dl_lookup_symbol_skip): Likewise. (_dl_lookup_versioned_symbol): Likewise. (_dl_lookup_versioned_symbol_skip): Likewise. * elf/dl-open.c: Don't define _dl_load_lock here... * elf/rtld.c: ...but here... * elf/dl-support.c: ...and here. * elf/dl-close.c (_dl_close): Close also dependent objects introduce through relocation. * elf/dl-fini.c (_dl_fini): Also take dependencies introduced through relocations. * dlfcn/Makefile (glrefmain.out): Test is not expected to fail anymore. * dlfcn/glrefmain.c: Add one more debug message. * Makeconfig (preprocess-versions): Don't add $(CPPFLAGS) to compiler command line. * Makerules (sysd-versions): Use ( ) instead of { }. * elf/dl-load.c: Use __builtin_expect to signal that compiler should optimize for the non-debugging case. * elf/dl-lookup.c: Likewise. * sysdeps/generic/libc-start.c: Likewise.
2000-04-02* sysdeps/mach/hurd/i386/init-first.c: Replace PIC #ifdefs with SHARED.Roland McGrath
(init1): Don't initialize __environ here, since init already does it. (first_init): New function, broken out of _init. (_hurd_stack_setup): Use it. [SHARED] (_dl_init_first): New function, renamed from old _init. (init1) [SHARED]: Don't call posixland_init here. (posixland_init): Take ENVP arg, so signature is usual for initializer. [SHARED] (_init): Define as alias for posixland_init. [! SHARED] (__libc_first_init): Define as alias for posixland_init. * sysdeps/i386/dl-machine.h (RTLD_START): Insert the macro RTLD_START_SPECIAL_INIT before calling initializers. (RTLD_START_SPECIAL_INIT): Define to empty if undefined. * sysdeps/mach/hurd/i386/dl-machine.h: New file. * sysdeps/mach/hurd/dl-sysdep.c (_dl_init_first): New weak function. * elf/Versions ({libc,ld.so}: GLIBC_2.2): Add _dl_init_first.
2000-04-02Update.Ulrich Drepper
* elf/dl-runtime.c (ElfW): Fxi typo in comment.
2000-03-31Update.Ulrich Drepper
2000-03-31 Ulrich Drepper <drepper@redhat.com> * elf/Makefile (distribute): Add dep1.c, dep2.c, dep3.c, and dep4.c. (tests): Add order. (module-names): Add dep1, dep2, dep3, and dep4. Add dependencies for dep* modules and order. Define rule for order.out which checks the result. * elf/dep1.c: New file. * elf/dep2.c: New file. * elf/dep3.c: New file. * elf/dep4.c: New file. * elf/order.c: New file. * elf/dl-init.c: Fix type in comment.
2000-03-31(distribute): Add dep1.c, dep2.c, dep3.c, and dep4.c. (tests): Add order. ↵Ulrich Drepper
(module-names): Add dep1, dep2, dep3, and dep4. Add dependencies for dep* modules and order. Define rule for order.out which checks the result.
2000-03-31Update.Ulrich Drepper
2000-03-31 Ulrich Drepper <drepper@redhat.com> * sysdeps/i386/dl-machine.h (RTLD_START): Optimize for i686. * elf/dl-support.c: Define _dl_starting_up. * elf/dl-init.c (_dl_init): Clear _dl_starting_up at end of function. * misc/sys/cdefs.h: Don't allow gcc in traditional mode to be used. elements.
2000-03-31Update.Ulrich Drepper
* elf/dl-init.c (_dl_init): Clear _dl_starting_up at end of with size of dynamic sectionfunction. * sysdeps/i386/dl-machine.h: Remove code to clear _dl_starting_up. * misc/sys/cdefs.h: Don't allow gcc in traditional mode to be with size of dynamic sectionused.
2000-03-31Update.Ulrich Drepper
* elf/Makefile (dl-routines): Remove preinit. * elf/Versions: Remove _dl_preinit. * elf/dl-preinit.c: Removed. Move content into... * elf/dl-init.c: ...here.
2000-03-31Update.Ulrich Drepper
2000-03-29 Jes Sorensen <jes@pcatls01.cern.ch> * malloc/malloc.c: Declare bit flags UL so that they will not default to int size when being inverted. 2000-03-29 Andreas Jaeger <aj@suse.de> * sysdeps/unix/sysv/linux/arm/errlist.c: Use shlib-compat macros. * sysdeps/unix/sysv/linux/arm/siglist.c: Likewise. 2000-03-29 Andreas Jaeger <aj@suse.de>, Ralf Baechle <ralf@uni-koblenz.de> * Makeconfig: Introduce new variable SHARED to mark code used in the shared library. * elf/dl-close.c: Use it instead of PIC. * elf/dl-load.c: Likewise. * elf/dl-open.c: Likewise. * hurd/geteuids.c: Likewise. * include/libc-symbols.h: Likewise. * include/shlib-compat.h: Likewise. * libio/freopen.c: Likewise. * linuxthreads/cancel.c: Likewise. * linuxthreads/pthread.c: Likewise. * linuxthreads/wrapsyscall.c: Likewise. * nss/nsswitch.c: Likewise. * stdio-common/vfprintf.c: Likewise. * sysdeps/arm/init-first.c: Likewise. * sysdeps/i386/init-first.c: Likewise * sysdeps/generic/init-first.c: Likewise. * sysdeps/generic/libc-start.c: Likewise. * sysdeps/mips/init-first.c: Likewise. * sysdeps/powerpc/elf/libc-start.c: Likewise. * sysdeps/unix/sysv/linux/init-first.c: Likewise. * sysdeps/unix/sysv/linux/arm/siglist.c: Likewise. * sysdeps/unix/sysv/linux/arm/errlist.c: Likewise. * sysdeps/unix/sysv/linux/i386/chown.c: Likewise. * sysdeps/mips/machine-gmon.h (asm): Use __PIC__ as check.
2000-03-30Update.Ulrich Drepper
* elf/dl-init.c (_dl_init): We don't need to call constructors recursively. Fold _dl_init_rec in _dl_init and optimize a bit more.
2000-03-30Update.Ulrich Drepper
2000-03-30 Ulrich Drepper <drepper@redhat.com> Implement dynamic determination of constructor/destructor order in the dynamic linker. * elf/Versions [ld.so] (GLIBC_2.0): Remove _dl_init_next. (GLIBC_2.2): Add _dl_init. * elf/dl-close.c: Also call all destructors in FINI_ARRAY. r_duplist is not anymore allocated separately. l_initfini is and therefore free it if necessary. * elf/dl-deps.c: If a searchlist has to be allocated, put all in one malloc block. Otherwise allocate l_initfini list only. Put dependencies for the object in l_initfini list. Sort dependencies for the object to be loaded topologically. * elf/dl-fini.c: Before running the destructors sort the topologically. * elf/dl-init.c (_dl_init): Renamed from _dl_init_next. Rewrite to call constructors instead of iterating over the pointers. Get list of objects for which to run constructors from l_initfini element. Accept argc, argv, and env as parameters and pass them to the constructors. * elf/ld-load.c (_dl_map_object_from_fd): Initialize l_ldnum member with size of dynamic section. * elf/dl-open.c (dl_open_worker): Only call _dl_init instead of _dl_init_next and calling constructors ourself. * elf/dl-preinit.c (_dl_preinit): Renamed from _dl_preinit_next. Take argc, argv, and env as parameters and pass them to the constructors. Rewrite to call all constructors and not iterate over the pointers. * elf/dynamic-link.h: Don't relocate DT_FINI_ARRAY entry. Don't precompute l_initcount and l_preinitcount. * elf/link.h (struct link_map): Add l_ldnum member. Make l_phdr_allocated part of the bitfield. Remove l_runcount, l_initcount, and l_preinitcount. Add l_initfini. * sysdeps/generic/ldsodefs.h: Replace _dl_init_next prototype with one for _dl_init. * sysdeps/i386/dl-machine (RTLD_START): Rewrite to match new init function interface. * sysdeps/unix/sysv/linux/init-first.h: Removed. * sysdeps/unix/sysv/linux/Dist: Delete file here as well. * sysdeps/unix/sysv/linux/init-first.c [PIC]: Don't use SYSDEP_CALL_INIT. Make _init a strong alias of init. The calling conventions now match. * sysdeps/generic/libc-start.c: Calling __libc_init_first has no effect for shared objects. Don't emit message and call only for static library.
2000-03-23Correct path for ldsodefs.h file.Ulrich Drepper
2000-03-23Update.Ulrich Drepper
2000-03-23 Andreas Jaeger <aj@suse.de> * elf/dl-addr.c: Adjust include paths for ldsodefs location change. * elf/dl-debug.c: Likewise. * elf/dl-deps.c: Likewise. * elf/dl-error.c: Likewise. * elf/dl-fini.c: Likewise. * elf/dl-init.c: Likewise. * elf/dl-load.c: Likewise. * elf/dl-lookup.c: Likewise. * elf/dl-minimal.c: Likewise. * elf/dl-object.c: Likewise. * elf/dl-open.c: Likewise. * elf/dl-preinit.c: Likewise. * elf/dl-profile.c: Likewise. * elf/dl-profstub.c: Likewise. * elf/dl-reloc.c: Likewise. * elf/dl-runtime.c: Likewise. * elf/dl-support.c: Likewise. * elf/dl-symbol.c: Likewise. * elf/dl-version.c: Likewise. * elf/rtld.c: Likewise. * elf/sprof.c: Likewise. * sysdeps/generic/dl-cache.c: Likewise. * sysdeps/generic/dl-origin.c: Likewise. * sysdeps/generic/dl-sysdep.c: Likewise. * sysdeps/generic/elf/backtracesyms.c: Likewise. * sysdeps/generic/elf/backtracesymsfd.c: Likewise. * sysdeps/generic/libc-start.c: Likewise. * sysdeps/mach/hurd/dl-sysdep.c: Likewise. * sysdeps/powerpc/dl-machine.c: Likewise. * sysdeps/powerpc/elf/libc-start.c: Likewise. * sysdeps/sparc/sparc32/dl-machine.h: Likewise. * sysdeps/sparc/sparc64/dl-machine.h: Likewise. * sysdeps/unix/sysv/linux/dl-origin.c: Likewise. * elf/ldsodefs.h: Move file to ... * sysdeps/generic/ldsodefs.h: ... here. * sysdeps/generic/ldsodefs.h: Add definition for D_PTR. * sysdeps/mips/elf/ldsodefs.h: New file. * elf/dl-version.c (match_symbol): Use D_PTR to access relocated entries in l_info. (_dl_check_map_versions): Likewise. * elf/dl-reloc.c (_dl_relocate_object): Likewise. * elf/dl-load.c (_dl_init_paths): Likewise. (_dl_map_object): Likewise. * elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Likewise. (elf_get_dynamic_info): Likewise. * elf/do-lookup.h (FCT): Likewise. * elf/do-rel.h (elf_dynamic_do_rel): Likewise. * elf/dl-deps.c (_dl_map_object_deps): Likewise. * elf/dl-addr.c (_dl_addr): Likewise. * elf/dl-runtime.c (profile_fixup): Likewise. (fixup): Likewise. * elf/dl-init.c (_dl_init_next): Likewise. * sysdeps/generic/dl-machine.h (elf_machine_runtime_setup): Likewise. * sysdeps/unix/sysv/linux/i386/dl-librecon.h (DISTINGUISH_LIB_VERSIONS): Likewise. * sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Likewise. (elf_machine_rel): Likewise. * elf/dynamic-link.h (elf_get_dynamic_info): Only change l_info for writable dynamic section.