[PATCH] [2nd try] Show AIX gc'd symbol address adjustments in map file
Alan Modra
amodra@gmail.com
Wed May 13 22:58:25 GMT 2020
More information about the Binutils mailing list
Wed May 13 22:58:25 GMT 2020
- Previous message (by thread): [PATCH] [2nd try] Show AIX gc'd symbol address adjustments in map file
- Next message (by thread): [PATCH] [2nd try] Show AIX gc'd symbol address adjustments in map file
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, May 13, 2020 at 10:03:05AM -0700, Douglas B Rupp wrote: > > On 5/12/20 5:05 PM, Alan Modra via Binutils wrote: > > This line should then be something like > > if (discarded_section (sec)) > > This test was not revealing for a discarded symbol, it always came up as > false in my testing. > > Fyi: I'm using an old version of binutils (2.23.52.20130704) for testing > (ultimately this is for a customer of ours who is required to use this > version due to certification requirements). That's not your problem of > course, but I'm just mentioning it in case there's a version issue in play > here. > > My understanding of garbage collection is limited, but it seems to me that > gc'd symbols and gc'd sections are apples and oranges, so I don't see how it > will be possible to use a discarded section test. Well, you were using a section test in your original patch, u.def.section->size. That's what sent me down this track. A section size test is definitely wrong as a means of distinguishing garbage collected sections from other sections, since a zero sized section that isn't garbage collected may well define a symbol (usually at the beginning of that section). By the look of xcoff_mark and xcoff_mark_symbol the direct test is XCOFF_MARK in h->flags, but that's not so easy to do nicely from ld/ldlang.c where we frown on including target specific headers. > > or perhaps better, rather than using the bfd macro use the same > > condition as in lang_map for config.print_map_discarded, to determine > > discarded sections. I'm presuming that those conditions actually work > > for your "AIX XCOFF garbage collected symbols". Maybe they won't.. > I think the same problem will apply here, and it's more difficult to test > since print_map_discarded doesn't exist in older binutils and the target > doesn't exist in newer binutils (ppc-lynx178). Let me know if you think > it's worth pursuing. > > > > There's also the question of whether the extra symbol info is > > appropriate when printing discarded sections to the map file. I'd > > think not. To fix that you'll need to change the interface to > > print_one_symbol so that the void* arg points at a struct containing > > both the section pointer and print_input_section's "is_discarded" > > parameter (which would better be renamed to "printing_discarded"). > > This issue is independent of the above. I think it's interesting to know if > a symbol has been gc'd, but the address info is redundant. Something like > this then? > > .pr 0x00000000100012b0 0x0 ./pack1.o > 0x00000000100012b0 -->gc .pack1__fooIP > 0x00000000100012c0 -->gc .pack1__bumIP > .pr 0x00000000100012b0 0x60 ./test1.o > > > -- Alan Modra Australia Development Lab, IBM
- Previous message (by thread): [PATCH] [2nd try] Show AIX gc'd symbol address adjustments in map file
- Next message (by thread): [PATCH] [2nd try] Show AIX gc'd symbol address adjustments in map file
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list