Bug #91885 Last use of UNIV_NONINL
Submitted: 3 Aug 2018 8:52 Modified: 3 Aug 2018 9:20
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:8.0.12 OS:Any
Assigned to: CPU Architecture:Any

[3 Aug 2018 8:52] Laurynas Biveinis
Description:
UNIV_NONINL was removed in [1].

But row0ext.cc:

#ifdef UNIV_NONINL
#include "row0ext.ic"
#endif

[1]:

commit 2eec7f31baa0eae8177ef56061f2bf8addc706b6
Author: Marko M<C3><A4>kel<C3><A4> <marko.makela@oracle.com>
Date:   Fri Apr 22 10:50:45 2016 +0200

    Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL
    
    Problem:
    InnoDB used to support a compilation mode that allowed to choose
    whether the function definitions in .ic files are to be inlined or not.
    This stopped making sense when InnoDB moved to C++ in MySQL 5.6
    (and ha_innodb.cc started to #include .ic files), and more so in
    MySQL 5.7 when inline methods and functions were introduced
    in .h files.
    
    Solution:
    Remove all references to UNIV_NONINL and UNIV_MUST_NOT_INLINE from
    all files, assuming that the symbols are never defined.
    Remove the files fut0fut.cc and ut0byte.cc which only mattered when
    UNIV_NONINL was defined.
    
    RB: 12470
    Reviewed-by: Jimmy Yang <jimmy.yang@oracle.com>

How to repeat:
See above

Suggested fix:
Remove, consider poisoining the define (#pragma GCC poison)
[3 Aug 2018 9:20] MySQL Verification Team
Hello Laurynas,

Thank you for the report and feedback!

regards,
Umesh