Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

compiling mysql 4.0.18 with icc 8.0

Deleted_U_Intel
Employee
579 Views
Hi,
I'm trying to compile mysql 4.0.18 on a RHAS 3u1 machine.
The farthest I've gotten in the compilation is with these environment variables:

AR=xiar
CC=icc
CFLAGS='-O3 -ipo -static -axWN -march=pentium4 -mcpu=pentium4'
CXX=icc
CXXFLAGS='-O3 -ipo -static -axWN -march=pentium4 -mcpu=pentium4'
LANG=C
LD=xild
PATH=/usr/local/intel/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/mysql/bin

and this configure string:
./configure --prefix=/usr/local/mysql --enable-thread-safe-client --without-innodb --without-debug --enable-assembler --without-readline

The compilation fails with these messages:

IPO Warning: unresolved : popen
Referenced in ipo_iccVXArLm.o
IPO Warning: unresolved : pclose
Referenced in ipo_iccVXArLm.o
IPO Warning: unresolved : __xstat64
Referenced in libmysqlclient.a(my_lib_ipo.o)
IPO Warning: unresolved : __fxstat64
Referenced in libmysqlclient.a(my_lib_ipo.o)
IPO Warning: unresolved : readdir64
Referenced in libmysqlclient.a(my_lib_ipo.o)
IPO Warning: unresolved : fdopen
Referenced in libmysqlclient.a(my_fopen_ipo.o)
IPO Warning: unresolved : fclose
Referenced in libmysqlclient.a(my_fopen_ipo.o)
IPO Warning: unresolved : gethostbyname_r
Referenced in libmysqlclient.a(my_gethostbyname_ipo.o)
IPO Warning: unresolved : __lxstat64
Referenced in libmysqlclient.a(my_symlink_ipo.o)
IPO Warning: unresolved : realpath
Referenced in libmysqlclient.a(my_symlink_ipo.o)
libmysql.c(1808): internal error: 0_1345

icc: error: problem during multi-file optimization compilation (code 4)
make[2]: *** [mysql] Error 4
make[2]: Leaving directory `/mysql-4.0.18/client'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mysql-4.0.18'
make: *** [all] Error 2


Here is the compiler I'm using:

icc -V
Intel C++ Compiler for 32-bit applications, Version 8.0 Build 20031016Z Package ID: l_cc_p_8.0.055
Copyright (C) 1985-2003 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY

any help is appreciated!
Yonah
0 Kudos
2 Replies
cp_jain
Beginner
579 Views
Hi Yonah,
I can see the same problem on my system.
I will create a support issue for you and will let you when
this get fixed.

I found that if you take out libmysql.o from libmysqlclient.a and then link it as -

icpc -O3 -DDBUG_OFF -O3 -ipo -axWN -march=pentium4 -mcpu=pentium4 -fno-implicit-templates -fno-exceptions
-fno-rtti -rdynamic -o mysql mysql.o readline.o sql_string.o completion_hash.o -lreadline -lncurses
../libmysql/.libs/libmysqlclient.a ../libmysql/libmysql.o -lz -lcrypt -lnsl -lm

it works fine.

you can try this as a workaround for your problem, till it get fixed.
The problem is you have to include ../libmysql/libmysql.o explicitly whereever
../libmysql/.libs/libmysqlclient.a is linked.


HTH,
CP
0 Kudos
losiki
Beginner
579 Views
i have a problem too, but with mysql 4.1.7 and icc 8.1.021 on Slackware Linux 10:
CC=icc
CXX=icc
CFLAGS=-tpp7 -xN -O3
CXXFLAGS=CFLAGS
LDFLAGS=-lstdc++
uname -a
Linux hidden 2.4.28 #1 SMP Sun Nov 28 18:05:05 MSK 2004 i686 unknown unknown GNU/Linux
./configure --prefix=/usr/local/mysql --with-raid --with-openssl=/usr/local/ssl --with-charset=cp1251 --with-extra-charsets=utf8 --without-debug--enable-assembler
when compiling myisam/mi_key.c icc produces two labels with the same name '.L1' in generated assembly source and compilation failes with error:
/tmp/icci1SHTUas_: Assembler messages:
/tmp/icci1SHTUas_:338: Error: symbol `.L1' is already defined
This is a cut from assembly source file, generated with icc -DMAP_TO_USE_RAID -I. -I. -I.. -I../include -O3 -DDBUG_OFF -tpp7 -xN -O3 -MT mi_key.o -MD -MP -MF ".deps/mi_key.Tpo" -S -o mi_key.asm mi_key.c:
#mi_key.asm, lines 233-236
cmpl %edi, %ecx #109.7
jb .L1 # Prob 50% #109.7
movl %edi, %ecx #109.7
.L1: #
#mi_key.asm, lines 395-399
xorl %ecx, %ecx #134.6
ucomiss %xmm0, %xmm0 #134.6
jnp .L1 # Prob 100% #134.6
movl $1, %ecx #134.6
.L1: #
0 Kudos
Reply