Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] gdb/doc: Explain linker namespaces
@ 2025-06-06 15:24 Guinevere Larsen
  2025-06-06 18:48 ` Eli Zaretskii
  2025-06-06 19:45 ` [PATCH v2] " Guinevere Larsen
  0 siblings, 2 replies; 9+ messages in thread
From: Guinevere Larsen @ 2025-06-06 15:24 UTC (permalink / raw)
  To: gdb-patches; +Cc: eliz, Guinevere Larsen

Recent GDB commits added more features related to linker namespaces and
documented them on the manual, but did not add a convenient way for a
user to understand what they are. This commit adds a quick explanation
of what they are.

It also fixes the inconsistency of using "linker namespaces" and
"linkage namespaces", by always using the first form to avoid user
confusion.
---
 gdb/doc/gdb.texinfo | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 7d06e1f5fa4..60e853ffc50 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -13106,8 +13106,8 @@ environment variable.
 
 @vindex $_active_linker_namespaces@r{, convenience variable}
 @item $_active_linker_namespaces
-Number of active linkage namespaces in the inferior.  In systems with no
-support for linkage namespaces, this variable will always be set to @samp{1}.
+Number of active linker namespaces in the inferior.  In systems with no
+support for linker namespaces, this variable will always be set to @samp{1}.
 
 @vindex $_linker_namespace@r{, convenience variable}
 @item $_linker_namespace
@@ -22242,11 +22242,18 @@ be determined then the address range for the @code{.text} section from
 the library will be listed.  If the @code{.text} section cannot be
 found then no addresses will be listed.
 
-On systems that support linkage namespaces, the output includes an
+On systems that support linker namespaces, the output includes an
 additional column @code{NS} if the inferior has more than one active
-namespace when the command is used.  This column the linkage namespace
+namespace when the command is used.  This column the linker namespace
 that the shared library was loaded into.
 
+@cindex Linker Namespaces
+Linker namespaces are a feature of some standard libraries, that allow
+shared objects to be loaded in isolated environment, eliminating the
+possibility that those objects may cross-talk.  Each set of isolated
+shared objects is said to belong to a "namespace", and linker related
+actions such as relocations do not cross namespace boundaries.
+
 @kindex info dll
 @item info dll @var{regex}
 This is an alias of @code{info sharedlibrary}.

base-commit: 96662aacaa0cf0a9766d874fc9577a5da417dbcc
-- 
2.49.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] gdb/doc: Explain linker namespaces
  2025-06-06 15:24 [PATCH] gdb/doc: Explain linker namespaces Guinevere Larsen
@ 2025-06-06 18:48 ` Eli Zaretskii
  2025-06-06 19:00   ` Guinevere Larsen
  2025-06-06 19:45 ` [PATCH v2] " Guinevere Larsen
  1 sibling, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2025-06-06 18:48 UTC (permalink / raw)
  To: Guinevere Larsen; +Cc: gdb-patches

> From: Guinevere Larsen <guinevere@redhat.com>
> Cc: eliz@gnu.org,
> 	Guinevere Larsen <guinevere@redhat.com>
> Date: Fri,  6 Jun 2025 12:24:23 -0300
> 
> Recent GDB commits added more features related to linker namespaces and
> documented them on the manual, but did not add a convenient way for a
> user to understand what they are. This commit adds a quick explanation
> of what they are.
> 
> It also fixes the inconsistency of using "linker namespaces" and
> "linkage namespaces", by always using the first form to avoid user
> confusion.
> ---
>  gdb/doc/gdb.texinfo | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)

Thanks.

> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -13106,8 +13106,8 @@ environment variable.
>  
>  @vindex $_active_linker_namespaces@r{, convenience variable}
>  @item $_active_linker_namespaces
> -Number of active linkage namespaces in the inferior.  In systems with no
> -support for linkage namespaces, this variable will always be set to @samp{1}.
> +Number of active linker namespaces in the inferior.  In systems with no
> +support for linker namespaces, this variable will always be set to @samp{1}.

Please add here a cross-reference to where linker namespaces are
described.

> +@cindex Linker Namespaces

Index entries should try not to use upper-case letters, unless really
necessary.  This is because in some locales upper-case letters'
sorting order is different from the US-ASCII locale, and we don't want
the sorting of the index entries depend on the locale where the manual
is produced.

> +Linker namespaces are a feature of some standard libraries, that allow
> +shared objects to be loaded in isolated environment, eliminating the
> +possibility that those objects may cross-talk.  Each set of isolated
> +shared objects is said to belong to a "namespace", and linker related

Please use ``namespace'', not "namespace".  The former produces
prettier output in the printed version of the manual.

Reviewed-By: Eli Zaretskii <eliz@gnu.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] gdb/doc: Explain linker namespaces
  2025-06-06 18:48 ` Eli Zaretskii
