[PATCH v2 2/3] Linux: Implement a useful version of _startup_fatal

Florian Weimer fweimer@redhat.com
Wed May 4 17:08:35 GMT 2022


* Florian Weimer:

> * Adhemerval Zanella:
>
>> On 04/05/2022 13:48, Florian Weimer wrote:
>>> diff --git a/sysdeps/unix/sysv/linux/startup.h b/sysdeps/unix/sysv/linux/startup.h
>>> new file mode 100644
>>> index 0000000000..a5de941759
>>> --- /dev/null
>>> +++ b/sysdeps/unix/sysv/linux/startup.h
>>> @@ -0,0 +1,38 @@
>>> +/* Linux definitions of functions used by static libc main startup.
>>> +   Copyright (C) 2017-2022 Free Software Foundation, Inc.
>>> +   This file is part of the GNU C Library.
>>> +
>>> +   The GNU C Library is free software; you can redistribute it and/or
>>> +   modify it under the terms of the GNU Lesser General Public
>>> +   License as published by the Free Software Foundation; either
>>> +   version 2.1 of the License, or (at your option) any later version.
>>> +
>>> +   The GNU C Library is distributed in the hope that it will be useful,
>>> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>>> +   Lesser General Public License for more details.
>>> +
>>> +   You should have received a copy of the GNU Lesser General Public
>>> +   License along with the GNU C Library; if not, see
>>> +   <https://www.gnu.org/licenses/>.  */
>>> +
>>> +#ifdef SHARED
>>> +# include_next <startup.h>
>>> +#else
>>> +# include <sysdep.h>
>>> +
>>> +/* Avoid a run-time invocation of strlen.  */
>>> +#define _startup_fatal(message)                                         \
>>> +  do                                                                    \
>>> +    {                                                                   \
>>> +      size_t message_length = __builtin_strlen (message);               \
>>
>> Shoudn't we use double underscore name to avoid clash with local
>> variables?
>
> I think it's a problem only if message expands to something that uses
> message_length, which is as likely as __message_length.  message can't
> be a complex expression anyway because we don't want to call strlen at
> this point.

Never mind, I'm making the change.

Thanks,
Florian



More information about the Libc-alpha mailing list