summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Rules.mak2
-rw-r--r--libc/sysdeps/linux/arm/sysdep.h (renamed from libpthread/nptl/sysdeps/arm/sysdep.h)2
-rw-r--r--libc/sysdeps/linux/common/sysdep.h (renamed from libpthread/nptl/sysdeps/generic/sysdep.h)2
-rw-r--r--libc/sysdeps/linux/sh/sysdep.h (renamed from libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep.h)79
-rw-r--r--libpthread/nptl/sysdeps/sh/sysdep.h82
-rw-r--r--libpthread/nptl/sysdeps/unix/sh/sysdep.h29
-rw-r--r--libpthread/nptl/sysdeps/unix/sysdep.h63
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h4
8 files changed, 70 insertions, 193 deletions
diff --git a/Rules.mak b/Rules.mak
index afecb7751..aaa8cb058 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -548,6 +548,7 @@ NOSTDLIB_CFLAGS:=$(call check_gcc,-nostdlib,)
CFLAGS := -include $(top_srcdir)include/libc-symbols.h \
$(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
-nostdinc -I$(top_builddir)include -I$(top_srcdir)include -I. \
+ -I$(top_srcdir)libc/sysdeps/linux \
-I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"")
CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS))
@@ -637,7 +638,6 @@ PTINC:= -I$(top_srcdir)$(PTDIR) \
-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux \
-I$(top_srcdir)$(PTDIR)/sysdeps/pthread \
-I$(top_srcdir)$(PTDIR)/sysdeps/pthread/bits \
- -I$(top_srcdir)$(PTDIR)/sysdeps/generic \
-I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
-I$(top_srcdir)ldso/include
#
diff --git a/libpthread/nptl/sysdeps/arm/sysdep.h b/libc/sysdeps/linux/arm/sysdep.h
index 19bd3c3f7..3c7a182bb 100644
--- a/libpthread/nptl/sysdeps/arm/sysdep.h
+++ b/libc/sysdeps/linux/arm/sysdep.h
@@ -17,7 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-#include <sysdeps/generic/sysdep.h>
+#include <common/sysdep.h>
#ifdef __ASSEMBLER__
diff --git a/libpthread/nptl/sysdeps/generic/sysdep.h b/libc/sysdeps/linux/common/sysdep.h
index 9627b3e79..cd5b2f1e3 100644
--- a/libpthread/nptl/sysdeps/generic/sysdep.h
+++ b/libc/sysdeps/linux/common/sysdep.h
@@ -17,6 +17,8 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <sys/syscall.h>
+
#ifndef C_LABEL
/* Define a macro we can use to construct the asm name for a C symbol. */
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep.h b/libc/sysdeps/linux/sh/sysdep.h
index 7e9223b70..1d490553d 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep.h
+++ b/libc/sysdeps/linux/sh/sysdep.h
@@ -1,8 +1,6 @@
-/* Copyright (C) 1992,1993,1995,1996,1997,1998,1999,2000,2002,2003,2004
- Free Software Foundation, Inc.
+/* Assembler macros for SH.
+ Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
- Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -19,11 +17,67 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-#ifndef _LINUX_SH_SYSDEP_H
-#define _LINUX_SH_SYSDEP_H 1
+#include <common/sysdep.h>
-/* There is some commonality. */
-#include <sysdeps/unix/sh/sysdep.h>
+#include <features.h>
+#include <libc-internal.h>
+
+#ifdef __ASSEMBLER__
+
+/* Syntactic details of assembler. */
+
+#define ALIGNARG(log2) log2
+/* For ELF we need the `.type' directive to make shared libs work right. */
+#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg;
+#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
+
+#ifdef SHARED
+#define PLTJMP(_x) _x##@PLT
+#else
+#define PLTJMP(_x) _x
+#endif
+
+/* Define an entry point visible from C. */
+#define ENTRY(name) \
+ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
+ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) \
+ .align ALIGNARG(5); \
+ C_LABEL(name) \
+ cfi_startproc; \
+ CALL_MCOUNT
+
+#undef END
+#define END(name) \
+ cfi_endproc; \
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name))
+
+/* If compiled for profiling, call `mcount' at the start of each function. */
+#ifdef PROF
+#define CALL_MCOUNT \
+ mov.l 1f,r1; \
+ sts.l pr,@-r15; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (pr, 0); \
+ mova 2f,r0; \
+ jmp @r1; \
+ lds r0,pr; \
+ .align 2; \
+1: .long mcount; \
+2: lds.l @r15+,pr; \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (pr)
+
+#else
+#define CALL_MCOUNT /* Do nothing. */
+#endif
+
+#ifdef __UCLIBC_UNDERSCORES__
+/* Since C identifiers are not normally prefixed with an underscore
+ on this system, the asm identifier `syscall_error' intrudes on the
+ C name space. Make sure we use an innocuous name. */
+#define syscall_error __syscall_error
+#define mcount _mcount
+#endif
/* For Linux we can use the system call table in the header file
/usr/include/asm/unistd.h
@@ -32,8 +86,9 @@
#undef SYS_ify
#define SYS_ify(syscall_name) (__NR_##syscall_name)
-
-#ifdef __ASSEMBLER__
+#define ret rts ; nop
+/* The sh move insn is s, d. */
+#define MOVE(x,y) mov x , y
/* Linux uses a negative return value to indicate syscall errors,
unlike most Unices, which use the condition codes' carry flag.
@@ -193,7 +248,7 @@
# endif /* _LIBC_REENTRANT */
#endif /* __PIC__ */
-# ifdef NEED_SYSCALL_INST_PAD
+# ifdef __SH4__
# define SYSCALL_INST_PAD \
or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0
# else
@@ -220,5 +275,3 @@
2:
#endif /* __ASSEMBLER__ */
-
-#endif /* linux/sh/sysdep.h */
diff --git a/libpthread/nptl/sysdeps/sh/sysdep.h b/libpthread/nptl/sysdeps/sh/sysdep.h
deleted file mode 100644
index 5b75198f9..000000000
--- a/libpthread/nptl/sysdeps/sh/sysdep.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Assembler macros for SH.
- Copyright (C) 1999, 2000, 2005 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdeps/generic/sysdep.h>
-
-#include <features.h>
-#include <libc-internal.h>
-
-#ifdef __ASSEMBLER__
-
-/* Syntactic details of assembler. */
-
-#define ALIGNARG(log2) log2
-/* For ELF we need the `.type' directive to make shared libs work right. */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg;
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-
-#ifdef SHARED
-#define PLTJMP(_x) _x##@PLT
-#else
-#define PLTJMP(_x) _x
-#endif
-
-/* Define an entry point visible from C. */
-#define ENTRY(name) \
- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
- ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) \
- .align ALIGNARG(5); \
- C_LABEL(name) \
- cfi_startproc; \
- CALL_MCOUNT
-
-#undef END
-#define END(name) \
- cfi_endproc; \
- ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name))
-
-/* If compiled for profiling, call `mcount' at the start of each function. */
-#ifdef PROF
-#define CALL_MCOUNT \
- mov.l 1f,r1; \
- sts.l pr,@-r15; \
- cfi_adjust_cfa_offset (4); \
- cfi_rel_offset (pr, 0); \
- mova 2f,r0; \
- jmp @r1; \
- lds r0,pr; \
- .align 2; \
-1: .long mcount; \
-2: lds.l @r15+,pr; \
- cfi_adjust_cfa_offset (-4); \
- cfi_restore (pr)
-
-#else
-#define CALL_MCOUNT /* Do nothing. */
-#endif
-
-#ifdef __UCLIBC_UNDERSCORES__
-/* Since C identifiers are not normally prefixed with an underscore
- on this system, the asm identifier `syscall_error' intrudes on the
- C name space. Make sure we use an innocuous name. */
-#define syscall_error __syscall_error
-#define mcount _mcount
-#endif
-
-#endif /* __ASSEMBLER__ */
diff --git a/libpthread/nptl/sysdeps/unix/sh/sysdep.h b/libpthread/nptl/sysdeps/unix/sh/sysdep.h
deleted file mode 100644
index bf1ac0fd4..000000000
--- a/libpthread/nptl/sysdeps/unix/sh/sysdep.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1999, 2000 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdeps/unix/sysdep.h>
-#include <sysdeps/sh/sysdep.h>
-
-#ifdef __ASSEMBLER__
-
-#define ret rts ; nop
-
-/* The sh move insn is s, d. */
-#define MOVE(x,y) mov x , y
-
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysdep.h b/libpthread/nptl/sysdeps/unix/sysdep.h
deleted file mode 100644
index 0e7c9da5a..000000000
--- a/libpthread/nptl/sysdeps/unix/sysdep.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 1991, 92, 93, 96, 98, 2003 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdeps/generic/sysdep.h>
-
-#include <sys/syscall.h>
-#define HAVE_SYSCALLS
-
-/* Note that using a `PASTE' macro loses. */
-#ifdef __STDC__
-#define SYSCALL__(name, args) PSEUDO (__##name, name, args)
-#else
-#define SYSCALL__(name, args) PSEUDO (__/**/name, name, args)
-#endif
-#define SYSCALL(name, args) PSEUDO (name, name, args)
-
-/* Machine-dependent sysdep.h files are expected to define the macro
- PSEUDO (function_name, syscall_name) to emit assembly code to define the
- C-callable function FUNCTION_NAME to do system call SYSCALL_NAME.
- r0 and r1 are the system call outputs. MOVE(x, y) should be defined as
- an instruction such that "MOVE(r1, r0)" works. ret should be defined
- as the return instruction. */
-
-#ifndef SYS_ify
-#ifdef __STDC__
-#define SYS_ify(syscall_name) SYS_##syscall_name
-#else
-#define SYS_ify(syscall_name) SYS_/**/syscall_name
-#endif
-#endif
-
-/* Terminate a system call named SYM. This is used on some platforms
- to generate correct debugging information. */
-#ifndef PSEUDO_END
-#define PSEUDO_END(sym)
-#endif
-#ifndef PSEUDO_END_NOERRNO
-#define PSEUDO_END_NOERRNO(sym) PSEUDO_END(sym)
-#endif
-#ifndef PSEUDO_END_ERRVAL
-#define PSEUDO_END_ERRVAL(sym) PSEUDO_END(sym)
-#endif
-
-/* Wrappers around system calls should normally inline the system call code.
- But sometimes it is not possible or implemented and we use this code. */
-#ifndef INLINE_SYSCALL
-#define INLINE_SYSCALL(name, nr, args...) __syscall_##name (args)
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h
deleted file mode 100644
index 1aed1a14a..000000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* 4 instruction cycles not accessing cache and TLB are needed after
- trapa instruction to avoid an SH-4 silicon bug. */
-#define NEED_SYSCALL_INST_PAD
-#include_next <sysdep.h>