Linux target variants for elfxx-hppa.

This commit is contained in:
Alan Modra 2001-01-14 11:12:53 +00:00
parent ffd6e9debc
commit d952f17a9d
9 changed files with 193 additions and 114 deletions

View File

@ -1,5 +1,19 @@
2001-01-14 Alan Modra <alan@linuxcare.com.au>
* config.bfd: Add linux target variant for elfxx-hppa.
* configure.in: Recognize bfd_elf32_hppa_linux_vec and
bfd_elf64_hppa_linux_vec.
* configure: Regenerate.
* elf64-hppa.c: Include elf64-target.h again to support linux
target variant.
(elf64_hppa_post_process_headers): Set ELFOSABI_LINUX for linux.
* elf32-hppa.c: Include elf32-target.h again to support linux
target variant.
(elf32_hppa_post_process_headers): New function.
(elf_backend_post_process_headers): Define.
* targets.c (bfd_target_vector): Add bfd_elf64_hppa_linux_vec and
bfd_elf32_hppa_linux_vec.
* elf32-hppa.c (elf32_hppa_link_hash_table): Add text_segment_base,
and data_segment_base fields.
(elf32_hppa_link_hash_table_create ): Init them.
@ -226,8 +240,8 @@
2000-12-10 Fred Fish <fnf@be.com>
* elflink.h (elf_link_output_extsym): Don't complain about undefined
symbols in shared objects if allow_shlib_undefined is true.
* elflink.h (elf_link_output_extsym): Don't complain about undefined
symbols in shared objects if allow_shlib_undefined is true.
2000-12-12 Nick Clifton <nickc@redhat.com>
@ -257,7 +271,7 @@
* configure: Regenerate.
* libcoff-in.h (coff_tdata): Add pointer dwarf2_find_line_info.
* libcoff.h: Regenerate.
* coffgen.c (coff_find_nearest_line): Call
* coffgen.c (coff_find_nearest_line): Call
_bfd_dwarf2_find_nearest_line.
* dwarf2.c (_bfd_dwarf2_find_nearest_line): Add parameter. Update
accordingly.
@ -277,7 +291,7 @@
to _bfd_find_nearest_line.
* elf32-mips.c (_bfd_mips_elf_find_nearest_line): Add parameter to
call to _bfd_find_nearest_line.
2000-12-08 Kazu Hirata <kazu@hxi.com>
* coffgen.c: Fix formatting.
@ -340,75 +354,75 @@
2000-12-01 Chris Demetriou <cgd@sibyte.com>
* aoutx.h (NAME(aout,machine_type)): Add bfd_mach_mips32 and
bfd_mach_mips32_4k. Update FIXME comment.
* archures.c (bfd_mach_mips32): New constant.
(bfd_mach_mips4K, bfd_mach_mips32_4k) Rename the former to
the latter, renumber it.
* bfd-in2.h (bfd_mach_mips32): New constant.
(bfd_mach_mips4K, bfd_mach_mips32_4k) Rename the former to
the latter, renumber it.
* cpu-mips.c (I_mips32): New constant.
(I_mips4K, I_mips32_4k): Rename the former to the latter.
(arch_info_struct): Add bfd_mach_mips32 entry, replace
bfd_mach_mips4K entry with bfd_mach_mips32_4k entry.
* elf32-mips.c (elf_mips_isa): Add E_MIPS_ARCH_32 case.
(elf_mips_mach): Likewise. Also, replace E_MIPS_MACH_MIPS32
with E_MIPS_MACH_MIPS32_4K.
(_bfd_mips_elf_final_write_processing): Replace
bfd_mach_mips4K with bfd_mach_mips32_4k case, add
bfd_mach_mips32 case.
(_bfd_mips_elf_merge_private_bfd_data): Generalize ISA mixing
comparison with support for MIPS32.
(_bfd_mips_elf_print_private_bfd_data): Print ISA name for
MIPS32.
* aoutx.h (NAME(aout,machine_type)): Add bfd_mach_mips32 and
bfd_mach_mips32_4k. Update FIXME comment.
* archures.c (bfd_mach_mips32): New constant.
(bfd_mach_mips4K, bfd_mach_mips32_4k) Rename the former to
the latter, renumber it.
* bfd-in2.h (bfd_mach_mips32): New constant.
(bfd_mach_mips4K, bfd_mach_mips32_4k) Rename the former to
the latter, renumber it.
* cpu-mips.c (I_mips32): New constant.
(I_mips4K, I_mips32_4k): Rename the former to the latter.
(arch_info_struct): Add bfd_mach_mips32 entry, replace
bfd_mach_mips4K entry with bfd_mach_mips32_4k entry.
* elf32-mips.c (elf_mips_isa): Add E_MIPS_ARCH_32 case.
(elf_mips_mach): Likewise. Also, replace E_MIPS_MACH_MIPS32
with E_MIPS_MACH_MIPS32_4K.
(_bfd_mips_elf_final_write_processing): Replace
bfd_mach_mips4K with bfd_mach_mips32_4k case, add
bfd_mach_mips32 case.
(_bfd_mips_elf_merge_private_bfd_data): Generalize ISA mixing
comparison with support for MIPS32.
(_bfd_mips_elf_print_private_bfd_data): Print ISA name for
MIPS32.
* aoutx.h (NAME(aout,machine_type)): Add cases for
bfd_mach_mips5 and bfd_mach_mips64.
* archures.c (bfd_mach_mips5, bfd_mach_mips64): New constants.
* bfd-in2.h (bfd_mach_mips5, bfd_mach_mips64): Likewise.
* cpu_mips.c (I_mips5, I_mips64): New definitions.
(arch_info_struct): Add entries for bfd_mach_mips5 and
bfd_mach_mips64.
* elf32-mips.c (elf_mips_isa, elf_mips_mach,
_bfd_mips_elf_print_private_bfd_data): Add cases for
E_MIPS_ARCH_5 and E_MIPS_ARCH_64.
(_bfd_mips_elf_final_write_processing): Add cases for
bfd_mach_mips5 and bfd_mach_mips64.
* aoutx.h (NAME(aout,machine_type)): Add cases for
bfd_mach_mips5 and bfd_mach_mips64.
* archures.c (bfd_mach_mips5, bfd_mach_mips64): New constants.
* bfd-in2.h (bfd_mach_mips5, bfd_mach_mips64): Likewise.
* cpu_mips.c (I_mips5, I_mips64): New definitions.
(arch_info_struct): Add entries for bfd_mach_mips5 and
bfd_mach_mips64.
* elf32-mips.c (elf_mips_isa, elf_mips_mach,
_bfd_mips_elf_print_private_bfd_data): Add cases for
E_MIPS_ARCH_5 and E_MIPS_ARCH_64.
(_bfd_mips_elf_final_write_processing): Add cases for
bfd_mach_mips5 and bfd_mach_mips64.
* bfd/aoutx.h (NAME(aout,machine_type)): Add a
bfd_mach_mips_sb1 case.
* bfd/archures.c (bfd_mach_mips_sb1): New constant.
* bfd/bfd-in2.h (bfd_mach_mips_sb1): New constant.
* bfd/cpu-mips.c (I_sb1): New constant.
(arch_info_struct): Add entry for bfd_mach_mips_sb1.
* bfd/elf32-mips.c (elf_mips_mach): Add case for
E_MIPS_MACH_SB1.
(_bfd_mips_elf_final_write_processing): Add case for
bfd_mach_mips_sb1.
* bfd/aoutx.h (NAME(aout,machine_type)): Add a
bfd_mach_mips_sb1 case.
* bfd/archures.c (bfd_mach_mips_sb1): New constant.
* bfd/bfd-in2.h (bfd_mach_mips_sb1): New constant.
* bfd/cpu-mips.c (I_sb1): New constant.
(arch_info_struct): Add entry for bfd_mach_mips_sb1.
* bfd/elf32-mips.c (elf_mips_mach): Add case for
E_MIPS_MACH_SB1.
(_bfd_mips_elf_final_write_processing): Add case for
bfd_mach_mips_sb1.
2000-12-01 Joel Sherrill <joel@OARcorp.com>
2000-12-01 Joel Sherrill <joel@OARcorp.com>
* config.bfd (arm-*-rtems*, a29k-*rtems*): New targets.
(sparc*-*-rtemself*, sparc*-*-rtemsaout*): New targets.
(sparc*-*-rtems*): Switched from a.out to ELF.
2000-11-30 Jan Hubicka <jh@suse.cz>
* Makefile.am (BFD64_BACKENDS): Add elf64-x86-64.lo
BFD64_BACKENDS_CFILES): Add elf64-x86-64.c
(elf64-x86-64.lo): Add dependencies.
* archures.c (DESCRIPTION): Add bfd_mach_x86_64,
bfd_mach_x86_64_intel_syntax.
* elf.c (prep_headers): Use EM_x86_64 for 64bit output.
* config.bfd (x86_64): Add.
* configure.in: Add support for bfd_elf64_x86_64_vec.
* cpu-i386.c (bfd_x86_64_arch_intel_syntax, bfd_x86_64_arch): Add.
(bfd_i386_arch, i8086_ar): Link in.
* elf64-x86-64.c: New file.
* reloc.c (ENUMDOC): Add BFD_RELOC_X86_64*.
* targets.c (bfd_elf64_x86_64_vec): Add.
(bfd_target_vect): Add bfd_elf64_x86_64_vec.
* Makefile.am (BFD64_BACKENDS): Add elf64-x86-64.lo
BFD64_BACKENDS_CFILES): Add elf64-x86-64.c
(elf64-x86-64.lo): Add dependencies.
* archures.c (DESCRIPTION): Add bfd_mach_x86_64,
bfd_mach_x86_64_intel_syntax.
* elf.c (prep_headers): Use EM_x86_64 for 64bit output.
* config.bfd (x86_64): Add.
* configure.in: Add support for bfd_elf64_x86_64_vec.
* cpu-i386.c (bfd_x86_64_arch_intel_syntax, bfd_x86_64_arch): Add.
(bfd_i386_arch, i8086_ar): Link in.
* elf64-x86-64.c: New file.
* reloc.c (ENUMDOC): Add BFD_RELOC_X86_64*.
* targets.c (bfd_elf64_x86_64_vec): Add.
(bfd_target_vect): Add bfd_elf64_x86_64_vec.
2000-11-30 Kazu Hirata <kazu@hxi.com>
@ -446,7 +460,7 @@
2000-11-22 Philip Blundell <pb@futuretv.com>
* cofflink.c (_bfd_coff_generic_relocate_section): Don't object to
* cofflink.c (_bfd_coff_generic_relocate_section): Don't object to
weak undefined symbols.
2000-11-24 Nick Clifton <nickc@redhat.com>
@ -491,7 +505,7 @@
(get_got): Delete unused local srel.
(elfNN_ia64_check_relocs): Initialize dynrel_type when declared.
(elfNN_ia64_relocate_section): Delete unused local dynindx.
2000-11-21 Kazu Hirata <kazu@hxi.com>
* coff-a29k.c: Fix formatting.
@ -727,7 +741,7 @@
* configure.in: Recognize alpha-*-freebsd*.
* configure: Regenerate.
2000-11-02 Luciano Gemme <ishitawa@yahoo.com>
2000-11-02 Luciano Gemme <ishitawa@yahoo.com>
* srec.c (CHUNK): Rename to DEFAULT_CHUNK.
(Chunk): New global variable set by a parameter in objcopy.c.
@ -744,7 +758,7 @@
* Makefile.in: Regenerate.
* bfd-in2.h: Regenerate.
* po/bfd.pot: Regenerate.
2000-10-31 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Only handle
@ -755,10 +769,10 @@
* elf32-arm.h (elf32_arm_copy_private_bfd_data): Don't refuse
attempts to mix PIC code with non-PIC, just mark the output as
being position dependent.
(elf32_arm_merge_private_bfd_data): Likewise. Print an error
message for EF_SOFT_FLOAT mismatches. Display diagnostics for
(elf32_arm_merge_private_bfd_data): Likewise. Print an error
message for EF_SOFT_FLOAT mismatches. Display diagnostics for
all mismatches, not just the first one.
2000-10-25 Chris Demetriou <cgd@sibyte.com>
* ieee.c (ieee_archive_p): Plug one of many possible
@ -803,7 +817,7 @@
local_p. Add symbol value only for non-R_MIPS_REL32 relocations
against local symbols.
(_bfd_mips_elf_finish_dynamic_sections): Undo patch from 2000-10-01.
2000-10-12 Alan Modra <alan@linuxcare.com.au>
* section.c (struct sec): Add kept_section.
@ -814,7 +828,7 @@
* bfd-in2.h: Regenerate.
* elflink.h (elf_link_add_object_symbols): Remove unnecessary
zeroing of `flags'.
zeroing of `flags'.
(elf_link_input_bfd): Set all asection->symbol->value's here, and
fudge values for discarded link-once section symbols.
@ -832,7 +846,7 @@
2000-10-10 Tom Rix <trix@redhat.com>
* section.c (bfd_make_section_anyway): Release newsect ptr when
* section.c (bfd_make_section_anyway): Release newsect ptr when
newsect->symbol fails to alloc. Use bfd_release instead of free.
2000-10-09 Richard Henderson <rth@cygnus.com
@ -982,7 +996,7 @@
2000-09-26 Hans-Peter Nilsson <hp@axis.com>
* elfcode.h (elf_object_p): Preserve and clear abfd section
information. Restore at error.
information. Restore at error.
2000-09-26 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
@ -1168,10 +1182,10 @@
2000-09-13 Anders Norlander <anorland@acc.umu.se>
* cpu-mips.c (arch_info_struct): Add mips:4K
* bfd-in2.h (bfd_mach_mips4K): New define.
* archures.c: Add bfd_mach_mips4K to comment.
* elf32-mips.c (_bfd_mips_elf_final_write_processing): Return
* cpu-mips.c (arch_info_struct): Add mips:4K
* bfd-in2.h (bfd_mach_mips4K): New define.
* archures.c: Add bfd_mach_mips4K to comment.
* elf32-mips.c (_bfd_mips_elf_final_write_processing): Return
E_MIPS_ARCH_2 for bfd_mach_mips4K.
2000-09-13 Marco Franzen <marcof@thyron.com>
@ -4003,7 +4017,7 @@ Thu Feb 10 20:07:50 GMT 2000 Toshiyasu Morita (toshi.morita@sega.com)
* coffcode.h: Use bfd_coff_xxx instead of the macro XXX (where xxx
= scnhsz, filhsz, relsz, aoutsz, etc)
* coffswap.h: Ditto.
* coffswap.h: Ditto.
2000-01-13 Nick Clifton <nickc@cygnus.com>

