summaryrefslogtreecommitdiff
path: root/ldso/ldso/arm
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-02-10 09:26:57 +0000
committerEric Andersen <andersen@codepoet.org>2004-02-10 09:26:57 +0000
commit70709408336e483de74947eb53e9ba01ef4ab140 (patch)
treefe17e15c0f272c571607172fc5c89d094de5f60c /ldso/ldso/arm
parentc201ba7c107edbb5fe81c641e87715a4930a4ff1 (diff)
Rework file naming, aiming for at least a vague level of consistancy
Diffstat (limited to 'ldso/ldso/arm')
-rw-r--r--ldso/ldso/arm/boot1_arch.h25
-rw-r--r--ldso/ldso/arm/ld_syscalls.h19
-rw-r--r--ldso/ldso/arm/ld_sysdep.h124
3 files changed, 0 insertions, 168 deletions
diff --git a/ldso/ldso/arm/boot1_arch.h b/ldso/ldso/arm/boot1_arch.h
deleted file mode 100644
index 383fe4e1f..000000000
--- a/ldso/ldso/arm/boot1_arch.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Any assmbly 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. */
-
-/* Overrive the default _dl_boot function, and replace it with a bit of asm.
- * Then call the real _dl_boot function, which is now named _dl_boot2. */
-
-asm("" \
-" .text\n" \
-" .globl _dl_boot\n" \
-"_dl_boot:\n" \
-" mov r7, sp\n" \
-" @ldr r0, [sp], #4\n" \
-" mov r0, sp\n" \
-" bl _dl_boot2\n" \
-" mov r6, r0\n" \
-" mov r0, r7\n" \
-" mov pc, r6\n" \
-);
-
- /* It seems ARM needs an offset here */
-#undef ELFMAGIC
-#define ELFMAGIC ELFMAG+load_addr
-
-#define DL_BOOT(X) static void __attribute__ ((unused)) _dl_boot2 (X)
diff --git a/ldso/ldso/arm/ld_syscalls.h b/ldso/ldso/arm/ld_syscalls.h
deleted file mode 100644
index dbf1634e0..000000000
--- a/ldso/ldso/arm/ld_syscalls.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Define the __set_errno macro as nothing so that INLINE_SYSCALL
- * won't set errno, which is important since we make system calls
- * before the errno symbol is dynamicly linked. */
-
-#define __set_errno(X) {(void)(X);}
-
-/* Prepare for the case that `__builtin_expect' is not available. */
-#if __GNUC__ == 2 && __GNUC_MINOR__ < 96
-#define __builtin_expect(x, expected_value) (x)
-#endif
-#ifndef likely
-# define likely(x) __builtin_expect((!!(x)),1)
-#endif
-#ifndef unlikely
-# define unlikely(x) __builtin_expect((!!(x)),0)
-#endif
-
-#include "sys/syscall.h"
-
diff --git a/ldso/ldso/arm/ld_sysdep.h b/ldso/ldso/arm/ld_sysdep.h
deleted file mode 100644
index 04e504eda..000000000
--- a/ldso/ldso/arm/ld_sysdep.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Various assmbly 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.
- */
-#undef ELF_USES_RELOCA
-
-/*
- * Get a pointer to the argv array. On many platforms this can be just
- * the address if 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)
-
-/*
- * 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 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.
- */
-#define PERFORM_BOOTSTRAP_RELOC(RELP,REL,SYMBOL,LOAD,SYMTAB) \
- switch(ELF32_R_TYPE((RELP)->r_info)){ \
- case R_ARM_ABS32: \
- *REL += SYMBOL; \
- break; \
- case R_ARM_PC24: \
- { long newvalue, topbits; \
- unsigned long addend = *REL & 0x00ffffff; \
- if (addend & 0x00800000) addend |= 0xff000000; \
- newvalue=SYMBOL-(unsigned long)REL+(addend<<2); \
- topbits = newvalue & 0xfe000000; \
- if (topbits!=0xfe000000&&topbits!=0x00000000){ \
- newvalue = fix_bad_pc24(REL, SYMBOL) \
- -(unsigned long)REL+(addend<<2); \
- topbits = newvalue & 0xfe000000; \
- if (topbits!=0xfe000000&&topbits!=0x00000000){ \
- SEND_STDERR("R_ARM_PC24 relocation out of range\n");\
- _dl_exit(1); } } \
- newvalue>>=2; \
- SYMBOL=(*REL&0xff000000)|(newvalue & 0x00ffffff); \
- *REL=SYMBOL; \
- } \
- break; \
- case R_ARM_GLOB_DAT: \
- case R_ARM_JUMP_SLOT: \
- *REL = SYMBOL; \
- break; \
- case R_ARM_RELATIVE: \
- *REL += (unsigned long) LOAD; \
- break; \
- case R_ARM_NONE: \
- break; \
- default: \
- SEND_STDERR("Aiieeee!"); \
- _dl_exit(1); \
- }
-
-
-/*
- * Transfer control to the user's application, once the dynamic loader
- * is done. This routine has to exit the current function, then
- * call the _dl_elf_main function.
- */
-
-#define START() return _dl_elf_main;
-
-
-
-/* Here we define the magic numbers that this dynamic loader should accept */
-
-#define MAGIC1 EM_ARM
-#undef MAGIC2
-/* Used for error messages */
-#define ELF_TARGET "ARM"
-
-struct elf_resolve;
-unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
-
-static inline unsigned long arm_modulus(unsigned long m, unsigned long p) {
- unsigned long i,t,inc;
- i=p; t=0;
- while(!(i&(1<<31))) {
- i<<=1;
- t++;
- }
- t--;
- for(inc=t;inc>2;inc--) {
- i=p<<inc;
- if(i&(1<<31))
- break;
- while(m>=i) {
- m-=i;
- i<<=1;
- if(i&(1<<31))
- break;
- if(i<p)
- break;
- }
- }
- while(m>=p) {
- m-=p;
- }
- return m;
-}
-
-#define do_rem(result, n, base) result=arm_modulus(n,base);
-
-/* 4096 bytes alignment */
-#define PAGE_ALIGN 0xfffff000
-#define ADDR_ALIGN 0xfff
-#define OFFS_ALIGN 0x7ffff000