* 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.
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>.
{
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;
}
}
+ /* 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");
{ \
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 \
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; \
--- /dev/null
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
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