| Bug #59181 | InnoDB compilation failure on the Sun Studio compiler | ||
|---|---|---|---|
| Submitted: | 27 Dec 2010 7:43 | Modified: | 10 Feb 2011 20:02 |
| Reporter: | Marko Mäkelä | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
| Version: | 5.1 plugin, 5.5+ | OS: | Solaris |
| Assigned to: | Marko Mäkelä | CPU Architecture: | Any |
| Tags: | sun_prefetch_read_many, UNIV_PREFETCH_R | ||
[10 Jan 2011 13:35]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/128296
[10 Jan 2011 13:35]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/128297
[30 Jan 2011 16:58]
Bugs System
Pushed into mysql-5.1 5.1.56 (revid:vasil.dimov@oracle.com-20110130164158-1q99a41kb2wvkw3a) (version source revid:vasil.dimov@oracle.com-20110130164158-1q99a41kb2wvkw3a) (merge vers: 5.1.56) (pib:24)
[30 Jan 2011 16:59]
Bugs System
Pushed into mysql-trunk 5.6.2 (revid:vasil.dimov@oracle.com-20110130165639-1pr3opz839b98q5j) (version source revid:vasil.dimov@oracle.com-20110130165522-m0o6al0pn5ig9kv3) (merge vers: 5.6.2) (pib:24)
[30 Jan 2011 17:00]
Bugs System
Pushed into mysql-5.5 5.5.10 (revid:vasil.dimov@oracle.com-20110130165343-he9art47agq1a3gr) (version source revid:vasil.dimov@oracle.com-20110130165137-5lvzsq9j29j0hp1s) (merge vers: 5.5.10) (pib:24)

Description: ".../storage/innobase/dict/dict0dict.c", line 4146: warning: argument #1 is incompatible with prototype: prototype: pointer to void : "/opt/studio12/SUNWspro/prod/include/cc/sun_prefetch.h", line 159 argument : pointer to const unsigned char cc: acomp failed for .../storage/innobase/dict/dict0dict.c this is mysql-5.5-innodb r3264 This is apparently caused by the UNIV_PREFETCH_R(rec); that I added to dict_index_copy_rec_order_prefix() in MySQL 5.0.3 when profiling the introduction of ROW_FORMAT=COMPACT. Back then, I only defined UNIV_PREFETCH_R on GCC. Someone has since then defined it as sun_prefetch_read_many(addr) on the Sun compiler, in MySQL 5.1 InnoDB Plugin and later. The function prototype in sun_prefetch.h ought to be wrong (it should say const void*, not void*). How to repeat: Compile MySQL 5.1 InnoDB Plugin or MySQL 5.5 or later with the Sun compiler. Suggested fix: -# define UNIV_PREFETCH_R(addr) sun_prefetch_read_many(addr) +# define UNIV_PREFETCH_R(addr) sun_prefetch_read_many((void*) addr)