Commit Graph

13438 Commits

Author SHA1 Message Date
Corinna Vinschen 471bbbe240 * setfacl.c (strchrnul): Drop local implementation. 2011-03-28 21:21:03 +00:00
Corinna Vinschen 75526ad530 * new-features.sgml (ov-new1.7.9): Add "new API" paragraph. 2011-03-28 15:01:19 +00:00
Corinna Vinschen ec0f7c31f3 * cygwin.din (strchrnul): Export.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
	* posix.sgml (std-gnu): Add strchrnul.
2011-03-28 14:55:20 +00:00
Corinna Vinschen cb840afddf Check in strchrnul.c file missing in previous checkin 2011-03-28 14:52:17 +00:00
Corinna Vinschen 43ff4129ce * libc/include/string.h (strchrnul): Declare.
* libc/string/strchrnul.c: New file.
	* libc/string/Makefile.am (ELIX_2_SOURCES): Add strchrnul.c.
	* libc/string/Makefile.in: Regenerate.
2011-03-28 14:51:28 +00:00
Joseph Myers 44dabc0869 * configure.ac (i[[3456789]]86-*-msdosdjgpp*): Don't disable
libffi on host.
	(x86_64-*-mingw*, i[[3456789]]86-*-mingw32*): Don't disable newlib
	on host.
	(c54x*-*-* | tic54x-*-*): Don't disable newlib on host.
	* configure: Regenerate.
2011-03-28 13:14:27 +00:00
Nick Clifton 573c698ac9 Add support for DragonFlyBSD target. 2011-03-28 11:18:20 +00:00
Christopher Faylor f3e3e0e7eb * dll_init.cc (dll::init): Accommodate ill-behaved dlls who don't fill out
p.envptr.
2011-03-27 19:14:02 +00:00
Michael Frysinger 623f23351c fix typo in previous changelog entry 2011-03-27 03:48:44 +00:00
Michael Frysinger d2d0cc5c32 libgloss: bfin: fix asm constraints for raise/excpt helpers
The RAISE and EXPT insns take a constant, not a register.  So make
sure the asm constraints reflect this.
2011-03-27 03:47:30 +00:00
Michael Frysinger 0f6ab41477 libgloss: bfin: abort on install errors 2011-03-27 03:40:00 +00:00
Chris Sutcliffe d42e1efcf9 2011-03-25 Chris Sutcliffe <ir0nh34d@users.sf.net>
* Makefile.in: Increment CYGRELEASE to 2.
2011-03-26 03:47:54 +00:00
Chris Sutcliffe 2642251d66 2011-03-25 Chris Sutcliffe <ir0nh34d@users.sf.net>
* lib/Makefile.in: Include GDIPLUS_HEADERS in dist target.
2011-03-26 03:41:23 +00:00
Corinna Vinschen 57abff16c3 * mmap.cc (mmap64): Add a cheat to let a certain autoconf test succeed
on 64 bit systems.  Explain why.
2011-03-25 20:39:26 +00:00
Tom Tromey d6ab646ff6 2011-03-24 Mark Wielaard <mjw@redhat.com>
* dwarf2.h (dwarf_form): Remove deprecated DW_FORM_sig8 define.
2011-03-25 15:45:38 +00:00
Joseph Myers 5b45e8c9e8 * configure.ac (native_only): Remove.
(i[[3456789]]86-*-msdosdjgpp*): Don't disable expect dejagnu
	send-pr uudecode guile gnuserv on host.
	(x86_64-*-mingw*): Don't disable expect dejagnu autoconf automake
	send-pr rcs guile perl texinfo libtool on host.
	(i[[3456789]]86-*-mingw32*): Don't disable expect dejagnu autoconf
	automake send-pr rcs guile perl texinfo libtool on host.
	(*-*-cygwin*, *-*-netbsd*): Remove host cases.
	(*-*-kaos*): Don't disable target-examples target-gperf on target.
	(alpha*-dec-osf*): Don't disable fileutils on target.
	(sh*-*-pe|mips*-*-pe|*arm-wince-pe): Don't disable target-examples
	texinfo send-pr expect dejagnu on target.
	(arm-*-elf* | arm*-*-eabi*, arm*-*-linux-gnueabi): Don't disable
	target-qthreads on target.
	(hppa*-hp-hpux11*, hppa*-*-*): Don't disable shellutils on target.
	(ia64*-*-elf*, ia64*-*-*vms*): Don't disable mmalloc on target.
	(i[[3456789]]86-w64-mingw*, i[[3456789]]86-*-mingw*,
	x86_64-*-mingw*): Don't disable expect on target.
	(*-*-cygwin*): Don't disable target-gperf on target.
	(powerpc*-*-winnt* | powerpc*-*-pe*): Don't disable make expect
	gnuserv on target.
	(powerpcle-*-solaris*): Don't disable make expect gnuserv on
	target.
	* configure: Regenerate.
2011-03-25 13:08:19 +00:00
Joseph Myers ccb5de3ec3 * configure.ac (target_tools): Remove target-groff.
(native_only): Remove target-groff.
	(hppa*64*-*-*): Don't disable byacc.
	(i[[3456789]]86-*-mingw32*): Remove commented-out noconfigdirs
	setting.
	(*-*-kaos*): Don't skip target-librx and target-groff.
	(*-*-netware*): Don't skip target-libmudflap.
	(*-*-tpf*): Don't skip target-libmudflap.
	(sh*-*-pe|mips*-*-pe|*arm-wince-pe): Don't condition configured
	directories on the host.
	(ia64*-*-*vms*): Don't skip tix.
	(sh-*-* | sh64-*-*): Don't condition skipped directories on the
	host.
	* configure: Regenerate.
2011-03-25 11:36:41 +00:00
Paolo Bonzini 3f984ad86f 2011-03-24 Paolo Bonzini <pbonzini@redhat.com>
* configure.ac: Remove references to mt-mep, mt-netware,
        mt-wince.
        * Makefile.def: Add all-utils soft dependencies.
        * Makefile.tpl: Remove GDB_NLM_DEPS.
        * configure: Regenerate.
        * Makefile.in: Regenerate.

config:
2011-03-24  Paolo Bonzini  <pbonzini@redhat.com>

        * mt-mep: Remove, obsolete.
        * mt-netware: Remove, obsolete.
        * mt-wince: Remove, obsolete.
        * mt-v810: Remove, unused.
2011-03-24 17:50:32 +00:00
Paolo Bonzini 0d77047a14 2011-03-24 Paolo Bonzini <bonzini@gnu.org>
Sync from GCC:

	2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Remove empty cases.
	* configure: Regenerate.

	2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def: Add dependency from termcap to gdb.
	* Makefile.in: Regenerate.

	2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Remove all mentions of mh-sysv4 and mh-solaris.
	* configure: Regenerate.
	* Makefile.def: Remove all mentions of X11_FLAGS_TO_PASS.
	* Makefile.tpl: Likewise.
	* Makefile.in: Regenerate.

	2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Remove all mentions of tentative_cc.
	* configure: Regenerate.

	2011-03-16  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR lto/48086
	* configure.ac: Re-enable LTO on *-apple-darwin9.
	* configure: Regenerate.

config:
2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	Sync from GCC:

	2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* mh-cygwin: Remove obsolete variables and dependencies.

	2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* mh-sysv4: Remove.
	* mh-solaris: Remove.

	2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* mh-sysv4: Remove AR_CFLAGS.
2011-03-24 17:31:20 +00:00
Paolo Bonzini bc7fed603f 2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* mh-sysv4: Remove AR_CFLAGS.
2011-03-24 16:55:11 +00:00
Joseph Myers 4e55c4e3e0 * configure.ac (i[[3456789]]86-*-vsta, i[[3456789]]86-*-go32*,
i[[3456789]]86-*-beos*, powerpc-*-beos*, m68k-hp-hpux*,
	m68k-apollo-sysv*, m68k-apollo-bsd*, m88k-dg-dgux*,
	m88k-harris-cxux*, m88k-motorola-sysv*, mips*-dec-ultrix*,
	mips*-nec-sysv4*, mips*-sgi-irix4*, mips*-*-sysv4*, mips*-*-sysv*,
	i370-ibm-opened*, i[[3456789]]86-*-sysv5*, i[[3456789]]86-*-dgux*,
	i[[3456789]]86-ncr-sysv4.3*, i[[3456789]]86-ncr-sysv4*,
	i[[3456789]]86-*-sco3.2v5*, i[[3456789]]86-*-sco*,
	i[[3456789]]86-*-udk*, vax-*-ultrix2*, m68k-sun-sunos*,
	hppa*-*-hiux*, *-*-hiux*, rs6000-*-lynxos*, *-*-sysv4*,
	*-*-rhapsody*): Remove host cases.
	* configure: Regenerate.

