Solaris issues
paulf@free.fr
paulf@free.fr
Tue Jun 5 20:36:00 GMT 2018
----- Original Message -----
> Hi Paul,
[snip - lots of .rodata sections]
>
> those sections are in libstdc++.so. They can be found in the input
> objects used to created libstdc++.so on Linux and Solaris alike, due
> to
> the use of -fdata-sections (via SECTION_FLAGS) in libstdc++.
>
> However, on Linux gld is usually used, which is driven by linker maps
> that often coalesce sections based on section name patters. OTOH,
> Solaris ld (which I assume you used) usually doesn't care about
> section
> names, but does the bulk of its work based on section attributes
> alone.
> The ultimate result is the same (all .rodata* sections land in the
> read-only text segment at runtime), since sections don't matter to
> the
> kernel, only segments do.
I am indeed using Solaris ld - configured with "--without-gnu-ld --with-ld=/usr/ccs/bin/ld"
> You can read about the gory details on how Solaris ld does that part
> of
> its work at
>
> https://docs.oracle.com/cd/E37838_01/html/E36783/gjqaz.html#scrolltoc
I'll have a look. I probably read an older version in the distant past.
> (and doubtlessly somewhere on linker-aliens.org ;-)
>
> In Solaris 11.4, there were some changes here for better GNU (bug)
> compatibility, so there's only a single .rodata section here.
> However,
> there's nothing wrong with how Solaris ld behaved before: I'd claim
> this
> is a scalability bug in valgrind: ELF objects can have very large
> numbers of sections for all sorts of legitimate resons, so it needs
> to
> cope with them.
>
> Rainer
Hmm OK. Do you know what change caused this?
Since there's a patch for Valgrind to fix it, it looks like that would be the best solution.
A+
Paul
More information about the Gcc
mailing list