Yinghai Lu <yinghai at kernel.org> writes: > On Sat, Nov 17, 2012 at 10:11 PM, Eric W. Biederman > <ebiederm at xmission.com> wrote: >> Yinghai Lu <yinghai at kernel.org> writes: >>> so -mcmodel=large only work with .c, but does not have effects on .S ? >> >> Yes it -mcmodel=large is about which instructions you generate. The >> instructions used determine the relocates. >> >> Just for playing with it the following patch modifies things so >> purgatory is 64bit clean. >> >> I don't know yet what to do with the 32bit and 16bit assembly. > > so we should two purgatory for x86_64 ? > like one for 64bit and one for 32bit/16bit The problem is that the current 32bit assembly code is not possition independent. If we can rewrite that assembly code to be position independent no relocs will be generated and we should be good. The 16bit entry point code was already written as position independent code so it should not cause problems. Just having one piece of code to deal with (if we can figure it out) looks to be the simpler and more maintainable solution. Eric