This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: [Patch] Add .size directives to x86_64 start.S, and possibly more


On Fri, Nov 21, 2014 at 11:02 AM, Sterling Augustine
<saugustine@google.com> wrote:
> On Fri, Nov 21, 2014 at 10:52 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Fri, Nov 21, 2014 at 10:44 AM, Sterling Augustine
>> <saugustine@google.com> wrote:
>>> Hello,
>>>
>>> sysdeps/x86_64/start.S doesn't have a .size elf directive for _start.
>>> This tripped up some analysis I was doing.
>>>
>>> This patch is the straightforward fix. Would you be interested in a
>>> similar fix for the ~150 assembly files inside x86_64 with similar
>>> issues?
>>>
>>> Sterling
>>>
>>> ChangeLog
>>>
>>> 2014-11-21  Sterling Augustine  <saugustine@google.com>
>>>
>>> * sysdeps/x86_64/start.S: Add .size directive.
>>>
>>>
>>> diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S
>>> index e3d4ff8..5106bd0 100644
>>> --- a/sysdeps/x86_64/start.S
>>> +++ b/sysdeps/x86_64/start.S
>>> @@ -124,6 +124,7 @@ _start:
>>>
>>>   hlt /* Crash if somehow `exit' does return. */
>>>   cfi_endproc
>>> + .size _start, .-_start
>>>
>>>  /* Define a symbol for the first piece of initialized data.  */
>>>   .data
>>
>> Why not use ENTRY/END macros?
>
> I'm hazy here, but I don't think things are sufficiently initialized
> by _start to call mcount, which ENTRY does. You are right though, in
> that most of the other files do use END, and so the cleanup isn't as
> big as I thought.
>
> It probably doesn't make sense to use an END without a corresponding
> ENTRY in start.S, but I'm fine with whatever.

We can add

# define ENTRY_NO_MCOUNT
...
#define ENRTY ...
     ENTRY_NO_MCOUNT
     CALL_MCOUNT

Then we can use ENTRY_NO_MCOUNT if needed.

H.J.

-- 
H.J.


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