Hello all.  I just acquired a ZTE Open phone, and I'd like to get a
recent FxOS build onto it.  So I'm following along with the MDN guide
and become befuddled at the build.sh stage.

The Firefox_OS_build_prerequisites and
Preparing_for_your_first_B2G_build guides went off without a hitch.  I
used

  $ ./config.sh inari

I've setup my .userconfig (attached).  In the murky shadows of my past,
I've done a little cross platform and embedded development, so I
expanded a little on the simple .userconfig template --- but I don't
think any of this stuff is getting in the way.  

(BTW:  I'm trying to make all of this happen on a newly install debian testing
system [Linux 3.10-2-amd64 #1 SMP Debian 3.10.7-1 (2013-08-17) x86_64 
GNU/Linux].)

If I run either of
  $ ./build.sh 
  $ ./build.sh modules 

I get what seems to be interesting output, namely:

arm-lines-androideabi-gcc???
============================
  /bin/bash: 
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc:
 No such file or directory

Hmmm.  This file exists, and my system claims

    ssh-agent B2G$ stat 
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc
      File: 
‘prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc’
      Size: 208144          Blocks: 408        IO Block: 4096   regular file
    Device: fe06h/65030d    Inode: 2887210     Links: 1
    Access: (0755/-rwxr-xr-x)  Uid: ( 1000/khellman)   Gid: ( 1000/khellman)
    Access: 2013-10-14 10:15:29.496236809 -0600
    Modify: 2013-10-14 04:21:06.522470281 -0600
    Change: 2013-10-14 04:21:06.522470281 -0600
     Birth: -
    ssh-agent B2G$ file 
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc
    
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc:
 ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked 
(uses shared libs), for GNU/Linux 2.6.15, 
BuildID[sha1]=99b3cb6c9bc2523f61538ace904cf6327fe4a89e, stripped
    ssh-agent B2G$ ldd 
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc
            not a dynamic executable

So it would seem that I'm missing some shared libraries (at least that is my
experience when NSForD errors don't make sense).  But I'm confused as to why
I'm using the linux-x86 tool chain when my machine reports (uname -a):

    Linux doberman 3.10-2-amd64 #1 SMP Debian 3.10.7-1 (2013-08-17) x86_64 
GNU/Linux

Also, I notice that my build environment reports:
  
    ============================================
    PLATFORM_VERSION_CODENAME=AOSP
    PLATFORM_VERSION=4.0.4.0.4.0.4
    TARGET_PRODUCT=full_inari
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=arm
    TARGET_ARCH_VARIANT=armv7-a-neon
    HOST_ARCH=x86
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-3.10-2-amd64-x86_64-with-debian-jessie-sid
    HOST_BUILD_TYPE=release
    BUILD_ID=OPENMASTER
    OUT_DIR=/home/khellman/sbox/b2gdev/B2G/out-debug+1-target+inari
    ============================================

  Do components of the tree *have* to be built with the x86 toolchain?


JAVA_HOME ignored
==================
If I 

  $ ./build.sh clean && ./config.sh inari

again, I also learn that the tree complains about an inadequate Java

    ************************************************************
    You are attempting to build with the incorrect version
    of java.
     
    Your version is: Fake java 1.6.0 revisiion.
    The correct version is: Java SE 1.6.
     
    Please follow the machine setup instructions at
        http://source.android.com/source/download.html
    ************************************************************

at ./build/core/main.mk#120.  This seems strange since my symlink to openjdk
that JAVA_HOME points through produces version output that *should not* trip
this warning.    It seems that JAVA_HOME is overwritten in the environment:

  ./build/envsetup.sh:    export JAVA_HOME="$(gettop)/build/fake-jdk-tools"

my meek inspection makes me think that this is done unconditionally.  I'm sure
I missed something...
  

I've got no guarantees I'll be able to get clean builds with these two issues
resolved, but I doubt I'll get there without working these out.  So, any
thoughts to set my build back on the rails?

 1.  Do I need a specific x86 toolchain installed, or my environment being 
 mis-determined as x86 and not x86_64?

 2.  How do I make the build system recognize my working java installation?

I should point out that the tool chain error messages don't break the build,
they just seem to be a big red flag(tm) to me.  I also can't claim that I'm
hitting a point where Java components fail to be built --- so perhaps this is a
red herring as well.  The build actually fails (after *alot* of ignored make 
command
warnings and a substantial amount of other more innocuous output) due to a
"missing" prebuilt/linux-x86/ccache/ccache --- but this file is missing in 
the same way that arm-linux-androideabi-gcc is "missing".

Thanks in advance for your help, my apologies if this is covered somewhere in
the docs that I've missed.

-- 
Keith Hellman                             #include <disclaimer.h>
[email protected]                from disclaimer import standard
[email protected]
                                   -*-                                    
                    public key @ pgp.mit.edu 9FCF40FD 
        Y!M: mcprogramming                       AIM/ICQ: 485403897       
        jabber: [email protected]     irc: freenode.net as mrtuple
                                   -*-                                    


"You'd be amazed how hard it is to concentrate on heartbreak when 
 you're like `&^%^%*& where's the 'a' key?`"

-- Jesse Weaver
   ... on the loss of a girlfriend and new keyboard layouts.
#!/bin/bash 
# for syntax highlighting
__word_vars="GECKO_PATH GECKO_OBJDIR B2G_TARGET OUT_DIR" 
__zero_one_vars="B2G_DEBUG B2G_NOOPT NOFTU"

function _report_var( )
{
        for v in ${@}; do 
                echo "${v}='${!v}'" >/dev/tty
        done
}

#export HOST_ARCH=x86_64
#_report_var HOST_ARCH
#
export JAVA_HOME=/usr/lib/jvm/java-6-sun
_report_var JAVA_HOME


# can't use 4.7 
(https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler)
export CC=${CC:-gcc-4.6}
export CXX=${CXX:-g++-4.6}

_report_var CC CXX

export B2G_DIR="${B2G_DIR:-$(cd "$(dirname "$0")" && pwd)}"

export GECKO_PATH="${GECKO_PATH:-${B2G_DIR}/gecko}"
export B2G_DEBUG="${B2G_DEBUG:-1}"
export B2G_TARGET="${B2G_TARGET:-inari}"    # zte is one of these

if test ${B2G_DEBUG} -eq 1 ; then
        export NOFTU=${NOFTU:-1}
        export B2G_NOOPT=${B2G_NOOPT:-1}
fi

# force 0 or 1
for v in ${__zero_one_vars}; do 
        case "${!v}" in
                1 ) ;;
                * ) export ${v}=0 ;;
        esac
done

__build_config="debug+${B2G_DEBUG}-target+${B2G_TARGET}"
export GECKO_OBJDIR="${B2G_DIR}/out-gecko-${__build_config}"
mkdir -p "${GECKO_OBJDIR}"
export OUT_DIR="${B2G_DIR}/out-${__build_config}"
mkdir -p "${OUT_DIR}"

_report_var ${__word_vars} ${__zero_one_vars}

Attachment: signature.asc
Description: Digital signature

_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to