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}
signature.asc
Description: Digital signature
_______________________________________________ dev-b2g mailing list [email protected] https://lists.mozilla.org/listinfo/dev-b2g