@ 2025-06-06 19:00   ` Guinevere Larsen
  2025-06-06 19:13     ` Eli Zaretskii
  0 siblings, 1 reply; 9+ messages in thread
From: Guinevere Larsen @ 2025-06-06 19:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 771 bytes --]

On 6/6/25 3:48 PM, Eli Zaretskii wrote:
>> --- a/gdb/doc/gdb.texinfo
>> +++ b/gdb/doc/gdb.texinfo
>> @@ -13106,8 +13106,8 @@ environment variable.
>>   
>>   @vindex $_active_linker_namespaces@r{, convenience variable}
>>   @item $_active_linker_namespaces
>> -Number of active linkage namespaces in the inferior.  In systems with no
>> -support for linkage namespaces, this variable will always be set to @samp{1}.
>> +Number of active linker namespaces in the inferior.  In systems with no
>> +support for linker namespaces, this variable will always be set to @samp{1}.
> Please add here a cross-reference to where linker namespaces are
> described.

I don't know how to do that, what texinfo macro(? command?) should I use?

-- 
Cheers,
Guinevere Larsen
She/Her/Hers

[-- Attachment #2: Type: text/html, Size: 1271 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] gdb/doc: Explain linker namespaces
  2025-06-06 19:00   ` Guinevere Larsen
@ 2025-06-06 19:13     ` Eli Zaretskii
  0 siblings, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2025-06-06 19:13 UTC (permalink / raw)
  To: Guinevere Larsen; +Cc: gdb-patches

> Date: Fri, 6 Jun 2025 16:00:00 -0300
> Cc: gdb-patches@sourceware.org
> From: Guinevere Larsen <guinevere@redhat.com>
> 
> On 6/6/25 3:48 PM, Eli Zaretskii wrote:
> 
>  --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -13106,8 +13106,8 @@ environment variable.
>  
>  @vindex $_active_linker_namespaces@r{, convenience variable}
>  @item $_active_linker_namespaces
> -Number of active linkage namespaces in the inferior.  In systems with no
> -support for linkage namespaces, this variable will always be set to @samp{1}.
> +Number of active linker namespaces in the inferior.  In systems with no
> +support for linker namespaces, this variable will always be set to @samp{1}.
> 
> Please add here a cross-reference to where linker namespaces are
> described.
> 
> I don't know how to do that, what texinfo macro(? command?) should I use?

Something like this:

 Number of active linker namespaces in the inferior (@pxref{Files}).
 In systems with no support for linker namespaces, this variable will
 always be set to @samp{1}.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2] gdb/doc: Explain linker namespaces
  2025-06-06 15:24 [PATCH] gdb/doc: Explain linker namespaces Guinevere Larsen
  2025-06-06 18:48 ` Eli Zaretskii
@ 2025-06-06 19:45 ` Guinevere Larsen
  2025-06-06 19:58   ` Eli Zaretskii
  2025-06-16 11:55   ` [PATCH v3] " Guinevere Larsen
  1 sibling, 2 replies; 9+ messages in thread
From: Guinevere Larsen @ 2025-06-06 19:45 UTC (permalink / raw)
  To: gdb-patches; +Cc: eliz, Guinevere Larsen

Recent GDB commits added more features related to linker namespaces and
documented them on the manual, but did not add a convenient way for a
user to understand what they are. This commit adds a quick explanation
of what they are.

