适配龙芯平台的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运行环境的编译。
  • 哎。。。。

相关文章
|
4月前
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
441 4
|
12月前
|
存储 运维 监控
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
697 3
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
|
存储 SQL 监控
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
灵犀科技早期基于 Hadoop 构建大数据平台,在战略调整和需求的持续扩增下,数据处理效率、查询性能、资源成本问题随之出现。为此,引入 [Apache Doris](https://doris.apache.org/) 替换了复杂技术栈,升级为集存储、加工、服务为一体的统一架构,实现存储成本下降 60%,计算效率提升超 10 倍的显著成效。
533 0
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
OLAP 数据处理 Apache
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍
众安保险在CDP(Customer Data Platform,客户数据平台)建设中,通过引入阿里云数据库SelectDB版内核Apache Doris,成功打破了数据孤岛,并显著提升了人群圈选的速度
514 1
|
存储 数据采集 Apache
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍
随着业务在金融、保险和商城领域的不断扩展,众安保险建设 CDP 平台以提供自动化营销数据支持。早期 CDP 平台依赖于 Spark + Impala + Hbase + Nebula 复杂的技术组合,这不仅导致数据分析形成数据孤岛,还带来高昂的管理及维护成本。为解决该问题,众安保险引入 Apache Doris,替换了早期复杂的技术组合,不仅降低了系统的复杂性,打破了数据孤岛,更提升了数据处理的效率。
2035 6
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍
|
存储 缓存 监控
Java一分钟之-Apache Ignite:分布式内存计算平台
【5月更文挑战第21天】Apache Ignite是一款开源的分布式内存计算平台,涉及内存数据网格、流处理和计算服务。本文关注其常见问题,如数据丢失、分区不均、内存管理和网络延迟。为保证数据一致性,建议使用适当的數據模式和备份策略,实现数据持久化。优化内存配置和监控网络可提升性能与稳定性。提供的Java代码示例展示了如何创建分区缓存并设置备份。正确配置和管理Ignite是构建高可用、高性能应用的关键,持续监控集群状态至关重要。
543 0
|
分布式计算 资源调度 Hadoop
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
1347 0
|
存储 SQL 数据管理
字节跳动基于Apache Hudi构建实时数据湖平台实践
字节跳动基于Apache Hudi构建实时数据湖平台实践
877 0
|
存储 数据处理 Apache
万字长文 | 泰康人寿基于 Apache Hudi 构建湖仓一体平台的应用实践
万字长文 | 泰康人寿基于 Apache Hudi 构建湖仓一体平台的应用实践
803 0

推荐镜像

更多