[LLVMbugs] [Bug 15206] New: clang and gold plugin of 3.2 cannot generate bc file for MySQL
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Feb 7 16:06:34 PST 2013
http://llvm.org/bugs/show_bug.cgi?id=15206
Bug ID: 15206
Summary: clang and gold plugin of 3.2 cannot generate bc file
for MySQL
Product: clang
Version: 3.2
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
Assignee: unassignedclangbugs at nondot.org
Reporter: stdstack at gmail.com
CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
Using the recent 3.2 clang and gold plugin, I failed to compile MySQL with lto
to generate bc files, where 3.0 version has no problems.
Tested MySQL version:
=====================
* 5.1.67, 5.1.50
Tested OS versions:
===================
* Ubuntu 11.04 with tool chain gcc 4.5.2, binutils 2.23 with gold plugin
enabled
* CentOS 6.3 with tool chain gcc 4.4.6, binutils 2.23 with gold plugin
enabled
Steps to reproduce:
===================
0. Setup gold plugin:
* /home/ryan/software/binutils/build/2.23 is where the binutils are installed
* /home/ryan/software/llvm/build/3.2 is where LLVM is installed
* cd /home/ryan/software/binutils/build/2.23/bin
* cp ld ld.default
* cp ld.gold ld
* cd ../lib
* mkdir bfd-plugins
* cd bfd-plugins
* ln -s /home/ryan/software/llvm/build/3.2/lib/LLVMgold.so
* Put /home/ryan/software/binutils/build/2.23/bin in PATH
1. Setup ENV:
export CC="clang -use-gold-plugin -flto"
export CXX="clang++ -use-gold-plugin -flto"
export CFLAGS="-g -O0"
export CXXFLAGS="-g -O0"
export RANLIB=/bin/true
1.1 Additional setup for 3.2
export AR="clang-ar"
export NM="nm --plugin
/home/ryan/software/llvm/build/3.2/lib/LLVMgold.so"
where `clang-ar` is a wrapper put in
/home/ryan/software/binutils/build/2.23/bin/
Its content:
#!/bin/sh
firstarg=${1}
shift
exec /home/ryan/software/binutils/build/2.23/bin/ar "${firstarg}"
--plugin /home/ryan/software/llvm/build/3.2/lib/LLVMgold.so "${@}"
2. Compile MySQL
* Modify the Makefile.am and Makefile.in in the unpacked mysql source, say
mysql-5.1.67: remove/comment the block in `do_abi_check` at line 312.
* ./configure
* make -j4
Expected result:
===================
In 3.0 versions, there's no compilation error and after the compilation is
finished, there're bc files generated.
In 3.2 version, there's error as attached in the end.
>From MySQL's document
http://dev.mysql.com/doc/refman/5.1/en/compilation-problems.html
It seems like `configure` script is misbehaving, but I guess this might relate
to some changes in clang.
> "By default, the configure script attempts to determine the correct number of arguments by using g++ (the GNU C++ compiler). This test yields incorrect results if g++ is not installed..."
Error Messages:
===============
libtool: compile: clang -use-gold-plugin -flto
-DDEFAULT_CHARSET_HOME=\"/usr/local\" -DMYSQL_DATADIR=\"/usr/local/var\"
-DDEFAULT_HOME_ENV=MYSQL_HOME -DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX
-DDEFAULT_SYSCONFDIR=\"/usr/local/etc\" -DSHAREDIR=\"/usr/local/share/mysql\"
-DMYSQL_CLIENT_NO_THREADS -DDONT_USE_RAID -I. -I../include -I../include
-I../include -g -O0 -DUNIV_LINUX -DUNIV_LINUX -MT password.lo -MD -MP -MF
.deps/password.Tpo -c password.c -o password.o >/dev/null 2>&1
manager.c:132:10: error: too few arguments to function call, expected 6, have 5
hp = my_gethostbyname_r(host,&tmp_hostent,buff2,sizeof(buff2),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/my_net.h:113:74: note: expanded from macro 'my_gethostbyname_r'
#define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E))
~~~~~~~~~~~~~~~ ^
/usr/include/netdb.h:180:1: note: 'gethostbyname_r' declared here
extern int gethostbyname_r (__const char *__restrict __name,
^
1 error generated.
make[2]: *** [manager.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130208/225eb72e/attachment.html>
More information about the llvm-bugs
mailing list