* sysdeps/unix/sysv/linux/mips/syscalls.list: Add __syscall_fcntl.

	* sysdeps/mips/dl-machine.h (RESOLVE_GOTSYM): Fix calls to
	dl_lookup.
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): Likewise.

	* sysdeps/unix/sysv/linux/mips/fcntl.c: New file.

	* stdlib/tst-bsearch.c (main): Add more test cases.
This commit is contained in:
Andreas Jaeger 2000-09-07 14:54:03 +00:00
parent c5914fa7cc
commit 9aee41dec0
5 changed files with 69 additions and 6 deletions

View File

@ -1,5 +1,15 @@
2000-09-07 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/mips/syscalls.list: Add __syscall_fcntl.
* sysdeps/mips/dl-machine.h (RESOLVE_GOTSYM): Fix calls to
dl_lookup.
(ELF_MACHINE_RUNTIME_TRAMPOLINE): Likewise.
* sysdeps/unix/sysv/linux/mips/fcntl.c: New file.
* stdlib/tst-bsearch.c (main): Add more test cases.
* locale/programs/ld-collate.c (handle_ellipsis): Fix typo.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
Reported by GOTO Masanori <gotom@debian.or.jp>.

View File

@ -56,11 +56,11 @@ main (void)
{
int cnt;
int result = 0;
struct entry key;
struct entry *res;
for (cnt = 0; cnt < narr; ++cnt)
{
struct entry key;
struct entry *res;
key.val = arr[cnt].val;
@ -77,6 +77,57 @@ main (void)
}
}
/* And some special tests that shouldn't find any entry. */
key.val = -1;
res = (struct entry *) bsearch (&key, arr, narr, sizeof (arr[0]), comp);
if (res != NULL)
{
puts ("found an entry that's not there");
result = 1;
}
key.val = 11;
res = (struct entry *) bsearch (&key, arr, narr, sizeof (arr[0]), comp);
if (res != NULL)
{
puts ("found an entry that's not there");
result = 1;
}
key.val = 11;
res = (struct entry *) bsearch (&key, arr, 0, sizeof (arr[0]), comp);
if (res != NULL)
{
puts ("found an entry that's not there");
result = 1;
}
/* Now the array contains only one element - no entry should be found. */
for (cnt = 0; cnt < narr; ++cnt)
{
key.val = arr[cnt].val;
res = (struct entry *) bsearch (&key, &arr[5], 1, sizeof (arr[0]), comp);
if (cnt == 5)
{
if (res == NULL)
{
printf ("entry %d not found\n", cnt);
result = 1;
}
else if (res != &arr[cnt])
{
puts ("wrong entry returned");
result = 1;
}
}
else if (res != NULL)
{
puts ("found an entry that's not there");
result = 1;
}
}
if (result == 0)
puts ("all OK");

View File

@ -262,14 +262,14 @@ __dl_runtime_resolve (ElfW(Word) sym_index, \
{ \
value = _dl_lookup_versioned_symbol(strtab + sym->st_name, l, \
&sym, l->l_scope, version,\
R_MIPS_REL32); \
R_MIPS_REL32, 0); \
break; \
} \
/* Fall through. */ \
} \
case 0: \
value = _dl_lookup_symbol (strtab + sym->st_name, l, &sym, \
l->l_scope, R_MIPS_REL32); \
l->l_scope, R_MIPS_REL32, 0); \
} \
\
/* Currently value contains the base load address of the object \
@ -495,14 +495,14 @@ elf_machine_got_rel (struct link_map *map, int lazy)
value = _dl_lookup_versioned_symbol(strtab + sym->st_name,\
map, \
&ref, scope, version, \
R_MIPS_REL32); \
R_MIPS_REL32, 0); \
break; \
} \
/* Fall through. */ \
} \
case 0: \
value = _dl_lookup_symbol (strtab + sym->st_name, map, &ref, \
scope, R_MIPS_REL32); \
scope, R_MIPS_REL32, 0); \
} \
\
(ref)? value + ref->st_value: 0; \

View File

@ -0,0 +1 @@
#include <sysdeps/unix/sysv/linux/i386/fcntl.c>

View File

@ -50,6 +50,7 @@ rt_sigqueueinfo - rt_sigqueueinfo i:iip __syscall_rt_sigqueueinfo
rt_sigsuspend - rt_sigsuspend i:pi __syscall_rt_sigsuspend
rt_sigtimedwait - rt_sigtimedwait i:pppi __syscall_rt_sigtimedwait
s_execve execve execve i:spp __syscall_execve
s_fcntl - fcntl i:iiF __syscall_fcntl
s_fstat64 fxstat64 fstat64 i:ip __syscall_fstat64
s_ftruncate64 ftruncate64 ftruncate64 i:iiii __syscall_ftruncate64
s_getcwd getcwd getcwd i:pi __syscall_getcwd