It also fixes the inconsistency of using "linker namespaces" and
"linkage namespaces", by always using the first form to avoid user
confusion.
---
 gdb/doc/gdb.texinfo | 30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 7d06e1f5fa4..39a04b9b6ee 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -13106,14 +13106,15 @@ environment variable.
 
 @vindex $_active_linker_namespaces@r{, convenience variable}
 @item $_active_linker_namespaces
-Number of active linkage namespaces in the inferior.  In systems with no
-support for linkage namespaces, this variable will always be set to @samp{1}.
+Number of active linker namespaces in the inferior(@pxref{Files}).  In systems
+with no support for linker namespaces, this variable will always be set to
+@samp{1}.
 
 @vindex $_linker_namespace@r{, convenience variable}
 @item $_linker_namespace
-The namespace which contains the current location in the inferior.  This
-returns @value{GDBN}'s internal numbering for the namespace.  In systems with no
-support for linker namespaces, this variable will always be set to
+The namespace which contains the current location in the inferior(@pxref{Files}).
+This returns @value{GDBN}'s internal numbering for the namespace.  In systems
+with no support for linker namespaces, this variable will always be set to
 @samp{0}.
 
 @end table
@@ -22242,11 +22243,18 @@ be determined then the address range for the @code{.text} section from
 the library will be listed.  If the @code{.text} section cannot be
 found then no addresses will be listed.
 
-On systems that support linkage namespaces, the output includes an
+On systems that support linker namespaces, the output includes an
 additional column @code{NS} if the inferior has more than one active
-namespace when the command is used.  This column the linkage namespace
+namespace when the command is used.  This column the linker namespace
 that the shared library was loaded into.
 
+@cindex linker namespaces
+Linker namespaces are a feature of some standard libraries, that allow
+shared objects to be loaded in isolated environment, eliminating the
+possibility that those objects may cross-talk.  Each set of isolated
+shared objects is said to belong to a "namespace", and linker related
+actions such as relocations do not cross namespace boundaries.
+
 @kindex info dll
 @item info dll @var{regex}
 This is an alias of @code{info sharedlibrary}.
@@ -22286,10 +22294,10 @@ conditions or commands as a catchpoint does.
 @item info linker-namespaces
 @item info linker-namespaces @code{[[@var{n}]]}
 
-With no argument, print the number of linker namespaces which are
-currently active --- that is, namespaces that have libraries loaded
-into them.  Then, it prints the number of libraries loaded into each
-namespace, and all the libraries loaded into them, in the same way
+With no argument, print the number of linker namespaces (@pxref{Files})
+which are currently active --- that is, namespaces that have libraries
+loaded into them.  Then, it prints the number of libraries loaded into
+each namespace, and all the libraries loaded into them, in the same way
 as @code{info sharedlibrary}.
 
 If an argument @code{[[@var{n}]]} is provided, only prints the

