* [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions
@ 2026-06-24 9:50 Muhammad Kamran
2026-06-24 9:50 ` [PATCH 1/1] " Muhammad Kamran
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Muhammad Kamran @ 2026-06-24 9:50 UTC (permalink / raw)
To: gdb-patches
Cc: Wilco Dijkstra, Yury Khrustalev, Thiago Jung Bauermann,
Adhemerval Zanella Netto, Carlos O'Donell, Muhammad Kamran
This patch fixes a GDB inferior-call issue exposed by malloc being a GNU
IFUNC in glibc on AArch64.
GDB calls find_function_in_inferior ("malloc") when expression evaluation
needs to allocate memory in the inferior, for example for string literal
arguments. In the minimal-symbol fallback, GDB created a synthetic ordinary
function pointer from the minimal symbol address. If the symbol was a GNU
IFUNC, this lost the IFUNC marker, so call_function_by_hand did not
resolve the symbol before calling it.
The patch uses find_minsym_type_and_address to classify the minimal symbol
and propagates the IFUNC marker to the synthetic function type when needed.
The existing fallback return type is unchanged.
Should this be considered for backporting to release branches?
Muhammad Kamran (1):
gdb: Preserve IFUNC marker when finding inferior functions
gdb/valops.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-24 9:50 [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions Muhammad Kamran
@ 2026-06-24 9:50 ` Muhammad Kamran
2026-06-24 15:53 ` Andrew Burgess
2026-06-24 12:18 ` [PATCH 0/1] " Carlos O'Donell
2026-06-24 12:56 ` Yury Khrustalev
2 siblings, 1 reply; 10+ messages in thread
From: Muhammad Kamran @ 2026-06-24 9:50 UTC (permalink / raw)
To: gdb-patches
Cc: Wilco Dijkstra, Yury Khrustalev, Thiago Jung Bauermann,
Adhemerval Zanella Netto, Carlos O'Donell, Muhammad Kamran
GDB calls find_function_in_inferior ("malloc") when expression
evaluation needs to allocate memory in the inferior, e.g. for string
literal arguments.
The minimal-symbol fallback created a synthetic ordinary function
pointer from msymbol.value_address (). If the symbol was a GNU IFUNC,
this discarded the IFUNC marker, so call_function_by_hand did not
resolve the symbol before calling it.
Use find_minsym_type_and_address to classify the minimal symbol and
propagate the GNU IFUNC marker to the synthetic function type. This
keeps the existing fallback return type while allowing inferior calls
through IFUNC symbols to be resolved correctly.
---
gdb/valops.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gdb/valops.c b/gdb/valops.c
index ab6fd5079e1..7d305871efc 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -133,11 +133,15 @@ find_function_in_inferior (const char *name, struct objfile **objf_p)
struct gdbarch *gdbarch = objfile->arch ();
struct type *type;
+ struct type *resolved_type;
CORE_ADDR maddr;
type = lookup_pointer_type (builtin_type (gdbarch)->builtin_char);
type = lookup_function_type (type);
type = lookup_pointer_type (type);
- maddr = msymbol.value_address ();
+ resolved_type = find_minsym_type_and_address (msymbol.minsym, objfile,
+ &maddr);
+ if (resolved_type->is_gnu_ifunc ())
+ type->target_type ()->set_is_gnu_ifunc (true);
if (objf_p)
*objf_p = objfile;
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-24 9:50 [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions Muhammad Kamran
2026-06-24 9:50 ` [PATCH 1/1] " Muhammad Kamran
@ 2026-06-24 12:18 ` Carlos O'Donell
2026-06-24 12:56 ` Yury Khrustalev
2 siblings, 0 replies; 10+ messages in thread
From: Carlos O'Donell @ 2026-06-24 12:18 UTC (permalink / raw)
To: Muhammad Kamran, gdb-patches
Cc: Wilco Dijkstra, Yury Khrustalev, Thiago Jung Bauermann,
Adhemerval Zanella Netto
On 6/24/26 5:50 AM, Muhammad Kamran wrote:
> This patch fixes a GDB inferior-call issue exposed by malloc being a GNU
> IFUNC in glibc on AArch64.
>
> GDB calls find_function_in_inferior ("malloc") when expression evaluation
> needs to allocate memory in the inferior, for example for string literal
> arguments. In the minimal-symbol fallback, GDB created a synthetic ordinary
> function pointer from the minimal symbol address. If the symbol was a GNU
> IFUNC, this lost the IFUNC marker, so call_function_by_hand did not
> resolve the symbol before calling it.
>
> The patch uses find_minsym_type_and_address to classify the minimal symbol
> and propagates the IFUNC marker to the synthetic function type when needed.
> The existing fallback return type is unchanged.
>
> Should this be considered for backporting to release branches?
Yes please!
This blocks glibc 2.44 release with the current malloc IFUNCs.
It would be great to have this fixed in gdb 17.2.
> Muhammad Kamran (1):
> gdb: Preserve IFUNC marker when finding inferior functions
>
> gdb/valops.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
--
Cheers,
Carlos.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-24 9:50 [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions Muhammad Kamran
2026-06-24 9:50 ` [PATCH 1/1] " Muhammad Kamran
2026-06-24 12:18 ` [PATCH 0/1] " Carlos O'Donell
@ 2026-06-24 12:56 ` Yury Khrustalev
2026-06-25 20:16 ` Simon Marchi
2 siblings, 1 reply; 10+ messages in thread
From: Yury Khrustalev @ 2026-06-24 12:56 UTC (permalink / raw)
To: Muhammad Kamran
Cc: gdb-patches, Wilco Dijkstra, Thiago Jung Bauermann,
Adhemerval Zanella Netto, Carlos O'Donell
On Wed, Jun 24, 2026 at 09:50:01AM +0000, Muhammad Kamran wrote:
> This patch fixes a GDB inferior-call issue exposed by malloc being a GNU
> IFUNC in glibc on AArch64.
>
> GDB calls find_function_in_inferior ("malloc") when expression evaluation
> needs to allocate memory in the inferior, for example for string literal
> arguments. In the minimal-symbol fallback, GDB created a synthetic ordinary
> function pointer from the minimal symbol address. If the symbol was a GNU
> IFUNC, this lost the IFUNC marker, so call_function_by_hand did not
> resolve the symbol before calling it.
>
> The patch uses find_minsym_type_and_address to classify the minimal symbol
> and propagates the IFUNC marker to the synthetic function type when needed.
> The existing fallback return type is unchanged.
Thanks! I confirm that all GDB testsuites that showed regressions now
pass with Glibc from master and this patch applied on top of GDB master.
>
> Should this be considered for backporting to release branches?
Yes please, at least GDB 16.x and 17.x I think should be covered.
Kind regards,
Yury
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-24 9:50 ` [PATCH 1/1] " Muhammad Kamran
@ 2026-06-24 15:53 ` Andrew Burgess
2026-06-25 15:37 ` Muhammad Kamran
0 siblings, 1 reply; 10+ messages in thread
From: Andrew Burgess @ 2026-06-24 15:53 UTC (permalink / raw)
To: Muhammad Kamran, gdb-patches
Cc: Wilco Dijkstra, Yury Khrustalev, Thiago Jung Bauermann,
Adhemerval Zanella Netto, Carlos O'Donell, Muhammad Kamran
Muhammad Kamran <muhammad.kamran@arm.com> writes:
> GDB calls find_function_in_inferior ("malloc") when expression
> evaluation needs to allocate memory in the inferior, e.g. for string
> literal arguments.
>
> The minimal-symbol fallback created a synthetic ordinary function
> pointer from msymbol.value_address (). If the symbol was a GNU IFUNC,
> this discarded the IFUNC marker, so call_function_by_hand did not
> resolve the symbol before calling it.
>
> Use find_minsym_type_and_address to classify the minimal symbol and
> propagate the GNU IFUNC marker to the synthetic function type. This
> keeps the existing fallback return type while allowing inferior calls
> through IFUNC symbols to be resolved correctly.
> ---
> gdb/valops.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
Is it possible to create a test for this issue that would fail on other
targets? There's gdb.base/gnu-ifunc.exp, from the patch I'm wondering
if all that would be needed is to place an ifunc function in a library,
and compile the library without debug information? It's not super clear
from your description the exact steps that are needed to trigger this
bug.
>
> diff --git a/gdb/valops.c b/gdb/valops.c
> index ab6fd5079e1..7d305871efc 100644
> --- a/gdb/valops.c
> +++ b/gdb/valops.c
> @@ -133,11 +133,15 @@ find_function_in_inferior (const char *name, struct objfile **objf_p)
> struct gdbarch *gdbarch = objfile->arch ();
>
> struct type *type;
> + struct type *resolved_type;
> CORE_ADDR maddr;
> type = lookup_pointer_type (builtin_type (gdbarch)->builtin_char);
> type = lookup_function_type (type);
> type = lookup_pointer_type (type);
> - maddr = msymbol.value_address ();
> + resolved_type = find_minsym_type_and_address (msymbol.minsym, objfile,
> + &maddr);
> + if (resolved_type->is_gnu_ifunc ())
> + type->target_type ()->set_is_gnu_ifunc (true);
There are other places in GDB where we use lookup_function_type, could
these also run into this issue? It would be nice if the description
explained why other similar places in GDB don't need changing if that's
the case.
Thanks,
Andrew
>
> if (objf_p)
> *objf_p = objfile;
> --
> 2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-24 15:53 ` Andrew Burgess
@ 2026-06-25 15:37 ` Muhammad Kamran
0 siblings, 0 replies; 10+ messages in thread
From: Muhammad Kamran @ 2026-06-25 15:37 UTC (permalink / raw)
To: Andrew Burgess, gdb-patches
Cc: Wilco Dijkstra, Yury Khrustalev, Thiago Jung Bauermann,
Adhemerval Zanella Netto, Carlos O'Donell
Hi Andrew,
Thanks for the review.
On 24/06/2026 16:53, Andrew Burgess wrote:
> Muhammad Kamran <muhammad.kamran@arm.com> writes:
>
>> GDB calls find_function_in_inferior ("malloc") when expression
>> evaluation needs to allocate memory in the inferior, e.g. for string
>> literal arguments.
>>
>> The minimal-symbol fallback created a synthetic ordinary function
>> pointer from msymbol.value_address (). If the symbol was a GNU IFUNC,
>> this discarded the IFUNC marker, so call_function_by_hand did not
>> resolve the symbol before calling it.
>>
>> Use find_minsym_type_and_address to classify the minimal symbol and
>> propagate the GNU IFUNC marker to the synthetic function type. This
>> keeps the existing fallback return type while allowing inferior calls
>> through IFUNC symbols to be resolved correctly.
>> ---
>> gdb/valops.c | 6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> Is it possible to create a test for this issue that would fail on other
> targets? There's gdb.base/gnu-ifunc.exp, from the patch I'm wondering
> if all that would be needed is to place an ifunc function in a library,
> and compile the library without debug information? It's not super clear
> from your description the exact steps that are needed to trigger this
> bug.
Yes, this can be tested. I added a regression test in v2 to
gdb.base/gnu-ifunc.exp. The test defines malloc as a GNU IFUNC in a
no-debug object, and links it with a small debug test program. The test
then evaluates an inferior call with a string literal argument. Copying
that string literal into the inferior forces GDB through
find_function_in_inferior ("malloc"), which exercises the minimal-symbol
fallback.
>
>>
>> diff --git a/gdb/valops.c b/gdb/valops.c
>> index ab6fd5079e1..7d305871efc 100644
>> --- a/gdb/valops.c
>> +++ b/gdb/valops.c
>> @@ -133,11 +133,15 @@ find_function_in_inferior (const char *name, struct objfile **objf_p)
>> struct gdbarch *gdbarch = objfile->arch ();
>>
>> struct type *type;
>> + struct type *resolved_type;
>> CORE_ADDR maddr;
>> type = lookup_pointer_type (builtin_type (gdbarch)->builtin_char);
>> type = lookup_function_type (type);
>> type = lookup_pointer_type (type);
>> - maddr = msymbol.value_address ();
>> + resolved_type = find_minsym_type_and_address (msymbol.minsym, objfile,
>> + &maddr);
>> + if (resolved_type->is_gnu_ifunc ())
>> + type->target_type ()->set_is_gnu_ifunc (true);
>
> There are other places in GDB where we use lookup_function_type, could
> these also run into this issue? It would be nice if the description
> explained why other similar places in GDB don't need changing if that's
> the case.
The issue is not lookup_function_type itself. The bug fixed here is the
specific find_function_in_inferior minimal-symbol fallback: it had
already found a minimal symbol, but then built a synthetic callable
value without carrying over the symbol's STT_GNU_IFUNC classification.
I did not find another direct lookup_function_type caller with the same
minimal-symbol fallback pattern. Some code does build ordinary function
pointer types for known non-IFUNC helper paths, so I have kept this
patch limited to the path needed by find_function_in_inferior.
Thanks,
Kamran
>
> Thanks,
> Andrew
>
>
>>
>> if (objf_p)
>> *objf_p = objfile;
>> --
>> 2.43.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-24 12:56 ` Yury Khrustalev
@ 2026-06-25 20:16 ` Simon Marchi
2026-06-25 23:08 ` Carlos O'Donell
0 siblings, 1 reply; 10+ messages in thread
From: Simon Marchi @ 2026-06-25 20:16 UTC (permalink / raw)
To: Yury Khrustalev, Muhammad Kamran
Cc: gdb-patches, Wilco Dijkstra, Thiago Jung Bauermann,
Adhemerval Zanella Netto, Carlos O'Donell
On 2026-06-24 08:56, Yury Khrustalev wrote:
> On Wed, Jun 24, 2026 at 09:50:01AM +0000, Muhammad Kamran wrote:
>> This patch fixes a GDB inferior-call issue exposed by malloc being a GNU
>> IFUNC in glibc on AArch64.
>>
>> GDB calls find_function_in_inferior ("malloc") when expression evaluation
>> needs to allocate memory in the inferior, for example for string literal
>> arguments. In the minimal-symbol fallback, GDB created a synthetic ordinary
>> function pointer from the minimal symbol address. If the symbol was a GNU
>> IFUNC, this lost the IFUNC marker, so call_function_by_hand did not
>> resolve the symbol before calling it.
>>
>> The patch uses find_minsym_type_and_address to classify the minimal symbol
>> and propagates the IFUNC marker to the synthetic function type when needed.
>> The existing fallback return type is unchanged.
>
> Thanks! I confirm that all GDB testsuites that showed regressions now
> pass with Glibc from master and this patch applied on top of GDB master.
>
>>
>> Should this be considered for backporting to release branches?
>
> Yes please, at least GDB 16.x and 17.x I think should be covered.
The bugfix release of GDB 17 (17.2) has already been released, we have
historically not done more than one bugfix release of a given release
branch (just a handful of special cases where we noticed the release was
completely broken, just after releasing it). We usually just move on to
working on the next release (18, in this case).
As the new co-release manager (along with Andrew), I would be open to
discuss changing this, to allow having as many bugfix releases on a
stable branch as needed, at least until the following major version is
available. But I have not done a release myself yet, so I'd like to
wait to see how it's actually like before deciding.
In the mean time, it's always possible to push a fix to the
gdb-17-branch (and even the gdb-16-branch) without it being part of a
release. Downstream packagers can then take this commit and carry it as
a local patch.
Simon
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-25 20:16 ` Simon Marchi
@ 2026-06-25 23:08 ` Carlos O'Donell
2026-06-25 23:52 ` Simon Marchi
0 siblings, 1 reply; 10+ messages in thread
From: Carlos O'Donell @ 2026-06-25 23:08 UTC (permalink / raw)
To: Simon Marchi, Yury Khrustalev, Muhammad Kamran
Cc: gdb-patches, Wilco Dijkstra, Thiago Jung Bauermann,
Adhemerval Zanella Netto
On 6/25/26 4:16 PM, Simon Marchi wrote:
>
>
> On 2026-06-24 08:56, Yury Khrustalev wrote:
>> On Wed, Jun 24, 2026 at 09:50:01AM +0000, Muhammad Kamran wrote:
>>> This patch fixes a GDB inferior-call issue exposed by malloc being a GNU
>>> IFUNC in glibc on AArch64.
>>>
>>> GDB calls find_function_in_inferior ("malloc") when expression evaluation
>>> needs to allocate memory in the inferior, for example for string literal
>>> arguments. In the minimal-symbol fallback, GDB created a synthetic ordinary
>>> function pointer from the minimal symbol address. If the symbol was a GNU
>>> IFUNC, this lost the IFUNC marker, so call_function_by_hand did not
>>> resolve the symbol before calling it.
>>>
>>> The patch uses find_minsym_type_and_address to classify the minimal symbol
>>> and propagates the IFUNC marker to the synthetic function type when needed.
>>> The existing fallback return type is unchanged.
>>
>> Thanks! I confirm that all GDB testsuites that showed regressions now
>> pass with Glibc from master and this patch applied on top of GDB master.
>>
>>>
>>> Should this be considered for backporting to release branches?
>>
>> Yes please, at least GDB 16.x and 17.x I think should be covered.
>
> The bugfix release of GDB 17 (17.2) has already been released, we have
> historically not done more than one bugfix release of a given release
> branch (just a handful of special cases where we noticed the release was
> completely broken, just after releasing it). We usually just move on to
> working on the next release (18, in this case).
>
> As the new co-release manager (along with Andrew), I would be open to
> discuss changing this, to allow having as many bugfix releases on a
> stable branch as needed, at least until the following major version is
> available. But I have not done a release myself yet, so I'd like to
> wait to see how it's actually like before deciding.
Has gdb ever considered a rolling release branch model like glibc?
In glibc we acknowledged that the major consumers could and would like
a release branch that is basically rolling with fixes, while we do cut
an official X.Y release, after that the release branch rolls forward
with each commit valid and containing an additional fix.
> In the mean time, it's always possible to push a fix to the
> gdb-17-branch (and even the gdb-16-branch) without it being part of a
> release. Downstream packagers can then take this commit and carry it as
> a local patch.
I like this idea, what I was trying to express above was that the project
could also pinky-swear not to leave the branch in a broken state such
that it is considered a rolling working release until the next point
release.
In glibc we did away with point releases, they were too much work and
downstream was just as happy to "git pull --rebase" from the release
branch.
Granted the release branch should have some rules, like no backporting
of things that break ABI, API, or exiting commands etc. etc.
--
Cheers,
Carlos.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-25 23:08 ` Carlos O'Donell
@ 2026-06-25 23:52 ` Simon Marchi
2026-07-16 21:00 ` Carlos O'Donell
0 siblings, 1 reply; 10+ messages in thread
From: Simon Marchi @ 2026-06-25 23:52 UTC (permalink / raw)
To: Carlos O'Donell, Yury Khrustalev, Muhammad Kamran
Cc: gdb-patches, Wilco Dijkstra, Thiago Jung Bauermann,
Adhemerval Zanella Netto
On 2026-06-25 19:08, Carlos O'Donell wrote:
> On 6/25/26 4:16 PM, Simon Marchi wrote:
>>
>>
>> On 2026-06-24 08:56, Yury Khrustalev wrote:
>>> On Wed, Jun 24, 2026 at 09:50:01AM +0000, Muhammad Kamran wrote:
>>>> This patch fixes a GDB inferior-call issue exposed by malloc being a GNU
>>>> IFUNC in glibc on AArch64.
>>>>
>>>> GDB calls find_function_in_inferior ("malloc") when expression evaluation
>>>> needs to allocate memory in the inferior, for example for string literal
>>>> arguments. In the minimal-symbol fallback, GDB created a synthetic ordinary
>>>> function pointer from the minimal symbol address. If the symbol was a GNU
>>>> IFUNC, this lost the IFUNC marker, so call_function_by_hand did not
>>>> resolve the symbol before calling it.
>>>>
>>>> The patch uses find_minsym_type_and_address to classify the minimal symbol
>>>> and propagates the IFUNC marker to the synthetic function type when needed.
>>>> The existing fallback return type is unchanged.
>>>
>>> Thanks! I confirm that all GDB testsuites that showed regressions now
>>> pass with Glibc from master and this patch applied on top of GDB master.
>>>
>>>>
>>>> Should this be considered for backporting to release branches?
>>>
>>> Yes please, at least GDB 16.x and 17.x I think should be covered.
>>
>> The bugfix release of GDB 17 (17.2) has already been released, we have
>> historically not done more than one bugfix release of a given release
>> branch (just a handful of special cases where we noticed the release was
>> completely broken, just after releasing it). We usually just move on to
>> working on the next release (18, in this case).
>>
>> As the new co-release manager (along with Andrew), I would be open to
>> discuss changing this, to allow having as many bugfix releases on a
>> stable branch as needed, at least until the following major version is
>> available. But I have not done a release myself yet, so I'd like to
>> wait to see how it's actually like before deciding.
>
> Has gdb ever considered a rolling release branch model like glibc?
>
> In glibc we acknowledged that the major consumers could and would like
> a release branch that is basically rolling with fixes, while we do cut
> an official X.Y release, after that the release branch rolls forward
> with each commit valid and containing an additional fix.
I think that's pretty much the case already, we only commit necessary
fixes to the the release branches, so it is always in a working and
usable state (to the best of our knowledge). We just don't advertise
each individual commit as being a "release".
Simon
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions
2026-06-25 23:52 ` Simon Marchi
@ 2026-07-16 21:00 ` Carlos O'Donell
0 siblings, 0 replies; 10+ messages in thread
From: Carlos O'Donell @ 2026-07-16 21:00 UTC (permalink / raw)
To: Simon Marchi, Yury Khrustalev, Muhammad Kamran
Cc: gdb-patches, Wilco Dijkstra, Thiago Jung Bauermann,
Adhemerval Zanella Netto
On 6/25/26 7:52 PM, Simon Marchi wrote:
>
>
> On 2026-06-25 19:08, Carlos O'Donell wrote:
>> On 6/25/26 4:16 PM, Simon Marchi wrote:
>>>
>>>
>>> On 2026-06-24 08:56, Yury Khrustalev wrote:
>>>> On Wed, Jun 24, 2026 at 09:50:01AM +0000, Muhammad Kamran wrote:
>>>>> This patch fixes a GDB inferior-call issue exposed by malloc being a GNU
>>>>> IFUNC in glibc on AArch64.
>>>>>
>>>>> GDB calls find_function_in_inferior ("malloc") when expression evaluation
>>>>> needs to allocate memory in the inferior, for example for string literal
>>>>> arguments. In the minimal-symbol fallback, GDB created a synthetic ordinary
>>>>> function pointer from the minimal symbol address. If the symbol was a GNU
>>>>> IFUNC, this lost the IFUNC marker, so call_function_by_hand did not
>>>>> resolve the symbol before calling it.
>>>>>
>>>>> The patch uses find_minsym_type_and_address to classify the minimal symbol
>>>>> and propagates the IFUNC marker to the synthetic function type when needed.
>>>>> The existing fallback return type is unchanged.
>>>>
>>>> Thanks! I confirm that all GDB testsuites that showed regressions now
>>>> pass with Glibc from master and this patch applied on top of GDB master.
>>>>
>>>>>
>>>>> Should this be considered for backporting to release branches?
>>>>
>>>> Yes please, at least GDB 16.x and 17.x I think should be covered.
>>>
>>> The bugfix release of GDB 17 (17.2) has already been released, we have
>>> historically not done more than one bugfix release of a given release
>>> branch (just a handful of special cases where we noticed the release was
>>> completely broken, just after releasing it). We usually just move on to
>>> working on the next release (18, in this case).
>>>
>>> As the new co-release manager (along with Andrew), I would be open to
>>> discuss changing this, to allow having as many bugfix releases on a
>>> stable branch as needed, at least until the following major version is
>>> available. But I have not done a release myself yet, so I'd like to
>>> wait to see how it's actually like before deciding.
>>
>> Has gdb ever considered a rolling release branch model like glibc?
>>
>> In glibc we acknowledged that the major consumers could and would like
>> a release branch that is basically rolling with fixes, while we do cut
>> an official X.Y release, after that the release branch rolls forward
>> with each commit valid and containing an additional fix.
>
> I think that's pretty much the case already, we only commit necessary
> fixes to the the release branches, so it is always in a working and
> usable state (to the best of our knowledge). We just don't advertise
> each individual commit as being a "release".
When I started advertising this for glibc I worked with the downstream
distributions to adopt a "git pull --rebase" kind of model where they
would likewise just pull from the release branch and update.
This incentivizes the distributions to get involved, backport stable
fixes, and work collectively to help upstream maintain the release
branch and then update their own components.
In glibc we can see both Fedora and Debian actively backporting to
the release branch where the rule is "If it doesn't change ABI and
landed in master then you can backport it."
We have been doing this process for ~12 years:
https://inbox.sourceware.org/libc-alpha/542DBB6F.6040109@redhat.com/
--
Cheers,
Carlos.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-07-16 21:02 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-24 9:50 [PATCH 0/1] gdb: Preserve IFUNC marker when finding inferior functions Muhammad Kamran
2026-06-24 9:50 ` [PATCH 1/1] " Muhammad Kamran
2026-06-24 15:53 ` Andrew Burgess
2026-06-25 15:37 ` Muhammad Kamran
2026-06-24 12:18 ` [PATCH 0/1] " Carlos O'Donell
2026-06-24 12:56 ` Yury Khrustalev
2026-06-25 20:16 ` Simon Marchi
2026-06-25 23:08 ` Carlos O'Donell
2026-06-25 23:52 ` Simon Marchi
2026-07-16 21:00 ` Carlos O'Donell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox