From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenneth Johansson Date: Thu, 24 Jul 2008 20:41:02 +0200 Subject: [U-Boot-Users] Changing u-boot relocation scheme In-Reply-To: References: <20080724130105.3EE93248B9@gemini.denx.de> <1216905458.27201.38.camel@localhost.localdomain> <20080724185734.6d79c419@hskinnemo-gx745.norway.atmel.com> <1216922981.27201.66.camel@localhost.localdomain> Message-ID: <1216924862.27201.77.camel@localhost.localdomain> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thu, 2008-07-24 at 11:26 -0700, vb wrote: > On Thu, Jul 24, 2008 at 11:09 AM, Kenneth Johansson > wrote: > > > > > > > I have run u-boot with everything compiled with -mrelocatable and normal > > relocation fixup code removed so I know it works fine. So consider it > > proven. But since it apparently is a problem in some situation the best > > is probably to make it a configuration option. > > > > > > From what I saw in my limited experiment, there is no code (as in CPU > instructions) generated by gcc, just a data section containing > offsets. > > Maybe the linker is supposed to add some code to the startup file to > handle that section in case it is invoked with -mrelocatable (on't > know if it would recognize this an option) or detects .fixup section > in the .o files being linked. It is a mute point for embedded > development anyways. I think the code exist in libgcc __eabi_convert() but code already exist in u-boot at least in several start.S files. > I *think* the only thing missing is a simple function to scan the > .fixup table and fix the pointers after relocation. The code should be there find . -name "*.S" | xargs grep FIXUP_TABLE