/*********************************************************************
* Author : lile
* Modified : 2019年12月28日星期六 10:16:13
* Email : [email protected]
* HomePage : lile777.blog.csdn.net
* CopyRight : 该文章版权由lile所有。
* 保留原文出处链接和本声明的前提下,可在非商业目的下任意传播和复制。
* 对于商业目的下对本文的任何行为需经作者同意。
*********************************************************************/
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)
https://src.fedoraproject.org/repo/pkgs/strace/?C=M;O=D
https://strace.io
apt-get install autoconf automake libtool
./bootstrap
# 配置
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
# 配置
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
(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 - 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.
https://sourceforge.net/p/strace/mailman/strace-devel/
configure: error: Cannot enable m32 personality support