Re: [PATCH][gdb/build] Handle deprecation of scm_install_gmp_memory_functions

Tom de Vries via Gdb-patches
2022-07-07T08:21:15Z

On 7/7/22 10:14, Enze Li wrote:
> Hi Tom,
>
> Thanks for doing this. :)
>

Np :)

> On Thu, 2022-07-07 at 09:58 +0200, Tom de Vries via Gdb-patches wrote:
>> Hi,
>>
>> When building gdb with guile 3.0.8, we run into:
>> ...
>> gdb/guile/guile.c: In function \
>> 'void gdbscm_initialize(const extension_language_defn*)':
>>
>
> <...>
>
>>
>> Tested on x86_64-linux.
>>
>> Co-Authored-By: Tom de Vries <tdevries@suse.de>
> ^^^^^^^^^^^^^^
> This part confused me. Is it necessary to include such a line when the
> author of the patch is the same person?
>

No, indeed it's not necessary in such a case.

However, that is not the case here, because I'm not the (main) author:
...
$ git show --pretty=fuller -s
commit b47665709cabeb064cd57e1bf21b95d92c68be4e (HEAD -> fix
-guile-build)
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Thu Jul 7 08:20:28 2022 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Jul 7 09:54:52 2022 +0200

[gdb/build] Handle deprecation of scm_install_gmp_memory_functions
...

Thanks,
- Tom

> Thanks,
> Enze
>
>>
>> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28994
>>
>> Any comments?
>>
>> Thanks,
>> - Tom
>>
>> [gdb/build] Handle deprecation of scm_install_gmp_memory_functions
>>
>> ---
>> gdb/guile/guile.c | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/gdb/guile/guile.c b/gdb/guile/guile.c
>> index 14b191ded62..e5565b627d9 100644
>> --- a/gdb/guile/guile.c
>> +++ b/gdb/guile/guile.c
>> @@ -677,7 +677,17 @@ gdbscm_initialize (const struct
>> extension_language_defn *extlang)
>> "double free or corruption (out)" error.
>> Work around the libguile bug by disabling the installation of
>> the
>> libgmp memory functions by guile initialization. */
>> +
>> + /* The scm_install_gmp_memory_functions variable should be
>> removed after
>> + version 3.0, so limit usage to 3.0 and before. */
>> +#if SCM_MAJOR_VERSION < 3 || (SCM_MAJOR_VERSION == 3 &&
>> SCM_MINOR_VERSION == 0)
>> + /* This variable is deprecated in Guile 3.0.8 and later but
>> remains
>> + available in the whole 3.0 series. */
>> +#pragma GCC diagnostic push
>> +#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
>> scm_install_gmp_memory_functions = 0;
>> +#pragma GCC diagnostic pop
>> +#endif
>>
>> /* scm_with_guile is the most portable way to initialize
>> Guile. Plus
>> we need to initialize the Guile support while in Guile mode
>> (e.g.,
>