Bug #7464 Link error due to wrong code order
Submitted: 21 Dec 2004 20:53 Modified: 3 Jan 2005 12:55
Reporter: Joerg Bruehe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:5.0.3-pre OS:various Unix
Assigned to: Marko Mäkelä CPU Architecture:Any

[21 Dec 2004 20:53] Joerg Bruehe
Description:
On QNX and on FreeBSD, linking the MySQL server fails with these unresolved references:

rec_get_status
rec_offs_n_fields
dict_index_get_n_fields
dict_index_get_n_unique_in_tree

All these are defined as INLINE functions, and it seems the module with the code is not written in strict bottom-up order. On some of our platforms, this causes failures.

How to repeat:
Try to build 5.0.3-pre.

Suggested fix:
Re-order the INLINE functions in strict bottom-up order.
[23 Dec 2004 18:25] Joerg Bruehe
Error now occurs on other platforms as well, after previous issues were solved.
First example: Pegasos.
[27 Dec 2004 14:57] Joerg Bruehe
Additional info:

For 'rec_get_status' and 'rec_offs_n_fields', this is solved by my changeset 
  1.1753 04/12/27 14:02:30 joerg@mysql.com +1 -0

For 'dict_index_get_n_fields' and 'dict_index_get_n_unique_in_tree', this is still open as we here seem to have mutual dependencies between two files with 'inline' functions, 'rem0rec.ic' and 'dict0dict.ic'.
[29 Dec 2004 10:47] Marko Mäkelä
I have now made the file dict0dict.ic independent on rem0rec.ic. rem0rec.ic still depends on inline functions defined in dict0dict.ic.
[3 Jan 2005 12:55] Marko Mäkelä
The code appears to link properly now.