base-commit: 21b25b168dc6ed25a14c88fa43ae8128487cb557
-- 
2.49.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] gdb/doc: Explain linker namespaces
  2025-06-06 19:45 ` [PATCH v2] " Guinevere Larsen
@ 2025-06-06 19:58   ` Eli Zaretskii
  2025-06-16 11:55   ` [PATCH v3] " Guinevere Larsen
  1 sibling, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2025-06-06 19:58 UTC (permalink / raw)
  To: Guinevere Larsen; +Cc: gdb-patches

> From: Guinevere Larsen <guinevere@redhat.com>
> Cc: eliz@gnu.org,
> 	Guinevere Larsen <guinevere@redhat.com>
> Date: Fri,  6 Jun 2025 16:45:33 -0300
> 
> -Number of active linkage namespaces in the inferior.  In systems with no
> -support for linkage namespaces, this variable will always be set to @samp{1}.
> +Number of active linker namespaces in the inferior(@pxref{Files}).  In systems
                                                    ^^
Please leave a space before the open paren there.  These parentheses
are output to the formatted manual, so they need to adhere to rules of
English.

>  @vindex $_linker_namespace@r{, convenience variable}
>  @item $_linker_namespace
> -The namespace which contains the current location in the inferior.  This
> -returns @value{GDBN}'s internal numbering for the namespace.  In systems with no
> -support for linker namespaces, this variable will always be set to
> +The namespace which contains the current location in the inferior(@pxref{Files}).
                                                                    ^^^^^^^^^^^^^
There's no need to have the @pxref here, since we just had a cross
reference a dozen lines above.

> @@ -22286,10 +22294,10 @@ conditions or commands as a catchpoint does.
>  @item info linker-namespaces
>  @item info linker-namespaces @code{[[@var{n}]]}
>  
> -With no argument, print the number of linker namespaces which are
> -currently active --- that is, namespaces that have libraries loaded
> -into them.  Then, it prints the number of libraries loaded into each
> -namespace, and all the libraries loaded into them, in the same way
> +With no argument, print the number of linker namespaces (@pxref{Files})

Likewise here: the reference is to the same node as the one in which
this text appears, so there's no need to have a cross-reference here.

Thanks.

Reviewed-By: Eli Zaretskii <eliz@gnu.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v3] gdb/doc: Explain linker namespaces
  2025-06-06 19:45 ` [PATCH v2] " Guinevere Larsen
  2025-06-06 19:58   ` Eli Zaretskii
@ 2025-06-16 11:55   ` Guinevere Larsen
  2025-06-16 12:27     ` Eli Zaretskii
  1 sibling, 1 reply; 9+ messages in thread
From: Guinevere Larsen @ 2025-06-16 11:55 UTC (permalink / raw)
  To: gdb-patches; +Cc: Guinevere Larsen

Recent GDB commits added more features related to linker namespaces and
documented them on the manual, but did not add a convenient way for a
user to understand what they are. This commit adds a quick explanation
of what they are.

It also fixes the inconsistency of using "linker namespaces" and
"linkage namespaces", by always using the first form to avoid user
confusion.
---
 gdb/doc/gdb.texinfo | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 4d3a2d0bd5e..57eb3695e57 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -13106,15 +13106,15 @@ environment variable.
 
 @vindex $_active_linker_namespaces@r{, convenience variable}
 @item $_active_linker_namespaces
-Number of active linkage namespaces in the inferior.  In systems with no
-support for linkage namespaces, this variable will always be set to @samp{1}.
+Number of active linker namespaces in the inferior (@pxref{Files}).  In systems
+with no support for linker namespaces, this variable will always be set to
+@samp{1}.
 
 @vindex $_linker_namespace@r{, convenience variable}
 @item $_linker_namespace
-The namespace which contains the current location in the inferior.  This
-returns @value{GDBN}'s internal numbering for the namespace.  In systems with no
-support for linker namespaces, this variable will always be set to
-@samp{0}.
+The namespace which contains the current location in the inferior.  This returns
+@value{GDBN}'s internal numbering for the namespace.  In systems with no support
+for linker namespaces, this variable will always be set to @samp{0}.
 
 @end table
 
@@ -22242,11 +22242,18 @@ be determined then the address range for the @code{.text} section from
 the library will be listed.  If the @code{.text} section cannot be
 found then no addresses will be listed.
 
-On systems that support linkage namespaces, the output includes an
+On systems that support linker namespaces, the output includes an
 additional column @code{NS} if the inferior has more than one active
-namespace when the command is used.  This column the linkage namespace
+namespace when the command is used.  This column the linker namespace
 that the shared library was loaded into.
 
+@cindex linker namespaces
+Linker namespaces are a feature of some standard libraries, that allow
+shared objects to be loaded in isolated environment, eliminating the
+possibility that those objects may cross-talk.  Each set of isolated
+shared objects is said to belong to a "namespace", and linker related
+actions such as relocations do not cross namespace boundaries.
+
 @kindex info dll
 @item info dll @var{regex}
 This is an alias of @code{info sharedlibrary}.

base-commit: 8b9c9b26e18a63aae5b7fcac6b68cede5b61aaf3
-- 
2.49.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] gdb/doc: Explain linker namespaces
  2025-06-16 11:55   ` [PATCH v3] " Guinevere Larsen
