diff options
Diffstat (limited to 'libc/sysdeps/linux/e1')
| -rw-r--r-- | libc/sysdeps/linux/e1/bits/uClibc_arch_features.h | 42 | ||||
| -rw-r--r-- | libc/sysdeps/linux/e1/longjmp.c | 13 | ||||
| -rw-r--r-- | libc/sysdeps/linux/e1/setjmp.c | 4 | ||||
| -rw-r--r-- | libc/sysdeps/linux/e1/vfork.c | 12 |
4 files changed, 65 insertions, 6 deletions
diff --git a/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h b/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h new file mode 100644 index 000000000..ff0e20fad --- /dev/null +++ b/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h @@ -0,0 +1,42 @@ +/* + * Track misc arch-specific features that aren't config options + */ + +#ifndef _BITS_UCLIBC_ARCH_FEATURES_H +#define _BITS_UCLIBC_ARCH_FEATURES_H + +/* instruction used when calling abort() to kill yourself */ +/*#define __UCLIBC_ABORT_INSTRUCTION__ "asm instruction"*/ +#undef __UCLIBC_ABORT_INSTRUCTION__ + +/* can your target use syscall6() for mmap ? */ +#undef __UCLIBC_MMAP_HAS_6_ARGS__ + +/* does your target use syscall4() for truncate64 ? (32bit arches only) */ +#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__ + +/* does your target have a broken create_module() ? */ +#undef __UCLIBC_BROKEN_CREATE_MODULE__ + +/* does your target prefix all symbols with an _ ? */ +#define __UCLIBC_NO_UNDERSCORES__ + +/* does your target have an asm .set ? */ +#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__ + +/* define if target doesn't like .global */ +#undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__ + +/* define if target supports .weak */ +#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__ + +/* define if target supports .weakext */ +#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__ + +/* needed probably only for ppc64 */ +#undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__ + +/* define if target supports IEEE signed zero floats */ +#define __UCLIBC_HAVE_SIGNED_ZERO__ + +#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */ diff --git a/libc/sysdeps/linux/e1/longjmp.c b/libc/sysdeps/linux/e1/longjmp.c index 89d6b76d9..e628bd7e0 100644 --- a/libc/sysdeps/linux/e1/longjmp.c +++ b/libc/sysdeps/linux/e1/longjmp.c @@ -1,6 +1,9 @@ -/* This file is lisenced under LGPL - * Copyright (C) 2002-2003, George Thanos <george.thanos@gdt.gr> - * Yannis Mitsos <yannis.mitsos@gdt.gr> +/* + * Copyright (C) 2002-2003, George Thanos <george.thanos@gdt.gr> + * Yannis Mitsos <yannis.mitsos@gdt.gr> + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> + * + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ #include <syscall.h> @@ -40,10 +43,12 @@ void longjmp(jmp_buf state, int value ) #undef _state_ } +libc_hidden_proto(sigprocmask) + void siglongjmp(sigjmp_buf state, int value ) { if( state->__mask_was_saved ) - __sigprocmask(SIG_SETMASK, &state->__saved_mask, NULL); + sigprocmask(SIG_SETMASK, &state->__saved_mask, NULL); if(!value) state->__jmpbuf->ReturnValue = 1; diff --git a/libc/sysdeps/linux/e1/setjmp.c b/libc/sysdeps/linux/e1/setjmp.c index 502e89b22..750c4e08e 100644 --- a/libc/sysdeps/linux/e1/setjmp.c +++ b/libc/sysdeps/linux/e1/setjmp.c @@ -7,6 +7,8 @@ #include <stdio.h> #include <signal.h> +libc_hidden_proto(sigprocmask) + int setjmp( jmp_buf state) { asm volatile( "mov %0, G3\n\t" @@ -32,7 +34,7 @@ int sigsetjmp( sigjmp_buf state , int savesigs) if(savesigs) { state->__mask_was_saved = 1; /* how arg in <sigprocmask> is not significant */ - __sigprocmask(SIG_SETMASK, NULL, &state->__saved_mask); + sigprocmask(SIG_SETMASK, NULL, &state->__saved_mask); } else state->__mask_was_saved = 0; diff --git a/libc/sysdeps/linux/e1/vfork.c b/libc/sysdeps/linux/e1/vfork.c index ec9961d62..34ae5833c 100644 --- a/libc/sysdeps/linux/e1/vfork.c +++ b/libc/sysdeps/linux/e1/vfork.c @@ -1,5 +1,15 @@ +/* + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> + * + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + */ + #include <sys/types.h> #include <sys/syscall.h> #include <errno.h> -_syscall0(pid_t, vfork); +#define __NR___vfork __NR_vfork +attribute_hidden _syscall0(pid_t, __vfork); +libc_hidden_proto(vfork) +weak_alias(__vfork,vfork) +libc_hidden_weak(vfork) |
