* [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023]
@ 2018-06-27 16:42 Florian Weimer
2018-06-27 17:08 ` Adhemerval Zanella
0 siblings, 1 reply; 4+ messages in thread
From: Florian Weimer @ 2018-06-27 16:42 UTC (permalink / raw)
To: libc-alpha
The unused macro definition in posix/glob.c comes from gnulib and will
have to be removed there.
2018-06-27 Florian Weimer <fweimer@redhat.com>
[BZ #18023]
* include/alloca.h (stackinfo_alloca_round, extend_alloca)
(extend_alloca_account): Remove.
* manual/stdio.texi (Variable Arguments Output): Update comment.
diff --git a/include/alloca.h b/include/alloca.h
index fd90664f0a..c0b8395443 100644
--- a/include/alloca.h
+++ b/include/alloca.h
@@ -23,57 +23,17 @@ libc_hidden_proto (__libc_alloca_cutoff)
#include <allocalim.h>
-#ifndef stackinfo_alloca_round
-# define stackinfo_alloca_round(l) (((l) + 15) & -16)
-#endif
-
-#if _STACK_GROWS_DOWN
-# define extend_alloca(buf, len, newlen) \
- (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \
- char *__newbuf = __alloca (__newlen); \
- if (__newbuf + __newlen == (char *) (buf)) \
- len += __newlen; \
- else \
- len = __newlen; \
- __newbuf; })
-#elif _STACK_GROWS_UP
-# define extend_alloca(buf, len, newlen) \
- (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \
- char *__newbuf = __alloca (__newlen); \
- char *__buf = (char *) (buf); \
- if (__buf + len == __newbuf) \
- { \
- len += __newlen; \
- __newbuf = __buf; \
- } \
- else \
- len = __newlen; \
- __newbuf; })
-#else
-# define extend_alloca(buf, len, newlen) \
- __alloca (((len) = (newlen)))
-#endif
-
#if defined stackinfo_get_sp && defined stackinfo_sub_sp
# define alloca_account(size, avar) \
({ void *old__ = stackinfo_get_sp (); \
void *m__ = __alloca (size); \
avar += stackinfo_sub_sp (old__); \
m__; })
-# define extend_alloca_account(buf, len, newlen, avar) \
- ({ void *old__ = stackinfo_get_sp (); \
- void *m__ = extend_alloca (buf, len, newlen); \
- avar += stackinfo_sub_sp (old__); \
- m__; })
#else
# define alloca_account(size, avar) \
({ size_t s__ = (size); \
avar += s__; \
__alloca (s__); })
-# define extend_alloca_account(buf, len, newlen, avar) \
- ({ size_t s__ = (newlen); \
- avar += s__; \
- extend_alloca (buf, len, s__); })
#endif
# endif /* !_ISOMAC */
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 38be236991..379f003b3f 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -2622,7 +2622,6 @@ pointer @var{ap}.
@c __libc_use_alloca
@c process_arg
@c process_string_arg
-@c extend_alloca
@c __parse_one_spec(wc|mb)
@c *__printf_arginfo_table unguarded
@c __printf_va_arg_table-> unguarded
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023]
2018-06-27 16:42 [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023] Florian Weimer
@ 2018-06-27 17:08 ` Adhemerval Zanella
2018-06-27 18:29 ` Florian Weimer
0 siblings, 1 reply; 4+ messages in thread
From: Adhemerval Zanella @ 2018-06-27 17:08 UTC (permalink / raw)
To: libc-alpha
On 27/06/2018 13:42, Florian Weimer wrote:
> The unused macro definition in posix/glob.c comes from gnulib and will
> have to be removed there.
Since you are working on BZ#18023, maybe check the glob refactor to remove alloc
on glob I have posted sometime ago?
>
> 2018-06-27 Florian Weimer <fweimer@redhat.com>
>
> [BZ #18023]
> * include/alloca.h (stackinfo_alloca_round, extend_alloca)
> (extend_alloca_account): Remove.
> * manual/stdio.texi (Variable Arguments Output): Update comment.
LGTM, thanks.
>
> diff --git a/include/alloca.h b/include/alloca.h
> index fd90664f0a..c0b8395443 100644
> --- a/include/alloca.h
> +++ b/include/alloca.h
> @@ -23,57 +23,17 @@ libc_hidden_proto (__libc_alloca_cutoff)
>
> #include <allocalim.h>
>
> -#ifndef stackinfo_alloca_round
> -# define stackinfo_alloca_round(l) (((l) + 15) & -16)
> -#endif
> -
> -#if _STACK_GROWS_DOWN
> -# define extend_alloca(buf, len, newlen) \
> - (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \
> - char *__newbuf = __alloca (__newlen); \
> - if (__newbuf + __newlen == (char *) (buf)) \
> - len += __newlen; \
> - else \
> - len = __newlen; \
> - __newbuf; })
> -#elif _STACK_GROWS_UP
> -# define extend_alloca(buf, len, newlen) \
> - (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \
> - char *__newbuf = __alloca (__newlen); \
> - char *__buf = (char *) (buf); \
> - if (__buf + len == __newbuf) \
> - { \
> - len += __newlen; \
> - __newbuf = __buf; \
> - } \
> - else \
> - len = __newlen; \
> - __newbuf; })
> -#else
> -# define extend_alloca(buf, len, newlen) \
> - __alloca (((len) = (newlen)))
> -#endif
> -
> #if defined stackinfo_get_sp && defined stackinfo_sub_sp
> # define alloca_account(size, avar) \
> ({ void *old__ = stackinfo_get_sp (); \
> void *m__ = __alloca (size); \
> avar += stackinfo_sub_sp (old__); \
> m__; })
> -# define extend_alloca_account(buf, len, newlen, avar) \
> - ({ void *old__ = stackinfo_get_sp (); \
> - void *m__ = extend_alloca (buf, len, newlen); \
> - avar += stackinfo_sub_sp (old__); \
> - m__; })
> #else
> # define alloca_account(size, avar) \
> ({ size_t s__ = (size); \
> avar += s__; \
> __alloca (s__); })
> -# define extend_alloca_account(buf, len, newlen, avar) \
> - ({ size_t s__ = (newlen); \
> - avar += s__; \
> - extend_alloca (buf, len, s__); })
> #endif
>
> # endif /* !_ISOMAC */
> diff --git a/manual/stdio.texi b/manual/stdio.texi
> index 38be236991..379f003b3f 100644
> --- a/manual/stdio.texi
> +++ b/manual/stdio.texi
> @@ -2622,7 +2622,6 @@ pointer @var{ap}.
> @c __libc_use_alloca
> @c process_arg
> @c process_string_arg
> -@c extend_alloca
> @c __parse_one_spec(wc|mb)
> @c *__printf_arginfo_table unguarded
> @c __printf_va_arg_table-> unguarded
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023]
2018-06-27 17:08 ` Adhemerval Zanella
@ 2018-06-27 18:29 ` Florian Weimer
2018-06-28 17:49 ` Adhemerval Zanella
0 siblings, 1 reply; 4+ messages in thread
From: Florian Weimer @ 2018-06-27 18:29 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
> On 27/06/2018 13:42, Florian Weimer wrote:
>> The unused macro definition in posix/glob.c comes from gnulib and will
>> have to be removed there.
>
> Since you are working on BZ#18023, maybe check the glob refactor to
> remove alloc on glob I have posted sometime ago?
This was the series of patches with the growable strings abstraction,
right?
Eventually, I want to come back to it, yes.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023]
2018-06-27 18:29 ` Florian Weimer
@ 2018-06-28 17:49 ` Adhemerval Zanella
0 siblings, 0 replies; 4+ messages in thread
From: Adhemerval Zanella @ 2018-06-28 17:49 UTC (permalink / raw)
To: Florian Weimer; +Cc: libc-alpha
On 27/06/2018 15:23, Florian Weimer wrote:
> * Adhemerval Zanella:
>
>> On 27/06/2018 13:42, Florian Weimer wrote:
>>> The unused macro definition in posix/glob.c comes from gnulib and will
>>> have to be removed there.
>>
>> Since you are working on BZ#18023, maybe check the glob refactor to
>> remove alloc on glob I have posted sometime ago?
>
> This was the series of patches with the growable strings abstraction,
> right?
>
> Eventually, I want to come back to it, yes.
>
Yes, last patchset is this one https://sourceware.org/ml/libc-alpha/2018-02/msg00109.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-06-28 17:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-27 16:42 [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023] Florian Weimer
2018-06-27 17:08 ` Adhemerval Zanella
2018-06-27 18:29 ` Florian Weimer
2018-06-28 17:49 ` Adhemerval Zanella
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).