This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fwd: [PATCH] arm: ensure symbol is a thumb symbol in new binutils


Hi Christophe,

> On code generated we see the issue on entry-common.o 
> (arch/arm/kernel/entry-common.o):
> code ok: f2af 1e3b     subw    lr, pc, #315    ; 0x13b
> code KO: f2af 1e3a     subw    lr, pc, #314    ; 0x13a
> (see assembler code obtained by objdump)

OK - so this translates to the use of the "badr" macro defined
in include/asm/assembler.h:

	.macro	badr\c, rd, sym
#ifdef CONFIG_THUMB2_KERNEL
	adr\c	\rd, \sym + 1
#else
	adr\c	\rd, \sym
#endif
	.endm


What is the CONFIG_THUMB2_KERNEL flag ?  

I am wondering why it alters the behaviour of the badr macro...


> -fno-PIE -mabi=aapcs-linux -mno-thumb-interwork -mfpu=vfp 

Question - is the -mno-thumb-interwork flag always used ?

It seems to me that this flag might provide a much simpler option
to fix the assembler.  Ie:  if -mthumb-interwork is enabled then
the ADR pseudo-instruction should include the interworking bit (for
thumb function symbols), whereas if -mno-thumb-interwork is in 
effect, then it should not.

Cheers
  Nick


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]