Bug #22430 -xstrconst -mt in Makefile for gcc-4.1.1 on Solaris 10
Submitted: 18 Sep 2006 4:58 Modified: 29 Jun 2007 16:39
Reporter: Mark Detrick Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Command-line Clients Severity:S3 (Non-critical)
Version:5.0r4 OS:Solaris (Solaris 10)
Assigned to: CPU Architecture:Any
Tags: portability

[18 Sep 2006 4:58] Mark Detrick
Description:
hassium-bash /appl/mysql/mysql-gui-tools-5.0r2/mysql-administrator # make

Making all in library
make[1]: Entering directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r2/mysql-administrator/library'
Making all in source
make[2]: Entering directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r2/mysql-administrator/library/source'
if /usr/local/bin/gcc -DHAVE_CONFIG_H -I. -I. -I../../source/linux -Wsign-compare -Wall -I../include -I/usr/sfw/include/mysql -xstrconst -mt -I../../../mysql-gui-common/source/linux -I../../../mysql-gui-common/library/base-library/include -I../../../mysql-gui-common/library/utilities/shared_include -I../../../mysql-gui-common/library/utilities/include -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/include/libxml2    -I/usr/inlcude/vte  -g -O2 -MT myx_admin_library.o -MD -MP -MF ".deps/myx_admin_library.Tpo" \
          -c -o myx_admin_library.o `test -f 'myx_admin_library.c' || echo './'`myx_admin_library.c; \
        then mv -f ".deps/myx_admin_library.Tpo" ".deps/myx_admin_library.Po"; \
        else rm -f ".deps/myx_admin_library.Tpo"; exit 1; \
        fi
gcc: language strconst not recognized
gcc: language strconst not recognized
gcc: myx_admin_library.c: linker input file unused because linking not done
mv: cannot access .deps/myx_admin_library.Tpo
make[2]: *** [myx_admin_library.o] Error 2
make[2]: Leaving directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r2/mysql-administrator/library/source'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r2/mysql-administrator/library'
make: *** [all-recursive] Error 1

hassium-bash /appl/mysql/mysql-gui-tools-5.0r2/mysql-administrator # 

How to repeat:
Perform configure then make using gcc-4.1.1 on Solaris 10.

Suggested fix:
Remove -xstrconst and -mt from Makefiles.
[18 Sep 2006 8:15] Sveta Smirnova
Thank you for the report.

Could you please try using current 5.0-r3 sources accessible from http://dev.mysql.com/downloads/gui-tools/5.0.html?
[26 Sep 2006 3:06] Mark Detrick
Version 5.0r3 did not resolve this issue.

hassium-bash /appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common # make
cd . && /usr/bin/bash /appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common/missing --run autoheader
rm -f stamp-h1
touch config.h.in
cd . && /usr/bin/bash ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make  all-recursive
make[1]: Entering directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common'
Making all in library
make[2]: Entering directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common/library'
Making all in utilities
make[3]: Entering directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common/library/utilities'
Making all in source
make[4]: Entering directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common/library/utilities/source'
if /usr/bin/bash ../../../libtool --tag=CC --mode=compile /usr/local/bin/gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -Wall -Wsign-compare -I../include -I../shared_include -I/usr/sfw/include/mysql -xstrconst -mt -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libxml2   -I/usr/local/include      -MT myx_util.lo -MD -MP -MF ".deps/myx_util.Tpo" -c -o myx_util.lo myx_util.c; \
        then mv -f ".deps/myx_util.Tpo" ".deps/myx_util.Plo"; else rm -f ".deps/myx_util.Tpo"; exit 1; fi
mkdir .libs
 /usr/local/bin/gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -Wall -Wsign-compare -I../include -I../shared_include -I/usr/sfw/include/mysql -xstrconst -mt -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libxml2 -I/usr/local/include -MT myx_util.lo -MD -MP -MF .deps/myx_util.Tpo -c myx_util.c  -fPIC -DPIC -o .libs/myx_util.o
gcc: language strconst not recognized
gcc: language strconst not recognized
gcc: myx_util.c: linker input file unused because linking not done
 /usr/local/bin/gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -Wall -Wsign-compare -I../include -I../shared_include -I/usr/sfw/include/mysql -xstrconst -mt -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libxml2 -I/usr/local/include -MT myx_util.lo -MD -MP -MF .deps/myx_util.Tpo -c myx_util.c -o myx_util.o >/dev/null 2>&1
mv: cannot access .deps/myx_util.Tpo
make[4]: *** [myx_util.lo] Error 2
make[4]: Leaving directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common/library/utilities/source'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common/library/utilities'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common/library'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common'
make: *** [all] Error 2
hassium-bash /appl/mysql/mysql-gui-tools-5.0r3/mysql-gui-common #
[3 Oct 2006 3:42] Mark Detrick
-xstrconst is no longer a problem, HOWEVER, the configure script now wrongly detects the -arch=v8 setting and sets a value of v8 which is incorrect for the platform.

In addition, -mt continues to exist in all the Makefiles and is incorrect causing build failure.

Additionally, an optimize value of -xO3 is used which is incompatible with gnu gcc-4.1.1.  Correct value is -O3.

This bug remains unresolved as of 5.0r4.
[3 Oct 2006 4:12] Alfredo Kojima
Hi

This is actually a problem with the mysql-config script in Solaris. 
The engineering team will be fixing this problem at some time, but in the meanwhile you can workaround by editing that script and removing the 
invalid compiler flags.

I'll recategorize and unassign this as there's nothing else we can do from 
the GUI team.
[5 Oct 2006 8:46] Valeriy Kravchuk
So, looks like we have a verified mysql_config bug here.
[11 May 2009 23:13] Dale Bewley
Was this ever fixed? Seems similar to existing bug with perl DBD::mysql

Checking if your kit is complete...
Looks good
Using DBI 1.608 (for perl 5.008007 on sun4-solaris) installed in /exlibris/aleph/a18_1/product/perl-5.8.7/lib/site_perl/5.8.7/sun4-solaris/auto/DBI/
Writing Makefile for DBD::mysql
gcc -c  -I/exlibris/aleph/a18_1/product/perl-5.8.7/lib/site_perl/5.8.7/sun4-solaris/auto/DBI -I/usr/sfw/include/mysql -xstrconst -mt -DDBD_MYSQL_INSERT_ID_IS_GOOD -g  -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O   -DVERSION=\"4.011\" -DXS_VERSION=\"4.011\" -fPIC "-I/exlibris/aleph/a18_1/product/perl-5.8.7/lib/5.8.7/sun4-solaris/CORE"   dbdimp.c
/usr/local/bin/perl -p -e "s/~DRIVER~/mysql/g" /exlibris/aleph/a18_1/product/perl-5.8.7/lib/site_perl/5.8.7/sun4-solaris/auto/DBI/Driver.xst > mysql.xsi
Running Mkbootstrap for DBD::mysql ()
gcc: language strconst not recognized
gcc: dbdimp.c: linker input file unused because linking not done
/usr/local/bin/perl /exlibris/aleph/a18_1/product/perl-5.8.7/lib/5.8.7/ExtUtils/xsubpp  -typemap /exlibris/aleph/a18_1/product/perl-5.8.7/lib/5.8.7/ExtUtils/typemap  mysql.xs > mysql.xsc && mv mysql.xsc mysql.c
chmod 644 mysql.bs
cp lib/DBD/mysql.pm blib/lib/DBD/mysql.pm
cp mysql.bs blib/arch/auto/DBD/mysql/mysql.bs
chmod 644 blib/arch/auto/DBD/mysql/mysql.bs
cp lib/DBD/mysql/GetInfo.pm blib/lib/DBD/mysql/GetInfo.pm
cp lib/DBD/mysql/INSTALL.pod blib/lib/DBD/mysql/INSTALL.pod
cp lib/Bundle/DBD/mysql.pm blib/lib/Bundle/DBD/mysql.pm
Warning: duplicate function definition 'do' detected in mysql.xs, line 225
Warning: duplicate function definition 'rows' detected in mysql.xs, line 650
gcc -c  -I/exlibris/aleph/a18_1/product/perl-5.8.7/lib/site_perl/5.8.7/sun4-solaris/auto/DBI -I/usr/sfw/include/mysql -xstrconst -mt -DDBD_MYSQL_INSERT_ID_IS_GOOD -g  -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O   -DVERSION=\"4.011\" -DXS_VERSION=\"4.011\" -fPIC "-I/exlibris/aleph/a18_1/product/perl-5.8.7/lib/5.8.7/sun4-solaris/CORE"   mysql.c
gcc: language strconst not recognized
gcc: mysql.c: linker input file unused because linking not done
rm -f blib/arch/auto/DBD/mysql/mysql.so
LD_RUN_PATH="/usr/sfw/lib:/usr/lib" /usr/local/bin/perl myld gcc  -G dbdimp.o mysql.o  -o blib/arch/auto/DBD/mysql/mysql.so     \
   -R/usr/sfw/lib -R/usr/sfw/lib/mysql -L/usr/sfw/lib -L/usr/sfw/lib/mysql -lmysqlclient -lz -lposix4 -lcrypt -lgen -lsocket -lnsl -lm          \

gcc: dbdimp.o: No such file or directory
gcc: mysql.o: No such file or directory
make: *** [blib/arch/auto/DBD/mysql/mysql.so] Error 1
[2 Dec 2010 13:07] Kent Boortz
This is actually not about "mysql_config". Documentation may have said differently in the past, but now clearly states that "mysql_config --cflags" is tied to the specific compiler that was used when the MySQL client library was created.

For using the MySQL client shared libraries, "mysql_config --includes" is preferable, that will not add compiler specific flags to the compile/link line. See

  http://dev.mysql.com/doc/refman/5.1/en/mysql-config.html

Keeping this bug report open, as the source for the client tool in question might need to be updated to reflect this.