Re: [PATCH 3/8] add mem64_min/max control

H. Peter Anvin
2012-11-18T06:24:22Z

.S files have to be recoded to match the memory model!

Yinghai Lu <yinghai@kernel.org> wrote:

>On Sat, Nov 17, 2012 at 9:35 PM, Yinghai Lu <yinghai@kernel.org> wrote:
>> On Sat, Nov 17, 2012 at 9:20 PM, Eric W. Biederman
>> <ebiederm@xmission.com> wrote:
>>> Yinghai Lu <yinghai@kernel.org> writes:
>>>>
>>>> there is lots of R_X86_64_32 and R_X86_64_32S for 64bit purgatory.
>>>>
>>>> those come from global variables...could kill some by converting
>them static...
>>>>
>>>> but still have some global string or ro data....
>>>>
>>>> build one big file include all .S ?
>>>
>>> For R_x86_64_32 and R_x86_64_32S the problem is that the
>instructions
>>> are using absolute 32bit addresses.
>>>
>>> It is probably overkill but we should be able to solve this with
>>> by adding "-mcmodel=large" to the build of purgatory.
>>
>> it kill some...
>>
>> still have left.... looks they from .S
>>
>> yhlu@linux-siqj:~/xx/xx/utils/kexec-tools> readelf --relocs
>> purgatory/purgatory.ro | grep R_X86_64_32
>> 0000000005e9 00020000000b R_X86_64_32S 0000000000000000 .rodata
>+ c0
>
>looks like .S did not get that -mcmodel=large applied..

--
Sent from my mobile phone. Please excuse brevity and lack of formatting.