problem with -funit-at-a-time

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

 



 

Hi ,
 
I am compiling bootcode (bootrom.bin) on vxoworks 5.4 - gcc version
3.4.5.
 
The code generated by 3.4.5 is no more assumes the first function of a C
file  as the starting Address of the compiled code. I think this is
because of -funit-at-a-time which is enabled by default by O2 option.
 
But the vxWorks compilation  puts un-compressed version of bootrom.bin
into Rom Address and puts compressed image into Ram address.
When jumping from rom to ram, we jump based on Absolute address.
 
So the earlier code
 
..........
absEntry = (FUNCPTR) (RAM_DST_ADDRESS)
absEntry(..)
 
where as RAM_DST_ADDRESS should have the function "compressedEntry"
associated with it. And this function used to be the first function in
the file bootConfig.c
 
Due to -funit-at-a-time, compressedEntry is no more the first function
of bootConfig.o
 
So the loader command "...-e compressedEntry -Ttext (RAM_DST_ADDRESS)
places bootConfig.o in RAM_DST_ADDRESS, but the first function is placed
after some offset.
 
I used -fno-unit-at-a-time , and it was fine. But just concerned about
the throughput of the code generated. Is there any other way to deal
with this problem ?
 
thanks in advance
Aparna


[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