@ 2025-06-16 12:27     ` Eli Zaretskii
  2025-06-16 20:17       ` Guinevere Larsen
  0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2025-06-16 12:27 UTC (permalink / raw)
  To: Guinevere Larsen; +Cc: gdb-patches

> From: Guinevere Larsen <guinevere@redhat.com>
> Cc: Guinevere Larsen <guinevere@redhat.com>
> Date: Mon, 16 Jun 2025 08:55:21 -0300
> 
> Recent GDB commits added more features related to linker namespaces and
> documented them on the manual, but did not add a convenient way for a
> user to understand what they are. This commit adds a quick explanation
> of what they are.
> 
> It also fixes the inconsistency of using "linker namespaces" and
> "linkage namespaces", by always using the first form to avoid user
> confusion.
> ---
>  gdb/doc/gdb.texinfo | 23 +++++++++++++++--------
>  1 file changed, 15 insertions(+), 8 deletions(-)

Thanks, this is okay, with two minor comments:

> +@cindex linker namespaces
> +Linker namespaces are a feature of some standard libraries, that allow

Please enclose "Linker namespaces" in @dfn, as this text introduces
new terminology.

> +shared objects to be loaded in isolated environment, eliminating the
> +possibility that those objects may cross-talk.  Each set of isolated
> +shared objects is said to belong to a "namespace", and linker related

The "namespace" part should be quote ``like this'', i.e. with single
quoting characters -- this will produce nicer results in the printed
output.

Approved-By: Eli Zaretskii <eliz@gnu.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] gdb/doc: Explain linker namespaces
  2025-06-16 12:27     ` Eli Zaretskii
@ 2025-06-16 20:17       ` Guinevere Larsen
  0 siblings, 0 replies; 9+ messages in thread
From: Guinevere Larsen @ 2025-06-16 20:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: gdb-patches

On 6/16/25 9:27 AM, Eli Zaretskii wrote:
>> From: Guinevere Larsen <guinevere@redhat.com>
>> Cc: Guinevere Larsen <guinevere@redhat.com>
>> Date: Mon, 16 Jun 2025 08:55:21 -0300
>>
>> Recent GDB commits added more features related to linker namespaces and
>> documented them on the manual, but did not add a convenient way for a
>> user to understand what they are. This commit adds a quick explanation
>> of what they are.
>>
>> It also fixes the inconsistency of using "linker namespaces" and
>> "linkage namespaces", by always using the first form to avoid user
>> confusion.
>> ---
>>   gdb/doc/gdb.texinfo | 23 +++++++++++++++--------
>>   1 file changed, 15 insertions(+), 8 deletions(-)
> Thanks, this is okay, with two minor comments:
>
>> +@cindex linker namespaces
>> +Linker namespaces are a feature of some standard libraries, that allow
> Please enclose "Linker namespaces" in @dfn, as this text introduces
> new terminology.
>
>> +shared objects to be loaded in isolated environment, eliminating the
>> +possibility that those objects may cross-talk.  Each set of isolated
>> +shared objects is said to belong to a "namespace", and linker related
> The "namespace" part should be quote ``like this'', i.e. with single
> quoting characters -- this will produce nicer results in the printed
> output.
>
> Approved-By: Eli Zaretskii <eliz@gnu.org>
>
Thanks for the review, I've pushed this patch with the fixes

-- 
Cheers,
Guinevere Larsen
She/Her/Hers


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-06-16 20:19 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-06 15:24 [PATCH] gdb/doc: Explain linker namespaces Guinevere Larsen
2025-06-06 18:48 ` Eli Zaretskii
2025-06-06 19:00   ` Guinevere Larsen
2025-06-06 19:13     ` Eli Zaretskii
2025-06-06 19:45 ` [PATCH v2] " Guinevere Larsen
2025-06-06 19:58   ` Eli Zaretskii
2025-06-16 11:55   ` [PATCH v3] " Guinevere Larsen
2025-06-16 12:27     ` Eli Zaretskii
2025-06-16 20:17       ` Guinevere Larsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox