Bug #55220 Assembler code issue on Solaris 8 x86 causes build failure
Submitted: 13 Jul 2010 16:26 Modified: 15 Jul 2010 19:06
Reporter: Karen Langford Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:5.1.49 OS:Solaris (sol 8 x86)
Assigned to: Alexey Kopytov CPU Architecture:Any
Tags: assembler code, Solaris 8 x86

[13 Jul 2010 16:26] Karen Langford
Description:
Building 5.1.49 on Solaris 8 X86 failed with assembler code errors.

I was able to build community (on ellex09) however the advanced build ran into the following error:

/opt/studio11/SUNWspro/bin/CC -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr/local/mysql\"" -DMYSQL_DATADIR="\"/usr/local/mysql/data\"" -DSHAREDIR="\"/usr/local/mysql/share\"" -DPLUGINDIR="\"/usr/local/mysql/lib/plugin\"" -DHAVE_EVENT_SCHEDULER -DHAVE_CONFIG_H -I. -I../include -I../zlib -I../include -I../include -I../regex -I.     -xO3 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -features=no%except -xlibmil -xlibmopt -xtarget=generic   -D_FILE_OFFSET_BITS=64 -DHAVE_CURSES_H -I/export/home/my/tmp-201007051623-5.1.49-11759/solaris8-x86/mysqlcom-pro-5.1.49/include -DHAVE_RWLOCK_T -c -o sql_parse.o sql_parse.cc
Assembler:
    "/export/home/my/tmp/do-compilesolaris8-x8626986/GAACDayhW", line 1 : Syntax error
    Near line: "  %eax,%eax             ;/ line : 1962"
make-3.78.1[3]: *** [sql_parse.o] Error 154
make-3.78.1[3]: Leaving directory `/export/home/my/tmp-201007051623-5.1.49-11759/solaris8-x86/mysqlcom-pro-5.1.49/sql'
make-3.78.1[2]: *** [all-recursive] Error 1
make-3.78.1[2]: Leaving directory `/export/home/my/tmp-201007051623-5.1.49-11759/solaris8-x86/mysqlcom-pro-5.1.49/sql'
make-3.78.1[1]: *** [all] Error 2
make-3.78.1[1]: Leaving directory `/export/home/my/tmp-201007051623-5.1.49-11759/solaris8-x86/mysqlcom-pro-5.1.49/sql'
make-3.78.1: *** [all-recursive] Error 1

error: Couldn't execute command, error: 2
2010-07-13 06:28:22  ABORT compile + link

Also the community and advanced pkgadd builds on sol 8 x86 (ellex10) ran fine, but I saw the following error for enterprise gpl pro:

/opt/studio11/SUNWspro/bin/CC -DEMBEDDED_LIBRARY -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/opt/mysql/mysql\"" -DMYSQL_DATADIR="\"/opt/mysql/mysql/data\"" -DSHAREDIR="\"/opt/mysql/mysql/share\"" -DPLUGINDIR="\"/opt/mysql/mysql/lib/plugin\"" -I. -I../include -I../include -I../include -I../sql -I../sql -I../sql/examples -I../regex  -I../zlib -I../storage/federated/ -I../storage/heap/ -I../storage/myisam/ -I../storage/myisammrg/    -xO3 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -features=no%except -xlibmil -xlibmopt -xtarget=generic   -D_FILE_OFFSET_BITS=64 -DHAVE_CURSES_H -I/export/home/my/tmp-201007051623-5.1.49-16320/solaris8-x86-pkgadd/mysql-5.1.49/include -DHAVE_RWLOCK_T -c -o sql_select.o sql_select.cc
"sql_select.cc", line 4763: Warning (Anachronism): Formal argument cmp of type extern "C" int(*)(const void*,const void*) in call to my_qsort(void*, unsigned, unsigned, extern "C" int(*)(const void*,const void*)) is being passed int(*)(const void*,const void*).
1 Warning(s) detected.
Assembler:
    "/export/home/my/tmp/do-compilesolaris8-x86-pkgadd13224/GAAxJaWkc", line 196 : Syntax error
    Near line: "    xorl"
make-3.78.1[3]: *** [sql_select.o] Error 154
make-3.78.1[3]: Leaving directory `/export/home/my/tmp-201007051623-5.1.49-16320/solaris8-x86-pkgadd/mysql-5.1.49/libmysqld'
make-3.78.1[2]: *** [all-recursive] Error 1
make-3.78.1[2]: Leaving directory `/export/home/my/tmp-201007051623-5.1.49-16320/solaris8-x86-pkgadd/mysql-5.1.49/libmysqld'
make-3.78.1[1]: *** [all] Error 2
make-3.78.1[1]: Leaving directory `/export/home/my/tmp-201007051623-5.1.49-16320/solaris8-x86-pkgadd/mysql-5.1.49/libmysqld'
make-3.78.1: *** [all-recursive] Error 1

error: Couldn't execute command, error: 2
2010-07-13 10:08:14  ABORT compile + link 

How to repeat:
Build 5.1.49 on ellex09/ellex10

Suggested fix:
Note from Alexey:

I am pretty sure these build failures are not related to bug #55061 (or to any other patches recently committed by me for that matter).

At a glance, it looks like the assembler is stumbling over the _generated_ assembler code produced by the compiler rather than the hand-written assembler code as in bug #55061. It also looks like the failures are occurring at random places.
[15 Jul 2010 10:40] Alexey Kopytov
I can't repeat those build failures. Here's what I did:

1. On ellex09 I used my local 5.1 tree with my fix for bug #55061 applied and the following configure line (taken from the mysqlbug output in mysql-advanced-gpl-5.1.46sp1-solaris8-i386.tar.gz:

 ./configure  '--prefix=/usr/local/mysql' '--localstatedir=/usr/local/mysql/data' '--libexecdir=/usr/local/mysql/bin' '--with-comment=MySQL Enterprise Server - Advanced Edition (GPL)' '--with-server-suffix=-enterprise-gpl-advanced' '--enable-thread-safe-client' '--enable-local-infile' '--build=i386-pc-solaris2.8' '--with-pic' '--with-client-ldflags=-static' '--with-mysqld-ldflags=-static' '--with-zlib-dir=bundled' '--with-big-tables' '--with-ssl' '--with-readline' '--with-embedded-server' '--without-plugin-innodb_plugin' '--with-partition' '--with-innodb' '--without-ndbcluster' '--with-archive-storage-engine' '--with-blackhole-storage-engine' '--with-csv-storage-engine' '--without-example-storage-engine' '--with-federated-storage-engine' '--with-extra-charsets=complex' 'build_alias=i386-pc-solaris2.8' 'CC=/opt/studio11/SUNWspro/bin/cc' 'CFLAGS=-xO3 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic' 'CXX=/opt/studio11/SUNWspro/bin/CC' 'CXXFLAGS=-xO3 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -features=no%except -xlibmil -xlibmopt -xtarget=generic'

The build was successful.

2. Same tree on ellex10, the following configure line (taken from the mysqlbug output in mysql-enterprise-gpl-5.1.48-solaris8-i386.tar.gz:

./configure  '--prefix=/usr/local/mysql' '--localstatedir=/usr/local/mysql/data' '--libexecdir=/usr/local/mysql/bin' '--with-comment=MySQL Enterprise Server - Advanced Edition (GPL)' '--with-server-suffix=-enterprise-gpl-advanced' '--enable-thread-safe-client' '--enable-local-infile' '--build=i386-pc-solaris2.8' '--with-pic' '--with-client-ldflags=-static' '--with-mysqld-ldflags=-static' '--with-zlib-dir=bundled' '--with-big-tables' '--with-ssl' '--with-readline' '--with-embedded-server' '--without-plugin-innodb_plugin' '--with-partition' '--with-innodb' '--without-ndbcluster' '--with-archive-storage-engine' '--with-blackhole-storage-engine' '--with-csv-storage-engine' '--without-example-storage-engine' '--with-federated-storage-engine' '--with-extra-charsets=complex' 'build_alias=i386-pc-solaris2.8' 'CC=/opt/studio11/SUNWspro/bin/cc' 'CFLAGS=-xO3 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic' 'CXX=/opt/studio11/SUNWspro/bin/CC' 'CXXFLAGS=-xO3 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -features=no%except -xlibmil -xlibmopt -xtarget=generic'

Again, the build was successful.