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  | 
