Re: [Linux-ia64] Re: loading a kernel module

From: Jim Wilson <wilson_at_redhat.com>
Date: 2002-10-16 04:57:07
>Interesting, that looks like this relocation type
>  #define R_IA64_PCREL60B         0x48    /* @pcrel(sym + add), brl */
>which is not handled by any version of modutils.  I need :-

That might be an RHL AS toolchain.  The current GNU tools avoid use of brl
because it is implemented via kernel emulation on Itanium hardware, which
causes performance problems for some code.  However, Itanium2 has this
instruction in hardware, and avoiding brl reduces Itanium2 performance, and
presumably anyone who cares about performance is already using Itanium2
hardware, so it makes sense to emit brl by default now.   I think they may
have made this change in the RHL AS toolchain already, but it is unfortunately
not in the FSF sources yet.

You can get brl instructions by changing "#undef USE_BRL" to "#define USE_BRL"
in the BINUTILS bfd/elfxx-ia64.c file.  I believe that is the change that went
into the RHL AS toolchain.  Then write a large enough program, so that you
have a call site that is far enough away from its call target to require brl.

Jim
Received on Tue Oct 15 11:57:19 2002

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:10 EST