config:
	* mh-cxux, mh-decstation, mh-dgux386, mh-lynxrs6k, mh-ncr3000,
	mh-necv4, mh-sco, mh-sysv5: Remove.
2011-03-24 16:52:11 +00:00
Nick Clifton 1db7c629bc * xstormy16/crt0.s (_hwint): Fix .size directive. 2011-03-24 16:29:11 +00:00
Nick Clifton 1e71af509b * frv/crt0.S (__frv_fix_usrptrs): Fix .size directive. 2011-03-24 16:24:36 +00:00
Joseph Myers 3d4d1d300a * configure.ac (ppc*-*-pe): Remove host case.
(strongarm-*-coff | xscale-*-coff, strongarm-*-elf* |
	xscale-*-elf*, thumb-*-coff, thumb-*-elf, thumb-*-pe, ep9312-*-elf
	| ep9312-*-coff, parisc*64*-*-linux*, ppc*-*-pe): Remove target
	cases.
	* configure: Regenerate.
2011-03-24 13:25:45 +00:00
Joseph Myers d0e5be8531 * config.sub: Update to version 2011-03-23. 2011-03-24 11:13:32 +00:00
Christopher Faylor 50160412b0 * wincap.cc (wincap_2003): Set use_dont_resolve_hack to true. 2011-03-23 21:33:36 +00:00
Rafael Ávila de Espíndola fff06fa206 2010-03-23 Rafael Ávila de Espíndola <respindola@mozilla.com>
* plugin-api.h (ld_plugin_get_view): New.
	(ld_plugin_tag): Add LDPT_GET_VIEW.
	(ld_plugin_tv): Add tv_get_view.
2011-03-23 14:09:48 +00:00
Nick Clifton bf77fa00b7 * libc/machine/frv/setjmp.S: Fix typo in .size directive. 2011-03-23 11:01:05 +00:00
Christopher Faylor bb991481c5 * autoload.cc (dll_load): Change error message to make it clear if a newer DLL
is being run.
2011-03-23 05:30:49 +00:00
Joseph Myers 4fcb78d9d3 * configure.ac (arm-semi-aof, crx-*-*, parisc*-*-linux*,
i370-*-opened*, i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss*
	| i[[3456789]]86-*-uwin*, mcore-*-pe*): Remove empty cases.
	* configure: Regenerate.
2011-03-22 20:04:36 +00:00
Joseph Myers 9aedc1d4f4 * config-ml.in: Don't handle arc-*-elf*.
* configure.ac (arc-*-*, crx-*-*, i[[3456789]]86-*-pe,
	m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*, mcore-*-pe*): Don't
	handle GCC libraries.
	* configure: Regenerate.
2011-03-22 20:01:13 +00:00
Eric Weddington a6dffa8cac /bfd:
2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>

	* archures.c: Add AVR XMEGA architecture information.
	* cpu-avr.c (arch_info_struct): Likewise.
	* elf32-avr.c (bfd_elf_avr_final_write_processing): Likewise.
	(elf32_avr_object_p): Likewise.

/gas:
2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/tc-avr.c (struct avr_opcodes_s): Add opcode field.
	(AVR_INSN): Change definition to match.
	(avr_opcodes): Likewise, change to match.
	(mcu_types): Add XMEGA architecture names and new XMEGA device names.
	(md_show_usage): Add XMEGA architecture names.
	(avr_operand): Add 'E' constraint for DES instruction of XMEGA devices.
	Add support for SPM Z+ instruction.
	* doc/c-avr.texi: Add documentation for XMEGA architectures and
	devices.

/include/opcode:
2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>

	* avr.h (AVR_ISA_SPMX,AVR_ISA_DES,AVR_ISA_M256,AVR_ISA_XMEGA):
	New instruction set flags.
	(AVR_INSN): Add new instructions for SPM Z+, DES for XMEGA.

