aarch64平台交叉编译strace工具

aarch64平台交叉编译strace工具aarch64平台交叉编译strace工具

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

/*********************************************************************
* Author          :     lile
* Modified        :     2019年12月28日星期六  10:16:13
* Email           :     roger0212@163.com
* HomePage        :     lile777.blog.csdn.net
* CopyRight       :     该文章版权由lile所有。
*                       保留原文出处链接和本声明的前提下,可在非商业目的下任意传播和复制。
*                       对于商业目的下对本文的任何行为需经作者同意。
*********************************************************************/

1,主机环境

root@ubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty
root@ubuntu:~# cat /proc/version
Linux version 4.4.0-31-generic (buildd@lgw01-43) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016
root@ubuntu:~# file /bin/busybox 
/bin/busybox: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=ae3cf83d83d4ed554fa7ba6d5f2b17c92c362710, stripped
root@ubuntu:~# 
root@ubuntu:~# aarch64-himix100-linux-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-himix100-linux-gcc
COLLECT_LTO_WRAPPER=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/host_bin/../libexec/gcc/aarch64-linux-gnu/6.3.0/lto-wrapper
Target: aarch64-linux-gnu
Configured with: /home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/src/gcc-6.3.0/configure --build=i386-redhat-linux --host=i386-redhat-linux --target=aarch64-linux-gnu --with-arch=armv8-a --prefix=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/install --with-specs='%{!ftree-coalesce-vars:-fno-tree-coalesce-vars}' --disable-libmudflap --disable-libssp --enable-gold=yes --disable-libstdcxx-pch --disable-multilib --enable-multiarch --with-gnu-as --with-gnu-ld --enable-libgomp --enable-gnu-indirect-function --enable-checking=yes --enable-lto --enable-c99 --enable-long-long --disable-nls --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --enable-shared --with-pkgversion='HC&C V100R002C00B027_20181107' --enable-languages=c,c++ --with-headers=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/install/target/usr/include --with-sysroot=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/install/target --with-build-sysroot=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/install/target --with-gmp=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/obj/host-libs/usr --with-mpfr=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/obj/host-libs/usr --with-mpc=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/obj/host-libs/usr --with-cloog=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/obj/host-libs/usr --with-build-time-tools=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/install/aarch64-linux-gnu/bin --libdir=/home/sying/SDK_CPU_UNIFIED/build/script/aarch64-himix100-linux/aarch64_himix100_build_dir/install/lib
Thread model: posix
gcc version 6.3.0 (HC&C V100R002C00B027_20181107) 

2,文件下载

https://src.fedoraproject.org/repo/pkgs/strace/?C=M;O=D
https://strace.io

3,环境依赖与准备

3.1 安装autoreconf工具

apt-get install autoconf automake libtool	

3.2 生成编译引导文件

./bootstrap

4,x86编译测试

# 配置
time ./configure  --prefix=/opt/files/release/strace/x86_64  --enable-mpers=no 


# 编译
time make LDFLAGS+='-static -pthread'

# 安装
time make install

root@ubuntu:/opt/files/strace-5.4# tree /opt/files/release/strace/x86_64/
/opt/files/release/strace/x86_64/
├── bin
│   ├── strace
│   ├── strace-graph
│   └── strace-log-merge
└── share
    └── man
        └── man1
            ├── strace.1
            └── strace-log-merge.1

4 directories, 5 files

root@ubuntu:/opt/files/strace-5.4# file /opt/files/release/strace/x86_64/bin/strace*
/opt/files/release/strace/x86_64/bin/strace:           ELF 64-bit LSB  executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=2c8e6ab98c0963ae70eb9b7889beb0dae4d03939, not stripped
/opt/files/release/strace/x86_64/bin/strace-graph:     Perl script, ASCII text executable
/opt/files/release/strace/x86_64/bin/strace-log-merge: POSIX shell script, ASCII text executable


# 卸载清理
make uninstall && make distclean

5,aarch64平台交叉编译

# 配置
time CC=aarch64-himix100-linux-gcc LD=aarch64-himix100-linux-ld RANLIB=aarch64-himix100-linux-ranlib ./configure --host=aarch64-linux  --prefix=/opt/files/release/strace/aarch64/ --enable-mpers=no 

# 编译
time make LDFLAGS+='-static -pthread'

# 安装
time make install

root@ubuntu:/opt/files/strace-5.4# tree /opt/files/release/strace/aarch64/
/opt/files/release/strace/aarch64/
├── bin
│   ├── strace
│   ├── strace-graph
│   └── strace-log-merge
└── share
    └── man
        └── man1
            ├── strace.1
            └── strace-log-merge.1

