Centos MariaDB 5.5.35 编译失败解决办法

在某些Centos上编译MariaDB 5.5.35在make的时候可能会出现以下问题:

root@wsi:/root/src/mariadb-5.5.35# make
.......
[  8%] Building C object mysys/CMakeFiles/mysys.dir/my_context.c.o
cd /root/src/mariadb-5.5.35/mysys && /usr/bin/gcc  -DHAVE_CONFIG_H -Wall  -march=i686 -fPIC -O3 -DNDEBUG -DDBUG_OFF -I/root/src/mariadb-5.5.35/include -I/root/src/mariadb-5.5.35
/mysys    -o CMakeFiles/mysys.dir/my_context.c.o   -c /root/src/mariadb-5.5.35/mysys/my_context.c                                                                              /root/src/mariadb-5.5.35/mysys/my_context.c: Assembler messages:
/root/src/mariadb-5.5.35/mysys/my_context.c:457: Error: CFI instruction used without previous .cfi_startproc
make[2]: *** [mysys/CMakeFiles/mysys.dir/my_context.c.o] Error 1
......

使用以下pactch可以解决编译失败的问题.

--- mariadb-5.5.35/include/my_context.h.org       2014-02-02 21:59:28.724573324 +0800
+++ mariadb-5.5.35/include/my_context.h   2014-02-02 21:59:46.550625376 +0800
@@ -25,17 +25,7 @@
   (This particular implementation uses Posix ucontext swapcontext().)
 */
 
-#ifdef __WIN__
-#define MY_CONTEXT_USE_WIN32_FIBERS 1
-#elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__x86_64__) && !defined(__ILP32__)
-#define MY_CONTEXT_USE_X86_64_GCC_ASM
-#elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__i386__)
-#define MY_CONTEXT_USE_I386_GCC_ASM
-#elif defined(HAVE_UCONTEXT)
 #define MY_CONTEXT_USE_UCONTEXT
-#else
-#define MY_CONTEXT_DISABLE
-#endif
 
 #ifdef MY_CONTEXT_USE_WIN32_FIBERS
 struct my_context {

《Centos MariaDB 5.5.35 编译失败解决办法》有2个想法

    1. 把这个patch的文本复制到MariaDB的上一层目录,保存为1.patch,然后再MariaDB源代码目录里执行patch -p1 < ../1.patch

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据