/ld:
2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>

	* Makefile.am (ALL_EMULATION_SOURCES): Add AVR XMEGA architectures.
	(eavrxmega?.c): Likewise.
	* configure.tgt (targ_extra_emuls): Likewise.
	* emulparams/avrxmega1.sh: New file.
	* emulparams/avrxmega2.sh: Likewise.
	* emulparams/avrxmega3.sh: Likewise.
	* emulparams/avrxmega4.sh: Likewise.
	* emulparams/avrxmega5.sh: Likewise.
	* emulparams/avrxmega6.sh: Likewise.
	* emulparams/avrxmega7.sh: Likewise.
	* emultempl/avrelf.em (avr_elf_${EMULATION_NAME}_before_allocation):
	Add avrxmega6, avrxmega7 to list of architectures for no stubs.

/opcodes:
2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>

	* avr-dis.c (avr_operand): Add opcode_str parameter. Check for
	post-increment to support LPM Z+ instruction. Add support for 'E'
	constraint for DES instruction.
	(print_insn_avr): Adjust calls to avr_operand. Rename variable.
2011-03-22 18:10:45 +00:00
Kevin Buettner 3b60b701b1 * libc/sys/sysnecv850/trap.S (___trap0): Fix errno handling.
* libc/sys/sysnecv850/rename.c: New file.
	* libc/sys/sysnecv850/Makefile.am (lib_a_SOURCES): Add rename.c
	* libc/sys/sysnecv850/Makefile.in: Regenerate.
	* libc/sys/sysnecv850/fstat.c (_fstat): Invoke trap for SYS_fstat.
	* libc/sys/sysnecv850/unlink.c (_unlink): Invoke trap for SYS_unlink.
2011-03-21 22:11:14 +00:00
Kevin Buettner 5e5b7f35ac * v850/sys/syscall.h (SYS_rename): Define. 2011-03-21 22:09:34 +00:00
Corinna Vinschen 654fee7ac5 * libltp/lib/get_high_address.c: Align copyright with upstream. 2011-03-21 15:42:54 +00:00
Rainer Orth eba1542c51 PR bootstrap/48120:
* configure.ac (pwllib): Use LIBS instead of LDFLAGS.
	Add -lstdc++ -lm to LIBS.
	* configure: Regenerate.
2011-03-21 13:03:34 +00:00
Corinna Vinschen cb8c63e08d Fix typo. 2011-03-20 15:36:13 +00:00
Corinna Vinschen 33150e7f40 * fenv.cc (_feinitialise); Don't use SSE instructions on systems not
supporting them.
	* wincap.h (wincaps::supports_sse): New element.
	* wincap.cc: Implement above element throughout.
2011-03-20 15:34:29 +00:00
Corinna Vinschen b8bdc60019 * cygwin.sc: Raise default cygheap size to 2 Megs. 2011-03-18 18:16:37 +00:00
David Edelsohn 4b7edd20f7 * config.guess: Update to version 2011-02-02
* config.sub: Update to version 2011-02-24
2011-03-18 17:44:46 +00:00
Corinna Vinschen 3c40dbce73 Fix typo. 2011-03-18 14:42:30 +00:00
Christopher Faylor 41045fb74d * fhandler.h (DEFAULT_PIPEBUFSIZE): Reset to 64K. 2011-03-18 14:25:33 +00:00
Corinna Vinschen ccbc7fca21 * mmap.cc (mmap_record::alloc_fh): Initialize nmae strings in fdev to
empty strings or suffer a SEGV.  Drop second parameter in call to
	build_fh_dev.
2011-03-18 13:56:56 +00:00
Corinna Vinschen bf69faeb0d * mmap.cc (class mmap_record): Pack 4 byte-aligned. Convert member dev
to plain int.
	(mmap_record::alloc_fh): Create temporary device from dev and use in
	call to build_fh_dev.
2011-03-18 13:42:03 +00:00
Corinna Vinschen ac706ac123 * mmap.cc (mmap_record::page_map): Define as variable array rather than
as pointer.
	(mmap_record::alloc_page_map): Remove.
	(mmap_record::free_page_map): Remove.
	(mmap_record::init_page_map): New method.
	(mmap_record::add_record): Take mmap_record parameter by reference
	rather than by value.
	(mmap_record::map_pages): Fix comment.
	(mmap_list::add_record): Allocate space for mmap_record including the
	page_map in a single ccalloc call.  Call init_page_map afterwards.
	(mmap_list::del_record): Remove call to mmap_record::free_page_map.
