aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rw-r--r--elf/dl-deps.c6
-rw-r--r--posix/tst-getaddrinfo.c4
-rw-r--r--sysdeps/posix/getaddrinfo.c5
-rw-r--r--sysdeps/sh/dl-machine.h24
5 files changed, 45 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index fe85360..9649227 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2001-05-23 kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * sysdeps/sh/dl-machine.h (_dl_runtime_resolve): Handle newer PLT.
+ (_dl_runtime_profile): Likewise..
+
+2001-05-23 Thorsten Kukuk <kukuk@suse.de>
+
+ * sysdeps/posix/getaddrinfo.c: Support for AF_UNIX commented out.
+ * posix/tst-getaddrinfo.c: Remove AF_UNIX test.
+
+2001-05-19 H.J. Lu <hjl@gnu.org>
+
+ * elf/dl-deps.c (_dl_map_object_deps): Pass objname and
+ errstring of the failed DSO to _dl_signal_error ().
+
2001-05-23 Ulrich Drepper <drepper@redhat.com>
* iconvdata/gconv-modules: Add more aliases to enable use in
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 8b9e132..9bdaa46 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -141,6 +141,7 @@ _dl_map_object_deps (struct link_map *map,
int errno_saved;
int errno_reason;
const char *errstring;
+ const char *objname;
auto inline void preload (struct link_map *map);
@@ -221,7 +222,6 @@ _dl_map_object_deps (struct link_map *map,
{
/* Map in the needed object. */
struct link_map *dep;
- const char *objname;
/* Recognize DSTs. */
name = expand_dst (l, strtab + d->d_un.d_val, 0);
@@ -263,7 +263,6 @@ _dl_map_object_deps (struct link_map *map,
}
else if (d->d_tag == DT_AUXILIARY || d->d_tag == DT_FILTER)
{
- const char *objname;
struct list *newp;
/* Recognize DSTs. */
@@ -289,7 +288,6 @@ _dl_map_object_deps (struct link_map *map,
assert (errstring != NULL);
if (errstring != _dl_out_of_memory)
free ((char *) errstring);
- errstring = NULL;
/* Simply ignore this error and continue the work. */
continue;
@@ -541,5 +539,5 @@ out:
if (errno_reason)
_dl_signal_error (errno_reason == -1 ? 0 : errno_reason,
- errstring ?: "", N_("cannot load shared object file"));
+ objname, errstring);
}
diff --git a/posix/tst-getaddrinfo.c b/posix/tst-getaddrinfo.c
index 84929f5..a6197f2 100644
--- a/posix/tst-getaddrinfo.c
+++ b/posix/tst-getaddrinfo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001 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
@@ -26,7 +26,7 @@
static int
do_test (void)
{
- const int family[3] = { AF_INET, AF_INET6, AF_UNIX };
+ const int family[2] = { AF_INET, AF_INET6 };
int result = 0;
int gaierr, index;
struct addrinfo hints, *ai, *aitop;
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 5239b62..1c5ed21 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -125,6 +125,8 @@ static const struct addrinfo default_hints =
#endif
+#if 0
+/* Using Unix sockets this way is a security risk. */
static int
gaih_local (const char *name, const struct gaih_service *service,
const struct addrinfo *req, struct addrinfo **pai)
@@ -232,6 +234,7 @@ gaih_local (const char *name, const struct gaih_service *service,
(*pai)->ai_canonname = NULL;
return 0;
}
+#endif /* 0 */
static int
gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
@@ -690,7 +693,9 @@ static struct gaih gaih[] =
{
{ PF_INET6, gaih_inet },
{ PF_INET, gaih_inet },
+#if 0
{ PF_LOCAL, gaih_local },
+#endif
{ PF_UNSPEC, NULL }
};
diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
index 6a4aecf..aaaf994 100644
--- a/sysdeps/sh/dl-machine.h
+++ b/sysdeps/sh/dl-machine.h
@@ -165,6 +165,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
.type _dl_runtime_resolve, @function
.align 5
_dl_runtime_resolve:
+ mov.l r2,@-r15
mov.l r3,@-r15
mov.l r4,@-r15
mov.l r5,@-r15
@@ -175,6 +176,10 @@ _dl_runtime_resolve:
mov.l r3,@-r15
" FGR_SAVE "
sts.l pr,@-r15
+ tst r0,r0
+ bt 1f
+ mov r0,r2
+1:
mov r0,r4 ! PLT type
mov r2,r5 ! link map address
" FUN_ADDR "
@@ -189,8 +194,9 @@ _dl_runtime_resolve:
mov.l @r15+,r6
mov.l @r15+,r5
mov.l @r15+,r4
+ mov.l @r15+,r3
jmp @r0 ! Jump to function address.
- mov.l @r15+,r3
+ mov.l @r15+,r2
.align 2
3:
.long " GOTJMP (fixup) "
@@ -200,6 +206,7 @@ _dl_runtime_resolve:
.type _dl_runtime_profile, @function
.align 5
_dl_runtime_profile:
+ mov.l r2,@-r15
mov.l r3,@-r15
mov.l r4,@-r15
mov.l r5,@-r15
@@ -210,6 +217,10 @@ _dl_runtime_profile:
mov.l r3,@-r15
" FGR_SAVE "
sts.l pr,@-r15
+ tst r0,r0
+ bt 1f
+ mov r0,r2
+1:
mov r0,r4 ! PLT type
mov r2,r5 ! link map address
sts pr,r7 ! return address
@@ -225,8 +236,9 @@ _dl_runtime_profile:
mov.l @r15+,r6
mov.l @r15+,r5
mov.l @r15+,r4
+ mov.l @r15+,r3
jmp @r0 ! Jump to function address.
- mov.l @r15+,r3
+ mov.l @r15+,r2
.align 2
3:
.long " GOTJMP (profile_fixup) "
@@ -243,6 +255,7 @@ _dl_runtime_profile:
.align 5
_dl_runtime_resolve:
_dl_runtime_profile:
+ mov.l r2,@-r15
mov.l r3,@-r15
mov.l r4,@-r15
mov.l r5,@-r15
@@ -253,6 +266,10 @@ _dl_runtime_profile:
mov.l r3,@-r15
" FGR_SAVE "
sts.l pr,@-r15
+ tst r0,r0
+ bt 1f
+ mov r0,r2
+1:
mov r0,r4 ! PLT type
mov r2,r5 ! link map address
sts pr,r7 ! return address
@@ -268,8 +285,9 @@ _dl_runtime_profile:
mov.l @r15+,r6
mov.l @r15+,r5
mov.l @r15+,r4
+ mov.l @r15+,r3
jmp @r0 ! Jump to function address.
- mov.l @r15+,r3
+ mov.l @r15+,r2
.align 2
3:
.long " GOTJMP (fixup) "