From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenneth Johansson Date: Thu, 24 Jul 2008 20:09:41 +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> Message-ID: <1216922981.27201.66.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 10:37 -0700, vb wrote: > On Thu, Jul 24, 2008 at 9:57 AM, Haavard Skinnemoen > wrote: > > Kenneth Johansson wrote: > >> you have to > >> read the gcc code to understand what the -mrelocatable option really do. > > > > Plus it's only defined for PowerPC. What do we do on the 11 other > > architectures? > > > > We could build u-boot as a shared library I guess, but that feels a bit > > weird... > > > > I ran a quick experiment with -mrelocate, compiled a module with it > and then objdump -D its contents, it seems to do exactly what I wanted > - stores addresses of pointers to adjust into the fixit section. > > I guess the least intrusive alternative would be to compile the ported > code with this option, and then add a check to the u-boot function > dealing with GOT adjustments to see if the fixit section is nonempty. > If so - relocate .fixit in addition to GOT. > > But as you pointed out, this would work on ppc only (with a 'good' > compiler), and still remains to be proven, I will get to it a bit > later. 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.