2010-05-14 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (_bfd_vms_lib_ia64_archive_p): New function. * libbfd-in.h (_bfd_vms_lib_ia64_archive_p): Add prototype. * libbfd.h: Regenerate. * configure.in (havevecs): Define HAVE_all_vecs when --enable-targets=all is set. Use AC_SUBST on it. (tdefaults): Do not add havevecs. (bfd_elf64_ia64_vms_vec): Add vms-lib.lo and vms-misc.lo * configure: Regenerate. * Makefile.am (HAVEVECS): New variable. (INCLUDES): Add HAVEVECS. * Makefile.in: Regenerate. * elfxx-ia64.c (INCLUDE_IA64_VMS): New macro, defined if vms target is selected. Add #ifdef/#endif around vms specific code. (bfd_elfNN_archive_p, bfd_elfNN_archive_slurp_armap, bfd_elfNN_archive_slurp_extended_name_table, bfd_elfNN_archive_construct_extended_name_table, bfd_elfNN_archive_truncate_arname, bfd_elfNN_archive_write_armap, bfd_elfNN_archive_read_ar_hdr, bfd_elfNN_archive_write_ar_hdr, bfd_elfNN_archive_openr_next_archived_file, bfd_elfNN_archive_get_elt_at_index, bfd_elfNN_archive_generic_stat_arch_elt, bfd_elfNN_archive_update_armap_timestamp): Define to use vms archives.
This commit is contained in:
parent
7a2988756d
commit
7256a1142a
@ -1,3 +1,30 @@
|
||||
2010-05-14 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* vms-lib.c (_bfd_vms_lib_ia64_archive_p): New function.
|
||||
* libbfd-in.h (_bfd_vms_lib_ia64_archive_p): Add prototype.
|
||||
* libbfd.h: Regenerate.
|
||||
* configure.in (havevecs): Define HAVE_all_vecs when
|
||||
--enable-targets=all is set. Use AC_SUBST on it.
|
||||
(tdefaults): Do not add havevecs.
|
||||
(bfd_elf64_ia64_vms_vec): Add vms-lib.lo and vms-misc.lo
|
||||
* configure: Regenerate.
|
||||
* Makefile.am (HAVEVECS): New variable.
|
||||
(INCLUDES): Add HAVEVECS.
|
||||
* Makefile.in: Regenerate.
|
||||
* elfxx-ia64.c (INCLUDE_IA64_VMS): New macro, defined if vms
|
||||
target is selected. Add #ifdef/#endif around vms specific code.
|
||||
(bfd_elfNN_archive_p, bfd_elfNN_archive_slurp_armap,
|
||||
bfd_elfNN_archive_slurp_extended_name_table,
|
||||
bfd_elfNN_archive_construct_extended_name_table,
|
||||
bfd_elfNN_archive_truncate_arname,
|
||||
bfd_elfNN_archive_write_armap,
|
||||
bfd_elfNN_archive_read_ar_hdr,
|
||||
bfd_elfNN_archive_write_ar_hdr,
|
||||
bfd_elfNN_archive_openr_next_archived_file,
|
||||
bfd_elfNN_archive_get_elt_at_index,
|
||||
bfd_elfNN_archive_generic_stat_arch_elt,
|
||||
bfd_elfNN_archive_update_armap_timestamp): Define to use vms archives.
|
||||
|
||||
2010-05-11 Jie Zhang <jie@codesourcery.com>
|
||||
|
||||
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge
|
||||
|
@ -682,8 +682,10 @@ ALL_BACKENDS = @all_backends@
|
||||
BFD_BACKENDS = @bfd_backends@
|
||||
BFD_MACHINES = @bfd_machines@
|
||||
TDEFAULTS = @tdefaults@
|
||||
HAVEVECS = @havevecs@
|
||||
|
||||
INCLUDES = @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) @INCINTL@
|
||||
INCLUDES = @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) \
|
||||
$(HAVEVECS) @INCINTL@
|
||||
|
||||
# C source files that correspond to .o's.
|
||||
SOURCE_CFILES = \
|
||||
|
@ -277,6 +277,7 @@ datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
havevecs = @havevecs@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
@ -982,7 +983,10 @@ ALL_BACKENDS = @all_backends@
|
||||
BFD_BACKENDS = @bfd_backends@
|
||||
BFD_MACHINES = @bfd_machines@
|
||||
TDEFAULTS = @tdefaults@
|
||||
INCLUDES = @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) @INCINTL@
|
||||
HAVEVECS = @havevecs@
|
||||
INCLUDES = @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) \
|
||||
$(HAVEVECS) @INCINTL@
|
||||
|
||||
|
||||
# C source files that correspond to .o's.
|
||||
SOURCE_CFILES = \
|
||||
|
11
bfd/configure
vendored
11
bfd/configure
vendored
@ -602,6 +602,7 @@ ac_subst_vars='am__EXEEXT_FALSE
|
||||
am__EXEEXT_TRUE
|
||||
LTLIBOBJS
|
||||
LIBOBJS
|
||||
havevecs
|
||||
tdefaults
|
||||
bfd_ufile_ptr
|
||||
bfd_file_ptr
|
||||
@ -11405,7 +11406,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 11408 "configure"
|
||||
#line 11409 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -11511,7 +11512,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 11514 "configure"
|
||||
#line 11515 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -15163,7 +15164,7 @@ do
|
||||
bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_ia64_vms_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_ia64_vms_vec) tb="$tb elf64-ia64.lo elf64.lo vms-lib.lo vms-misc.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_little_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_littlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
|
||||
bfd_elf64_mmix_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;;
|
||||
@ -15354,7 +15355,7 @@ if test x${all_targets} = xtrue ; then
|
||||
bfd_backends="${bfd_backends}"' $(ALL_BACKENDS)'
|
||||
bfd_machines="${bfd_machines}"' $(ALL_MACHINES)'
|
||||
selvecs=
|
||||
havevecs=
|
||||
havevecs=-DHAVE_all_vecs
|
||||
selarchs=
|
||||
test -n "$assocvecs" &&
|
||||
assocvecs=`echo $assocvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
|
||||
@ -15500,7 +15501,7 @@ test -n "${defvec}" && tdefaults="${tdefaults} -DDEFAULT_VECTOR=${defvec}"
|
||||
test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'"
|
||||
test -n "${assocvecs}" && tdefaults="${tdefaults} -DASSOCIATED_VECS='${assocvecs}'"
|
||||
test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'"
|
||||
test -n "${havevecs}" && tdefaults="${tdefaults} ${havevecs}"
|
||||
|
||||
|
||||
|
||||
for ac_header in stdlib.h unistd.h
|
||||
|
@ -801,7 +801,7 @@ do
|
||||
bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_ia64_vms_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_ia64_vms_vec) tb="$tb elf64-ia64.lo elf64.lo vms-lib.lo vms-misc.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_little_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_littlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
|
||||
bfd_elf64_mmix_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;;
|
||||
@ -992,7 +992,7 @@ if test x${all_targets} = xtrue ; then
|
||||
bfd_backends="${bfd_backends}"' $(ALL_BACKENDS)'
|
||||
bfd_machines="${bfd_machines}"' $(ALL_MACHINES)'
|
||||
selvecs=
|
||||
havevecs=
|
||||
havevecs=-DHAVE_all_vecs
|
||||
selarchs=
|
||||
test -n "$assocvecs" &&
|
||||
assocvecs=`echo $assocvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
|
||||
@ -1077,8 +1077,8 @@ test -n "${defvec}" && tdefaults="${tdefaults} -DDEFAULT_VECTOR=${defvec}"
|
||||
test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'"
|
||||
test -n "${assocvecs}" && tdefaults="${tdefaults} -DASSOCIATED_VECS='${assocvecs}'"
|
||||
test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'"
|
||||
test -n "${havevecs}" && tdefaults="${tdefaults} ${havevecs}"
|
||||
AC_SUBST(tdefaults)
|
||||
AC_SUBST(havevecs)
|
||||
|
||||
dnl AC_CHECK_HEADERS(sys/mman.h)
|
||||
AC_FUNC_MMAP
|
||||
|
@ -67,6 +67,15 @@
|
||||
MIN_PLT Created by PLTOFF entries against dynamic symbols. This
|
||||
does not require dynamic relocations. */
|
||||
|
||||
/* Only add code for vms when the vms target is enabled. This is required
|
||||
because it depends on vms-lib.c for its archive format and we don't want
|
||||
to compile that code if it is not used. */
|
||||
#if ARCH_SIZE == 64 && \
|
||||
(defined (HAVE_bfd_elf64_ia64_vms_vec) || defined (HAVE_all_vecs))
|
||||
#define INCLUDE_IA64_VMS
|
||||
#endif
|
||||
|
||||
|
||||
#define NELEMS(a) ((int) (sizeof (a) / sizeof ((a)[0])))
|
||||
|
||||
typedef struct bfd_hash_entry *(*new_hash_entry_func)
|
||||
@ -5723,6 +5732,8 @@ elfNN_hpux_backend_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef INCLUDE_IA64_VMS
|
||||
|
||||
static bfd_boolean
|
||||
elfNN_vms_section_from_shdr (bfd *abfd,
|
||||
Elf_Internal_Shdr *hdr,
|
||||
@ -5984,6 +5995,7 @@ elfNN_vms_close_and_cleanup (bfd *abfd)
|
||||
|
||||
return _bfd_generic_close_and_cleanup (abfd);
|
||||
}
|
||||
#endif /* INCLUDE_IA64_VMS */
|
||||
|
||||
#define TARGET_LITTLE_SYM bfd_elfNN_ia64_little_vec
|
||||
#define TARGET_LITTLE_NAME "elfNN-ia64-little"
|
||||
@ -6117,6 +6129,7 @@ elfNN_vms_close_and_cleanup (bfd *abfd)
|
||||
#include "elfNN-target.h"
|
||||
|
||||
/* VMS-specific vectors. */
|
||||
#ifdef INCLUDE_IA64_VMS
|
||||
|
||||
#undef TARGET_LITTLE_SYM
|
||||
#define TARGET_LITTLE_SYM bfd_elfNN_ia64_vms_vec
|
||||
@ -6160,4 +6173,36 @@ elfNN_vms_close_and_cleanup (bfd *abfd)
|
||||
#undef elfNN_bed
|
||||
#define elfNN_bed elfNN_ia64_vms_bed
|
||||
|
||||
/* Use VMS-style archives (in particular, don't use the standard coff
|
||||
archive format). */
|
||||
#define bfd_elfNN_archive_functions
|
||||
|
||||
#undef bfd_elfNN_archive_p
|
||||
#define bfd_elfNN_archive_p _bfd_vms_lib_ia64_archive_p
|
||||
|
||||
#define bfd_elfNN_archive_slurp_armap \
|
||||
_bfd_vms_lib_slurp_armap
|
||||
#define bfd_elfNN_archive_slurp_extended_name_table \
|
||||
_bfd_vms_lib_slurp_extended_name_table
|
||||
#define bfd_elfNN_archive_construct_extended_name_table \
|
||||
_bfd_vms_lib_construct_extended_name_table
|
||||
#define bfd_elfNN_archive_truncate_arname \
|
||||
_bfd_vms_lib_truncate_arname
|
||||
#define bfd_elfNN_archive_write_armap \
|
||||
_bfd_vms_lib_write_armap
|
||||
#define bfd_elfNN_archive_read_ar_hdr \
|
||||
_bfd_vms_lib_read_ar_hdr
|
||||
#define bfd_elfNN_archive_write_ar_hdr \
|
||||
_bfd_vms_lib_write_ar_hdr
|
||||
#define bfd_elfNN_archive_openr_next_archived_file \
|
||||
_bfd_vms_lib_openr_next_archived_file
|
||||
#define bfd_elfNN_archive_get_elt_at_index \
|
||||
_bfd_vms_lib_get_elt_at_index
|
||||
#define bfd_elfNN_archive_generic_stat_arch_elt \
|
||||
_bfd_vms_lib_generic_stat_arch_elt
|
||||
#define bfd_elfNN_archive_update_armap_timestamp \
|
||||
_bfd_vms_lib_update_armap_timestamp
|
||||
|
||||
#include "elfNN-target.h"
|
||||
|
||||
#endif /* INCLUDE_IA64_VMS */
|
||||
|
@ -375,6 +375,7 @@ extern int _bfd_vms_lib_generic_stat_arch_elt (bfd *, struct stat *);
|
||||
extern symindex _bfd_vms_lib_find_symbol (bfd *, const char *);
|
||||
extern bfd *_bfd_vms_lib_get_imagelib_file (bfd *);
|
||||
extern const bfd_target *_bfd_vms_lib_alpha_archive_p (bfd *abfd);
|
||||
extern const bfd_target *_bfd_vms_lib_ia64_archive_p (bfd *abfd);
|
||||
extern bfd_boolean _bfd_vms_lib_mkarchive (bfd *abfd);
|
||||
|
||||
/* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol
|
||||
|
@ -380,6 +380,7 @@ extern int _bfd_vms_lib_generic_stat_arch_elt (bfd *, struct stat *);
|
||||
extern symindex _bfd_vms_lib_find_symbol (bfd *, const char *);
|
||||
extern bfd *_bfd_vms_lib_get_imagelib_file (bfd *);
|
||||
extern const bfd_target *_bfd_vms_lib_alpha_archive_p (bfd *abfd);
|
||||
extern const bfd_target *_bfd_vms_lib_ia64_archive_p (bfd *abfd);
|
||||
extern bfd_boolean _bfd_vms_lib_mkarchive (bfd *abfd);
|
||||
|
||||
/* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol
|
||||
|
@ -619,6 +619,14 @@ _bfd_vms_lib_alpha_archive_p (bfd *abfd)
|
||||
return _bfd_vms_lib_archive_p (abfd, vms_lib_alpha);
|
||||
}
|
||||
|
||||
/* Standard function for ia64 libraries. */
|
||||
|
||||
const bfd_target *
|
||||
_bfd_vms_lib_ia64_archive_p (bfd *abfd)
|
||||
{
|
||||
return _bfd_vms_lib_archive_p (abfd, vms_lib_ia64);
|
||||
}
|
||||
|
||||
/* Standard function for text libraries. */
|
||||
|
||||
static const bfd_target *
|
||||
|
Loading…
Reference in New Issue
Block a user