This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Do not build interworking support functions on non-Thumb targets
- To: gcc-patches at gcc dot gnu dot org
- Subject: Do not build interworking support functions on non-Thumb targets
- From: Nick Clifton <nickc at redhat dot com>
- Date: Mon, 4 Dec 2000 15:18:55 -0800
Hi Guys,
I am checking in this small fix to the ARM libgcc assembler
functions. It prevents the building of the interworking support
functions on any ARM architecture that does not support the Thumb
instructions. Discovered recently whilst trying to create a StrongARM
multilib.
Cheers
Nick
2000-12-04 Nick Clifton <nickc@redhat.com>
* config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
not create these functions if the target architecture does not
support Thumb instructions.
Index: config/arm/lib1funcs.asm
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/arm/lib1funcs.asm,v
retrieving revision 1.16
diff -p -r1.16 lib1funcs.asm
*** lib1funcs.asm 2000/08/23 19:46:57 1.16
- --- lib1funcs.asm 2000/12/04 22:54:29
*************** Lover12:
*** 657,666 ****
assembler because their presence allows interworked code to be linked even
when the GCC library is this one. */
! /* Do not build the interworking functions when the target cpu
! is the arm v3 architecture. (This is one of the multilib
! options). */
! #if defined L_call_via_rX && ! defined __ARM_ARCH_3__
/* These labels & instructions are used by the Arm/Thumb interworking code.
The address of function to be called is loaded into a register and then
- --- 657,665 ----
assembler because their presence allows interworked code to be linked even
when the GCC library is this one. */
! /* Do not build the interworking functions when the target architecture does
! not support Thumb instructions. (This can be a multilib option). */
! #if defined L_call_via_rX && (defined __ARM_ARCH_4T__ || defined __ARM_ARCH_5T__ || defined __ARM_ARCH_5TE__)
/* These labels & instructions are used by the Arm/Thumb interworking code.
The address of function to be called is loaded into a register and then
*************** Lover12:
*** 699,708 ****
#endif /* L_call_via_rX */
/* ------------------------------------------------------------------------ */
! /* Do not build the interworking functions when the target cpu
! is the arm v3 architecture. (This is one of the multilib
! options). */
! #if defined L_interwork_call_via_rX && ! defined __ARM_ARCH_3__
/* These labels & instructions are used by the Arm/Thumb interworking code,
when the target address is in an unknown instruction set. The address
- --- 698,706 ----
#endif /* L_call_via_rX */
/* ------------------------------------------------------------------------ */
! /* Do not build the interworking functions when the target architecture does
! not support Thumb instructions. (This can be a multilib option). */
! #if defined L_interwork_call_via_rX && (defined __ARM_ARCH_4T__ || defined __ARM_ARCH_5T__ || defined __ARM_ARCH_5TE__)
/* These labels & instructions are used by the Arm/Thumb interworking code,
when the target address is in an unknown instruction set. The address