2011-03-18 13:38:34 +00:00
Corinna Vinschen b532ee08bc * crt0.c (mainCRTStartup): Move call to _feinitialise from here...
* dcrt0.cc (_dll_crt0): ...to here.
2011-03-17 08:40:25 +00:00
Corinna Vinschen d2948a681d * winver.rc: Fix copyright dates. 2011-03-16 21:10:51 +00:00
Jakub Jelinek e9393c3f78 * dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
	DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
	DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
	DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
	DW_OP_GNU_entry_value): New.
2011-03-16 08:48:47 +00:00
Richard Sandiford 810a90a431 include/elf/
* arm.h (R_ARM_IRELATIVE): New relocation.

bfd/
	* reloc.c (BFD_RELOC_ARM_IRELATIVE): New relocation.
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (elf32_arm_howto_table_2): Rename existing definition
	to elf32_arm_howto_table_3 and replace with a single R_ARM_IRELATIVE
	entry.
	(elf32_arm_howto_from_type): Update accordingly.
	(elf32_arm_reloc_map): Map BFD_RELOC_ARM_IRELATIVE to R_ARM_IRELATIVE.
	(elf32_arm_reloc_name_lookup): Handle elf32_arm_howto_table_3.
	(arm_plt_info): New structure, split out from elf32_arm_link_hash_entry
	with an extra noncall_refcount field.
	(arm_local_iplt_info): New structure.
	(elf_arm_obj_tdata): Add local_iplt.
	(elf32_arm_local_iplt): New accessor macro.
	(elf32_arm_link_hash_entry): Replace plt_thumb_refcount,
	plt_maybe_thumb_refcount and plt_got_offset with an arm_plt_info.
	Change tls_type to a bitfield and add is_iplt.
	(elf32_arm_link_hash_newfunc): Update accordingly.
	(elf32_arm_allocate_local_sym_info): New function.
	(elf32_arm_create_local_iplt): Likewise.
	(elf32_arm_get_plt_info): Likewise.
	(elf32_arm_plt_needs_thumb_stub_p): Likewise.
	(elf32_arm_get_local_dynreloc_list): Likewise.
	(create_ifunc_sections): Likewise.
	(elf32_arm_copy_indirect_symbol): Update after the changes to
	elf32_arm_link_hash_entry.  Assert the is_iplt has not yet been set.
	(arm_type_of_stub): Add an st_type argument.  Use elf32_arm_get_plt_info
	to get PLT information.  Assert that all STT_GNU_IFUNC references
	are turned into PLT references.
	(arm_build_one_stub): Pass the symbol type to
	elf32_arm_final_link_relocate.
	(elf32_arm_size_stubs): Pass the symbol type to arm_type_of_stub.
	(elf32_arm_allocate_irelocs): New function.
	(elf32_arm_add_dynreloc): In static objects, use .rel.iplt for
	all R_ARM_IRELATIVE.
	(elf32_arm_allocate_plt_entry): New function.
	(elf32_arm_populate_plt_entry): Likewise.
	(elf32_arm_final_link_relocate): Add an st_type parameter.
	Set srelgot to null for static objects.  Use separate variables
	to record which st_value and st_type should be used when generating
	a dynamic relocation.  Use elf32_arm_get_plt_info to find the
	symbol's PLT information, setting has_iplt_entry, splt,
	plt_offset and gotplt_offset accordingly.  Check whether
	STT_GNU_IFUNC symbols should resolve to an .iplt entry, and change
	the relocation target accordingly.  Broaden assert to include
	.iplts.  Don't set sreloc for static relocations.  Assert that
	we only generate dynamic R_ARM_RELATIVE relocations for R_ARM_ABS32
	and R_ARM_ABS32_NOI.  Generate R_ARM_IRELATIVE relocations instead
	of R_ARM_RELATIVE relocations if the target is an STT_GNU_IFUNC
	symbol.  Pass the symbol type to arm_type_of_stub.  Conditionally
	resolve GOT references to the .igot.plt entry.
	(elf32_arm_relocate_section): Update the call to
	elf32_arm_final_link_relocate.
	(elf32_arm_gc_sweep_hook): Use elf32_arm_get_plt_info to get PLT
	information.  Treat R_ARM_REL32 and R_ARM_REL32_NOI as call
	relocations in shared libraries and relocatable executables.
	Count non-call PLT references.  Use elf32_arm_get_local_dynreloc_list
	to get the list of dynamic relocations for a local symbol.
	(elf32_arm_check_relocs): Always create ifunc sections.  Set isym
	at the same time as setting h.  Use elf32_arm_allocate_local_sym_info
	to allocate local symbol information.  Treat R_ARM_REL32 and
	R_ARM_REL32_NOI as call relocations in shared libraries and
	relocatable executables.  Record PLT information for local
	STT_GNU_IFUNC functions as well as global functions.   Count
	non-call PLT references.  Use elf32_arm_get_local_dynreloc_list
	to get the list of dynamic relocations for a local symbol.
	(elf32_arm_adjust_dynamic_symbol): Handle STT_GNU_IFUNC symbols.
	Don't remove STT_GNU_IFUNC PLTs unless all references have been
	removed.  Update after the changes to elf32_arm_link_hash_entry.
	(allocate_dynrelocs_for_symbol): Decide whether STT_GNU_IFUNC PLT
	entries should live in .plt or .iplt.  Check whether the .igot.plt
	and .got entries can be combined.  Use elf32_arm_allocate_plt_entry
	to allocate .plt and .(i)got.plt entries.  Detect which .got
	entries will need R_ARM_IRELATIVE relocations and use
	elf32_arm_allocate_irelocs to allocate them.  Likewise other
	non-.got dynamic relocations.
	(elf32_arm_size_dynamic_sections): Allocate .iplt, .igot.plt
	and dynamic relocations for local STT_GNU_IFUNC symbols.
	Check whether the .igot.plt and .got entries can be combined.
	Detect which .got entries will need R_ARM_IRELATIVE relocations
	and use elf32_arm_allocate_irelocs to allocate them.  Use stashed
	section pointers intead of strcmp checks.  Handle iplt and igotplt.
	(elf32_arm_finish_dynamic_symbol): Use elf32_arm_populate_plt_entry
	to fill in .plt, .got.plt and .rel(a).plt entries.  Point
	STT_GNU_IFUNC symbols at an .iplt entry if non-call relocations
	resolve to it.
	(elf32_arm_output_plt_map_1): New function, split out from
	elf32_arm_output_plt_map.  Handle .iplt entries.  Use
	elf32_arm_plt_needs_thumb_stub_p.
	(elf32_arm_output_plt_map): Call it.
	(elf32_arm_output_arch_local_syms): Add mapping symbols for
	local .iplt entries.
	(elf32_arm_swap_symbol_in): Handle Thumb STT_GNU_IFUNC symbols.
	(elf32_arm_swap_symbol_out): Likewise.
	(elf32_arm_add_symbol_hook): New function.
	(elf_backend_add_symbol_hook): Define for all targets.

