Re: arm-elf-gcc shared flat support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2007-03-30 at 17:57 +0530, vivek tyagi wrote:
> Hi ,
> 

This is the wrong list for these sorts of questions, you should really
be asking on gcc-help.

> I am working on Shared flat file support for uClinux (No MMU ARM ).The
> gcc version
> I am using is 2.95 and 3.4.0.Theory of operation is similar to that
> implemented for m68k.One of the major requirement is to call functions
> via GOT.
> so a code
> 
> ******c-code**************
> foo()
> {}
> main()
> {
> foo();
> }
> 
> ******************************
> 
> is to be called as
> 
> ****compiler output***********
> 
> 	ldr     r3, .L4
> 	mov   lr,pc
> 	ldr    pc[sl,r3]
> 
> .L4:
> 	.word	foo(GOT)	
> 
> ******************************
> 
> as opposed to
> 	bl foo(PLT)
> 
> where sl holds the address of GOT.(binfmt_flat loader ensures that
> before the program start)
> 
> in gcc 3.4.0 this is some how achived if the function attribute
> __attribute__((weak)) is specified.But no idea for 2.95
> 

That weak calls have this property is really due to a bug in the
compiler (some day I might even fix it :-).  You can probably make
things work the way you want with more recent compilers if you use
-mlong-calls, but it's not really designed for this purpose, so some
local definitions may be short-circuited.

Is there some reason why linker-generated PLT sequences aren't a
reasonable solution?

R.


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux