Help needed to track down bug: linking Linux kernel with gold creates unbootable kernel

H.J. Lu hjl.tools@gmail.com
Fri Apr 23 00:24:00 GMT 2010


On Thu, Apr 22, 2010 at 5:00 PM, Ian Lance Taylor <iant@google.com> wrote:
> "H.J. Lu" <hjl.tools@gmail.com> writes:
>
>> If gold should be compatible with ld, this patch should be applied.
>>
>>
>> --
>> H.J.
>> ---
>> diff --git a/gold/x86_64.cc b/gold/x86_64.cc
>> index 9110278..99be4de 100644
>> --- a/gold/x86_64.cc
>> +++ b/gold/x86_64.cc
>> @@ -516,7 +516,7 @@ const Target::Target_info Target_x86_64::x86_64_info =
>>    '\0',       // wrap_char
>>    "/lib/ld64.so.1",     // program interpreter
>>    0x400000,      // default_text_segment_address
>> -  0x1000,     // abi_pagesize (overridable by -z max-page-size)
>> +  0x200000,      // abi_pagesize (overridable by -z max-page-size)
>>    0x1000,     // common_pagesize (overridable by -z common-page-size)
>>    elfcpp::SHN_UNDEF,   // small_common_shndx
>>    elfcpp::SHN_X86_64_LCOMMON,   // large_common_shndx
>
>
> That patch incurs a cost for every x86_64 executable and shared
> library by making them larger and making them use much more address
> space than they really require.  At present there are very few
> programs which need a large page size.  I would prefer to encourage
> them to use the -z max-page-size option if at all possible.
>

2MB maximum page size may have a bigger gap between PT_LOAD
segment in memory than 4KB maximum page size. But it doesn't necessarily
use more memory nor disk space. Since x86_64 is 64bit, address
space shouldn't be an issue in vast majority cases. I'd like to hear
a case to say otherwise.

Thanks.

-- 
H.J.



More information about the Binutils mailing list