opcodes/
	* arm-dis.c (get_sym_code_type): Treat STT_GNU_IFUNCs as code.

gas/
	* config/tc-arm.c (md_pcrel_from_section): Use S_FORCE_RELOC to
	determine whether a relocation is needed.
	(md_apply_fix, arm_apply_sym_value): Likewise.

ld/testsuite/
	* ld-arm/ifunc-1.s, ld-arm/ifunc-1.dd, ld-arm/ifunc-1.gd,
	ld-arm/ifunc-1.rd, ld-arm/ifunc-2.s, ld-arm/ifunc-2.dd,
	ld-arm/ifunc-2.gd, ld-arm/ifunc-2.rd, ld-arm/ifunc-3.s,
	ld-arm/ifunc-3.dd, ld-arm/ifunc-3.gd, ld-arm/ifunc-3.rd,
	ld-arm/ifunc-4.s, ld-arm/ifunc-4.dd, ld-arm/ifunc-4.gd,
	ld-arm/ifunc-4.rd, ld-arm/ifunc-5.s, ld-arm/ifunc-5.dd,
	ld-arm/ifunc-5.gd, ld-arm/ifunc-5.rd, ld-arm/ifunc-6.s,
	ld-arm/ifunc-6.dd, ld-arm/ifunc-6.gd, ld-arm/ifunc-6.rd,
	ld-arm/ifunc-7.s, ld-arm/ifunc-7.dd, ld-arm/ifunc-7.gd,
	ld-arm/ifunc-7.rd, ld-arm/ifunc-8.s, ld-arm/ifunc-8.dd,
	ld-arm/ifunc-8.gd, ld-arm/ifunc-8.rd, ld-arm/ifunc-9.s,
	ld-arm/ifunc-9.dd, ld-arm/ifunc-9.gd, ld-arm/ifunc-9.rd,
	ld-arm/ifunc-10.s, ld-arm/ifunc-10.dd, ld-arm/ifunc-10.gd,
	ld-arm/ifunc-10.rd, ld-arm/ifunc-11.s, ld-arm/ifunc-11.dd,
	ld-arm/ifunc-11.gd, ld-arm/ifunc-11.rd, ld-arm/ifunc-12.s,
	ld-arm/ifunc-12.dd, ld-arm/ifunc-12.gd, ld-arm/ifunc-12.rd,
	ld-arm/ifunc-13.s, ld-arm/ifunc-13.dd, ld-arm/ifunc-13.gd,
	ld-arm/ifunc-13.rd, ld-arm/ifunc-14.s, ld-arm/ifunc-14.dd,
	ld-arm/ifunc-14.gd, ld-arm/ifunc-14.rd, ld-arm/ifunc-15.s,
	ld-arm/ifunc-15.dd, ld-arm/ifunc-15.gd, ld-arm/ifunc-15.rd,
	ld-arm/ifunc-16.s, ld-arm/ifunc-16.dd, ld-arm/ifunc-16.gd,
	ld-arm/ifunc-16.rd, ld-arm/ifunc-dynamic.ld,
	ld-arm/ifunc-static.ld: New tests.
	* ld-arm/farcall-group.d, ld-arm/farcall-group-size2.d,
	ld-arm/farcall-mixed-lib-v4t.d, ld-arm/farcall-mixed-lib.d: Update
	for new stub hashes.
	* ld-arm/arm-elf.exp: Run them.
