Bug #77146 Remove unused functions and convert global symbols to static
Submitted: 25 May 2015 9:01 Modified: 1 Jun 2015 14:28
Reporter: Marko Mäkelä Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:8.0.0 OS:Any
Assigned to: CPU Architecture:Any

[25 May 2015 9:01] Marko Mäkelä
Description:
InnoDB defines some functions that are not called at all.
Other functions are called, but only from the same compilation unit.

How to repeat:
nm storage/innobase/libinnobase.a |c++filt|grep -w U|cut -c20-|sort -u>u.txt
nm storage/innobase/libinnobase.a|c++filt|grep -w T|grep -vFf u.txt>funcs.txt
grep -v :: funcs.txt

Suggested fix:
Try to make the output as small as possible, by removing function declarations and definitions.
Some symbols must be kept for separately compiled tools.
[1 Jun 2015 14:28] Daniel Price
Posted by developer:
 
Fixed as of the upcoming 5.8.0 release, and here's the changelog entry:

Unused "InnoDB" functions and variables were removed, and global symbols
were converted to static keywords, where possible.
[18 Jun 2016 21:26] Omer Barnir
Posted by developer:
 
Reported version value updated to reflect release name change from 5.8 to 8.0