View File

@ -257,16 +257,23 @@ case "${targ}" in
#ifdef BFD64
hppa*64*-*-linux-gnu*)
targ_defvec=bfd_elf64_hppa_vec
targ_defvec=bfd_elf64_hppa_linux_vec
targ_selvecs=bfd_elf64_hppa_vec
;;
hppa*64*-*-hpux11*)
targ_defvec=bfd_elf64_hppa_vec
targ_selvecs=bfd_elf64_hppa_linux_vec
targ_cflags=-DHPUX_LARGE_AR_IDS
;;
#endif
hppa*-*-*elf* | hppa*-*-linux-gnu* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
hppa*-*-linux-gnu*)
targ_defvec=bfd_elf32_hppa_linux_vec
targ_selvecs=bfd_elf32_hppa_vec
;;
hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
targ_defvec=bfd_elf32_hppa_vec
targ_selvecs=bfd_elf32_hppa_linux_vec
;;
#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) || defined (HOST_HPPAMPEIX)

30
bfd/configure vendored
View File

@ -5932,7 +5932,8 @@ do
target64=true ;;
bfd_elf64_alpha_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"
target64=true ;;
bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"
bfd_elf64_hppa_vec | bfd_elf64_hppa_linux_vec)
tb="$tb elf64-hppa.lo elf64.lo $elf"
target64=true ;;
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"
target64=true ;;
@ -5955,7 +5956,8 @@ do
bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
bfd_elf32_d30v_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_hppa_vec | bfd_elf32_hppa_linux_vec)
tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;;
bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"
@ -6177,17 +6179,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:6181: checking for $ac_hdr" >&5
echo "configure:6183: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 6186 "configure"
#line 6188 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:6191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:6193: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -6216,12 +6218,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:6220: checking for $ac_func" >&5
echo "configure:6222: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 6225 "configure"
#line 6227 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -6244,7 +6246,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:6248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:6250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -6269,7 +6271,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
echo "configure:6273: checking for working mmap" >&5
echo "configure:6275: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6277,7 +6279,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
#line 6281 "configure"
#line 6283 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@ -6417,7 +6419,7 @@ main()
}
EOF
if { (eval echo configure:6421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:6423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@ -6442,12 +6444,12 @@ fi
for ac_func in madvise mprotect
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:6446: checking for $ac_func" >&5
echo "configure:6448: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 6451 "configure"
#line 6453 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -6470,7 +6472,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:6474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:6476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else

View File

@ -481,7 +481,8 @@ do
target64=true ;;
bfd_elf64_alpha_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"
target64=true ;;
bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"
bfd_elf64_hppa_vec | bfd_elf64_hppa_linux_vec)
tb="$tb elf64-hppa.lo elf64.lo $elf"
target64=true ;;
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"
target64=true ;;
@ -504,7 +505,8 @@ do
bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
bfd_elf32_d30v_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_hppa_vec | bfd_elf32_hppa_linux_vec)
tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;;
bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"