4 directories, 5 files
root@ubuntu:/opt/files/strace-5.4# file /opt/files/release/strace/aarch64/bin/*
/opt/files/release/strace/aarch64/bin/strace:           ELF 64-bit LSB  executable, ARM aarch64, version 1 (SYSV), statically linked, for GNU/Linux 3.7.0, not stripped
/opt/files/release/strace/aarch64/bin/strace-graph:     Perl script, ASCII text executable
/opt/files/release/strace/aarch64/bin/strace-log-merge: POSIX shell script, ASCII text executable
root@ubuntu:/opt/files/strace-5.4# 


# 卸载清理
make uninstall && make distclean

6,Q&A

(1), ./bootstrap: line 40: autoreconf: command not found

apt-get install autoconf automake libtool	

(2),configure: error: Cannot enable m32 personality support

	Re: 4.21 build failure // https://sourceforge.net/p/strace/mailman/strace-devel/
	From: Eugene Syromiatnikov <esyr@re...> - 2018-02-19 19:13:31
	 On Thu, Feb 15, 2018 at 12:39:15AM +0100, Andreas Schwab wrote:
	> 4.21 fails to build for aarch64:
	> 
	> checking gnu/stubs-32.h usability... no
	> checking gnu/stubs-32.h presence... no
	> checking for gnu/stubs-32.h... no
	> configure: Created empty gnu/stubs-32.h
	> checking for m32 personality compile support... no
	> checking whether to enable m32 personality support... no
	> configure: error: Cannot enable m32 personality support

	As noted in NEWS, strace now enforces mpers support by default (in order
	to make aware of the possibilty of incorrect non-native personality
	decoding early); looks like your compiler doesn't support producing
	binaries for the compat personality.  You can either try to use another
	compiler or provide --disable-mpers to the configure script.

	As GCC for AArch64 doesn't support generating ARM EABI binaries at all,
	this issue will probably be somehow tackled in the future. 

7,参考

https://sourceforge.net/p/strace/mailman/strace-devel/
configure: error: Cannot enable m32 personality support

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181254.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab 画圆

    matlab 画圆一、绘制圆点plot(1,2,’ro’)二、绘制圆形1、空心圆:11、plot>>aplha=0:pi/40:2*pi;>>r=2;>>x=r*cos(aplha);>>y=r*sin(aplha);>>plot(x,y,’-‘);>>axisequal22、rectanglerectangle(‘position’,[0-3,0

    2022年6月19日
    75
  • touchstart模拟点击方法[通俗易懂]

    touchstart模拟点击方法[通俗易懂]1varbtn=document.querySelectorAll(‘.所点击的类名’)[0];2varevent=document.createEvent(‘Events’);3event.initEvent(‘touchstart’,true,true);4btn.dispatchEvent(event);转载于:https…

    2022年6月19日
    47
  • 清博舆情系统_什么是舆情

    清博舆情系统_什么是舆情一、引言1.1 编写目的  编写此文档的目的是通过系统的详细设计指导系统的编码等工作。1.2 背景A. 待开发系统的名称:舆情分析系统B. 系统架构类型:BS架构类型,即浏览器、服务器架构类型C.开发项目组名称:东北大学软件学院大数据班T09实训项目组(lzf、lcx)1.3 参考资料系统详细设计说明书模板:https://wenku.baidu.com/view/1ad0617ddd88d0d232d46a21.html《舆情分析系统-软件需求分析说明书.docx》《舆情分

    2026年2月5日
    3
  • 怎么将sql文件导入数据库_mysql导入sql文件命令

    怎么将sql文件导入数据库_mysql导入sql文件命令打开命令提示符行输入以下命令进入本地数据库2.创建数据库新建一个新数据库用来导入.sql数据3.导入.sql文件在导入.sql文件之前,设置一下编码模式,防止出现中文乱码的情况(第一次导入就出现了中文乱码,所以中添加一步防止出现乱码情况)。以上就是将.sql文件导入数据库的全部操作,这是打开新建的数据库就能看到导入进去的表内容。…

    2022年10月2日
    5
  • php 中使用cURL发送get/post请求,上传图片,批处理

    php 中使用cURL发送get/post请求,上传图片,批处理

    2021年10月29日
    39
  • Anycast 公网加速 AIA解决方案

    Anycast 公网加速 AIA解决方案Anycast公网加速AIA简介Anycast公网加速(AnycastInternetAcceleration,AIA)是一个覆盖多地的动态加速网络,可以大幅提升您业务的公网访问体验。不同于其他应用层加速服务,AIA能实现IP传输的质量优化和多入口就近接入,减少网络传输的抖动、丢包,最终提升云上应用的服务质量,扩大服务范围,精简后端部署。Anycast公网加速AIA功能Anycast公网加速提供多种强大功能,提升应用访问体验的同时,易于部署和管理。1、公网IP任播购买

    2022年5月23日
    124

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号