Bug #52263 innodb does not compile on OpenSolaris with gcc4.3.2
Submitted: 21 Mar 2010 23:00 Modified: 18 Oct 2010 19:39
Reporter: Vladislav Vaintroub Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:next-mr-bugfixing OS:Solaris (x86, gcc 4.3.2)
Assigned to: Sunny Bains CPU Architecture:Any
Triage: Triaged: D2 (Serious)

[21 Mar 2010 23:00] Vladislav Vaintroub
Description:
I'm trying to build MySQL on OpenSolaris, using cmake and gcc 4.3.2

There is  lots of warnings like this
/innobase/ut/ut0wqueue.c:118: warning: visibility attribute not supported in this configuration; ignored

and finally,
Linking CXX shared module ha_innodb.so
ld: fatal: relocation error: R_386_GOTOFF: file CMakeFiles/innobase.dir/btr/btr0cur.c.o: symbol btr_cur_n_sea: a GOT relative relocation must reference a local symbol

If I change storage/innobase/include/univ.i such that UNIV_INTERN is defined
as empty macro rather than __attribute__((visibility ("hidden"))), compilation succeeds.

How to repeat:
(Using cmake build)

Branch mysql-next-mr-bugfixing

mkdir build
cd build
export CC=gcc-4.3.2
export CXX=gcc-4.3.2
cmake ..
make

Suggested fix:
Do not use visibility("hidden") in environments that do not support it.
[12 Aug 2010 9:45] Sunny Bains
The only solution for this seems to be to disable the GCC visibility attribute
on all platforms where sun is defined.
[25 Aug 2010 9:23] Bugs System
Pushed into mysql-5.5 5.5.6-m3 (revid:alik@ibmvm-20100825092002-2yvkb3iwu43ycpnm) (version source revid:alik@ibmvm-20100825092002-2yvkb3iwu43ycpnm) (merge vers: 5.5.6-m3) (pib:20)
[30 Aug 2010 8:31] Bugs System
Pushed into mysql-trunk 5.6.1-m4 (revid:alik@sun.com-20100830082732-n2eyijnv86exc5ci) (version source revid:alik@sun.com-20100830082732-n2eyijnv86exc5ci) (merge vers: 5.6.1-m4) (pib:21)
[30 Aug 2010 8:34] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100830082745-n6sh01wlwh3itasv) (version source revid:alik@sun.com-20100830082745-n6sh01wlwh3itasv) (pib:21)