View File

@ -399,6 +399,9 @@ static boolean elf32_hppa_finish_dynamic_symbol
static boolean elf32_hppa_finish_dynamic_sections
PARAMS ((bfd *, struct bfd_link_info *));
static void elf32_hppa_post_process_headers
PARAMS ((bfd *, struct bfd_link_info *));
static int elf32_hppa_elf_get_symbol_type
PARAMS ((Elf_Internal_Sym *, int));
@ -4233,6 +4236,27 @@ elf32_hppa_finish_dynamic_sections (output_bfd, info)
return true;
}
/* Tweak the OSABI field of the elf header. */
static void
elf32_hppa_post_process_headers (abfd, link_info)
bfd *abfd;
struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
{
Elf_Internal_Ehdr * i_ehdrp;
i_ehdrp = elf_elfheader (abfd);
if (strcmp (bfd_get_target (abfd), "elf32-hppa-linux") == 0)
{
i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_LINUX;
}
else
{
i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_HPUX;
}
}
/* Called when writing out an object file to decide the type of a
symbol. */
static int
@ -4269,6 +4293,7 @@ elf32_hppa_elf_get_symbol_type (elf_sym, type)
#define elf_backend_gc_sweep_hook elf32_hppa_gc_sweep_hook
#define elf_backend_object_p elf32_hppa_object_p
#define elf_backend_final_write_processing elf_hppa_final_write_processing
#define elf_backend_post_process_headers elf32_hppa_post_process_headers
#define elf_backend_get_symbol_type elf32_hppa_elf_get_symbol_type
#define elf_backend_can_gc_sections 1
@ -4285,3 +4310,11 @@ elf32_hppa_elf_get_symbol_type (elf_sym, type)
#define ELF_MAXPAGESIZE 0x1000
#include "elf32-target.h"
#undef TARGET_BIG_SYM
#define TARGET_BIG_SYM bfd_elf32_hppa_linux_vec
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf32-hppa-linux"
#define INCLUDED_TARGET_FILE 1
#include "elf32-target.h"

