diff options
| -rw-r--r-- | ldso/ldso/arm/dl-sysdep.h | 6 | ||||
| -rw-r--r-- | ldso/ldso/avr32/dl-sysdep.h | 14 | ||||
| -rw-r--r-- | ldso/ldso/bfin/dl-inlines.h | 32 | ||||
| -rw-r--r-- | ldso/ldso/bfin/dl-syscalls.h | 20 | ||||
| -rw-r--r-- | ldso/ldso/cris/dl-startup.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/frv/dl-inlines.h | 28 | ||||
| -rw-r--r-- | ldso/ldso/frv/dl-syscalls.h | 14 | ||||
| -rw-r--r-- | ldso/ldso/i386/dl-sysdep.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/m68k/dl-sysdep.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/m68k/resolve.S | 5 | ||||
| -rw-r--r-- | ldso/ldso/mips/dl-startup.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/mips/dl-sysdep.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/powerpc/dl-startup.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/powerpc/dl-sysdep.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/powerpc/resolve.S | 14 | ||||
| -rw-r--r-- | ldso/ldso/sh/dl-startup.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/sh/dl-syscalls.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/sh/dl-sysdep.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/sh64/dl-startup.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/sh64/dl-sysdep.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/sparc/dl-startup.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/sparc/dl-sysdep.h | 2 | ||||
| -rw-r--r-- | ldso/ldso/xtensa/resolve.S | 12 |
23 files changed, 89 insertions, 84 deletions
diff --git a/ldso/ldso/arm/dl-sysdep.h b/ldso/ldso/arm/dl-sysdep.h index 2a0bbad77..d99a805e5 100644 --- a/ldso/ldso/arm/dl-sysdep.h +++ b/ldso/ldso/arm/dl-sysdep.h @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * Various assmbly language/system dependent hacks that are required + * Various assembly language/system dependent hacks that are required * so that we can minimize the amount of platform specific code. * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org> */ @@ -148,3 +148,7 @@ elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, } while (--relative_count); } #endif /* !_ARCH_DL_SYSDEP */ + +#ifdef __ARM_EABI__ +#define DL_MALLOC_ALIGN 8 /* EABI needs 8 byte alignment for STRD LDRD */ +#endif diff --git a/ldso/ldso/avr32/dl-sysdep.h b/ldso/ldso/avr32/dl-sysdep.h index 5ee110101..6696382b3 100644 --- a/ldso/ldso/avr32/dl-sysdep.h +++ b/ldso/ldso/avr32/dl-sysdep.h @@ -24,15 +24,15 @@ /* Initialization sequence for the application/library GOT. */ #define INIT_GOT(GOT_BASE,MODULE) \ do { \ - unsigned long i, nr_got; \ + unsigned long _i, _nr_got; \ \ GOT_BASE[0] = (unsigned long) _dl_linux_resolve; \ GOT_BASE[1] = (unsigned long) MODULE; \ \ /* Add load address displacement to all GOT entries */ \ - nr_got = MODULE->dynamic_info[DT_AVR32_GOTSZ_IDX] / 4; \ - for (i = 2; i < nr_got; i++) \ - GOT_BASE[i] += (unsigned long)MODULE->loadaddr; \ + _nr_got = MODULE->dynamic_info[DT_AVR32_GOTSZ_IDX] / 4; \ + for (_i = 2; _i < _nr_got; _i++) \ + GOT_BASE[_i] += (unsigned long)MODULE->loadaddr; \ } while (0) #define do_rem(result, n, base) ((result) = (n) % (base)) @@ -60,7 +60,7 @@ unsigned long _dl_linux_resolver(unsigned long got_offset, unsigned long *got); /* 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 __inline__ Elf32_Addr +static __always_inline Elf32_Addr elf_machine_dynamic (void) { register Elf32_Addr *got __asm__("r6"); @@ -68,7 +68,7 @@ elf_machine_dynamic (void) } /* Return the run-time load address of the shared object. */ -static __inline__ Elf32_Addr +static __always_inline Elf32_Addr elf_machine_load_address (void) { extern void __dl_start __asm__("_dl_start"); @@ -91,7 +91,7 @@ elf_machine_load_address (void) * Currently, we don't use that tag, but we might in the future as * this would reduce the startup time somewhat (although probably not by much). */ -static __inline__ void +static __always_inline void elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, Elf32_Word relative_count) { diff --git a/ldso/ldso/bfin/dl-inlines.h b/ldso/ldso/bfin/dl-inlines.h index f8b8f85f1..6ed1bdaf9 100644 --- a/ldso/ldso/bfin/dl-inlines.h +++ b/ldso/ldso/bfin/dl-inlines.h @@ -26,7 +26,7 @@ USA. */ /* Initialize a DL_LOADADDR_TYPE given a got pointer and a complete load map. */ -inline static void +static __always_inline void __dl_init_loadaddr_map (struct elf32_fdpic_loadaddr *loadaddr, Elf32_Addr dl_boot_got_pointer, struct elf32_fdpic_loadmap *map) { @@ -47,7 +47,7 @@ __dl_init_loadaddr_map (struct elf32_fdpic_loadaddr *loadaddr, Elf32_Addr dl_boo /* Figure out how many LOAD segments there are in the given headers, and allocate a block for the load map big enough for them. got_value will be properly initialized later on, with INIT_GOT. */ -inline static int +static __always_inline int __dl_init_loadaddr (struct elf32_fdpic_loadaddr *loadaddr, Elf32_Phdr *ppnt, int pcnt) { @@ -73,7 +73,7 @@ __dl_init_loadaddr (struct elf32_fdpic_loadaddr *loadaddr, Elf32_Phdr *ppnt, } /* Incrementally initialize a load map. */ -inline static void +static __always_inline void __dl_init_loadaddr_hdr (struct elf32_fdpic_loadaddr loadaddr, void *addr, Elf32_Phdr *phdr, int maxsegs) { @@ -99,12 +99,12 @@ __dl_init_loadaddr_hdr (struct elf32_fdpic_loadaddr loadaddr, void *addr, #endif } -inline static void __dl_loadaddr_unmap +static __always_inline void __dl_loadaddr_unmap (struct elf32_fdpic_loadaddr loadaddr, struct funcdesc_ht *funcdesc_ht); /* Figure out whether the given address is in one of the mapped segments. */ -inline static int +static __always_inline int __dl_addr_in_loadaddr (void *p, struct elf32_fdpic_loadaddr loadaddr) { struct elf32_fdpic_loadmap *map = loadaddr.map; @@ -118,7 +118,7 @@ __dl_addr_in_loadaddr (void *p, struct elf32_fdpic_loadaddr loadaddr) return 0; } -inline static void * _dl_funcdesc_for (void *entry_point, void *got_value); +static __always_inline void * _dl_funcdesc_for (void *entry_point, void *got_value); /* The hashcode handling code below is heavily inspired in libiberty's hashtab code, but with most adaptation points and support for @@ -127,7 +127,7 @@ inline static void * _dl_funcdesc_for (void *entry_point, void *got_value); Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Vladimir Makarov (vmakarov@cygnus.com). */ -inline static unsigned long +static __always_inline unsigned long higher_prime_number (unsigned long n) { /* These are primes that are near, but slightly smaller than, a @@ -202,13 +202,13 @@ struct funcdesc_ht size_t n_elements; }; -inline static int +static __always_inline int hash_pointer (const void *p) { return (int) ((long)p >> 3); } -inline static struct funcdesc_ht * +static __always_inline struct funcdesc_ht * htab_create (void) { struct funcdesc_ht *ht = _dl_malloc (sizeof (struct funcdesc_ht)); @@ -229,7 +229,7 @@ htab_create (void) /* This is only called from _dl_loadaddr_unmap, so it's safe to call _dl_free(). See the discussion below. */ -inline static void +static __always_inline void htab_delete (struct funcdesc_ht *htab) { int i; @@ -249,7 +249,7 @@ htab_delete (struct funcdesc_ht *htab) This function also assumes there are no deleted entries in the table. HASH is the hash value for the element to be inserted. */ -inline static struct funcdesc_value ** +static __always_inline struct funcdesc_value ** find_empty_slot_for_expand (struct funcdesc_ht *htab, int hash) { size_t size = htab->size; @@ -281,7 +281,7 @@ find_empty_slot_for_expand (struct funcdesc_ht *htab, int hash) this function will return zero, indicating that the table could not be expanded. If all goes well, it will return a non-zero value. */ -inline static int +static __always_inline int htab_expand (struct funcdesc_ht *htab) { struct funcdesc_value **oentries; @@ -339,7 +339,7 @@ htab_expand (struct funcdesc_ht *htab) When inserting an entry, NULL may be returned if memory allocation fails. */ -inline static struct funcdesc_value ** +static __always_inline struct funcdesc_value ** htab_find_slot (struct funcdesc_ht *htab, void *ptr, int insert) { unsigned int index; @@ -415,7 +415,7 @@ _dl_funcdesc_for (void *entry_point, void *got_value) return _dl_stabilize_funcdesc (*entry); } -inline static void const * +static __always_inline void const * _dl_lookup_address (void const *address) { struct elf_resolve *rpnt; @@ -487,7 +487,7 @@ __dl_loadaddr_unmap (struct elf32_fdpic_loadaddr loadaddr, htab_delete (funcdesc_ht); } -inline static int +static __always_inline int __dl_is_special_segment (Elf32_Ehdr *epnt, Elf32_Phdr *ppnt) { @@ -515,7 +515,7 @@ __dl_is_special_segment (Elf32_Ehdr *epnt, return 0; } -inline static char * +static __always_inline char * __dl_map_segment (Elf32_Ehdr *epnt, Elf32_Phdr *ppnt, int infile, diff --git a/ldso/ldso/bfin/dl-syscalls.h b/ldso/ldso/bfin/dl-syscalls.h index 21e4cdd2c..916d0f84e 100644 --- a/ldso/ldso/bfin/dl-syscalls.h +++ b/ldso/ldso/bfin/dl-syscalls.h @@ -44,8 +44,8 @@ static __inline__ _syscall6(__ptr_t, __syscall_mmap2, __ptr_t, addr, # endif #include <bits/uClibc_page.h> /* for PAGE_SIZE */ -inline static void *_dl_memset(void*,int,size_t); -inline static ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset); +static __always_inline void *_dl_memset(void*,int,size_t); +static __always_inline ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset); static __ptr_t _dl_mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset) @@ -152,11 +152,11 @@ _dl_mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset) #include <unistd.h> #define __NR___syscall_lseek __NR_lseek -inline static unsigned long _dl_read(int fd, const void *buf, unsigned long count); +static __always_inline unsigned long _dl_read(int fd, const void *buf, unsigned long count); -inline static _syscall3(__off_t, __syscall_lseek, int, fd, __off_t, offset, +static __always_inline _syscall3(__off_t, __syscall_lseek, int, fd, __off_t, offset, int, whence); -inline static ssize_t +static __always_inline ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset) { __off_t orig = __syscall_lseek (fd, 0, SEEK_CUR); @@ -177,10 +177,10 @@ _dl_pread(int fd, void *buf, size_t count, off_t offset) } #else #define __NR___syscall_pread __NR_pread -inline static _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf, +static __always_inline _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf, size_t, count, off_t, offset_hi, off_t, offset_lo); -inline static ssize_t +static __always_inline ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset) { return(__syscall_pread(fd,buf,count,__LONG_LONG_PAIR (offset >> 31, offset))); @@ -190,18 +190,18 @@ _dl_pread(int fd, void *buf, size_t count, off_t offset) #ifdef __NR_sram_alloc #define __NR__dl_sram_alloc __NR_sram_alloc -inline static _syscall2(__ptr_t, _dl_sram_alloc, +static __always_inline _syscall2(__ptr_t, _dl_sram_alloc, size_t, len, unsigned long, flags); #endif #ifdef __NR_sram_free #define __NR__dl_sram_free __NR_sram_free -inline static _syscall1(int, _dl_sram_free, __ptr_t, addr); +static __always_inline _syscall1(int, _dl_sram_free, __ptr_t, addr); #endif #ifdef __NR_dma_memcpy #define __NR__dl_dma_memcpy __NR_dma_memcpy -inline static _syscall3(__ptr_t, _dl_dma_memcpy, +static __always_inline _syscall3(__ptr_t, _dl_dma_memcpy, __ptr_t, dest, __ptr_t, src, size_t, len); #endif diff --git a/ldso/ldso/cris/dl-startup.h b/ldso/ldso/cris/dl-startup.h index 832c3528b..dc9cd8fe2 100644 --- a/ldso/ldso/cris/dl-startup.h +++ b/ldso/ldso/cris/dl-startup.h @@ -53,7 +53,7 @@ __asm__("" \ /* Handle relocation of the symbols in the dynamic loader. */ -static inline +static __always_inline void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, unsigned long *reloc_addr, unsigned long symbol_addr, unsigned long load_addr, Elf32_Sym *symtab) { diff --git a/ldso/ldso/frv/dl-inlines.h b/ldso/ldso/frv/dl-inlines.h index 0d469dd88..95233a7c0 100644 --- a/ldso/ldso/frv/dl-inlines.h +++ b/ldso/ldso/frv/dl-inlines.h @@ -10,7 +10,7 @@ /* Initialize a DL_LOADADDR_TYPE given a got pointer and a complete load map. */ -inline static void +static __always_inline void __dl_init_loadaddr_map (struct elf32_fdpic_loadaddr *loadaddr, void *got_value, struct elf32_fdpic_loadmap *map) { @@ -31,7 +31,7 @@ __dl_init_loadaddr_map (struct elf32_fdpic_loadaddr *loadaddr, void *got_value, /* Figure out how many LOAD segments there are in the given headers, and allocate a block for the load map big enough for them. got_value will be properly initialized later on, with INIT_GOT. */ -inline static int +static __always_inline int __dl_init_loadaddr (struct elf32_fdpic_loadaddr *loadaddr, Elf32_Phdr *ppnt, int pcnt) { @@ -57,7 +57,7 @@ __dl_init_loadaddr (struct elf32_fdpic_loadaddr *loadaddr, Elf32_Phdr *ppnt, } /* Incrementally initialize a load map. */ -inline static void +static __always_inline void __dl_init_loadaddr_hdr (struct elf32_fdpic_loadaddr loadaddr, void *addr, Elf32_Phdr *phdr, int maxsegs) { @@ -83,12 +83,12 @@ __dl_init_loadaddr_hdr (struct elf32_fdpic_loadaddr loadaddr, void *addr, #endif } -inline static void __dl_loadaddr_unmap +static __always_inline void __dl_loadaddr_unmap (struct elf32_fdpic_loadaddr loadaddr, struct funcdesc_ht *funcdesc_ht); /* Figure out whether the given address is in one of the mapped segments. */ -inline static int +static __always_inline int __dl_addr_in_loadaddr (void *p, struct elf32_fdpic_loadaddr loadaddr) { struct elf32_fdpic_loadmap *map = loadaddr.map; @@ -102,7 +102,7 @@ __dl_addr_in_loadaddr (void *p, struct elf32_fdpic_loadaddr loadaddr) return 0; } -inline static void * _dl_funcdesc_for (void *entry_point, void *got_value); +static __always_inline void * _dl_funcdesc_for (void *entry_point, void *got_value); /* The hashcode handling code below is heavily inspired in libiberty's hashtab code, but with most adaptation points and support for @@ -111,7 +111,7 @@ inline static void * _dl_funcdesc_for (void *entry_point, void *got_value); Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Vladimir Makarov (vmakarov@cygnus.com). */ -inline static unsigned long +static __always_inline unsigned long higher_prime_number (unsigned long n) { /* These are primes that are near, but slightly smaller than, a @@ -186,13 +186,13 @@ struct funcdesc_ht size_t n_elements; }; -inline static int +static __always_inline int hash_pointer (const void *p) { return (int) ((long)p >> 3); } -inline static struct funcdesc_ht * +static __always_inline struct funcdesc_ht * htab_create (void) { struct funcdesc_ht *ht = _dl_malloc (sizeof (struct funcdesc_ht)); @@ -213,7 +213,7 @@ htab_create (void) /* This is only called from _dl_loadaddr_unmap, so it's safe to call _dl_free(). See the discussion below. */ -inline static void +static __always_inline void htab_delete (struct funcdesc_ht *htab) { int i; @@ -233,7 +233,7 @@ htab_delete (struct funcdesc_ht *htab) This function also assumes there are no deleted entries in the table. HASH is the hash value for the element to be inserted. */ -inline static struct funcdesc_value ** +static __always_inline struct funcdesc_value ** find_empty_slot_for_expand (struct funcdesc_ht *htab, int hash) { size_t size = htab->size; @@ -265,7 +265,7 @@ find_empty_slot_for_expand (struct funcdesc_ht *htab, int hash) this function will return zero, indicating that the table could not be expanded. If all goes well, it will return a non-zero value. */ -inline static int +static __always_inline int htab_expand (struct funcdesc_ht *htab) { struct funcdesc_value **oentries; @@ -323,7 +323,7 @@ htab_expand (struct funcdesc_ht *htab) When inserting an entry, NULL may be returned if memory allocation fails. */ -inline static struct funcdesc_value ** +static __always_inline struct funcdesc_value ** htab_find_slot (struct funcdesc_ht *htab, void *ptr, int insert) { unsigned int index; @@ -399,7 +399,7 @@ _dl_funcdesc_for (void *entry_point, void *got_value) return _dl_stabilize_funcdesc (*entry); } -inline static void const * +static __always_inline void const * _dl_lookup_address (void const *address) { struct elf_resolve *rpnt; diff --git a/ldso/ldso/frv/dl-syscalls.h b/ldso/ldso/frv/dl-syscalls.h index 093d0dca8..a4bff1d47 100644 --- a/ldso/ldso/frv/dl-syscalls.h +++ b/ldso/ldso/frv/dl-syscalls.h @@ -30,8 +30,8 @@ static __inline__ _syscall6(__ptr_t, __syscall_mmap2, __ptr_t, addr, # endif #include <bits/uClibc_page.h> /* for PAGE_SIZE */ -inline static void *_dl_memset(void*,int,size_t); -inline static ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset); +static __always_inline void *_dl_memset(void*,int,size_t); +static __always_inline ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset); static __ptr_t _dl_mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset) @@ -138,11 +138,11 @@ _dl_mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset) #include <unistd.h> #define __NR___syscall_lseek __NR_lseek -inline static unsigned long _dl_read(int fd, const void *buf, unsigned long count); +static __always_inline unsigned long _dl_read(int fd, const void *buf, unsigned long count); -inline static _syscall3(__off_t, __syscall_lseek, int, fd, __off_t, offset, +static __always_inline _syscall3(__off_t, __syscall_lseek, int, fd, __off_t, offset, int, whence); -inline static ssize_t +static __always_inline ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset) { __off_t orig = __syscall_lseek (fd, 0, SEEK_CUR); @@ -163,10 +163,10 @@ _dl_pread(int fd, void *buf, size_t count, off_t offset) } #else #define __NR___syscall_pread __NR_pread -inline static _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf, +static __always_inline _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf, size_t, count, off_t, offset_hi, off_t, offset_lo); -inline static ssize_t +static __always_inline ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset) { return(__syscall_pread(fd,buf,count,__LONG_LONG_PAIR (offset >> 31, offset))); diff --git a/ldso/ldso/i386/dl-sysdep.h b/ldso/ldso/i386/dl-sysdep.h index 19128df7b..7090c929d 100644 --- a/ldso/ldso/i386/dl-sysdep.h +++ b/ldso/ldso/i386/dl-sysdep.h @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * Various assmbly language/system dependent hacks that are required + * Various assembly language/system dependent hacks that are required * so that we can minimize the amount of platform specific code. * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org> */ diff --git a/ldso/ldso/m68k/dl-sysdep.h b/ldso/ldso/m68k/dl-sysdep.h index 13e9e6015..e42be3150 100644 --- a/ldso/ldso/m68k/dl-sysdep.h +++ b/ldso/ldso/m68k/dl-sysdep.h @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * Various assmbly language/system dependent hacks that are required + * Various assembly language/system dependent hacks that are required * so that we can minimize the amount of platform specific code. * Copyright (C) 2005 by Erik Andersen <andersen@codepoet.org> */ diff --git a/ldso/ldso/m68k/resolve.S b/ldso/ldso/m68k/resolve.S index d9a2929d6..1bd5c0096 100644 --- a/ldso/ldso/m68k/resolve.S +++ b/ldso/ldso/m68k/resolve.S @@ -19,5 +19,10 @@ _dl_linux_resolve: # Pop parameters addq.l #8, %sp # Call real function. +#if defined __mcoldfire__ + move.l %d0,-(%sp) + rts +#else jmp (%d0) +#endif .size _dl_linux_resolve,.-_dl_linux_resolve diff --git a/ldso/ldso/mips/dl-startup.h b/ldso/ldso/mips/dl-startup.h index d76f4874d..606b162a3 100644 --- a/ldso/ldso/mips/dl-startup.h +++ b/ldso/ldso/mips/dl-startup.h @@ -1,4 +1,4 @@ -/* Any assmbly language/system dependent hacks needed to setup boot1.c so it +/* 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. * Copyright (C) 2005 by Joakim Tjernlund diff --git a/ldso/ldso/mips/dl-sysdep.h b/ldso/ldso/mips/dl-sysdep.h index 1b5a6e07a..312b9e858 100644 --- a/ldso/ldso/mips/dl-sysdep.h +++ b/ldso/ldso/mips/dl-sysdep.h @@ -1,7 +1,7 @@ /* vi: set sw=8 ts=8: */ /* - * Various assmbly language/system dependent hacks that are required + * Various assembly language/system dependent hacks that are required * so that we can minimize the amount of platform specific code. */ diff --git a/ldso/ldso/powerpc/dl-startup.h b/ldso/ldso/powerpc/dl-startup.h index 7033da32b..50e72c3ee 100644 --- a/ldso/ldso/powerpc/dl-startup.h +++ b/ldso/ldso/powerpc/dl-startup.h @@ -1,4 +1,4 @@ -/* Any assmbly language/system dependent hacks needed to setup boot1.c so it +/* 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. * Copyright (C) 2005 by Joakim Tjernlund diff --git a/ldso/ldso/powerpc/dl-sysdep.h b/ldso/ldso/powerpc/dl-sysdep.h index d5282485d..768482272 100644 --- a/ldso/ldso/powerpc/dl-sysdep.h +++ b/ldso/ldso/powerpc/dl-sysdep.h @@ -1,5 +1,5 @@ /* - * Various assmbly language/system dependent hacks that are required + * Various assembly language/system dependent hacks that are required * so that we can minimize the amount of platform specific code. */ diff --git a/ldso/ldso/powerpc/resolve.S b/ldso/ldso/powerpc/resolve.S index 03c6a79b8..c83337ccd 100644 --- a/ldso/ldso/powerpc/resolve.S +++ b/ldso/ldso/powerpc/resolve.S @@ -11,19 +11,19 @@ .type _dl_linux_resolve,@function _dl_linux_resolve: -// We need to save the registers used to pass parameters, and register 0, -// which is used by _mcount; the registers are saved in a stack frame. +/* We need to save the registers used to pass parameters, and register 0, + which is used by _mcount; the registers are saved in a stack frame. */ stwu 1,-64(1) stw 0,12(1) stw 3,16(1) stw 4,20(1) -// The code that calls this has put parameters for 'fixup' in r12 and r11. +/* The code that calls this has put parameters for 'fixup' in r12 and r11. */ mr 3,12 stw 5,24(1) mr 4,11 stw 6,28(1) mflr 0 -// We also need to save some of the condition register fields. +/* We also need to save some of the condition register fields. */ stw 7,32(1) stw 0,48(1) stw 8,36(1) @@ -32,9 +32,9 @@ _dl_linux_resolve: stw 10,44(1) stw 0,8(1) bl _dl_linux_resolver@local -// 'fixup' returns the address we want to branch to. +/* 'fixup' returns the address we want to branch to. */ mtctr 3 -// Put the registers back... +/* Put the registers back... */ lwz 0,48(1) lwz 10,44(1) lwz 9,40(1) @@ -48,7 +48,7 @@ _dl_linux_resolve: lwz 4,20(1) lwz 3,16(1) lwz 0,12(1) -// ...unwind the stack frame, and jump to the PLT entry we updated. +/* ...unwind the stack frame, and jump to the PLT entry we updated. */ addi 1,1,64 bctr diff --git a/ldso/ldso/sh/dl-startup.h b/ldso/ldso/sh/dl-startup.h index 05e282bd8..7a3fdf235 100644 --- a/ldso/ldso/sh/dl-startup.h +++ b/ldso/ldso/sh/dl-startup.h @@ -1,4 +1,4 @@ -/* Any assmbly language/system dependent hacks needed to setup boot1.c so it +/* 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. */ diff --git a/ldso/ldso/sh/dl-syscalls.h b/ldso/ldso/sh/dl-syscalls.h index d3672512f..712852c4c 100644 --- a/ldso/ldso/sh/dl-syscalls.h +++ b/ldso/ldso/sh/dl-syscalls.h @@ -9,6 +9,6 @@ extern int _dl_errno; #warning !!! gcc 4.1 and later have problems with __always_inline so redefined as inline # ifdef __always_inline # undef __always_inline -# define __always_inline inline +# define __always_inline __inline__ # endif #endif diff --git a/ldso/ldso/sh/dl-sysdep.h b/ldso/ldso/sh/dl-sysdep.h index 2b0f1cc42..b2c2825e1 100644 --- a/ldso/ldso/sh/dl-sysdep.h +++ b/ldso/ldso/sh/dl-sysdep.h @@ -1,5 +1,5 @@ /* - * Various assmbly language/system dependent hacks that are required + * Various assembly language/system dependent hacks that are required * so that we can minimize the amount of platform specific code. */ diff --git a/ldso/ldso/sh64/dl-startup.h b/ldso/ldso/sh64/dl-startup.h index 8c0a58df8..33512a9bc 100644 --- a/ldso/ldso/sh64/dl-startup.h +++ b/ldso/ldso/sh64/dl-startup.h @@ -1,4 +1,4 @@ -/* Any assmbly language/system dependent hacks needed to setup boot1.c so it +/* 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. */ diff --git a/ldso/ldso/sh64/dl-sysdep.h b/ldso/ldso/sh64/dl-sysdep.h index dadde6103..21bfffcb6 100644 --- a/ldso/ldso/sh64/dl-sysdep.h +++ b/ldso/ldso/sh64/dl-sysdep.h @@ -1,6 +1,6 @@ /* vi: set sw=8 ts=8: */ /* - * Various assmbly language/system dependent hacks that are required + * Various assembly language/system dependent hacks that are required * so that we can minimize the amount of platform specific code. */ diff --git a/ldso/ldso/sparc/dl-startup.h b/ldso/ldso/sparc/dl-startup.h index c310e5df9..cc11ec103 100644 --- a/ldso/ldso/sparc/dl-startup.h +++ b/ldso/ldso/sparc/dl-startup.h @@ -1,4 +1,4 @@ -/* Any assmbly language/system dependent hacks needed to setup boot1.c so it +/* 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. See arm/boot1_arch.h for an example of what * can be done. diff --git a/ldso/ldso/sparc/dl-sysdep.h b/ldso/ldso/sparc/dl-sysdep.h index 963ab246d..27cb97e38 100644 --- a/ldso/ldso/sparc/dl-sysdep.h +++ b/ldso/ldso/sparc/dl-sysdep.h @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * Various assmbly language/system dependent hacks that are required + * Various assembly language/system dependent hacks that are required * so that we can minimize the amount of platform specific code. * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org> */ diff --git a/ldso/ldso/xtensa/resolve.S b/ldso/ldso/xtensa/resolve.S index fb298391c..902cd8238 100644 --- a/ldso/ldso/xtensa/resolve.S +++ b/ldso/ldso/xtensa/resolve.S @@ -32,15 +32,11 @@ .type _dl_linux_resolve, @function _dl_linux_resolve: /* Fix up the high 2 bits of the return address. */ - mov a14, a0 // save a0 temporarily - _call0 0f - .align 4 -0: extui a13, a0, 30, 2 - slli a13, a13, 30 - mov a0, a14 // restore a0 + movi a13, 0f slli a12, a0, 2 - srli a12, a12, 2 - or a12, a12, a13 +0: extui a13, a13, 30, 2 + ssai 2 + src a12, a13, a12 /* Call the fixup function. */ movi a8, _dl_linux_resolver |
