in reply to Re^4: Perl for ARMv7le
in thread Perl for ARMv7le

So it seems to me that your shell is incompatible with the shell that generate_uudmap expects.

This is something you will have to investigate yourself. Maybe it is just some shell variable that is not expanded as it should.

Have you tried running the command manually or by explicitly using /bin/sh to run it?

Replies are listed 'Best First'.
Re^6: Perl for ARMv7le
by monk88 (Novice) on Dec 19, 2016 at 20:57 UTC

    Yes, i get the following error: bash: ./generate_uudmap: cannot execute binary file: Exec format error

    this means it was compiled for other architecture , in this case arm and i was trying to execute it on my local which is x86_64 ?? Its almost seems like the the whole source code needs to reside on the target system, which is my armv7le system in this case.Probably i need to figure out on how to move the native compiler to my target and perform the ./configure and make.

      I found building natively much easier than cross-compiling.

      If in your case, the gen_uudmap file wants a binary native to your host, maybe you can compile that manually and put it in the correct place?

      Certainly, your cross-compilation instructions show how to handle this case?

        Its seems like i was passing wrong parm values to the configure scripts, so it always considered as native build rather than the cross build. I made some changes to the parms and it was able to generate the make file for cross build

        ./configure -Dsysroot=/opt/qnx6 -Dcc=arm-unknown-nto-qnx6.6.0eabi-gcc --target-tools-prefix=arm-unknown-nto-qnx6.6.0eabi- --target=arm-unknown-nto-qnx6.6.0eabi --host=arm-unknown-nto-qnx6.6.0eabi -Dprefix=$HOME/localperl

        The make run fine for some time and end up having following error , where it says undefined references to certain functions

        chmod 644 "PPPort.bs"
        arm-unknown-nto-qnx6.6.0eabi-gcc --sysroot=/opt/qnx660/target/qnx6 -Wl,-E -o perl perlmain.o libperl.a
        written lib/Config.pod
        make2: Leaving directory `/home/cross/perl-5.24.0'
        libperl.a(pp.o): In function `Perl_pp_crypt': pp.c:(.text+0xffd8): warning: The 'crypt' function has been deprecated in libc. Link against liblogin for extended algorithm support.
        libperl.a(toke.o): In function `Perl_scan_num':
        toke.c:(.text+0x27b82): undefined reference to `pow'
        libperl.a(util.o): In function `Perl_drand48_r':
        util.c:(.text+0xa36e): undefined reference to `ldexp'
        libperl.a(sv.o): In function `S_hextract':
        sv.c:(.text+0x13ca0): undefined reference to `frexp'
        .
        .
        time64.c:(.text+0x3482): undefined reference to `floor'
        time64.c:(.text+0x349c): undefined reference to `ceil'
        time64.c:(.text+0x3522): undefined reference to `fmod'
        time64.c:(.text+0x359c): undefined reference to `floor'
        time64.c:(.text+0x37e6): undefined reference to `ceil'
        collect2: error: ld returned 1 exit status
        make: *** perl Error 1

        could it be because i might have referenced wrong path for libraries in -Dsysroot option?