This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gold] enable sorting of text sections with the same prefix


You are right: strcmp in a sorting function is not a good idea..
I did what you proposed in the first paragraph. Could you please take a look

thanks,
Alexander

2013/2/4 Sriraman Tallam <tmsriram@google.com>:
> @@ -3527,8 +3528,16 @@
> Output_section::Input_section_sort_section_name_special_ordering_compare
>   return o1 < o2;
>      }
>
> +  if (strcmp(parameters->options().sort_section(), "name") == 0)
> +    {
> +      // Within each prefix we sort by name.
> +      int compare = s1.section_name().compare(s2.section_name());
> +      if (compare != 0)
> + return compare < 0;
> +    }
> +
>
> I think you can create a new compare function for this. You can rename
> the existing function to something like
> "Input_section_sort_section_prefix_special_ordering_compare" and make
> a new "Input_section_sort_section_name_compare". Sorting by section
> name also ensures the grouping of functions with prefixes like
> ".text.hot", only the entire .text.hot could land up somewhere in the
> middle of all functions.
>
> However, if you do want both special ordering and sorting by section
> name, I think you should move the strcmp out of the compare function
> as the compare function is called many times. A simple bool function
> somewhere in layout would be fine I think.
>
> Thanks
> Sri
>
> On Mon, Feb 4, 2013 at 4:15 AM, Alexander Ivchenko <aivchenk@gmail.com> wrote:
>> Hi,
>>
>> The attached patch implements --sort-section=name that sorts text
>> sections by name within each
>> prefix and also sorts .data and .sdata sections by name (as BFD does).
>> That is enough for closing
>> that http://sourceware.org/bugzilla/show_bug.cgi?id=14948
>>
>> thank you,
>> Alexander
>>
>> 2013/1/29 Sriraman Tallam <tmsriram@google.com>:
>>> On Tue, Jan 29, 2013 at 9:55 AM, Alexander Ivchenko <aivchenk@gmail.com> wrote:
>>>> Hello Sri,
>>>>
>>>> thank you for your input!
>>>> Please, look at
>>>> http://sourceware.org/bugzilla/show_bug.cgi?id=14948
>>>
>>> So, why not do this guarded by --sort-section=name just like BFD ld?
>>> That way, it does not affect the default. Just my two cents.
>>>
>>> Thanks
>>> Sri
>>>
>>>>
>>>> thank you,
>>>> Alexander
>>>>
>>>> 2013/1/29 Sriraman Tallam <tmsriram@google.com>:
>>>>> Hi,
>>>>>
>>>>> On Tue, Jan 29, 2013 at 7:28 AM, Alexander Ivchenko <aivchenk@gmail.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>>    This patch to gold: http://sourceware.org/ml/binutils/2013-01/msg00335.html
>>>>>> disabled sorting of text sections with the same prefix like
>>>>>> .text.hot0001, .text.hot0002
>>>>>> which is very desirable.
>>>>>
>>>>> Sorting by section names in general for text sections turns out to be
>>>>> a bad idea as we have seen many performance issues. That is the reason
>>>>> why the patch you reference was created.
>>>>>
>>>>> The reason why some text sections are grouped to begin with is to
>>>>> mimic the default GNU ld behaviour. I dont think GNU ld  groups these
>>>>> two sections.  AFAIK, ".text.hot." is the prefix for hot text
>>>>> sections. How were these two sections you mention created?Which
>>>>> compiler is generating these two sections? Or, did you explicitly use
>>>>> a section attribute?
>>>>>
>>>>> Thanks
>>>>> Sri
>>>>>
>>>>> The attached patch fix this.
>>>>>>
>>>>>> OK for trunk?
>>>>>>
>>>>>> thank you,
>>>>>> Alexander

Attachment: enable_sorting_text_sections_by_name_4.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]