From 61e0617ac34c4daaeb2f07f89a05c9f9353b8879 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 19 Feb 1999 00:00:05 +0000 Subject: Update. * elf/link.h (link_map): Add l_dev and l_ino. * elf/dl-load.c (_dl_map_object_from_fd): Test dev/ino of newly loaded shared object with all laoded objects. Initialize l_ino and l_dev in case it's new. * elf/rtld.c (dl_main): Explain situation is l_dev/l_ino with main object. * elf/Makefile: Compile and run new test. * elf/multiload.c: New file. --- elf/link.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'elf/link.h') diff --git a/elf/link.h b/elf/link.h index ecf0469b7a..4abcb49070 100644 --- a/elf/link.h +++ b/elf/link.h @@ -1,6 +1,6 @@ /* Data structure for communication from the run-time dynamic linker for loaded ELF shared objects. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999 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 @@ -24,6 +24,7 @@ #include #include #include +#include /* We use this macro to refer to ELF types independent of the native wordsize. `ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'. */ @@ -193,6 +194,11 @@ struct link_map /* A similar array, this time only with the local scope. This is used occasionally. */ struct r_scope_elem *l_local_scope[2]; + + /* This information is kept to check for sure whether a shared + object is the same as one already loaded. */ + dev_t l_dev; + ino_t l_ino; }; #endif /* link.h */ -- cgit v1.2.3