summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-03-30 03:48:56 -0500
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2015-12-05 21:00:06 +0100
commit2fbe1ee66ad2107866d3fddd014c1349d135b424 (patch)
tree32f2e93f2ff45756da4fe75522a2ec9abe4fff8d
parent263573cf6e027c41d74d1e225e33f6ec85507938 (diff)
remove sh64 support
No real hardware available. The project for sh64 with sh5 seems dead since 10 years. Gcc will remove support for it soon.
-rw-r--r--Rules.mak6
-rw-r--r--extra/Configs/Config.in8
-rw-r--r--extra/Configs/Config.sh6433
-rw-r--r--extra/Configs/defconfigs/sh64/defconfig1
-rw-r--r--ldso/ldso/sh64/dl-debug.h79
-rw-r--r--ldso/ldso/sh64/dl-startup.h118
-rw-r--r--ldso/ldso/sh64/dl-syscalls.h18
-rw-r--r--ldso/ldso/sh64/dl-sysdep.h168
-rw-r--r--ldso/ldso/sh64/elfinterp.c345
-rw-r--r--ldso/ldso/sh64/resolve.S95
-rw-r--r--libc/string/sh64/Makefile13
-rw-r--r--libc/string/sh64/memcpy.S205
-rw-r--r--libc/string/sh64/memset.S97
-rw-r--r--libc/string/sh64/strcpy.S102
-rw-r--r--libc/string/sh64/strlen.S63
-rw-r--r--libc/sysdeps/linux/sh64/Makefile15
-rw-r--r--libc/sysdeps/linux/sh64/Makefile.arch10
-rw-r--r--libc/sysdeps/linux/sh64/__init_brk.c26
-rw-r--r--libc/sysdeps/linux/sh64/__longjmp.S140
-rw-r--r--libc/sysdeps/linux/sh64/bits/endian.h20
-rw-r--r--libc/sysdeps/linux/sh64/bits/fcntl.h218
-rw-r--r--libc/sysdeps/linux/sh64/bits/kernel_stat.h55
-rw-r--r--libc/sysdeps/linux/sh64/bits/kernel_types.h58
-rw-r--r--libc/sysdeps/linux/sh64/bits/setjmp.h46
-rw-r--r--libc/sysdeps/linux/sh64/bits/shm.h102
-rw-r--r--libc/sysdeps/linux/sh64/bits/stackinfo.h27
-rw-r--r--libc/sysdeps/linux/sh64/bits/syscalls.h126
-rw-r--r--libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h41
-rw-r--r--libc/sysdeps/linux/sh64/bits/wordsize.h12
-rw-r--r--libc/sysdeps/linux/sh64/brk.c27
-rw-r--r--libc/sysdeps/linux/sh64/crt1.S82
-rw-r--r--libc/sysdeps/linux/sh64/crti.S42
-rw-r--r--libc/sysdeps/linux/sh64/crtn.S31
-rw-r--r--libc/sysdeps/linux/sh64/sbrk.c25
-rw-r--r--libc/sysdeps/linux/sh64/setjmp.S139
-rw-r--r--libc/sysdeps/linux/sh64/sys/procfs.h125
-rw-r--r--libc/sysdeps/linux/sh64/sys/ucontext.h204
-rw-r--r--libc/sysdeps/linux/sh64/syscall.c24
-rw-r--r--libpthread/linuxthreads.old/sysdeps/sh64/Makefile.arch30
-rw-r--r--libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c46
-rw-r--r--libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h38
41 files changed, 0 insertions, 3060 deletions
diff --git a/Rules.mak b/Rules.mak
index fdaf4560b..973a890bb 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -430,12 +430,6 @@ else
endif
endif
-ifeq ($(TARGET_ARCH),sh64)
- CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN):=-ml
- CPU_CFLAGS-$(ARCH_BIG_ENDIAN):=-mb
- CPU_CFLAGS-$(CONFIG_SH5)+=-m5-32media
-endif
-
ifeq ($(TARGET_ARCH),h8300)
CPU_CFLAGS-$(CONFIG_H8300H) += -mh -mint32
CPU_CFLAGS-$(CONFIG_H8S) += -ms -mint32
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index f3f573d3c..dc7159d0a 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -38,7 +38,6 @@ choice
default TARGET_or1k if DESIRED_TARGET_ARCH = "or1k"
default TARGET_powerpc if DESIRED_TARGET_ARCH = "powerpc"
default TARGET_sh if DESIRED_TARGET_ARCH = "sh"
- default TARGET_sh64 if DESIRED_TARGET_ARCH = "sh64"
default TARGET_sparc if DESIRED_TARGET_ARCH = "sparc"
default TARGET_v850 if DESIRED_TARGET_ARCH = "v850"
default TARGET_vax if DESIRED_TARGET_ARCH = "vax"
@@ -121,9 +120,6 @@ config TARGET_powerpc
config TARGET_sh
bool "superh"
-#config TARGET_sh64
-# bool "sh64"
-
config TARGET_sparc
bool "sparc"
@@ -232,10 +228,6 @@ if TARGET_sh
source "extra/Configs/Config.sh"
endif
-if TARGET_sh64
-source "extra/Configs/Config.sh64"
-endif
-
if TARGET_sparc
source "extra/Configs/Config.sparc"
endif
diff --git a/extra/Configs/Config.sh64 b/extra/Configs/Config.sh64
deleted file mode 100644
index a617510ac..000000000
--- a/extra/Configs/Config.sh64
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see extra/config/Kconfig-language.txt
-#
-
-config TARGET_ARCH
- string
- default "sh64"
-
-config FORCE_OPTIONS_FOR_ARCH
- bool
- default y
- select ARCH_ANY_ENDIAN
- select ARCH_HAS_DEPRECATED_SYSCALLS
-
-choice
- prompt "Target Processor Type"
- default CONFIG_SH5
- help
- This is the processor type of your CPU. This information is used for
- optimizing purposes, as well as to determine if your CPU has an MMU,
- an FPU, etc. If you pick the wrong CPU type, there is no guarantee
- that uClibc will work at all....
-
- Here are the available choices:
- - "SH5" SuperH SH-5 101, 103
-
-config CONFIG_SH5
- select ARCH_HAS_MMU
- select UCLIBC_HAS_LFS
- bool "SH5"
-
-endchoice
diff --git a/extra/Configs/defconfigs/sh64/defconfig b/extra/Configs/defconfigs/sh64/defconfig
deleted file mode 100644
index 4f23a5402..000000000
--- a/extra/Configs/defconfigs/sh64/defconfig
+++ /dev/null
@@ -1 +0,0 @@
-TARGET_sh64=y
diff --git a/ldso/ldso/sh64/dl-debug.h b/ldso/ldso/sh64/dl-debug.h
deleted file mode 100644
index 6d861e5b4..000000000
--- a/ldso/ldso/sh64/dl-debug.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* vi: set sw=8 ts=8: */
-/*
- * ldso/ldso/sh64/elfinterp.c
- *
- * SuperH (sh64) ELF shared library loader suppport
- *
- * Copyright (C) 2003, 2004, 2005 Paul Mundt <lethal@linux-sh.org>
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. The name of the above contributors may not be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-static const char * const _dl_reltypes_tab[] = {
- /* SHcompact relocs */
- [0] = "R_SH_NONE", "R_SH_DIR32",
- "R_SH_REL32", "R_SH_DIR8WPN",
- [4] = "R_SH_IND12W", "R_SH_DIR8WPL",
- "R_SH_DIR8WPZ", "R_SH_DIR8BP",
- [8] = "R_SH_DIR8W", "R_SH_DIR8L",
- [25] = "R_SH_SWITCH16", "R_SH_SWITCH32",
- "R_SH_USES", "R_SH_COUNT",
- [29] = "R_SH_ALIGN", "R_SH_CODE",
- "R_SH_DATA", "R_SH_LABEL",
- [33] = "R_SH_SWITCH8", "R_SH_GNU_VTINHERIT",
- "R_SH_GNU_VTENTRY",
- [160] = "R_SH_GOT32", "R_SH_PLT32",
- "R_SH_COPY", "R_SH_GLOB_DAT",
- [164] = "R_SH_JMP_SLOT", "R_SH_RELATIVE",
- "R_SH_GOTOFF", "R_SH_GOTPC",
-
- /* SHmedia relocs */
- [45] = "R_SH_DIR5U", "R_SH_DIR6U",
- "R_SH_DIR6S", "R_SH_DIR10S",
- [49] = "R_SH_DIR10SW", "R_SH_DIR10SL",
- "R_SH_DIR10SQ",
- [169] = "R_SH_GOT_LOW16", "R_SH_GOT_MEDLOW16",
- "R_SH_GOT_MEDHI16", "R_SH_GOT_HI16",
- [173] = "R_SH_GOTPLT_LOW16", "R_SH_GOTPLT_MEDLOW16",
- "R_SH_GOTPLT_MEDHI16", "R_SH_GOTPLT_HI16",
- [177] = "R_SH_PLT_LOW16", "R_SH_PLT_MEDLOW16",
- "R_SH_PLT_MEDHI16", "R_SH_PLT_HI16",
- [181] = "R_SH_GOTOFF_LOW16", "R_SH_GOTOFF_MEDLOW16",
- "R_SH_GOTOFF_MEDHI16", "R_SH_GOTOFF_HI16",
- [185] = "R_SH_GOTPC_LOW16", "R_SH_GOTPC_MEDLOW16",
- "R_SH_GOTPC_MEDHI16", "R_SH_GOTPC_HI16",
- [189] = "R_SH_GOT10BY4", "R_SH_GOTPLT10BY4",
- "R_SH_GOT10BY8", "R_SH_GOTPLT10BY8",
- [193] = "R_SH_COPY64", "R_SH_GLOB_DAT64",
- "R_SH_JMP_SLOT64", "R_SH_RELATIVE64",
- [197] = "R_SH_RELATIVE_LOW16", "R_SH_RELATIVE_MEDLOW16",
- "R_SH_RELATIVE_MEDHI16","R_SH_RELATIVE_HI16",
- [242] = "R_SH_SHMEDIA_CODE", "R_SH_PT_16",
- "R_SH_IMMS16", "R_SH_IMMU16",
- [246] = "R_SH_IMM_LOW16", "R_SH_IMM_LOW16_PCREL",
- "R_SH_IMM_MEDLOW16", "R_SH_IMM_MEDLOW16_PCREL",
- [250] = "R_SH_IMM_MEDHI16", "R_SH_IMM_MEDHI16_PCREL",
- "R_SH_IMM_HI16", "R_SH_IMM_HI16_PCREL",
- [254] = "R_SH_64", "R_SH_64_PCREL",
-};
diff --git a/ldso/ldso/sh64/dl-startup.h b/ldso/ldso/sh64/dl-startup.h
deleted file mode 100644
index 9dac5ef2c..000000000
--- a/ldso/ldso/sh64/dl-startup.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Any assembly language/system dependent hacks needed to setup boot1.c so it
- * will work as expected and cope with whatever platform specific wierdness is
- * needed for this architecture.
- */
-
-__asm__("" \
-" .section .text..SHmedia32,\"ax\"\n" \
-" .globl _start\n" \
-" .type _start, @function\n" \
-" .hidden _start\n" \
-" .align 5\n" \
-"_start:\n" \
-" ! Set r12 to point to GOT\n" \
-" movi (((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ3-.)) >> 16) & 0xffff), r12\n" \
-" shori ((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ3-.)) & 0xffff), r12\n" \
-".LZZZ3:\n" \
-" ptrel/u r12, tr0\n" \
-" gettr tr0, r12 ! GOT address\n" \
-" add r18, r63, r11 ! save return address - needed?\n" \
-" add r15, r63, r2 ! arg = stack pointer\n" \
-" pt _dl_start, tr0 ! should work even if PIC\n" \
-" blink tr0, r18 ! call _dl_start - user EP is in r2\n" \
-" add r2, r63, r28\n" \
-" movi (((_dl_fini@GOT) >> 16) & 0xffff), r1\n" \
-" shori ((_dl_fini@GOT) & 0xffff), r1\n" \
-" ldx.l r1, r12, r2\n" \
-" add r11, r63, r18\n" \
-" ptabs/l r28, tr0\n" \
-" blink tr0, r63\n" \
-" .size _start,.-_start\n"
-" .previous\n"
-);
-
-/*
- * Get a pointer to the argv array. On many platforms this can be just
- * the address of the first argument, on other platforms we need to
- * do something a little more subtle here.
- */
-#define GET_ARGV(ARGVP, ARGS) ARGVP = (((unsigned long *)ARGS)+1)
-
-/*
- * Here is a macro to perform a relocation. This is only used when
- * bootstrapping the dynamic loader. RELP is the relocation that we
- * are performing, REL is the pointer to the address we are relocating.
- * SYMBOL is the symbol involved in the relocation, and LOAD is the
- * load address.
- */
-
-#include <elf.h>
-
-#define PERFORM_BOOTSTRAP_RELOC(RELP,REL,SYMBOL,LOAD,SYMTAB) \
- const unsigned int r_type = ELF_R_TYPE((RELP)->r_info); \
- int lsb = !!((SYMTAB)->st_other & STO_SH5_ISA32); \
- \
- switch (r_type) { \
- case R_SH_REL32: \
- *(REL) = (SYMBOL) + (RELP)->r_addend \
- - (unsigned long)(REL); \
- break; \
- case R_SH_DIR32: \
- case R_SH_GLOB_DAT: \
- case R_SH_JMP_SLOT: \
- *(REL) = ((SYMBOL) + (RELP)->r_addend) | lsb; \
- break; \
- case R_SH_RELATIVE: \
- *(REL) = (LOAD) + (RELP)->r_addend; \
- break; \
- case R_SH_RELATIVE_LOW16: \
- case R_SH_RELATIVE_MEDLOW16: \
- { \
- unsigned long word, value; \
- \
- word = (unsigned long)(REL) & ~0x3fffc00; \
- value = (LOAD) + (RELP)->r_addend; \
- \
- if (r_type == R_SH_RELATIVE_MEDLOW16) \
- value >>= 16; \
- \
- word |= (value & 0xffff) << 10; \
- *(REL) = word; \
- break; \
- } \
- case R_SH_IMM_LOW16: \
- case R_SH_IMM_MEDLOW16: \
- { \
- unsigned long word, value; \
- \
- word = (unsigned long)(REL) & ~0x3fffc00; \
- value = ((SYMBOL) + (RELP)->r_addend) | lsb; \
- \
- if (r_type == R_SH_IMM_MEDLOW16) \
- value >>= 16; \
- \
- word |= (value & 0xffff) << 10; \
- *(REL) = word; \
- break; \
- } \
- case R_SH_IMM_LOW16_PCREL: \
- case R_SH_IMM_MEDLOW16_PCREL: \
- { \
- unsigned long word, value; \
- \
- word = (unsigned long)(REL) & ~0x3fffc00; \
- value = (SYMBOL) + (RELP)->r_addend \
- - (unsigned long)(REL); \
- \
- if (r_type == R_SH_IMM_MEDLOW16_PCREL) \
- value >>= 16; \
- \
- word |= (value & 0xffff) << 10; \
- *(REL) = word; \
- break; \
- } \
- case R_SH_NONE: \
- break; \
- default: \
- _dl_exit(1); \
- }
diff --git a/ldso/ldso/sh64/dl-syscalls.h b/ldso/ldso/sh64/dl-syscalls.h
deleted file mode 100644
index 2ea4bb7d0..000000000
--- a/ldso/ldso/sh64/dl-syscalls.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#undef __syscall_return
-#define __syscall_return(type, res) \
-do { \
- /* \
- * Note: when returning from kernel the return value is in r9 \
- * \
- * This prevents conflicts between return value and arg1 \
- * when dispatching signal handler, in other words makes \
- * life easier in the system call epilogue (see entry.S) \
- */ \
- register unsigned long __sr2 __asm__ ("r2") = res; \
- if ((unsigned long)(res) >= (unsigned long)(-125)) { \
- _dl_errno = -(res); \
- __sr2 = -1; \
- } \
- return (type)(__sr2); \
-} while (0)
-
diff --git a/ldso/ldso/sh64/dl-sysdep.h b/ldso/ldso/sh64/dl-sysdep.h
deleted file mode 100644
index 043413931..000000000
--- a/ldso/ldso/sh64/dl-sysdep.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* vi: set sw=8 ts=8: */
-/*
- * Various assembly language/system dependent hacks that are required
- * so that we can minimize the amount of platform specific code.
- */
-
-/* Define this if the system uses RELOCA. */
-#define ELF_USES_RELOCA
-#include <elf.h>
-/*
- * Initialization sequence for a GOT.
- */
-#define INIT_GOT(GOT_BASE,MODULE) \
-{ \
- GOT_BASE[2] = (unsigned long)_dl_linux_resolve; \
- GOT_BASE[1] = (unsigned long)(MODULE); \
-}
-
-/* Here we define the magic numbers that this dynamic loader should accept */
-#define MAGIC1 EM_SH
-#undef MAGIC2
-
-/* Used for error messages */
-#define ELF_TARGET "sh64"
-
-/* Need bootstrap relocations */
-#define ARCH_NEEDS_BOOTSTRAP_RELOCS
-
-struct elf_resolve;
-extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
-
-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
- TLS variable, so undefined references should not be allowed to
- define the value.
- ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
- of the main executable's symbols, as for a COPY reloc. */
-#define elf_machine_type_class(type) \
- ((((type) == R_SH_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \
- | (((type) == R_SH_COPY) * ELF_RTYPE_CLASS_COPY))
-
-/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. This must be inlined in a function which
- uses global data. */
-static __always_inline Elf32_Addr elf_machine_dynamic(void)
-{
- register Elf32_Addr *got;
-
- /*
- * The toolchain adds 32768 to the GOT address, we compensate for
- * that in the movi/sub pair.
- *
- * XXX: If this is cleaned up in the toolchain, we can end up
- * saving 2 instructions and subsequently free up r1 from the
- * clobber list..
- */
- __asm__ (
- "movi\t(((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ1-.)) >> 16) & 0xffff), r2\n\t"
- "shori\t((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ1-.)) & 0xffff), r2\n\t"
- ".LZZZ1:\tptrel/u r2, tr0\n\t"
- "movi\t32768, r1\n\t"
- "gettr\ttr0, r2\n\t"
- "sub\tr2, r1, %0\n\t"
- : "=r" (got)
- : /* no inputs */
- : "r1", "r2", "tr0"
- );
-
- return *got;
-}
-
-/* Return the run-time load address of the shared object. */
-static __always_inline Elf32_Addr elf_machine_load_address(void)
-{
- Elf32_Addr addr;
-
- __asm__ (
- "movi\t(((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ2-.)) >> 16) & 0xffff), r0\n\t"
- "shori\t((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ2-.)) & 0xffff), r0\n\t"
- ".LZZZ2:\tptrel/u r0, tr0\n\t"
- "movi\t(((_dl_start@GOTOFF) >> 16) & 0xffff), r2\n\t"
- "shori\t((_dl_start@GOTOFF) & 0xffff), r2\n\t"
- "gettr\ttr0, r0\n\t"
- "add\tr2, r0, r2\n\t"
- "movi\t(((_dl_start@GOT) >> 16) & 0xffff), r1\n\t"
- "shori\t((_dl_start@GOT) & 0xffff), r1\n\t"
- "ldx.l\tr1, r0, r1\n\t"
- "sub\tr2, r1, %0\n\t"
- : "=r" (addr)
- : /* no inputs */
- : "r0", "r1", "r2", "tr0"
- );
-
- return addr;
-}
-
-/*
- * XXX: As we don't need to worry about r25 clobbering, we could probably
- * get away with inlining {st,ld}{x,}.l and friends here instead and
- * forego gcc's idea of code generation.
- */
-#define COPY_UNALIGNED_WORD(swp, twp, align) \
-{ \
- void *__s = (swp), *__t = (twp); \
- unsigned char *__s1 = __s, *__t1 = __t; \
- unsigned short *__s2 = __s, *__t2 = __t; \
- unsigned long *__s4 = __s, *__t4 = __t; \
- \
- switch ((align)) { \
- case 0: \
- *__t4 = *__s4; \
- break; \
- case 2: \
- *__t2++ = *__s2++; \
- *__t2 = *__s2; \
- break; \
- default: \
- *__t1++ = *__s1++; \
- *__t1++ = *__s1++; \
- *__t1++ = *__s1++; \
- *__t1 = *__s1; \
- break; \
- } \
-}
-
-static __always_inline void
-elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
- Elf32_Word relative_count)
-{
- Elf32_Addr value, word;
- Elf32_Rela *rpnt = (void *)rel_addr;
- int reloc_type = ELF_R_TYPE(rpnt->r_info);
-
- do {
- Elf32_Addr *const reloc_addr =
- (void *)(load_off + rpnt->r_offset);
- int align = (int)reloc_addr & 3;
-
- switch (reloc_type) {
- case R_SH_RELATIVE_LOW16:
- COPY_UNALIGNED_WORD(reloc_addr, &word, align);
- word &= ~0x3fffc00;
- value = (rpnt->r_addend + load_off);
- word |= (value & 0xffff) << 10;
- COPY_UNALIGNED_WORD(&word, reloc_addr, align);
- break;
- case R_SH_RELATIVE_MEDLOW16:
- COPY_UNALIGNED_WORD(reloc_addr, &word, align);
- word &= ~0x3fffc00;
- value = (rpnt->r_addend + load_off) >> 16;
- word |= (value & 0xffff) << 10;
- COPY_UNALIGNED_WORD(&word, reloc_addr, align);
- break;
- default:
- if (rpnt->r_addend) {
- value = load_off + rpnt->r_addend;
- } else {
- COPY_UNALIGNED_WORD(reloc_addr, &value, align);
- value += load_off;
- }
-
- COPY_UNALIGNED_WORD(&value, reloc_addr, align);
- break;
- }
-
- rpnt++;
- } while (--relative_count);
-#undef COPY_UNALIGNED_WORD
-}
diff --git a/ldso/ldso/sh64/elfinterp.c b/ldso/ldso/sh64/elfinterp.c
deleted file mode 100644
index 3a59bc4be..000000000
--- a/ldso/ldso/sh64/elfinterp.c
+++ /dev/null
@@ -1,345 +0,0 @@
-/* vi: set sw=8 ts=8: */
-/*
- * ldso/ldso/sh64/elfinterp.c
- *
- * SuperH (sh64) ELF shared library loader suppport
- *
- * Copyright (C) 2003, 2004, 2005 Paul Mundt <lethal@linux-sh.org>
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. The name of the above contributors may not be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* Program to load an ELF binary on a linux system, and run it.
- References to symbols in sharable libraries can be resolved by either
- an ELF sharable library or a linux style of shared library. */
-
-/* Disclaimer: I have never seen any AT&T source code for SVr4, nor have
- I ever taken any courses on internals. This program was developed using
- information available through the book "UNIX SYSTEM V RELEASE 4,
- Programmers guide: Ansi C and Programming Support Tools", which did
- a more than adequate job of explaining everything required to get this
- working. */
-
-#include "ldso.h"
-
-extern int _dl_linux_resolve(void);
-
-unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
-{
- ELF_RELOC *this_reloc;
- char *strtab;
- ElfW(Sym) *symtab;
- int symtab_index;
- char *rel_addr;
- char *new_addr;
- char **got_addr;
- unsigned long instr_addr;
- char *symname;
-
- rel_addr = (char *)tpnt->dynamic_info[DT_JMPREL];
-
- this_reloc = (ELF_RELOC *)(intptr_t)(rel_addr + reloc_entry);
- symtab_index = ELF_R_SYM(this_reloc->r_info);
-
- symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
- strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
- symname = strtab + symtab[symtab_index].st_name;
-
- /* Address of jump instruction to fix up */
- instr_addr = ((unsigned long)this_reloc->r_offset +
- (unsigned long)tpnt->loadaddr);
- got_addr = (char **)instr_addr;
-
-
- /* Get the address of the GOT entry */
- new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
- if (unlikely(!new_addr)) {
- _dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
- _dl_progname, symname);
- _dl_exit(1);
- }
-
-#ifdef __SUPPORT_LD_DEBUG__
- if ((unsigned long)got_addr < 0x20000000) {
- if (_dl_debug_bindings) {
- _dl_dprintf(_dl_debug_file, "\nresolve function: %s",
- symname);
-
- if (_dl_debug_detail)
- _dl_dprintf(_dl_debug_file,
- "\n\tpatched %x ==> %x @ %x\n",
- *got_addr, new_addr, got_addr);
- }
- }
-
- if (!_dl_debug_nofixups)
- *got_addr = new_addr;
-#else
- *got_addr = new_addr;
-#endif
-
- return (unsigned long)new_addr;
-}
-
-static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
- unsigned long rel_addr, unsigned long rel_size,
- int (*reloc_fnc)(struct elf_resolve *tpnt,
- struct r_scope_elem *scope,
- ELF_RELOC *rpnt, ElfW(Sym) *symtab,
- char *strtab))
-{
- unsigned int i;
- char *strtab;
- ElfW(Sym) *symtab;
- ELF_RELOC *rpnt;
- int symtab_index;
-
- /* Now parse the relocation information */
- rpnt = (ELF_RELOC *)(intptr_t)rel_addr;
- rel_size = rel_size / sizeof(ELF_RELOC);
-
- symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
- strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
-
- for (i = 0; i < rel_size; i++, rpnt++) {
- int res;
-
- symtab_index = ELF_R_SYM(rpnt->r_info);
- debug_sym(symtab,strtab,symtab_index);
- debug_reloc(symtab,strtab,rpnt);
-
- res = reloc_fnc (tpnt, scope, rpnt, symtab, strtab);
- if (res == 0)
- continue;
-
- _dl_dprintf(2, "\n%s: ",_dl_progname);
-
- if (symtab_index)
- _dl_dprintf(2, "symbol '%s': ",
- strtab + symtab[symtab_index].st_name);
-
- if (unlikely(res < 0)) {
- int reloc_type = ELF_R_TYPE(rpnt->r_info);
-
- _dl_dprintf(2, "can't handle reloc type "
-#ifdef __SUPPORT_LD_DEBUG__
- "%s\n", _dl_reltypes(reloc_type)
-#else
- "%x\n", reloc_type
-#endif
- );
-
- _dl_exit(-res);
- }
- if (unlikely(res > 0)) {
- _dl_dprintf(2, "can't resolve symbol\n");
-
- return res;
- }
- }
-
- return 0;
-}
-
-static int _dl_do_reloc(struct elf_resolve *tpnt,struct r_scope_elem *scope,
- ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
-{
- int reloc_type;
- int symtab_index, lsb;
- char *symname;
- unsigned long *reloc_addr;
- unsigned long symbol_addr;
-#ifdef __SUPPORT_LD_DEBUG__
- unsigned long old_val;
-#endif
- struct symbol_ref sym_ref;
-
- reloc_type = ELF_R_TYPE(rpnt->r_info);
- symtab_index = ELF_R_SYM(rpnt->r_info);
- symbol_addr = 0;
- lsb = !!(symtab[symtab_index].st_other & STO_SH5_ISA32);
- sym_ref.sym = &symtab[symtab_index];
- sym_ref.tpnt = NULL;
- symname = strtab + symtab[symtab_index].st_name;
- reloc_addr = (unsigned long *)(intptr_t)
- (tpnt->loadaddr + (unsigned long)rpnt->r_offset);
-
- if (symtab_index) {
- int stb;
-
- symbol_addr = (unsigned long)_dl_find_hash(symname, scope, tpnt,
- elf_machine_type_class(reloc_type), &sym_ref);
-
- /*
- * We want to allow undefined references to weak symbols - this
- * might have been intentional. We should not be linking local
- * symbols here, so all bases should be covered.
- */
- stb = ELF_ST_BIND(symtab[symtab_index].st_info);
-
- if (stb != STB_WEAK && !symbol_addr) {
- _dl_dprintf (2, "%s: can't resolve symbol '%s'\n",
- _dl_progname, symname);
- _dl_exit (1);
- }
- if (_dl_trace_prelink) {
- _dl_debug_lookup (symname, tpnt, &symtab[symtab_index],
- &sym_ref, elf_machine_type_class(reloc_type));
- }
- }
-
-#ifdef __SUPPORT_LD_DEBUG__
- old_val = *reloc_addr;
-#endif
-
- switch (reloc_type) {
- case R_SH_NONE:
- break;
- case R_SH_COPY:
- _dl_memcpy((char *)reloc_addr,
- (char *)symbol_addr, symtab[symtab_index].st_size);
- break;
- case R_SH_DIR32:
- case R_SH_GLOB_DAT:
- case R_SH_JMP_SLOT:
- *reloc_addr = (symbol_addr + rpnt->r_addend) | lsb;
- break;
- case R_SH_REL32:
- *reloc_addr = symbol_addr + rpnt->r_addend -
- (unsigned long)reloc_addr;
- break;
- case R_SH_RELATIVE:
- *reloc_addr = (unsigned long)tpnt->loadaddr + rpnt->r_addend;
- break;
- case R_SH_RELATIVE_LOW16:
- case R_SH_RELATIVE_MEDLOW16:
- {
- unsigned long word, value;
-
- word = (unsigned long)reloc_addr & ~0x3fffc00;
- value = (unsigned long)tpnt->loadaddr + rpnt->r_addend;
-
- if (reloc_type == R_SH_RELATIVE_MEDLOW16)
- value >>= 16;
-
- word |= (value & 0xffff) << 10;
- *reloc_addr = word;
-
- break;
- }
- case R_SH_IMM_LOW16:
- case R_SH_IMM_MEDLOW16:
- {
- unsigned long word, value;
-
- word = (unsigned long)reloc_addr & ~0x3fffc00;
- value = (symbol_addr + rpnt->r_addend) | lsb;
-
- if (reloc_type == R_SH_IMM_MEDLOW16)
- value >>= 16;
-
- word |= (value & 0xffff) << 10;
- *reloc_addr = word;
-
- break;
- }
- case R_SH_IMM_LOW16_PCREL:
- case R_SH_IMM_MEDLOW16_PCREL:
- {
- unsigned long word, value;
-
- word = (unsigned long)reloc_addr & ~0x3fffc00;
- value = symbol_addr + rpnt->r_addend -
- (unsigned long)reloc_addr;
-
- if (reloc_type == R_SH_IMM_MEDLOW16_PCREL)
- value >>= 16;
-
- word |= (value & 0xffff) << 10;
- *reloc_addr = word;
-
- break;
- }
- default:
- return -1; /*call _dl_exit(1) */
- }
-
-#ifdef __SUPPORT_LD_DEBUG__
- if (_dl_debug_reloc && _dl_debug_detail)
- _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
- old_val, *reloc_addr, reloc_addr);
-#endif
-
- return 0;
-}
-
-static int _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
- ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
-{
- int reloc_type, symtab_index, lsb;
- unsigned long *reloc_addr;
-#ifdef __SUPPORT_LD_DEBUG__
- unsigned long old_val;
-#endif
-
- reloc_type = ELF_R_TYPE(rpnt->r_info);
- symtab_index = ELF_R_SYM(rpnt->r_info);
- lsb = !!(symtab[symtab_index].st_other & STO_SH5_ISA32);
- reloc_addr = (unsigned long *)(intptr_t)
- (tpnt->loadaddr + (unsigned long)rpnt->r_offset);
-
-#ifdef __SUPPORT_LD_DEBUG__
- old_val = *reloc_addr;
-#endif
-
- switch (reloc_type) {
- case R_SH_NONE:
- break;
- case R_SH_JMP_SLOT:
- *reloc_addr += (unsigned long)tpnt->loadaddr | lsb;
- break;
- default:
- return -1; /*call _dl_exit(1) */
- }
-
-#ifdef __SUPPORT_LD_DEBUG__
- if (_dl_debug_reloc && _dl_debug_detail)
- _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
- old_val, *reloc_addr, reloc_addr);
-#endif
-
- return 0;
-}
-
-void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
- unsigned long rel_addr, unsigned long rel_size)
-{
- (void)_dl_parse(rpnt->dyn, NULL, rel_addr, rel_size, _dl_do_lazy_reloc);
-}
-
-int _dl_parse_relocation_information(struct dyn_elf *rpnt,
- struct r_scope_elem *scope, unsigned long rel_addr, unsigned long rel_size)
-{
- return _dl_parse(rpnt->dyn, scope, rel_addr, rel_size, _dl_do_reloc);
-}
diff --git a/ldso/ldso/sh64/resolve.S b/ldso/ldso/sh64/resolve.S
deleted file mode 100644
index ca915d2ef..000000000
--- a/ldso/ldso/sh64/resolve.S
+++ /dev/null
@@ -1,95 +0,0 @@
-/* vi: set sw=8 ts=8: */
-/*
- * ldso/ldso/sh64/resolve.S
- *
- * SuperH (sh64) dynamic resolver support
- *
- * Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org>
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. The name of the above contributors may not be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
- .section .text..SHmedia32,"ax"
- .globl _dl_linux_resolver
- .globl _dl_linux_resolve
- .type _dl_linux_resolve, @function
-
- .balign 16
-_dl_linux_resolve:
- addi r15, -72, r15 ! make room on the stack
- pt _dl_linux_resolver, tr0
- st.q r15, 0, r2 ! save regs
- st.q r15, 8, r3
- st.q r15, 16, r4
- st.q r15, 24, r5
- st.q r15, 32, r6
- st.q r15, 40, r7
- st.q r15, 48, r8
- st.q r15, 56, r9
- st.q r15, 64, r18
-
-#ifdef HAVE_FPU
- addi r15, -48, r15 ! make room for FP regs
- fst.d r15, 0, dr0 ! save FP regs
- fst.d r15, 8, dr2
- fst.d r15, 16, dr4
- fst.d r15, 24, dr6
- fst.d r15, 32, dr8
- fst.d r15, 40, dr10
-#endif
-
- /*
- * Args for _dl_linux_resolver(), set in r17/r21 by PLT code
- */
-
- add r17, r63, r2 ! link map address
- add r21, r63, r3 ! GOT offset
- blink tr0, r18 ! call _dl_linux_resolver()
- ptabs/l r2, tr0 ! save result = addr of function called
-
-#ifdef HAVE_FPU
- fld.d r15, 0, dr0 ! restore FP regs
- fld.d r15, 8, dr2
- fld.d r15, 16, dr4
- fld.d r15, 24, dr6
- fld.d r15, 32, dr8
- fld.d r15, 40, dr10
- addi r15, 48, r15
-#endif
-
- ld.q r15, 0, r2 ! restore regs
- ld.q r15, 8, r3
- ld.q r15, 16, r4
- ld.q r15, 24, r5
- ld.q r15, 32, r6
- ld.q r15, 40, r7
- ld.q r15, 48, r8
- ld.q r15, 56, r9
- ld.q r15, 64, r18
-
- addi r15, 72, r15
- blink tr0, r63 ! jump to function address
-
- .size _dl_linux_resolve, . - _dl_linux_resolve
-
diff --git a/libc/string/sh64/Makefile b/libc/string/sh64/Makefile
deleted file mode 100644
index 0a95346fd..000000000
--- a/libc/string/sh64/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# Makefile for uClibc
-#
-# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-top_srcdir:=../../../
-top_builddir:=../../../
-all: objs
-include $(top_builddir)Rules.mak
-include ../Makefile.in
-include $(top_srcdir)Makerules
diff --git a/libc/string/sh64/memcpy.S b/libc/string/sh64/memcpy.S
deleted file mode 100644
index 470784ecd..000000000
--- a/libc/string/sh64/memcpy.S
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Cloned and hacked for uClibc by Paul Mundt, December 2003 */
-/* Modified by SuperH, Inc. September 2003 */
-!
-! Fast SH memcpy
-!
-! by Toshiyasu Morita (tm@netcom.com)
-! hacked by J"orn Rernnecke (joern.rennecke@superh.com) ("o for o-umlaut)
-! SH5 code Copyright 2002 SuperH Ltd.
-!
-! Entry: ARG0: destination pointer
-! ARG1: source pointer
-! ARG2: byte count
-!
-! Exit: RESULT: destination pointer
-! any other registers in the range r0-r7: trashed
-!
-! Notes: Usually one wants to do small reads and write a longword, but
-! unfortunately it is difficult in some cases to concatanate bytes
-! into a longword on the SH, so this does a longword read and small
-! writes.
-!
-! This implementation makes two assumptions about how it is called:
-!
-! 1.: If the byte count is nonzero, the address of the last byte to be
-! copied is unsigned greater than the address of the first byte to
-! be copied. This could be easily swapped for a signed comparison,
-! but the algorithm used needs some comparison.
-!
-! 2.: When there are two or three bytes in the last word of an 11-or-more
-! bytes memory chunk to b copied, the rest of the word can be read
-! without side effects.
-! This could be easily changed by increasing the minumum size of
-! a fast memcpy and the amount subtracted from r7 before L_2l_loop be 2,
-! however, this would cost a few extra cyles on average.
-! For SHmedia, the assumption is that any quadword can be read in its
-! enirety if at least one byte is included in the copy.
-!
-
-#include <features.h>
-
- .section .text..SHmedia32,"ax"
- .globl memcpy
- .type memcpy, @function
- .align 5
-
-memcpy:
-
-#define LDUAQ(P,O,D0,D1) ldlo.q P,O,D0; ldhi.q P,O+7,D1
-#define STUAQ(P,O,D0,D1) stlo.q P,O,D0; sthi.q P,O+7,D1
-#define LDUAL(P,O,D0,D1) ldlo.l P,O,D0; ldhi.l P,O+3,D1
-#define STUAL(P,O,D0,D1) stlo.l P,O,D0; sthi.l P,O+3,D1
-
- ld.b r3,0,r63
- pta/l Large,tr0
- movi 25,r0
- bgeu/u r4,r0,tr0
- nsb r4,r0
- shlli r0,5,r0
- movi (L1-L0+63*32 + 1) & 0xffff,r1
- sub r1, r0, r0
-L0: ptrel r0,tr0
- add r2,r4,r5
- ptabs r18,tr1
- add r3,r4,r6
- blink tr0,r63
-
-/* Rearranged to make cut2 safe */
- .balign 8
-L4_7: /* 4..7 byte memcpy cntd. */
- stlo.l r2, 0, r0
- or r6, r7, r6
- sthi.l r5, -1, r6
- stlo.l r5, -4, r6
- blink tr1,r63
-
- .balign 8
-L1: /* 0 byte memcpy */
- nop
- blink tr1,r63
- nop
- nop
- nop
- nop
-
-L2_3: /* 2 or 3 byte memcpy cntd. */
- st.b r5,-1,r6
- blink tr1,r63
-
- /* 1 byte memcpy */
- ld.b r3,0,r0
- st.b r2,0,r0
- blink tr1,r63
-
-L8_15: /* 8..15 byte memcpy cntd. */
- stlo.q r2, 0, r0
- or r6, r7, r6
- sthi.q r5, -1, r6
- stlo.q r5, -8, r6
- blink tr1,r63
-
- /* 2 or 3 byte memcpy */
- ld.b r3,0,r0
- ld.b r2,0,r63
- ld.b r3,1,r1
- st.b r2,0,r0
- pta/l L2_3,tr0
- ld.b r6,-1,r6
- st.b r2,1,r1
- blink tr0, r63
-
- /* 4 .. 7 byte memcpy */
- LDUAL (r3, 0, r0, r1)
- pta L4_7, tr0
- ldlo.l r6, -4, r7
- or r0, r1, r0
- sthi.l r2, 3, r0
- ldhi.l r6, -1, r6
- blink tr0, r63
-
- /* 8 .. 15 byte memcpy */
- LDUAQ (r3, 0, r0, r1)
- pta L8_15, tr0
- ldlo.q r6, -8, r7
- or r0, r1, r0
- sthi.q r2, 7, r0
- ldhi.q r6, -1, r6
- blink tr0, r63
-
- /* 16 .. 24 byte memcpy */
- LDUAQ (r3, 0, r0, r1)
- LDUAQ (r3, 8, r8, r9)
- or r0, r1, r0
- sthi.q r2, 7, r0
- or r8, r9, r8
- sthi.q r2, 15, r8
- ldlo.q r6, -8, r7
- ldhi.q r6, -1, r6
- stlo.q r2, 8, r8
- stlo.q r2, 0, r0
- or r6, r7, r6
- sthi.q r5, -1, r6
- stlo.q r5, -8, r6
- blink tr1,r63
-
-Large:
- ld.b r2, 0, r63
- pta/l Loop_ua, tr1
- ori r3, -8, r7
- sub r2, r7, r22
- sub r3, r2, r6
- add r2, r4, r5
- ldlo.q r3, 0, r0
- addi r5, -16, r5
- movi 64+8, r27 /* could subtract r7 from that. */
- stlo.q r2, 0, r0
- sthi.q r2, 7, r0
- ldx.q r22, r6, r0
- bgtu/l r27, r4, tr1
-
- addi r5, -48, r27
- pta/l Loop_line, tr0
- addi r6, 64, r36
- addi r6, -24, r19
- addi r6, -16, r20
- addi r6, -8, r21
-
-Loop_line:
- ldx.q r22, r36, r63
- alloco r22, 32
- addi r22, 32, r22
- ldx.q r22, r19, r23
- sthi.q r22, -25, r0
- ldx.q r22, r20, r24
- ldx.q r22, r21, r25
- stlo.q r22, -32, r0
- ldx.q r22, r6, r0
- sthi.q r22, -17, r23
- sthi.q r22, -9, r24
- sthi.q r22, -1, r25
- stlo.q r22, -24, r23
- stlo.q r22, -16, r24
- stlo.q r22, -8, r25
- bgeu r27, r22, tr0
-
-Loop_ua:
- addi r22, 8, r22
- sthi.q r22, -1, r0
- stlo.q r22, -8, r0
- ldx.q r22, r6, r0
- bgtu/l r5, r22, tr1
-
- add r3, r4, r7
- ldlo.q r7, -8, r1
- sthi.q r22, 7, r0
- ldhi.q r7, -1, r7
- ptabs r18,tr1
- stlo.q r22, 0, r0
- or r1, r7, r1
- sthi.q r5, 15, r1
- stlo.q r5, 8, r1
- blink tr1, r63
-
- .size memcpy,.-memcpy
-
-libc_hidden_def(memcpy)
diff --git a/libc/string/sh64/memset.S b/libc/string/sh64/memset.S
deleted file mode 100644
index 1b8812cd6..000000000
--- a/libc/string/sh64/memset.S
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Cloned and hacked for uClibc by Paul Mundt, December 2003 */
-/* Modified by SuperH, Inc. September 2003 */
-!
-! Fast SH memset
-!
-! by Toshiyasu Morita (tm@netcom.com)
-!
-! SH5 code by J"orn Rennecke (joern.rennecke@superh.com)
-! Copyright 2002 SuperH Ltd.
-!
-
-#include <features.h>
-#include <endian.h>
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define SHHI shlld
-#define SHLO shlrd
-#else
-#define SHHI shlrd
-#define SHLO shlld
-#endif
-
- .section .text..SHmedia32,"ax"
- .globl memset
- .type memset, @function
-
- .align 5
-
-memset:
- pta/l multiquad, tr0
- andi r2, 7, r22
- ptabs r18, tr2
- mshflo.b r3,r3,r3
- add r4, r22, r23
- mperm.w r3, r63, r3 /* Fill pattern now in every byte of r3 */
-
- movi 8, r9
- bgtu/u r23, r9, tr0 /* multiquad */
-
- beqi/u r4, 0, tr2 /* Return with size 0 - ensures no mem accesses */
- ldlo.q r2, 0, r7
- shlli r4, 2, r4
- movi -1, r8
- SHHI r8, r4, r8
- SHHI r8, r4, r8
- mcmv r7, r8, r3
- stlo.q r2, 0, r3
- blink tr2, r63
-
-multiquad:
- pta/l lastquad, tr0
- stlo.q r2, 0, r3
- shlri r23, 3, r24
- add r2, r4, r5
- beqi/u r24, 1, tr0 /* lastquad */
- pta/l loop, tr1
- sub r2, r22, r25
- andi r5, -8, r20 /* calculate end address and */
- addi r20, -7*8, r8 /* loop end address; This might overflow, so we need
- to use a different test before we start the loop
- */
- bge/u r24, r9, tr1 /* loop */
- st.q r25, 8, r3
- st.q r20, -8, r3
- shlri r24, 1, r24
- beqi/u r24, 1, tr0 /* lastquad */
- st.q r25, 16, r3
- st.q r20, -16, r3
- beqi/u r24, 2, tr0 /* lastquad */
- st.q r25, 24, r3
- st.q r20, -24, r3
-lastquad:
- sthi.q r5, -1, r3
- blink tr2,r63
-
-loop:
-!!! alloco r25, 32 /* QQQ comment out for short-term fix to SHUK #3895.
- QQQ commenting out is locically correct, but sub-optimal
- QQQ Sean McGoogan - 4th April 2003. */
- st.q r25, 8, r3
- st.q r25, 16, r3
- st.q r25, 24, r3
- st.q r25, 32, r3
- addi r25, 32, r25
- bgeu/l r8, r25, tr1 /* loop */
-
- st.q r20, -40, r3
- st.q r20, -32, r3
- st.q r20, -24, r3
- st.q r20, -16, r3
- st.q r20, -8, r3
- sthi.q r5, -1, r3
- blink tr2,r63
-
- .size memset,.-memset
-
-libc_hidden_def(memset)
diff --git a/libc/string/sh64/strcpy.S b/libc/string/sh64/strcpy.S
deleted file mode 100644
index f317707b7..000000000
--- a/libc/string/sh64/strcpy.S
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Cloned and hacked for uClibc by Paul Mundt, December 2003 */
-/* Modified by SuperH, Inc. September 2003 */
-! Entry: arg0: destination
-! arg1: source
-! Exit: result: destination
-!
-! SH5 code Copyright 2002 SuperH Ltd.
-
-#include <features.h>
-#include <endian.h>
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define SHHI shlld
-#define SHLO shlrd
-#else
-#define SHHI shlrd
-#define SHLO shlld
-#endif
-
- .section .text..SHmedia32,"ax"
- .globl strcpy
- .type strcpy, @function
- .align 5
-
-strcpy:
-
- pta/l shortstring,tr1
- ldlo.q r3,0,r4
- ptabs r18,tr4
- shlli r3,3,r7
- addi r2, 8, r0
- mcmpeq.b r4,r63,r6
- SHHI r6,r7,r6
- bnei/u r6,0,tr1 /* shortstring */
- pta/l no_lddst, tr2
- ori r3,-8,r23
- sub r2, r23, r0
- sub r3, r2, r21
- addi r21, 8, r20
- ldx.q r0, r21, r5
- pta/l loop, tr0
- ori r2,-8,r22
- mcmpeq.b r5, r63, r6
- bgt/u r22, r23, tr2 /* no_lddst */
-
- /* r22 < r23 : Need to do a load from the destination. */
- /* r22 == r23 : Doesn't actually need to load from destination, */
- /* but still can be handled here. */
- ldlo.q r2, 0, r9
- movi -1, r8
- SHLO r8, r7, r8
- mcmv r4, r8, r9
- stlo.q r2, 0, r9
- beqi/l r6, 0, tr0 /* loop */
-
- add r5, r63, r4
- addi r0, 8, r0
- blink tr1, r63 /* shortstring */
-no_lddst:
- /* r22 > r23: note that for r22 == r23 the sthi.q would clobber */
- /* bytes before the destination region. */
- stlo.q r2, 0, r4
- SHHI r4, r7, r4
- sthi.q r0, -1, r4
- beqi/l r6, 0, tr0 /* loop */
-
- add r5, r63, r4
- addi r0, 8, r0
-shortstring:
-#if __BYTE_ORDER != __LITTLE_ENDIAN
- pta/l shortstring2,tr1
- byterev r4,r4
-#endif
-shortstring2:
- st.b r0,-8,r4
- andi r4,0xff,r5
- shlri r4,8,r4
- addi r0,1,r0
- bnei/l r5,0,tr1
- blink tr4,r63 /* return */
-
- .balign 8
-loop:
- stlo.q r0, 0, r5
- ldx.q r0, r20, r4
- addi r0, 16, r0
- sthi.q r0, -9, r5
- mcmpeq.b r4, r63, r6
- bnei/u r6, 0, tr1 /* shortstring */
- ldx.q r0, r21, r5
- stlo.q r0, -8, r4
- sthi.q r0, -1, r4
- mcmpeq.b r5, r63, r6
- beqi/l r6, 0, tr0 /* loop */
-
- add r5, r63, r4
- addi r0, 8, r0
- blink tr1, r63 /* shortstring */
-
- .size strcpy,.-strcpy
-
-libc_hidden_def(strcpy)
diff --git a/libc/string/sh64/strlen.S b/libc/string/sh64/strlen.S
deleted file mode 100644
index 18f4164ff..000000000
--- a/libc/string/sh64/strlen.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/* vi: set sw=8 ts=8: */
-/*
- * libc/string/sh64/strlen.S
- *
- * Simplistic strlen() implementation for SHmedia.
- *
- * Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org>
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. The name of the above contributors may not be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <features.h>
-
- .section .text..SHmedia32,"ax"
- .globl strlen
- .type strlen,@function
-
- .balign 16
-strlen:
- ptabs r18, tr4
-
- /*
- * Note: We could easily deal with the NULL case here with a simple
- * sanity check, though it seems that the behavior we want is to fault
- * in the event that r2 == NULL, so we don't bother.
- */
-/* beqi r2, 0, tr4 */ ! Sanity check
-
- movi -1, r0
- pta/l loop, tr0
-loop:
- ld.b r2, 0, r1
- addi r2, 1, r2
- addi r0, 1, r0
- bnei/l r1, 0, tr0
-
- or r0, r63, r2
- blink tr4, r63
-
- .size strlen,.-strlen
-
-libc_hidden_def(strlen)
diff --git a/libc/sysdeps/linux/sh64/Makefile b/libc/sysdeps/linux/sh64/Makefile
deleted file mode 100644
index ecbf14228..000000000
--- a/libc/sysdeps/linux/sh64/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# Makefile for uClibc
-#
-# Copyright (C) 2001 SuperH (UK) Ltd.
-# Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_srcdir=../../../../
-top_builddir=../../../../
-all: objs
-include $(top_builddir)Rules.mak
-include Makefile.arch
-include $(top_srcdir)Makerules
-TOPDIR=../../../../
-include $(TOPDIR)Rules.mak
diff --git a/libc/sysdeps/linux/sh64/Makefile.arch b/libc/sysdeps/linux/sh64/Makefile.arch
deleted file mode 100644
index 02fcd0b18..000000000
--- a/libc/sysdeps/linux/sh64/Makefile.arch
+++ /dev/null
@@ -1,10 +0,0 @@
-# Makefile for uClibc
-#
-# Copyright (C) 2008 Paul Mundt <lethal@linux-sh.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-CSRC-y := __init_brk.c brk.c sbrk.c syscall.c
-
-SSRC-y := setjmp.S __longjmp.S
diff --git a/libc/sysdeps/linux/sh64/__init_brk.c b/libc/sysdeps/linux/sh64/__init_brk.c
deleted file mode 100644
index 8a41eb3c4..000000000
--- a/libc/sysdeps/linux/sh64/__init_brk.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* From libc-5.3.12 */
-
-#include <errno.h>
-#include <unistd.h>
-#include <sys/syscall.h>
-
-void * __curbrk attribute_hidden = 0;
-
-#define __NR__brk __NR_brk
-attribute_hidden _syscall1(void *, _brk, void *, ptr)
-
-extern int __init_brk (void) attribute_hidden;
-int
-__init_brk (void)
-{
- if (__curbrk == 0)
- {
- __curbrk = _brk(0);
- if (__curbrk == 0)
- {
- __set_errno(ENOMEM);
- return -1;
- }
- }
- return 0;
-}
diff --git a/libc/sysdeps/linux/sh64/__longjmp.S b/libc/sysdeps/linux/sh64/__longjmp.S
deleted file mode 100644
index 84343d1bf..000000000
--- a/libc/sysdeps/linux/sh64/__longjmp.S
+++ /dev/null
@@ -1,140 +0,0 @@
-/* __longjmp for SH-5.
- 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 Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
-
-#define INTEGER(reg,offset) ld.q r2, offset*8, reg
-#define DOUBLE(reg,offset) fld.d r2, offset*8, reg
-
-
- .file "__longjmp.S"
-
- .section .text64,"xa"
- .align 2
-
- .global __longjmp
- .type __longjmp,@function
-
-__longjmp:
- /*
- * extern void __longjmp(jmp_buf env, int val);
- *
- * r2 == env
- * r3 == val
- * r4 == temporary
- */
-
- /* callee-save registers R10-R16 */
- INTEGER(r10, __SETJMP_INT(0))
- INTEGER(r11, __SETJMP_INT(1))
- INTEGER(r12, __SETJMP_INT(2))
- INTEGER(r13, __SETJMP_INT(3))
- INTEGER(r14, __SETJMP_INT(4))
- INTEGER(r15, __SETJMP_INT(5))
- INTEGER(r16, __SETJMP_INT(6))
-
- /* callee-save registers R28-R35 */
- INTEGER(r28, __SETJMP_INT(7))
- INTEGER(r29, __SETJMP_INT(8))
- INTEGER(r30, __SETJMP_INT(9))
- INTEGER(r31, __SETJMP_INT(10))
- INTEGER(r32, __SETJMP_INT(11))
- INTEGER(r33, __SETJMP_INT(12))
- INTEGER(r34, __SETJMP_INT(13))
- INTEGER(r35, __SETJMP_INT(14))
-
- /* callee-save registers R44-R59 */
- INTEGER(r44, __SETJMP_INT(15))
- INTEGER(r45, __SETJMP_INT(16))
- INTEGER(r46, __SETJMP_INT(17))
- INTEGER(r47, __SETJMP_INT(18))
- INTEGER(r48, __SETJMP_INT(19))
- INTEGER(r49, __SETJMP_INT(20))
- INTEGER(r50, __SETJMP_INT(21))
- INTEGER(r51, __SETJMP_INT(22))
- INTEGER(r52, __SETJMP_INT(23))
- INTEGER(r53, __SETJMP_INT(24))
- INTEGER(r54, __SETJMP_INT(25))
- INTEGER(r55, __SETJMP_INT(26))
- INTEGER(r56, __SETJMP_INT(27))
- INTEGER(r57, __SETJMP_INT(28))
- INTEGER(r58, __SETJMP_INT(29))
- INTEGER(r59, __SETJMP_INT(30))
-
- #if __SETJMP_NUM_INT != 31
- #error __SETJMP_NUM_INT does agree with expected value
- #endif
-
-#if __SETJMP_NUM_DBL > 0
- /* callee-save registers FR12-FR15 */
- DOUBLE(d12, __SETJMP_DBL(0))
- DOUBLE(d14, __SETJMP_DBL(1))
-
- /* callee-save registers FR36-FR63 */
- DOUBLE(d36, __SETJMP_DBL(2))
- DOUBLE(d38, __SETJMP_DBL(3))
- DOUBLE(d40, __SETJMP_DBL(4))
- DOUBLE(d42, __SETJMP_DBL(5))
- DOUBLE(d44, __SETJMP_DBL(6))
- DOUBLE(d46, __SETJMP_DBL(7))
- DOUBLE(d48, __SETJMP_DBL(8))
- DOUBLE(d50, __SETJMP_DBL(9))
- DOUBLE(d52, __SETJMP_DBL(10))
- DOUBLE(d54, __SETJMP_DBL(11))
- DOUBLE(d56, __SETJMP_DBL(12))
- DOUBLE(d58, __SETJMP_DBL(13))
- DOUBLE(d60, __SETJMP_DBL(14))
- DOUBLE(d62, __SETJMP_DBL(15))
-
- #if __SETJMP_NUM_DBL != 16
- #error __SETJMP_NUM_DBL does agree with expected value
- #endif
-
-#endif /* __SETJMP_NUM_DBL > 0 */
-
- /* callee-save registers TR5-TR7 */
- INTEGER(r4, __SETJMP_TRG(0))
- ptabs r4, tr5
- INTEGER(r4, __SETJMP_TRG(1))
- ptabs r4, tr6
- INTEGER(r4, __SETJMP_TRG(2))
- ptabs r4, tr7
-
- #if __SETJMP_NUM_TRG != 3
- #error __SETJMP_NUM_TRG does agree with expected value
- #endif
-
- /* restore Linkage Register (LR) for __longjmp return */
- INTEGER(r18, __SETJMP_LR)
- ptabs/l r18, tr0
-
- /*
- * must ensure __longjmp() never returns 0.
- * if 'val' == 0, then return 1.
- */
- cmpeq r3, r63, r2 /* r2 = (r3==0) ? 1 : 0; */
- add.l r3, r2, r2 /* return value */
-
- /* return to caller */
- blink tr0, r63
-
-libc_hidden_def(__longjmp)
diff --git a/libc/sysdeps/linux/sh64/bits/endian.h b/libc/sysdeps/linux/sh64/bits/endian.h
deleted file mode 100644
index ae7e3bb2d..000000000
--- a/libc/sysdeps/linux/sh64/bits/endian.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * libc/sysdeps/linux/sh64/bits/endian.h
- *
- * Copyright (C) 2003 Paul Mundt
- *
- * This file is subject to the terms and conditions of the GNU Lesser
- * General Public License. See the file COPYING.LIB in the main
- * directory of this archive for more details.
- */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#else
-# define __BYTE_ORDER __BIG_ENDIAN
-#endif
-
diff --git a/libc/sysdeps/linux/sh64/bits/fcntl.h b/libc/sysdeps/linux/sh64/bits/fcntl.h
deleted file mode 100644
index b319e8bcd..000000000
--- a/libc/sysdeps/linux/sh64/bits/fcntl.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995, 1996, 1997, 1998, 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, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _FCNTL_H
-# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-#endif
-
-
-#include <sys/types.h>
-
-/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
- located on an ext2 file system */
-#define O_ACCMODE 0003
-#define O_RDONLY 00
-#define O_WRONLY 01
-#define O_RDWR 02
-#define O_CREAT 0100 /* not fcntl */
-#define O_EXCL 0200 /* not fcntl */
-#define O_NOCTTY 0400 /* not fcntl */
-#define O_TRUNC 01000 /* not fcntl */
-#define O_APPEND 02000
-#define O_NONBLOCK 04000
-#define O_NDELAY O_NONBLOCK
-#define O_SYNC 010000
-#define O_FSYNC O_SYNC
-#define O_ASYNC 020000
-
-#ifdef __USE_GNU
-# define O_DIRECT 040000 /* Direct disk access. */
-# define O_DIRECTORY 0200000 /* Must be a directory. */
-# define O_NOFOLLOW 0400000 /* Do not follow links. */
-# define O_NOATIME 01000000 /* Do not set atime. */
-# define O_CLOEXEC 02000000 /* set close_on_exec */
-#endif
-
-/* For now Linux has synchronisity options for data and read operations.
- We define the symbols here but let them do the same as O_SYNC since
- this is a superset. */
-#if defined __USE_POSIX199309 || defined __USE_UNIX98
-# define O_DSYNC O_SYNC /* Synchronize data. */
-# define O_RSYNC O_SYNC /* Synchronize read operations. */
-#endif
-
-#ifdef __USE_LARGEFILE64
-# define O_LARGEFILE 0100000
-#endif
-
-/* Values for the second argument to `fcntl'. */
-#define F_DUPFD 0 /* Duplicate file descriptor. */
-#define F_GETFD 1 /* Get file descriptor flags. */
-#define F_SETFD 2 /* Set file descriptor flags. */
-#define F_GETFL 3 /* Get file status flags. */
-#define F_SETFL 4 /* Set file status flags. */
-#ifndef __USE_FILE_OFFSET64
-# define F_GETLK 5 /* Get record locking info. */
-# define F_SETLK 6 /* Set record locking info (non-blocking). */
-# define F_SETLKW 7 /* Set record locking info (blocking). */
-#else
-# define F_GETLK F_GETLK64 /* Get record locking info. */
-# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
-# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
-#endif
-#define F_GETLK64 12 /* Get record locking info. */
-#define F_SETLK64 13 /* Set record locking info (non-blocking). */
-#define F_SETLKW64 14 /* Set record locking info (blocking). */
-
-#if defined __USE_BSD || defined __USE_XOPEN2K
-# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
-# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
-#endif
-
-#ifdef __USE_GNU
-# define F_SETSIG 10 /* Set number of signal to be sent. */
-# define F_GETSIG 11 /* Get number of signal to be sent. */
-#endif
-
-#ifdef __USE_GNU
-# define F_SETLEASE 1024 /* Set a lease. */
-# define F_GETLEASE 1025 /* Enquire what lease is active. */
-# define F_NOTIFY 1026 /* Request notfications on a directory. */
-# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
- close-on-exit set on new fd. */
-# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
-# define F_GETPIPE_SZ 1032 /* Get pipe page size array. */
-#endif
-
-/* For F_[GET|SET]FL. */
-#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
-
-/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
-#define F_RDLCK 0 /* Read lock. */
-#define F_WRLCK 1 /* Write lock. */
-#define F_UNLCK 2 /* Remove lock. */
-
-/* For old implementation of bsd flock(). */
-#define F_EXLCK 4 /* or 3 */
-#define F_SHLCK 8 /* or 4 */
-
-#ifdef __USE_BSD
-/* Operations for bsd flock(), also used by the kernel implementation. */
-# define LOCK_SH 1 /* shared lock */
-# define LOCK_EX 2 /* exclusive lock */
-# define LOCK_NB 4 /* or'd with one of the above to prevent
- blocking */
-# define LOCK_UN 8 /* remove lock */
-#endif
-
-struct flock
- {
- short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
- short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
-#ifndef __USE_FILE_OFFSET64
- __off_t l_start; /* Offset where the lock begins. */
- __off_t l_len; /* Size of the locked area; zero means until EOF. */
-#else
- __off64_t l_start; /* Offset where the lock begins. */
- __off64_t l_len; /* Size of the locked area; zero means until EOF. */
-#endif
- __pid_t l_pid; /* Process holding the lock. */
- };
-
-#ifdef __USE_LARGEFILE64
-struct flock64
- {
- short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
- short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
- __off64_t l_start; /* Offset where the lock begins. */
- __off64_t l_len; /* Size of the locked area; zero means until EOF. */
- __pid_t l_pid; /* Process holding the lock. */
- };
-#endif
-
-/* Define some more compatibility macros to be backward compatible with
- BSD systems which did not managed to hide these kernel macros. */
-#ifdef __USE_BSD
-# define FAPPEND O_APPEND
-# define FFSYNC O_FSYNC
-# define FASYNC O_ASYNC
-# define FNONBLOCK O_NONBLOCK
-# define FNDELAY O_NDELAY
-#endif /* Use BSD. */
-
-/* Advise to `posix_fadvise'. */
-#ifdef __USE_XOPEN2K
-# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
-# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
-# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
-# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
-# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
-# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
-#endif
-
-
-#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
-/* Flags for SYNC_FILE_RANGE. */
-# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
- in the range before performing the
- write. */
-# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
- dirty pages in the range which are
- not presently under writeback. */
-# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
- the range after performing the
- write. */
-
-/* Flags for SPLICE and VMSPLICE. */
-# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
-# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
- (but we may still block on the fd
- we splice from/to). */
-# define SPLICE_F_MORE 4 /* Expect more data. */
-# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
-#endif
-
-__BEGIN_DECLS
-
-#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
-
-/* Provide kernel hint to read ahead. */
-extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
- __THROW;
-
-
-/* Selective file content synch'ing. */
-extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
- unsigned int __flags);
-
-/* Splice address range into a pipe. */
-extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
- size_t __count, unsigned int __flags);
-
-/* Splice two files together. */
-extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len,
- unsigned int __flags);
-
-/* In-kernel implementation of tee for pipe buffers. */
-extern ssize_t tee (int __fdin, int __fdout, size_t __len,
- unsigned int __flags);
-
-#endif
-__END_DECLS
-
diff --git a/libc/sysdeps/linux/sh64/bits/kernel_stat.h b/libc/sysdeps/linux/sh64/bits/kernel_stat.h
deleted file mode 100644
index 1a29433e1..000000000
--- a/libc/sysdeps/linux/sh64/bits/kernel_stat.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Stat structure for Linux/sh64 */
-
-#ifndef _BITS_STAT_STRUCT_H
-#define _BITS_STAT_STRUCT_H
-
-struct kernel_stat {
- unsigned short st_dev;
- unsigned short __pad1;
- unsigned long st_ino;
- unsigned short st_mode;
- unsigned short st_nlink;
- unsigned short st_uid;
- unsigned short st_gid;
- unsigned short st_rdev;
- unsigned short __pad2;
- unsigned long st_size;
- unsigned long st_blksize;
- unsigned long st_blocks;
- struct timespec st_atim;
- struct timespec st_mtim;
- struct timespec st_ctim;
- unsigned long __unused4;
- unsigned long __unused5;
-};
-
-struct kernel_stat64 {
- unsigned short st_dev;
- unsigned char __pad0[10];
-
- unsigned long st_ino;
- unsigned int st_mode;
- unsigned int st_nlink;
-
- unsigned long st_uid;
- unsigned long st_gid;
-
- unsigned short st_rdev;
- unsigned char __pad3[10];
-
- long long st_size;
- unsigned long st_blksize;
-
- unsigned long st_blocks; /* Number 512-byte blocks allocated. */
- unsigned long __pad4; /* future possible st_blocks high bits */
-
- struct timespec st_atim;
- struct timespec st_mtim;
- struct timespec st_ctim;
-
- unsigned long __unused1;
- unsigned long __unused2;
-};
-
-#endif /* _BITS_STAT_STRUCT_H */
-
diff --git a/libc/sysdeps/linux/sh64/bits/kernel_types.h b/libc/sysdeps/linux/sh64/bits/kernel_types.h
deleted file mode 100644
index 8cc6c6184..000000000
--- a/libc/sysdeps/linux/sh64/bits/kernel_types.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * sysdeps/linux/sh64/bits/kernel_types.h
- *
- * Copyright (C) 2000, 2001 Paolo Alberelli
- * Copyright (C) 2003 Paul Mundt
- *
- * This file is subject to the terms and conditions of the GNU Lesser
- * General Public License. See the file COPYING.LIB in the main
- * directory of this archive for more details.
- */
-
-/*
- * Note that we use the exact same include guard #define names
- * as asm/posix_types.h. This will avoid gratuitous conflicts
- * with the posix_types.h kernel header, and will ensure that
- * our private content, and not the kernel header, will win.
- * -Erik
- */
-#ifndef __ASM_SH64_POSIX_TYPES_H
-#define __ASM_SH64_POSIX_TYPES_H
-
-typedef unsigned short __kernel_dev_t;
-typedef unsigned long __kernel_ino_t;
-typedef unsigned short __kernel_mode_t;
-typedef unsigned short __kernel_nlink_t;
-typedef long __kernel_off_t;
-typedef int __kernel_pid_t;
-typedef unsigned short __kernel_ipc_pid_t;
-typedef unsigned short __kernel_uid_t;
-typedef unsigned short __kernel_gid_t;
-typedef long unsigned int __kernel_size_t;
-typedef int __kernel_ssize_t;
-typedef int __kernel_ptrdiff_t;
-typedef long __kernel_time_t;
-typedef long __kernel_suseconds_t;
-typedef long __kernel_clock_t;
-typedef int __kernel_daddr_t;
-typedef char * __kernel_caddr_t;
-typedef unsigned short __kernel_uid16_t;
-typedef unsigned short __kernel_gid16_t;
-typedef unsigned int __kernel_uid32_t;
-typedef unsigned int __kernel_gid32_t;
-typedef unsigned short __kernel_old_uid_t;
-typedef unsigned short __kernel_old_gid_t;
-typedef __kernel_dev_t __kernel_old_dev_t;
-typedef long __kernel_long_t;
-typedef unsigned long __kernel_ulong_t;
-typedef long long __kernel_loff_t;
-
-typedef struct {
-#ifdef __USE_ALL
- int val[2];
-#else
- int __val[2];
-#endif
-} __kernel_fsid_t;
-
-#endif /* __ASM_SH64_POSIX_TYPES_H */
diff --git a/libc/sysdeps/linux/sh64/bits/setjmp.h b/libc/sysdeps/linux/sh64/bits/setjmp.h
deleted file mode 100644
index 5d13b883c..000000000
--- a/libc/sysdeps/linux/sh64/bits/setjmp.h
+++ /dev/null
@@ -1,46 +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, see
- <http://www.gnu.org/licenses/>. */
-
-/* Define the machine-dependent type `jmp_buf'. SH-5 version. */
-#ifndef _BITS_SETJMP_H
-#define _BITS_SETJMP_H 1
-
-#if !defined _SETJMP_H && !defined _PTHREAD_H
-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-#endif
-
-#define __SETJMP_NUM_INT 31 /* number of integer registers to save */
-#define __SETJMP_NUM_DBL 0 /* 16 */ /* number of double registers to save */
-#define __SETJMP_NUM_TRG 3 /* number of traget registers to save */
-
-#define __SETJMP_INT(x) (x)
-#define __SETJMP_DBL(x) (__SETJMP_NUM_INT+(x))
-#define __SETJMP_TRG(x) (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+(x))
-#define __SETJMP_LR (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+__SETJMP_NUM_TRG)
-
-typedef struct
- {
- /* Callee-saved registers. */
- unsigned long long __ints[__SETJMP_NUM_INT]; /* integer registers */
-#if __SETJMP_NUM_DBL > 0
- unsigned long long __dbls[__SETJMP_NUM_DBL]; /* double registers */
-#endif
- unsigned long long __trgs[__SETJMP_NUM_TRG]; /* traget registers */
- unsigned long long __lr; /* linkage register */
- } __jmp_buf[1];
-
-#endif /* bits/setjmp.h */
diff --git a/libc/sysdeps/linux/sh64/bits/shm.h b/libc/sysdeps/linux/sh64/bits/shm.h
deleted file mode 100644
index 274f36a78..000000000
--- a/libc/sysdeps/linux/sh64/bits/shm.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright (C) 1995,1996,1997,2000,2002,2004 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, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getpagesize() << 2)
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a set of semaphores. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
- unsigned long int __unused1;
- __time_t shm_dtime; /* time of last shmdt() */
- unsigned long int __unused2;
- __time_t shm_ctime; /* time of last change by shmctl() */
- unsigned long int __unused3;
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __unused4;
- unsigned long int __unused5;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __unused1;
- unsigned long int __unused2;
- unsigned long int __unused3;
- unsigned long int __unused4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/libc/sysdeps/linux/sh64/bits/stackinfo.h b/libc/sysdeps/linux/sh64/bits/stackinfo.h
deleted file mode 100644
index c52e7d7b7..000000000
--- a/libc/sysdeps/linux/sh64/bits/stackinfo.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 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
- 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, see
- <http://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-/* On SH the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-#endif /* stackinfo.h */
diff --git a/libc/sysdeps/linux/sh64/bits/syscalls.h b/libc/sysdeps/linux/sh64/bits/syscalls.h
deleted file mode 100644
index 84877d042..000000000
--- a/libc/sysdeps/linux/sh64/bits/syscalls.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef _BITS_SYSCALLS_H
-#define _BITS_SYSCALLS_H
-#ifndef _SYSCALL_H
-# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
-#endif
-
-#ifndef __ASSEMBLER__
-
-#include <errno.h>
-
-#define SYS_ify(syscall_name) (__NR_##syscall_name)
-
-/* user-visible error numbers are in the range -1 - -125: see <asm-sh64/errno.h> */
-#define __syscall_return(type, res) \
-do { \
- /* Note: when returning from kernel the return value is in r9 \
- ** This prevents conflicts between return value and arg1 \
- ** when dispatching signal handler, in other words makes \
- ** life easier in the system call epilogue (see entry.S) \
- */ \
- register unsigned long __sr2 __asm__ ("r2") = res; \
- if ((unsigned long)(res) >= (unsigned long)(-125)) { \
- errno = -(res); \
- __sr2 = -1; \
- } \
- return (type) (__sr2); \
-} while (0)
-
-/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
-
-#define _syscall0(type,name) \
-type name(void) \
-{ \
-register unsigned long __sc0 __asm__ ("r9") = ((0x10 << 16) | __NR_##name); \
-__asm__ __volatile__ ("trapa %1" \
- : "=r" (__sc0) \
- : "r" (__sc0) ); \
-__syscall_return(type,__sc0); \
-}
-
-#define _syscall1(type,name,type1,arg1) \
-type name(type1 arg1) \
-{ \
-register unsigned long __sc0 __asm__ ("r9") = ((0x11 << 16) | __NR_##name); \
-register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \
-__asm__ __volatile__ ("trapa %1" \
- : "=r" (__sc0) \
- : "r" (__sc0), "r" (__sc2)); \
-__syscall_return(type,__sc0); \
-}
-
-#define _syscall2(type,name,type1,arg1,type2,arg2) \
-type name(type1 arg1,type2 arg2) \
-{ \
-register unsigned long __sc0 __asm__ ("r9") = ((0x12 << 16) | __NR_##name); \
-register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \
-register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \
-__asm__ __volatile__ ("trapa %1" \
- : "=r" (__sc0) \
- : "r" (__sc0), "r" (__sc2), "r" (__sc3) ); \
-__syscall_return(type,__sc0); \
-}
-
-#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
-type name(type1 arg1,type2 arg2,type3 arg3) \
-{ \
-register unsigned long __sc0 __asm__ ("r9") = ((0x13 << 16) | __NR_##name); \
-register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \
-register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \
-register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3; \
-__asm__ __volatile__ ("trapa %1" \
- : "=r" (__sc0) \
- : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4) ); \
-__syscall_return(type,__sc0); \
-}
-
-#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
-{ \
-register unsigned long __sc0 __asm__ ("r9") = ((0x14 << 16) | __NR_##name); \
-register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \
-register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \
-register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3; \
-register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4; \
-__asm__ __volatile__ ("trapa %1" \
- : "=r" (__sc0) \
- : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5) );\
-__syscall_return(type,__sc0); \
-}
-
-#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
-type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
-{ \
-register unsigned long __sc0 __asm__ ("r9") = ((0x15 << 16) | __NR_##name); \
-register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \
-register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \
-register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3; \
-register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4; \
-register unsigned long __sc6 __asm__ ("r6") = (unsigned long) arg5; \
-__asm__ __volatile__ ("trapa %1" \
- : "=r" (__sc0) \
- : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5), \
- "r" (__sc6)); \
-__syscall_return(type,__sc0); \
-}
-
-#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5, type6, arg6) \
-type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) \
-{ \
-register unsigned long __sc0 __asm__ ("r9") = ((0x16 << 16) | __NR_##name); \
-register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \
-register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \
-register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3; \
-register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4; \
-register unsigned long __sc6 __asm__ ("r6") = (unsigned long) arg5; \
-register unsigned long __sc7 __asm__ ("r7") = (unsigned long) arg6; \
-__asm__ __volatile__ ("trapa %1" \
- : "=r" (__sc0) \
- : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5), \
- "r" (__sc6), "r" (__sc7)); \
-__syscall_return(type,__sc0); \
-}
-
-#endif /* __ASSEMBLER__ */
-#endif /* _BITS_SYSCALLS_H */
-
diff --git a/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h b/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h
deleted file mode 100644
index e2091b5da..000000000
--- a/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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__ "movi 0x10, r9; shori 0xff, r9; trapa r9"
-
-/* can your target use syscall6() for mmap ? */
-#undef __UCLIBC_MMAP_HAS_6_ARGS__
-
-/* does your target align 64bit values in register pairs ? (32bit arches only) */
-#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
-/* does your target have a broken create_module() ? */
-#undef __UCLIBC_BROKEN_CREATE_MODULE__
-
-/* does your target have to worry about older [gs]etrlimit() ? */
-#undef __UCLIBC_HANDLE_OLDER_RLIMIT__
-
-/* does your target have an asm .set ? */
-#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
-
-/* define if target supports .weak */
-#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__
-
-/* define if target supports .weakext */
-#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__
-
-/* define if target supports CFI pseudo ops */
-#undef __UCLIBC_HAVE_ASM_CFI_DIRECTIVES__
-
-/* define if target supports IEEE signed zero floats */
-#define __UCLIBC_HAVE_SIGNED_ZERO__
-
-/* only weird assemblers generally need this */
-#undef __UCLIBC_ASM_LINE_SEP__
-
-#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
diff --git a/libc/sysdeps/linux/sh64/bits/wordsize.h b/libc/sysdeps/linux/sh64/bits/wordsize.h
deleted file mode 100644
index 7c2723be4..000000000
--- a/libc/sysdeps/linux/sh64/bits/wordsize.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * libc/sysdeps/linux/sh64/bits/wordsize.h
- *
- * Copyright (C) 2003 Paul Mundt
- *
- * This file is subject to the terms and conditions of the GNU Lesser
- * General Public License. See the file COPYING.LIB in the main
- * directory of this archive for more details.
- */
-
-#define __WORDSIZE 32
-
diff --git a/libc/sysdeps/linux/sh64/brk.c b/libc/sysdeps/linux/sh64/brk.c
deleted file mode 100644
index a98cd5446..000000000
--- a/libc/sysdeps/linux/sh64/brk.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* From libc-5.3.12 */
-/*
- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-#include <errno.h>
-#include <unistd.h>
-#include <sys/syscall.h>
-
-extern void * __curbrk attribute_hidden;
-extern int __init_brk (void) attribute_hidden;
-extern void *_brk(void *ptr) attribute_hidden;
-
-int brk(void * end_data_seg)
-{
- if (__init_brk () == 0)
- {
- __curbrk = _brk(end_data_seg);
- if (__curbrk == end_data_seg)
- return 0;
- __set_errno(ENOMEM);
- }
- return -1;
-}
-libc_hidden_def(brk)
diff --git a/libc/sysdeps/linux/sh64/crt1.S b/libc/sysdeps/linux/sh64/crt1.S
deleted file mode 100644
index 6cc3773b7..000000000
--- a/libc/sysdeps/linux/sh64/crt1.S
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Startup code for SH5 & ELF.
- Copyright (C) 1999 Free Software Foundation, Inc.
- Copyright (C) 2001 Hewlett-Packard Australia
-
- 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 Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-/* This is the canonical entry point, usually the first thing in the text
- segment.
-
- At this entry point, most registers' values are unspecified, except:
-
- sp The stack contains the arguments and environment:
- 0(sp) argc
- 4(sp) argv[0]
- ...
- (4*argc)(sp) NULL
- (4*(argc+1))(sp) envp[0]
- ...
- NULL
-*/
-
- .file "crt1.S"
-
- .globl _start
- .type _start,%function
- .type main,%function
-
- .section .text64,"xa"
- .align 2 /* 2^2 = 4 */
-
-_start:
- /* __uClibc_main (main, argc, argv, init, fini) */
- movi __main, r18
- or r2, r63, r18
-
- /* Pop argc off the stack and save a pointer to argv */
- ld.l r15, 0, r3 /* argc */
- addi r15, 4, r4 /* argv */
-
- movi _init, r5
- movi _fini, r6
-
- /* call main() */
- movi __uClibc_main, r17
- ptabs/l r17, tr0
- blink tr0, r18
-
- /* should never get here....*/
- movi abort, r17
- ptabs/l r17, tr0
- blink tr0, r63 /* call abort() => (r63) do not come back ... */
-
-/*
- * The following is a stub to stop the GNU toolchain
- * from calling its C-RTL initialization routines.
- */
-__main:
- movi main, r18
- ptabs/l r18, tr0
- blink tr0, r63
-
-/* Define a symbol for the first piece of initialized data. */
- .data
- .globl __data_start
-__data_start:
- .long 0
- .weak data_start
- data_start = __data_start
diff --git a/libc/sysdeps/linux/sh64/crti.S b/libc/sysdeps/linux/sh64/crti.S
deleted file mode 100644
index 597be363d..000000000
--- a/libc/sysdeps/linux/sh64/crti.S
+++ /dev/null
@@ -1,42 +0,0 @@
- .file "initfini.c"
- .section .text..SHmedia32,"ax"
- .little
-
- .section .init
- .hidden _init
- .align 2
- .global _init
- .type _init, @function
-_init:
- addi.l r15, -16, r15
- st.l r15, 4, r12
- movi (((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS0-.)) >> 16) & 65535), r12
- shori ((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS0-.)) & 65535), r12
- .LPCS0: ptrel/u r12, tr0
- st.l r15, 8, r14
- st.l r15, 12, r18
- add.l r15, r63, r14
- gettr tr0, r12
-
- .align 2
-
-
- .section .fini
- .hidden _fini
- .align 2
- .global _fini
- .type _fini, @function
-_fini:
- addi.l r15, -16, r15
- st.l r15, 4, r12
- movi (((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS1-.)) >> 16) & 65535), r12
- shori ((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS1-.)) & 65535), r12
- .LPCS1: ptrel/u r12, tr0
- st.l r15, 8, r14
- st.l r15, 12, r18
- add.l r15, r63, r14
- gettr tr0, r12
- .align 2
-
-
- .ident "GCC: (GNU) 3.3.2"
diff --git a/libc/sysdeps/linux/sh64/crtn.S b/libc/sysdeps/linux/sh64/crtn.S
deleted file mode 100644
index 501fe9167..000000000
--- a/libc/sysdeps/linux/sh64/crtn.S
+++ /dev/null
@@ -1,31 +0,0 @@
- .file "initfini.c"
- .section .text..SHmedia32,"ax"
- .little
-
- .section .init
- .hidden _init
- .align 2
- .global _init
- .type _init, @function
- add.l r14, r63, r15
- ld.l r15, 12, r18
- ld.l r15, 4, r12
- ld.l r15, 8, r14
- ptabs r18, tr0
- addi.l r15, 16, r15
- blink tr0, r63
-
- .section .fini
- .hidden _fini
- .align 2
- .global _fini
- .type _fini, @function
- add.l r14, r63, r15
- ld.l r15, 12, r18
- ld.l r15, 4, r12
- ld.l r15, 8, r14
- ptabs r18, tr0
- addi.l r15, 16, r15
- blink tr0, r63
-
- .ident "GCC: (GNU) 3.3.2"
diff --git a/libc/sysdeps/linux/sh64/sbrk.c b/libc/sysdeps/linux/sh64/sbrk.c
deleted file mode 100644
index 2dc719a16..000000000
--- a/libc/sysdeps/linux/sh64/sbrk.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* From libc-5.3.12 */
-
-#include <errno.h>
-#include <unistd.h>
-#include <sys/syscall.h>
-
-extern void * __curbrk attribute_hidden;
-extern int __init_brk (void) attribute_hidden;
-extern void *_brk(void *ptr) attribute_hidden;
-
-void *
-sbrk(intptr_t increment)
-{
- if (__init_brk () == 0)
- {
- char * tmp = (char*)__curbrk+increment;
- __curbrk = _brk(tmp);
- if (__curbrk == tmp)
- return tmp-increment;
- __set_errno(ENOMEM);
- return ((void *) -1);
- }
- return ((void *) -1);
-}
-libc_hidden_def(sbrk)
diff --git a/libc/sysdeps/linux/sh64/setjmp.S b/libc/sysdeps/linux/sh64/setjmp.S
deleted file mode 100644
index f81961c17..000000000
--- a/libc/sysdeps/linux/sh64/setjmp.S
+++ /dev/null
@@ -1,139 +0,0 @@
-/* setjmp for SH-5.
- Copyright (C) 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
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
-
-#define INTEGER(reg,offset) st.q r2, offset*8, reg
-#define DOUBLE(reg,offset) fst.d r2, offset*8, reg
-
-
- .file "setjmp.S"
-
- .section .text64,"xa"
- .align 2
-
- .global __sigsetjmp
- .type __sigsetjmp,@function
-
-__sigsetjmp:
- /*
- * extern int __sigsetjmp(jmp_buf env, int savemask);
- *
- * r2 == env
- * r3 == savemask
- * r4 == temporary
- */
-
- /* callee-save registers R10-R16 */
- INTEGER(r10, __SETJMP_INT(0))
- INTEGER(r11, __SETJMP_INT(1))
- INTEGER(r12, __SETJMP_INT(2))
- INTEGER(r13, __SETJMP_INT(3))
- INTEGER(r14, __SETJMP_INT(4))
- INTEGER(r15, __SETJMP_INT(5))
- INTEGER(r16, __SETJMP_INT(6))
-
- /* callee-save registers R28-R35 */
- INTEGER(r28, __SETJMP_INT(7))
- INTEGER(r29, __SETJMP_INT(8))
- INTEGER(r30, __SETJMP_INT(9))
- INTEGER(r31, __SETJMP_INT(10))
- INTEGER(r32, __SETJMP_INT(11))
- INTEGER(r33, __SETJMP_INT(12))
- INTEGER(r34, __SETJMP_INT(13))
- INTEGER(r35, __SETJMP_INT(14))
-
- /* callee-save registers R44-R59 */
- INTEGER(r44, __SETJMP_INT(15))
- INTEGER(r45, __SETJMP_INT(16))
- INTEGER(r46, __SETJMP_INT(17))
- INTEGER(r47, __SETJMP_INT(18))
- INTEGER(r48, __SETJMP_INT(19))
- INTEGER(r49, __SETJMP_INT(20))
- INTEGER(r50, __SETJMP_INT(21))
- INTEGER(r51, __SETJMP_INT(22))
- INTEGER(r52, __SETJMP_INT(23))
- INTEGER(r53, __SETJMP_INT(24))
- INTEGER(r54, __SETJMP_INT(25))
- INTEGER(r55, __SETJMP_INT(26))
- INTEGER(r56, __SETJMP_INT(27))
- INTEGER(r57, __SETJMP_INT(28))
- INTEGER(r58, __SETJMP_INT(29))
- INTEGER(r59, __SETJMP_INT(30))
-
- #if __SETJMP_NUM_INT != 31
- #error __SETJMP_NUM_INT does agree with expected value
- #endif
-
-#if __SETJMP_NUM_DBL > 0
- /* callee-save registers FR12-FR15 */
- DOUBLE(d12, __SETJMP_DBL(0))
- DOUBLE(d14, __SETJMP_DBL(1))
-
- /* callee-save registers FR36-FR63 */
- DOUBLE(d36, __SETJMP_DBL(2))
- DOUBLE(d38, __SETJMP_DBL(3))
- DOUBLE(d40, __SETJMP_DBL(4))
- DOUBLE(d42, __SETJMP_DBL(5))
- DOUBLE(d44, __SETJMP_DBL(6))
- DOUBLE(d46, __SETJMP_DBL(7))
- DOUBLE(d48, __SETJMP_DBL(8))
- DOUBLE(d50, __SETJMP_DBL(9))
- DOUBLE(d52, __SETJMP_DBL(10))
- DOUBLE(d54, __SETJMP_DBL(11))
- DOUBLE(d56, __SETJMP_DBL(12))
- DOUBLE(d58, __SETJMP_DBL(13))
- DOUBLE(d60, __SETJMP_DBL(14))
- DOUBLE(d62, __SETJMP_DBL(15))
-
- #if __SETJMP_NUM_DBL != 16
- #error __SETJMP_NUM_DBL does agree with expected value
- #endif
-
-#endif /* __SETJMP_NUM_DBL > 0 */
-
- /* callee-save registers TR5-TR7 */
- gettr tr5, r4
- INTEGER(r4, __SETJMP_TRG(0))
- gettr tr6, r4
- INTEGER(r4, __SETJMP_TRG(1))
- gettr tr7, r4
- INTEGER(r4, __SETJMP_TRG(2))
-
- #if __SETJMP_NUM_TRG != 3
- #error __SETJMP_NUM_TRG does agree with expected value
- #endif
-
- /* save Linkage Register (LR) for longjmp return */
- INTEGER(r18, __SETJMP_LR)
-
- /*
- * return a value of zero if call is __sigsetjmp().
- * This is so that caller of setjmp() knows
- * we have retruned via setjmp, and not via longjmp.
- * R0 is the result register.
- */
-
- ptabs/l r18, tr0 /* return to caller */
- movi 0, r2 /* return value */
- blink tr0, r63
-
diff --git a/libc/sysdeps/linux/sh64/sys/procfs.h b/libc/sysdeps/linux/sh64/sys/procfs.h
deleted file mode 100644
index 5fc4c579c..000000000
--- a/libc/sysdeps/linux/sh64/sys/procfs.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 1996, 1997, 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, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somehow modelled after the file of the same name on SysVr4
- systems. It provides a definition of the core file format for ELF
- used on Linux. */
-
-#include <features.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/*
- * ELF register definitions...
- */
-typedef unsigned long elf_greg_t;
-
-#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef struct user_fpu_struct elf_fpregset_t;
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
-struct elf_prstatus
- {
-#if 0
- long int pr_flags; /* XXX Process flags. */
- short int pr_why; /* XXX Reason for process halt. */
- short int pr_what; /* XXX More detailed reason. */
-#endif
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
-#if 0
- struct sigaltstack pr_altstack; /* Alternate stack info. */
- struct sigaction pr_action; /* Signal action for current sig. */
-#endif
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
-#if 0
- long int pr_instr; /* Current instruction. */
-#endif
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- long pr_uid;
- long pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore habe only ine PID type. */
-typedef __pid_t lwpid_t;
-
-
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/libc/sysdeps/linux/sh64/sys/ucontext.h b/libc/sysdeps/linux/sh64/sys/ucontext.h
deleted file mode 100644
index 73695592a..000000000
--- a/libc/sysdeps/linux/sh64/sys/ucontext.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* 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
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-/* Where is System V/SH ABI? */
-
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
-
-#include <features.h>
-#include <signal.h>
-
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
-#include <bits/sigcontext.h>
-
-
-typedef long long greg_t;
-
-/* Number of general registers. */
-#define NGREG 64
-
-/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
-
-#ifdef __USE_GNU
-/* Number of each register is the `gregset_t' array. */
-enum
-{
- R0 = 0,
-#define R0 R0
- R1 = 1,
-#define R1 R1
- R2 = 2,
-#define R2 R2
- R3 = 3,
-#define R3 R3
- R4 = 4,
-#define R4 R4
- R5 = 5,
-#define R5 R5
- R6 = 6,
-#define R6 R6
- R7 = 7,
-#define R7 R7
- R8 = 8,
-#define R8 R8
- R9 = 9,
-#define R9 R9
- R10 = 10,
-#define R10 R10
- R11 = 11,
-#define R11 R11
- R12 = 12,
-#define R12 R12
- R13 = 13,
-#define R13 R13
- R14 = 14,
-#define R14 R14
- R15 = 15,
-#define R15 R15
- R16 = 16,
-#define R16 R16
- R17 = 17,
-#define R17 R17
- R18 = 18,
-#define R18 R18
- R19 = 19,
-#define R19 R19
- R20 = 20,
-#define R20 R20
- R21 = 21,
-#define R21 R21
- R22 = 22,
-#define R22 R22
- R23 = 23,
-#define R23 R23
- R24 = 24,
-#define R24 R24
- R25 = 25,
-#define R25 R25
- R26 = 26,
-#define R26 R26
- R27 = 27,
-#define R27 R27
- R28 = 28,
-#define R28 R28
- R29 = 29,
-#define R29 R29
- R30 = 30,
-#define R30 R30
- R31 = 31,
-#define R31 R31
- R32 = 32,
-#define R32 R32
- R33 = 33,
-#define R33 R33
- R34 = 34,
-#define R34 R34
- R35 = 35,
-#define R35 R35
- R36 = 36,
-#define R36 R36
- R37 = 37,
-#define R37 R37
- R38 = 38,
-#define R38 R38
- R39 = 39,
-#define R39 R39
- R40 = 40,
-#define R40 R40
- R41 = 41,
-#define R41 R41
- R42 = 42,
-#define R42 R42
- R43 = 43,
-#define R43 R43
- R44 = 44,
-#define R44 R44
- R45 = 45,
-#define R45 R45
- R46 = 46,
-#define R46 R46
- R47 = 47,
-#define R47 R47
- R48 = 48,
-#define R48 R48
- R49 = 49,
-#define R49 R49
- R50 = 50,
-#define R50 R50
- R51 = 51,
-#define R51 R51
- R52 = 52,
-#define R52 R52
- R53 = 53,
-#define R53 R53
- R54 = 54,
-#define R54 R54
- R55 = 55,
-#define R55 R55
- R56 = 56,
-#define R56 R56
- R57 = 57,
-#define R57 R57
- R58 = 58,
-#define R58 R58
- R59 = 59,
-#define R59 R59
- R60 = 60,
-#define R60 R60
- R61 = 61,
-#define R61 R61
- R62 = 62,
-#define R62 R62
- R63 = 63,
-#define R63 R63
-};
-#endif
-
-typedef int freg_t;
-
-/* Number of FPU registers. */
-#define NFPREG 32
-
-/* Structure to describe FPU registers. */
-typedef freg_t fpregset_t[NFPREG];
-
-/* Context to describe whole processor state. */
-typedef struct
- {
- gregset_t gregs;
- fpregset_t fpregs;
- unsigned long long sc_tregs[8];
- unsigned long long sc_pc;
- unsigned long long sc_sr;
- unsigned long long sc_fpscr;
-
- } mcontext_t;
-
-/* Userlevel context. */
-typedef struct ucontext
- {
- unsigned long int uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- __sigset_t uc_sigmask;
- } ucontext_t;
-
-#endif /* sys/ucontext.h */
diff --git a/libc/sysdeps/linux/sh64/syscall.c b/libc/sysdeps/linux/sh64/syscall.c
deleted file mode 100644
index a6c55ebe9..000000000
--- a/libc/sysdeps/linux/sh64/syscall.c
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-#include <features.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-
-long syscall(long sysnum,
- long arg1, long arg2, long arg3,
- long arg4, long arg5, long arg6)
-{
-register long __sc0 __asm__ ("r9") = ((0x16 << 16) | sysnum);
-register long __sc2 __asm__ ("r2") = (long) arg1;
-register long __sc3 __asm__ ("r3") = (long) arg2;
-register long __sc4 __asm__ ("r4") = (long) arg3;
-register long __sc5 __asm__ ("r5") = (long) arg4;
-register long __sc6 __asm__ ("r6") = (long) arg5;
-register long __sc7 __asm__ ("r7") = (long) arg6;
-__asm__ __volatile__ ("trapa %1" \
- : "=r" (__sc0) \
- : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5), \
- "r" (__sc6), "r" (__sc7));
-__syscall_return(long,__sc0);
-}
diff --git a/libpthread/linuxthreads.old/sysdeps/sh64/Makefile.arch b/libpthread/linuxthreads.old/sysdeps/sh64/Makefile.arch
deleted file mode 100644
index ddb56645c..000000000
--- a/libpthread/linuxthreads.old/sysdeps/sh64/Makefile.arch
+++ /dev/null
@@ -1,30 +0,0 @@
-# Makefile for uClibc
-#
-# Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org>
-# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-libpthread_ARCH_DIR:=$(top_srcdir)libpthread/linuxthreads.old/sysdeps/sh64
-libpthread_ARCH_OUT:=$(top_builddir)libpthread/linuxthreads.old/sysdeps/sh64
-
-libpthread_ARCH_SRC:=$(wildcard $(libpthread_ARCH_DIR)/*.c)
-libpthread_ARCH_OBJ:=$(patsubst $(libpthread_ARCH_DIR)/%.c,$(libpthread_ARCH_OUT)/%.o,$(libpthread_ARCH_SRC))
-
-libpthread-a-y+=$(libpthread_ARCH_OBJ)
-libpthread-so-y+=$(libpthread_ARCH_OBJ:.o=.os)
-
-libpthread-multi-y+=$(libpthread_ARCH_SRC)
-
-objclean-y += CLEAN_$($(top_builddir),,$(libpthread_ARCH_OUT))
-
-# We need to build as SHcompact for tas..
-$(libpthread_ARCH_OBJ): %.o : %.c
- $(compile.c:32media=compact)
-
-$(libpthread_ARCH_OBJ:.o=.os): %.os : %.c
- $(compile.c:32media=compact)
-
-CLEAN_$($(top_builddir),,$(libpthread_ARCH_OUT)):
- $(do_rm) $(addprefix $(libpthread_ARCH_OUT)/*., o os)
diff --git a/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c b/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c
deleted file mode 100644
index 1c187c85c..000000000
--- a/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Cloned for uClibc by Paul Mundt, December 2003 */
-/* Modified by SuperH, Inc. September 2003 */
-
-/* Machine-dependent pthreads configuration and inline functions.
- SH5 version.
- Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Niibe Yutaka <gniibe@m17n.org>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-#include "pt-machine.h"
-
-/* Spinlock implementation; required. */
-
-/* The SH5 does not have a suitable test-and-set instruction (SWAP only
- operates on an aligned quad word). So we use the SH4 version instead.
- This must be seperately compiled in SHcompact mode, so it cannot be
- inline. */
-
-long int testandset (int *spinlock)
-{
- int ret;
-
- __asm__ __volatile__(
- "tas.b @%1\n\t"
- "movt %0"
- : "=r" (ret)
- : "r" (spinlock)
- : "memory", "cc");
-
- return (ret == 0);
-}
-
diff --git a/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h
deleted file mode 100644
index 9b1fc74cd..000000000
--- a/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Cloned for uClibc by Paul Mundt, December 2003 */
-/* Modified by SuperH, Inc. September 2003 */
-
-/* Machine-dependent pthreads configuration and inline functions.
- SuperH version.
- Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Niibe Yutaka <gniibe@m17n.org>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-#ifndef _PT_MACHINE_H
-#define _PT_MACHINE_H 1
-
-#include <features.h>
-
-#ifndef PT_EI
-# define PT_EI __extern_always_inline
-#endif
-
-/* Get some notion of the current stack. Need not be exactly the top
- of the stack, just something somewhere in the current frame. */
-#define CURRENT_STACK_FRAME stack_pointer
-register char * stack_pointer __asm__ ("r15");
-
-#endif /* pt-machine.h */