Define DT_GNU_FLAGS_1/DF_GNU_1_UNIQUE
Merge request reports
Activity
86 \Hrule 87 \caption{\texttt{DT_GNU_FLAGS_1} Flag Values} 88 \label{dt_gnu_1_unique} 89 \begin{center} 90 \begin{tabular}[t]{l|l} 91 \multicolumn{1}{c}{Name} & \multicolumn{1}{c}{Value} \\ 92 \hline 93 \texttt{DF_GNU_1_UNIQUE} & \texttt{0x00000001} \\ 94 \end{tabular} 95 \end{center} 96 \Hrule 97 \end{table} 98 99 \begin{description} 100 \item[DF_GNU_1_UNIQUE] 101 If this flag is set in a shared object, only one instance of this DF_GNU_1_UNIQUE
only expresses a preference for sharing. In a sense, it enablesRTLD_SHARED
by default. It does not make it mandatory. So the description needs rewording.
I don't know how glibc specific LD_AUDIT is. I was asked not to refer to glibc and glibc internals specifically in the docs which leaves me in a bit of a bind: I'm adding this flag because it's necessary to finish a glibc feature, but I have to update the gABI docs in a way which doesn't mention glibc.
Edited by Vivek Das MohapatraHow about something like this:
By default dynamic shared objects are loaded into a single flat namespace. Some <runtimes? frameworks?> permit them to be loaded into alternate namespaces which are separate from the default one. Normally such alternate namespaces are separate from one another (and from the main namespace) - eg they do not see one another's symbols when doing relocations.
This flag indicates that the DSO which has it should only exist once across all namespaces - if a secondary namespace DSO requires it or tries to load it it will instead be placed in the main namespace and made available to the DSOs in the secondary namespace across the namespace boundary.