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] _dl_start: Remove internal_function attribute


On Mon, Aug 14, 2017 at 5:45 AM, Florian Weimer <fweimer@redhat.com> wrote:
> On 08/14/2017 02:30 PM, H.J. Lu wrote:
>
>>> diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
>>> index 9ee9d02c36..924de953b7 100644
>>> --- a/sysdeps/i386/dl-machine.h
>>> +++ b/sysdeps/i386/dl-machine.h
>>> @@ -150,9 +150,11 @@ extern ElfW(Addr) _dl_profile_fixup (struct link_map *l,
>>>  .globl _start\n\
>>>  .globl _dl_start_user\n\
>>>  _start:\n\
>>> -       # Note that _dl_start gets the parameter in %eax.\n\
>>>         movl %esp, %eax\n\
>>> +        subl $12, %esp\n\
>>> +        pushl %eax\n\
>>>         call _dl_start\n\
>>> +        addl $16, %esp\n\
>>>  _dl_start_user:\n\
>>>         # Save the user entry point address in %edi.\n\
>>>         movl %eax, %edi\n\
>>
>> CFI adjustments are missing.
>
> %ebp is zero at process startup, so based on an existing comment, we are
> not supposed to unwind to _start:
>
> # Clear %ebp, so that even constructors have terminated backchain.\n\
>
> I expect that the unwinder will note the absence of unwind data for
> _start, look at %ebp, notice that is zero, and give up.  Isn't that what
> happens?
>
> Like I said, this is a pre-existing condition.
>

The patch looks good to me then.

Thanks.

-- 
H.J.


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