View File

@ -1166,8 +1166,15 @@ elf64_hppa_post_process_headers (abfd, link_info)
i_ehdrp = elf_elfheader (abfd);
i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_HPUX;
i_ehdrp->e_ident[EI_ABIVERSION] = 1;
if (strcmp (bfd_get_target (abfd), "elf64-hppa-linux") == 0)
{
i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_LINUX;
}
else
{
i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_HPUX;
i_ehdrp->e_ident[EI_ABIVERSION] = 1;
}
}
/* Create function descriptor section (.opd). This section is called .opd
@ -2657,3 +2664,11 @@ const struct elf_size_info hppa64_elf_size_info =
#define elf_backend_type_change_ok true
#include "elf64-target.h"
#undef TARGET_BIG_SYM
#define TARGET_BIG_SYM bfd_elf64_hppa_linux_vec
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf64-hppa-linux"
#define INCLUDED_TARGET_FILE 1
#include "elf64-target.h"

View File

@ -1,5 +1,5 @@
/* Generic target-file-type support for the BFD library.
Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001
Free Software Foundation, Inc.
Written by Cygnus Support.
@ -508,6 +508,7 @@ extern const bfd_target bfd_efi_app_ia32_vec;
extern const bfd_target bfd_efi_app_ia64_vec;
extern const bfd_target bfd_elf64_alpha_vec;
extern const bfd_target bfd_elf64_hppa_vec;
extern const bfd_target bfd_elf64_hppa_linux_vec;
extern const bfd_target bfd_elf64_ia64_little_vec;
extern const bfd_target bfd_elf64_ia64_big_vec;
extern const bfd_target bfd_elf32_ia64_big_vec;
@ -526,6 +527,7 @@ extern const bfd_target bfd_elf32_us_cris_vec;
extern const bfd_target bfd_elf32_d10v_vec;
extern const bfd_target bfd_elf32_d30v_vec;
extern const bfd_target bfd_elf32_hppa_vec;
extern const bfd_target bfd_elf32_hppa_linux_vec;
extern const bfd_target bfd_elf32_i370_vec;
extern const bfd_target bfd_elf32_i386_vec;
extern const bfd_target bfd_elf32_i860_vec;
@ -719,6 +721,7 @@ const bfd_target * const bfd_target_vector[] = {
#ifdef BFD64
&bfd_elf64_alpha_vec,
&bfd_elf64_hppa_vec,
&bfd_elf64_hppa_linux_vec,
&bfd_elf64_ia64_little_vec,
&bfd_elf64_ia64_big_vec,
#endif
@ -735,6 +738,7 @@ const bfd_target * const bfd_target_vector[] = {
&bfd_elf32_d10v_vec,
&bfd_elf32_d30v_vec,
&bfd_elf32_hppa_vec,
&bfd_elf32_hppa_linux_vec,
&bfd_elf32_i370_vec,
&bfd_elf32_i386_vec,
#ifdef BFD64

View File

@ -1,5 +1,7 @@
2001-01-14 Alan Modra <alan@linuxcare.com.au>
* emulparams/hppalinux.sh (OUTPUT_FORMAT): Set to elf32-hppa-linux.
* emultempl/hppaelf.em (hppaelf_after_parse): New function,
enabling search for libmilli. On a relocatable link, make .text
sections unique.
@ -109,7 +111,7 @@
* ldmain.c (main): Initialize link_info.allow_shlib_undefined
to false.
* ld.texinfo: Document new command line switch.
2000-12-12 Geoffrey Keating <geoffk@redhat.com>
* emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS):
@ -129,7 +131,7 @@ Mon Dec 11 14:50:33 MET 2000 Jan Hubicka <jh@suse.cz>
2000-12-01 Joel Sherrill <joel@OARcorp.com>
* configure.tgt (arm-*-rtems*, a29k-*rtems*, h8300-*-rtems*):
* configure.tgt (arm-*-rtems*, a29k-*rtems*, h8300-*-rtems*):
New targets.
(sparc*-*-rtemself*, sparc*-*-rtemsaout*): New targets.
(sparc*-*-rtems*): Switched from a.out to ELF.
@ -174,8 +176,8 @@ Mon Dec 11 14:50:33 MET 2000 Jan Hubicka <jh@suse.cz>
2000-11-24 Fred Fish <fnf@be.com>
* ldmain.c (main): Remove redundant init of config.make_executable
to true.
* ldmain.c (main): Remove redundant init of config.make_executable
to true.
2000-11-15 Richard Henderson <rth@redhat.com>
@ -253,9 +255,9 @@ Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
2000-10-17 Chandrakala Chavva <cchavva@redhat.com>
* lexsup.c: New option OPTION_TARGET_HELP. Prints all target specific
options.
* ld.texinfo: Added notes about this new option.
* lexsup.c: New option OPTION_TARGET_HELP. Prints all target specific
options.
* ld.texinfo: Added notes about this new option.
2000-10-16 Nick Clifton <nickc@redhat.com>
@ -271,7 +273,7 @@ Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
pe_dll_search_prefix.
2000-10-12 Charles Wilson <cwilson@ece.gatech.edu>
* emultempl/pe.em (pe_dll_search_prefix): New variable,
(longopts): New --dll-search-prefix option.
(gld_${EMULATION_NAME}_list_options): Document.
@ -379,7 +381,7 @@ Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
* pe-dll.c (process_def_file): Uninitialized data wasn't
exported with --export-all-symbols switch.
2000-09-28 DJ Delorie <dj@redhat.com>
* pe-dll.c (fill_edata): rearrange the data so that ordinals and
@ -847,7 +849,7 @@ Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
2000-07-12 Mark Elbrecht <snowball3@bigfoot.com>
* scripttempl/i386go32.sc: Support the g++ attribute init_priority in
gcc 2.95.2 and later.
gcc 2.95.2 and later.
2000-07-11 Kazu Hirata <kazu@hxi.com>
@ -1097,9 +1099,9 @@ Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
2000-06-05 Michael Matz <matz@ifh.de>
* ldgram.y (vers_defns): Handle 'extern "C++" { ... }' in
version scripts.
version scripts.
* ldlex.l (V_IDENTIFIER): Accept `::' in symbols.
* ldlex.l (V_IDENTIFIER): Accept `::' in symbols.
2000-05-23 Marek Michalkiewicz <marekm@linux.org.pl>

View File

@ -1,6 +1,6 @@
SCRIPT_NAME=elf
ELFSIZE=32
OUTPUT_FORMAT="elf32-hppa"
OUTPUT_FORMAT="elf32-hppa-linux"
TEXT_START_ADDR=0x1000
TARGET_PAGE_SIZE=0x1000
MAXPAGESIZE=0x1000