弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

root権限のないAndroid-7.1.1にperl-5.26.1を導入w。「Cross-compiling perl」

perlandroid(perl-5.27.5/perl-5.26.1)をNDKでビルド
のつづき。

結局perl-5.26.1をConfigureでssh経由でビルドすることはできなかった。make testが失敗してしまう。

なので今度は、 Cross-compiling perl にチャレンジ。

perl-cross-1.1.8.tar.gzをダンロードして解凍。
perl-5.26.1.tar.gzをダウンロードして解凍。

cd perl-5.26.1.
cp -r ../perl-cross-1.1.8/* .
#ANDROID=/opt/android-ndk
ANDROID=/home/hoge/Android/android-ndk-r15c
TOOLCHAIN=arm-linux-androideabi-4.9/prebuilt/linux-x86_64
PLATFORM=$ANDROID/platforms/android-16/arch-arm
export PATH=$PATH:$ANDROID/toolchains/$TOOLCHAIN/bin
./configure --prefix=/data/data/com.arachnoid.sshelper/usr --target=arm-linux-androideabi --sysroot=$PLATFORM -A ccflags=-fPIC -A ldflags="-fPIC -pie"
make
make DESTDIR=/home/hoge/Android/zf4perl install
make DESTDIR=/home/hoge/Android/zf4perl install
cd /home/hoge/Android/zf4perl/data/data/com.arachnoid.sshelper
tar -zcvf zf4perl.tar.gz ./usr
scp -P 2222 zf4perl.tar.gz android@192.168.x.x:/data/data/com.arachnoid.sshelper
$ ssh -p 2222 android@192.168.251.138
SSHelper Version 10.3 Copyright 2017, P. Lutus
Default password is "admin" (recommend: change it)
ASUS_Z01MDA:3.18.31-perf-g9276cb0
u0_a120@msm8953:/data/data/com.arachnoid.sshelper/home $ ls
SDCard
u0_a120@msm8953:/data/data/com.arachnoid.sshelper/home $ cd ..
u0_a120@msm8953:/data/data/com.arachnoid.sshelper $ ls
bin             dev             home            var
cache           etc             tmp             zf4perl.tar.gz
code_cache      files           usr
u0_a120@msm8953:/data/data/com.arachnoid.sshelper $ tar -zxvf zf4perl.tar.gz
展開。
u0_a120@msm8953:/data/data/com.arachnoid.sshelper $ cd usr/bin
u0_a120@msm8953:/data/data/com.arachnoid.sshelper/usr/bin $ 
u0_a120@msm8953:/data/data/com.arachnoid.sshelper/usr/bin $ ./perl -V
Summary of my perl5 (revision 5 version 26 subversion 1) configuration:
   
  Platform:
    osname=android
    osvers=current
    archname=arm-android
    uname=''
    config_args='--prefix=/data/data/com.arachnoid.sshelper/usr --target=arm-linux-androideabi --sysroot=/home/hoge/Android/android-ndk-r15c/platforms/android-16/arch-arm -A ccflags=-fPIC -A ldflags=-fPIC -pie --keeplog --mode=target --target=arm-linux-androideabi --targetarch=arm-unknown-linux-androideabi'
    hint=default
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=undef
    use64bitall=undef
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=undef
    bincompat5005=undef
  Compiler:
    cc='arm-linux-androideabi-gcc'
    ccflags ='--sysroot=/home/hoge/Android/android-ndk-r15c/platforms/android-16/arch-arm -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC'
    optimize='-fwrapv -fno-strict-aliasing'
    cppflags='--sysroot=/home/hoge/Android/android-ndk-r15c/platforms/android-16/arch-arm'
    ccversion='4.9.x'
    gccversion='4.9.x'
    gccosandvers=''
    intsize=4
    longsize=4
    ptrsize=4
    doublesize=8
    byteorder=1234
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=8
    longdblkind=0
    ivtype='long'
    ivsize=4
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=4
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='arm-linux-androideabi-gcc'
    ldflags ='--sysroot=/home/hoge/Android/android-ndk-r15c/platforms/android-16/arch-arm -fPIC -pie'
    libpth=/lib /usr/lib /usr/local/lib
    libs=-lm -ldl
    perllibs=-lm -ldl
    libc=
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC -Wno-unused-function'
    lddlflags='--sysroot=/home/hoge/Android/android-ndk-r15c/platforms/android-16/arch-arm -shared'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    USE_LARGE_FILES
    USE_LOCALE
    USE_PERLIO
    USE_PERL_ATOF
  Built under android
  Compiled at Nov 16 2017 21:34:27
  @INC:
    /data/data/com.arachnoid.sshelper/usr/lib/perl5/site_perl/5.26.1/arm-android
    /data/data/com.arachnoid.sshelper/usr/lib/perl5/site_perl/5.26.1
    /data/data/com.arachnoid.sshelper/usr/lib/perl5/5.26.1/arm-android
    /data/data/com.arachnoid.sshelper/usr/lib/perl5/5.26.1
    .
u0_a120@msm8953:/data/data/com.arachnoid.sshelper/usr/bin $ 
ぐはは。動いたわw。

MSYS2/MinGW-w64 (64bit/32bit) インストール手順 メモ

pacman -Syuu
pacman -S base-devel
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-i686-toolchain

github.com→ python-xcompile
developer.android.com→ Standalone Toolchains

Creating the Toolchain The NDK provides the make_standalone_toolchain.py script to allow you to perform a customized toolchain installation from the command line.

This is a new tool that replaces the old make-standalone-toolchain.sh. It has been reimplented in Python so that Windows users will not need to install Cygwin or MSys to take advantage of this tool.

Windows環境のNDKはCygwinとかMSysとか紆余曲折したのち両方とも不要なpython実装になったらすいw。

投稿されたコメント:

コメント
コメントは無効になっています。