适配龙芯平台的Apache交叉编译

简介: 适配龙芯平台的Apache交叉编译

适配龙芯平台的Apache交叉编译

下载Apache源码:

  • http://www.apache.org/ 上下载apache_1.3.39.tar.gz,然后解压缩的一个目录,然后转到apache_1.3.39目录。
  • 我这边下载了httpd-2.4.41…tar.gz的包,解压后:
  • 20191111101555670.png

编译安装

  • 执行:./configure
  • 【报错】:configure: error: APR not found. Please read the documentation.
  • 【解决方法】:缺乏依赖的APR源码包,下载安装:https://apr.apache.org/download.cgi
  • 【报错】:checking for APR-util… no
  • 【解决方法】:缺乏依赖的APR-UTIL安装包,继续下载安装对应的包。

安装依赖的APR包:

./configure --prefix=/home/ww/Apache/mips-apr
make
make install


安装依赖的APR-UTIL包:

tar -xvf apr-util-1.6.1.tar.gz 
mkdir x86-apr-util
./configure --prefix=/home/ww/Apache/x86-apr-util/ --with-apr=/home/ww/Apache/x86-apr/bin/apr-1-config
make
make install


安装完成依赖库后继续安装

./configure --with-apr=/home/ww/Apache/x86-apr --with-apr-util=/home/ww/Apache/x86-apr-util
  • 显示

20191111110809947.png

make
make install


  • 此时,完成了x86平台下的源码安装,但是我们需要的是使用龙芯mips编译器编译的龙芯平台下使用的Apache运行环境,所以还需要回到开始的状态继续配置安装。

龙芯平台下的MIPS交叉编译Apache

  • 配置:
./configure --with-apr=/home/ww/Apache/x86-apr --with-apr-util=/home/ww/Apache/x86-apr-util --host=mips


  • 【报错】
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... mips-unknown-elf
checking target system type... mips-unknown-elf
configure: 
configure: Configuring Apache Portable Runtime library...
configure: 
checking for APR... yes
  setting CFLAGS to " -g -O2 -pthread"
  setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
  setting LDFLAGS to " "
configure: 
configure: Configuring Apache Portable Runtime Utility library...
configure: 
checking for APR-util... yes
checking for mips-gcc... mips64el-linux-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether mips64el-linux-gcc accepts -g... yes
checking for mips64el-linux-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... mips64el-linux-g++
configure: error: in `/home/ww/Apache/httpd-2.4.41':
configure: error: C preprocessor "mips64el-linux-g++" fails sanity check
See `config.log' for more details


  • 应该是没有编译对应平台下的APR、apr-uttil库,使用交叉编译器重新编译对应平台下的APR库及apr-util库。

交叉编译Apr库

cd apr-1.7.0
sudo ./configure --prefix=/home/ww/Apache/mips-apr --host=mips CC=/opt/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-gcc CXX=/opt/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-g++ LD=/opt/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-ld ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_tcp_nodelay_with_cork=yes --cache=mips64el-linux.cache
make


  • 【报错】:
In file included from ./include/apr_strings.h:52:0,
                 from encoding/apr_encode.c:30:
./include/apr_want.h:94:8: error: redefinition of 'struct iovec'
 struct iovec
        ^
In file included from /opt/opt/gcc-4.9.3-64-gnu/sysroot/usr/include/sys/uio.h:28:0,
                 from /opt/opt/gcc-4.9.3-64-gnu/sysroot/usr/include/sys/socket.h:26,
                 from ./include/apr.h:169,
                 from ./include/apr_encode.h:24,
                 from encoding/apr_encode.c:28:
/opt/opt/gcc-4.9.3-64-gnu/sysroot/usr/include/bits/uio.h:43:8: note: originally defined here
 struct iovec


修改mips64el-linux.cache中的内容:


apr_cv_process_shared_works=yes
apr_cv_mutex_robust_shared=yes
ac_cv_sizeof_struct_iovec=8


  • 继续configure配置。
  • 【报错】:
  • 安装apache的依赖apr时报rm: cannot remove ‘libtoolT’: No such file or directory的错

编辑configure

找到RM" RM “RM"cfgfile” 将其注释掉即可


$RM "$cfgfile" 将其注释即可


最后还是没能成功编译完成。

  • 不过借助buildroot工具包,成功在这里完成了MIPS龙芯平台下的Apache运行环境的编译。
  • 哎。。。。

相关文章
|
7天前
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
6月前
|
OLAP 数据处理 Apache
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍
众安保险在CDP(Customer Data Platform,客户数据平台)建设中,通过引入阿里云数据库SelectDB版内核Apache Doris,成功打破了数据孤岛,并显著提升了人群圈选的速度
279 1
|
6月前
|
SQL Kubernetes Apache
深度实践 | 自如基于Apache StreamPark 的实时计算平台实践
深度实践 | 自如基于Apache StreamPark 的实时计算平台实践
387 57
深度实践 | 自如基于Apache StreamPark 的实时计算平台实践
|
6月前
|
存储 缓存 监控
Java一分钟之-Apache Ignite:分布式内存计算平台
【5月更文挑战第21天】Apache Ignite是一款开源的分布式内存计算平台,涉及内存数据网格、流处理和计算服务。本文关注其常见问题,如数据丢失、分区不均、内存管理和网络延迟。为保证数据一致性,建议使用适当的數據模式和备份策略,实现数据持久化。优化内存配置和监控网络可提升性能与稳定性。提供的Java代码示例展示了如何创建分区缓存并设置备份。正确配置和管理Ignite是构建高可用、高性能应用的关键,持续监控集群状态至关重要。
163 0
|
6月前
|
存储 数据采集 Apache
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍
随着业务在金融、保险和商城领域的不断扩展,众安保险建设 CDP 平台以提供自动化营销数据支持。早期 CDP 平台依赖于 Spark + Impala + Hbase + Nebula 复杂的技术组合,这不仅导致数据分析形成数据孤岛,还带来高昂的管理及维护成本。为解决该问题,众安保险引入 Apache Doris,替换了早期复杂的技术组合,不仅降低了系统的复杂性,打破了数据孤岛,更提升了数据处理的效率。
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍
|
6月前
|
SQL 数据可视化 大数据
【开源项目推荐】Apache Superset——最优秀的开源数据可视化与数据探索平台
【开源项目推荐】Apache Superset——最优秀的开源数据可视化与数据探索平台
406 33
|
6月前
|
分布式计算 资源调度 Hadoop
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
883 0
|
6月前
|
存储 SQL 数据管理
字节跳动基于Apache Hudi构建实时数据湖平台实践
字节跳动基于Apache Hudi构建实时数据湖平台实践
290 0
|
6月前
|
存储 数据处理 Apache
万字长文 | 泰康人寿基于 Apache Hudi 构建湖仓一体平台的应用实践
万字长文 | 泰康人寿基于 Apache Hudi 构建湖仓一体平台的应用实践
347 0
|
6月前
|
SQL 分布式计算 Apache
流数据湖平台Apache Paimon(六)集成Spark之DML插入数据
流数据湖平台Apache Paimon(六)集成Spark之DML插入数据
222 0

推荐镜像

更多