(elf_machine_pltrel_p): Removed, it's not needed.

This commit is contained in:
Ulrich Drepper 2001-03-10 06:42:38 +00:00
parent 719404ef2e
commit f4f8cd2c93
7 changed files with 133 additions and 20 deletions

View File

@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Stub version.
Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1995,1996,1997,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
@ -99,11 +99,6 @@ elf_machine_rela (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM],
}
/* Nonzero iff TYPE describes relocation of a PLT entry, so
PLT entries should not be allowed to define the value. */
#define elf_machine_pltrel_p(type) ((type) == R_???_JMP_SLOT)
/* Set up the loaded object described by L so its unrelocated PLT
entries will jump to the on-demand fixup code in dl-runtime.c. */

View File

@ -1,6 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. PowerPC version.
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
Free Software Foundation, Inc.
Copyright (C) 1995-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
@ -227,10 +226,6 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */
#define ELF_MACHINE_JMP_SLOT R_PPC_JMP_SLOT
/* Nonzero iff TYPE describes relocation of a PLT entry, so
PLT entries should not be allowed to define the value. */
#define elf_machine_pltrel_p(type) ((type) == R_PPC_JMP_SLOT)
/* Set up the loaded object described by L so its unrelocated PLT
entries will jump to the on-demand fixup code in dl-runtime.c.
Also install a small trampoline to be used by entries that have

View File

@ -223,9 +223,6 @@ _dl_runtime_profile:\n\
");
#endif
/* The PLT uses Elf32_Rela relocs. */
#define elf_machine_relplt elf_machine_rela
/* Mask identifying addresses reserved for the user program,
where the dynamic linker should not map anything. */
#define ELF_MACHINE_USER_ADDRESS_MASK 0xf8000000UL
@ -306,10 +303,6 @@ _dl_start_user:\n\
#define RTLD_START_SPECIAL_INIT /* nothing */
#endif
/* Nonzero iff TYPE describes relocation of a PLT entry, so
PLT entries should not be allowed to define the value. */
#define elf_machine_pltrel_p(type) ((type) == R_390_JMP_SLOT)
/* Nonzero iff TYPE should not be allowed to resolve to one of
the main executable's symbols, as for a COPY reloc. */
#define elf_machine_lookup_noexec_p(type) ((type) == R_390_COPY)
@ -432,7 +425,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
}
case R_390_PC32:
*reloc_addr = value +reloc->r_addend - (Elf32_Addr) reloc_addr;
*reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr;
break;
case R_390_NONE:
break;

View File

@ -1,4 +1,6 @@
clone.S
dl-procinfo.c
dl-procinfo.h
ioperm.c
setresuid.c
setresgid.c

View File

@ -12,3 +12,11 @@ endif
ifeq ($(subdir),resource)
sysdep_routines += oldgetrlimit64
endif
ifeq ($(subdir),elf)
# extra shared linker files to link into dl-allobjs.so and libc
sysdep-dl-routines += dl-procinfo
sysdep_routines += dl-procinfo
# extra shared linker files to link only into dl-allobjs.so
sysdep-rtld-routines += dl-procinfo
endif

View File

@ -0,0 +1,31 @@
/* Data for Linux/ARM version of processor capability information.
Copyright (C) 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 2001.
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,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This information must be kept in sync with the _DL_HWCAP_COUNT and
_DL_PLATFORM_COUNT definitions in procinfo.h. */
/* If anything should be added here check whether the size of each string
is still ok with the given array size. */
const char _dl_arm_cap_flags[][10] =
{
"swp", "half", "thumb", "26bit", "fast-mult", "fpa", "vfp", "edsp",
};

View File

@ -0,0 +1,89 @@
/* Linux/ARM version of processor capability information handling macros.
Copyright (C) 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 2001.
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,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
#include <ldsodefs.h>
/* If anything should be added here check whether the size of each string
is still ok with the given array size. */
extern const char _dl_arm_cap_flags[][10];
#define _DL_HWCAP_COUNT 32
/* The kernel provides platform data but it is not interesting. */
#define _DL_HWCAP_PLATFORM 0
static inline int
__attribute__ ((unused))
_dl_procinfo (int word)
{
int i;
_dl_printf ("AT_HWCAP: ");
for (i = 0; i < _DL_HWCAP_COUNT; ++i)
if (word & (1 << i))
_dl_printf (" %s", _dl_arm_cap_flags[i]);
_dl_printf ("\n");
return 0;
}
static inline const char *
__attribute__ ((unused))
_dl_hwcap_string (int idx)
{
return _dl_arm_cap_flags[idx];
};
enum
{
HWCAP_ARM_SWP = 1 << 0,
HWCAP_ARM_HALF = 1 << 1,
HWCAP_ARM_THUMB = 1 << 2,
HWCAP_ARM_26BIT = 1 << 3,
HWCAP_ARM_FAST_MULT = 1 << 4,
HWCAP_ARM_FPA = 1 << 5,
HWCAP_ARM_VFP = 1 << 6,
HWCAP_ARM_EDSP = 1 << 7,
HWCAP_IMPORTANT = (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT)
};
static inline int
__attribute__ ((unused))
_dl_string_hwcap (const char *str)
{
int i;
for (i = 0; i < _DL_HWCAP_COUNT; i++)
{
if (strcmp (str, _dl_arm_cap_flags[i]) == 0)
return i;
}
return -1;
};
#define _dl_string_platform(str) (-1)
#endif /* dl-procinfo.h */