免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3876 | 回复: 5

[SCO UNIX] 在 SCO OpenServer 5.0.x 上编译 mysql 5.0.27 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-04-23 17:07 |显示全部楼层
没办法啊。

编译需要的系统环境。

gwxlibs-1.3.1Ba 、gnutools-5.0.7Kj 、fsu-threads-3.14 、openssl-0.9.7g
==========================================================================
下载并展开 mysql-5.0.27-source.tar.bz2 软件包。

$ bzip2 -d mysql-5.0.27-source.tar.bz2
$ tar xvf mysql-5.0.27-source.tar

创建编译目录
$ mkdir mysql_build


创建 fsu-threads-3.14 的链接。
(由于 fsu-threads-3.14 的安装包默认安装没有在 /usr/include 和 /usr/lib 目录下建立相应的链接,系统编译环境是找不到 fsu-threads 的头文件和链接库文件的,这需要我们手工调整。
# cd /usr/lib
# ln -sf /opt/K/SCO/FSUthreads/3.14/usr/lib/FSU/libgthreads.a libgthreads.a
# ln -sf /opt/K/SCO/FSUthreads/3.14/usr/lib/FSU/libgthreads.so libgthreads.so
# cd /usr/include
# ln -sf /opt/K/SCO/FSUthreads/3.14/usr/include/FSU/pthread pthread
# ln -sf /opt/K/SCO/FSUthreads/3.14/usr/include/FSU/pthread.h pthread.h

调整系统编译环境。
由于 gwxlibs-1.3.1Ba 、fsu-threads-3.14 等与系统原生的编译环境有冲突,需要我们进行调整,调整内容如下:

修改 /usr/include/sys/types.h 文件。将其中与 pthread.h 有重复的定义全部删除( 我是用 /* */ 来注释起来的,也可以用 #ifdef 0    和 #endif 来处理,看自己的习惯吧 )
修改 /usr/include/sys/socket.h 文件,在其中加入三个定义,内容如下:
  1. #ifndef SHUT_RD
  2. #define SHUT_RD             0x00
  3. #endif

  4. #ifndef SHUT_WR
  5. #define SHUT_WR            0x01
  6. #endif

  7. #ifdef SHUT_RDWR
  8. #define SHUT_RDWR        0x02
  9. #endif
复制代码
修改 /usr/include/pthread/signal.h 头文件,将其中的 timespces 结构定义删除(有重复定义)。

调整编译环境
# cd /usr/gnu/bin
#ln -sf gcc elf-gcc-2.95.3
# cd /usr/gnu/lib/gcc-lib
# ln -sf i586-pc-sco3.2v5.0 elf

进入到我们的编译目录,配置编译环境(建议编写一个脚本,比如 build.sh )
  1. CFLAGS="-O3 -mpentium" LDFLAGS=-static CXX=gcc CXXFLAGS="-O3 -mpentium -felide-constructors" \
  2. ../mysql-5.0.27/configure --prefix=/usr/local/mysql \
  3. --with-extra-charsets=complex \
  4. --enable-thread-safe-client \
  5. --enable-local-infile \
  6. --with-named-z-libs=no \
  7. --enable-thread-safe-client \
  8. --disable-shared \
  9. --with-innobase \
  10. --with-vio
复制代码
编译 mysql
编译的过程中会有几个错误,根据编译过程调整如下。

出现 my_init.lo 无法找到的时候,请进入 libmysql 目录,执行 make ,然后将该目录下的 .lo 和 .o 拷贝到 ../libmysql_r 目录下。
然后再次回到我们的编译主目录下,执行 make

出现 mtunx_pthread 的几个函数找不到的时候,请修改 tools/Makefile , 在其中的 LDADD 参数中加入如下内容:

$(top_builddir)/mysys/libmysys.a

然后再次编译即可。

==================================================================

需要说明的问题。

不能安装 gwxlibs-2.1.0Ba 及以上的版本,否则你的 mysql 能顺利编译,但是却无法正常运行。由于 mysql 不能采用静态方式进行编译,估计可能是动态库中的某些函数的执行及返回值不是 mysql 5.0.27 所需要的结果造成的。

论坛徽章:
0
发表于 2012-04-25 18:10 |显示全部楼层
sco还没灭绝啊?

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
发表于 2012-04-28 09:10 |显示全部楼层
在SCO OpenServer 5.0.x 上还没成功编译过mysql5;

论坛徽章:
0
发表于 2012-05-07 10:02 |显示全部楼层
神贴留名。

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
发表于 2012-06-13 12:38 |显示全部楼层
多谢分享 非常好!^_^

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-06-13 12:40 |显示全部楼层
回复 5# ulovko


    晕,这玩意儿你还有兴趣啊。

我是没办法,只要有一点办法,我都不会再干这傻事的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP