New issue
Advanced search Search tips

Issue 923936 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

Supersize diff not helpful for .L.ref.tmp.* symbols

Project Member Reported by agrieve@chromium.org, Yesterday (34 hours ago)

Issue description

Size alert for  bug 923929  has symbols with no path information:
~ 0)       7668 (47.0%) r@Group      7668 (75->7743)    {no path}
               .L.ref.tmp.35 (count=5)
~ 1)      15064 (92.3%) r@Group      7396 (3->7399)     {no path}
               .L.ref.tmp.41 (count=2)

Symbols with these types of names first started appearing when we enabled ThinLTO.

Problems:
1) We should not be clustering them.
2) They have no path info

#1 is easy to fix.
#2 is hard though... With ThinLTO, we are getting source info by comparing symbols with per-.o nm output, but these symbols are created at link time (the .L prefix). Perhaps we can use a neighbouring symbol as an approximated source path?
 

Comment 1 by hua...@chromium.org, Yesterday (33 hours ago)

Note that .L.ref.tmp symbols are also absent in nm output.

The .map file does have reference to thinlto-cache/Thin-940e70.tmp.o, which we previously ignored because these files get renamed, and there seems to be no way to map the name back.

However, we can use the Thin-*_tmp.o filename a label to associate the symbol with symbols in the same file whose object_path can be determined, i.e., the ones that are found in nm output.

Comment 2 by agrieve@chromium.org, Yesterday (33 hours ago)

Great idea! Let's do that :)

Comment 4 by hua...@chromium.org, Today (7 hours ago)

Unfortunately, it turns out that a thinlto-cache object file can correspond to multiple .o files! So this seems unlikely to work. I'll check some more tomorrow though.

Sign in to add a comment