-Option 1: for all projects except chromium and webkit, the 3.1 GPL
code was merged into the AOSP master with the contributions that were
made to those projects. You might find that this is a convenient way
to work with those.
-Option 2: for all projects, including chromium and webkit, there's a
tag android-3.1_r1 that points to the exact commit that was used to
build version HMJ37 that's shipping on Xoom. For any such project, you
can run "git checkout android-3.1_r1" to get that exact version
(beware of cross-project dependencies, especially between webkit and
chromium). To do it for all projects, run "repo forall -p -c git
checkout android-3.1_r1".
-Option 3: even though it's possible today to build the 3.1 GPL code
on top of the latest master, that might not be the case forever since
master moves ahead fast. In order to be able to continue building the
3.1 GPL code in the future, I've created a manifest called
"3.1-base.xml" that contains the exact state of master as it was
yesterday. You can switch to it with "repo init 3.1-base.xml ; repo
sync", and from there apply the steps in Option 2. Get back to your
plain master with "repo init -m default.xml ; repo sync".
A word of caution, especially around webkit: even though the current
AOSP master (and 3.1-base) contains interface definition files that
allow building that GPL source code, it's likely that there could be
various kinds of compatibility issues trying to run the resulting
binaries: webkit uses non-public Android APIs written in C++, and
that's likely to trigger issues of Fragile Base Class.
JBQ
--
Jean-Baptiste M. "JBQ" Queru
Software Engineer, Android Open-Source Project, Google.
Questions sent directly to me that have no reason for being private
will likely get ignored or forwarded to a public forum with no further
warning.
JBQ
JBQ
> --
> You received this message because you are subscribed to the "Android Building" mailing list.
> To post to this group, send email to android-...@googlegroups.com
> To unsubscribe from this group, send email to
> android-buildi...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-building?hl=en
JBQ
Bad news, I wasn't able to reproduce that breakage, which means that
it's going to be harder to help you directly.
You may want to look at the usual suspects:
-not being on any branch (repo branches)
-not having any modified files (repo status)
-clean build (make clobber)
JBQ
Thanks for the reply. Unfortunately, I still hit upon the same error
after clobbering and checking (a snapshot attached at the end).
So, I looked into the two files involved in the error:
external/webkit/WebCore/bindings/v8/V8Proxy.h and
external/v8/src/v8.h. In V8Proxy.h, there are calls to
v8::V8::IsExecutionTerminating() in Lines 411, 418 and 425, but v8.h
does not declare the method. I suspect there is still a version
mismatch problem between packages. Does your V8Proxy.h still contain
calls to v8::V8::IsExecutionTerminating()? What is the commit tag used
for external/v8.git? Apparently, android-3.1_r1 is not on the tag list
of external/v8.git, so my local copy uses android-2.2.1_r1, instead.
Thanks,
Jae
$ make clobber
// clean up messages
$ repo branches
(no branches)
$ repo status
nothing to commit (working directory clean)
$ . build/envsetup.sh
including device/htc/passion/vendorsetup.sh
including device/samsung/crespo4g/vendorsetup.sh
including device/samsung/crespo/vendorsetup.sh
$ lunch full_crespo-userdebug
// printconfig
$ make -j8
// same error as previous one
repo init -m 3.1-base.xml
repo sync
repo forall -c git checkout android-3.1_r1
JBQ
I tried what you suggested to find that applying "repo forall -c git
checkout android-3.1_r1" breaks platform/external/webkit.
> repo init -m 3.1-base.xml
> repo sync
This works fine, and put my copy of webkit into the version described
in 3.1-base.xml (i.e., revision
80aad5eedfe9e84cabb8540f818f7d1971ecadc3). In this version, there are
no calls to v8::V8::IsExecutionTerminating() in
external/webkit/WebCore/bindings/v8/V8Proxy.h (which is good).
> repo forall -c git checkout android-3.1_r1
Once this checkout is applied, the webkit revision becomes
5b56a98d50eaef903ecd257cc4092ae59a406533, and calls to
v8::V8::IsExecutionTerminating() appear in
external/webkit/WebCore/bindings/v8/V8Proxy.h, which break the
compilation. Could you please check whether this is consistent with
your build?
FYI, applying android-3.1_r1 does not affect platform/external/v8.
Thanks!
Jae
In a nutshell, I've done all the testing on a full-eng build, i.e. an
emulator build, i.e. an ARMv5 build, on which we can't use V8 and have
to fall back to JavaScriptCore, because V8 requires ARMv7.
Trying to build full_crespo-userdebug fails, exactly as you've seen.
That's an ARMv7 build that uses V8.
I don't have a fix off-hand, I'm working on one. Thanks for being patient.
JBQ
Cheers,
Jae
From a 3.1-base system with 3.1_r1 checked out, "repo sync
platform/build platform/external/v8" should be enough to get you into
a state where things build for ARMv7.
Please let me know if that's not the case.
Thanks,
JBQ
Cheers,
Jae
One caveat is I did not intend to build the entire working platform
for Xoom using AOSP; I was interested only in building specific
libraries and frameworks which are functional on Xoom.
$ cd $WORK
$ repo init -u git://android.git.kernel.org/platform/manifest.git -m
3.1-base.xml
$ repo sync
$ repo forall -p -c git checkout android-3.1_r1
$ vi device/samsung/crespo/BoardConfigCommon.mk
(Change TARGET_ARCH_VARIANT from armv7-a-neon to armv7-a.)
$ . build/envsetup.sh
$ lunch full_crespo-userdebug
$ make -j8
This sequence worked for me, which means building was completed
without an error. (I haven't even tried to flash the entire system
image to the device; I am sure it won't work.)
Cheers,
Jae
Actually I was interested in that as well. If we could get something
functional from using older parts of the build composed with newer
parts that would be cool.