2011-03-14 16:04:04 +00:00
Richard Sandiford 4f4106d140 include/elf/
* internal.h (elf_internal_sym): Add st_target_internal.
	* arm.h (arm_st_branch_type): New enum.
	(ARM_SYM_BRANCH_TYPE): New macro.

bfd/
	* elf-bfd.h (elf_link_hash_entry): Add target_internal.
	* elf.c (swap_out_syms): Set st_target_internal for each
	Elf_Internal_Sym.
	* elfcode.h (elf_swap_symbol_in): Likewise.
	* elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise.
	* elf32-sh-symbian.c (sh_symbian_relocate_section): Likewise.
	* elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Likewise.
	* elflink.c (elf_link_output_extsym): Likewise.
	(bfd_elf_final_link): Likewise.
	(elf_link_add_object_symbols): Copy st_target_internal
	to the hash table if we see a definition.
	(_bfd_elf_copy_link_hash_symbol_type): Copy target_internal.
	* elf32-arm.c (elf32_arm_stub_hash_entry): Replace st_type with
	a branch_type field.
	(a8_erratum_fix, a8_erratum_reloc): Likewise.
	(arm_type_of_stub): Replace actual_st_type with an
	actual_branch_type parameter.
	(arm_build_one_stub): Use branch types rather than st_types to
	determine the type of branch.
	(cortex_a8_erratum_scan): Likewise.
	(elf32_arm_size_stubs): Likewise.
	(bfd_elf32_arm_process_before_allocation): Likewise.
	(allocate_dynrelocs_for_symbol): Likewise.
	(elf32_arm_finish_dynamic_sections): Likewise.
	(elf32_arm_final_link_relocate): Replace sym_flags parameter with
	a branch_type parameter.
	(elf32_arm_relocate_section): Update call accordingly.
	(elf32_arm_adjust_dynamic_symbol): Don't check STT_ARM_TFUNC.
	(elf32_arm_output_map_sym): Initialize st_target_internal.
	(elf32_arm_output_stub_sym): Likewise.
	(elf32_arm_symbol_processing): Delete.
	(elf32_arm_swap_symbol_in): Convert STT_ARM_TFUNCs into STT_FUNCs.
	Use st_target_internal to record the branch type.
	(elf32_arm_swap_symbol_out): Use st_target_internal to test for
	Thumb functions.
	(elf32_arm_is_function_type): Delete.
	(elf_backend_symbol_processing): Likewise.
	(elf_backend_is_function_type): Likewise.

gas/
	* config/tc-arm.c (arm_adjust_symtab): Set the branch type
	for Thumb symbols.

ld/
	* emultempl/armelf.em (gld${EMULATION_NAME}_finish): Check
	eh->target_internal.

opcodes/
	* arm-dis.c (get_sym_code_type): Don't check for STT_ARM_TFUNC.
	Use branch types instead.
	(print_insn): Likewise.
2011-03-14 15:54:57 +00:00