Where does one post build issues?

49 views
Skip to first unread message

Masood Mortazavi

unread,
Nov 24, 2009, 1:59:10 AM11/24/09
to android-...@googlegroups.com
Where does one post questions regarding open-source Android platform build problems on Mac OS-X ?
Here?

My questions/issue has also been posted as an issue on the platform: http://code.google.com/p/android/issues/detail?id=5000
(A similar issue has been posted as a bug on Apple bug reports.)

I'm wondering if anyone else has run into it and whether there are any workarounds.

Jean-Baptiste Queru

unread,
Nov 24, 2009, 9:20:18 AM11/24/09
to android-...@googlegroups.com
Right now there's no good place, so what you've done (posting a bug
and discussing it here) is about as good as it gets. We've been
thinking about having a dedicated space for such discussions, but it
hasn't happened yet.

JBQ
> --
>
> You received this message because you are subscribed to the Google Groups
> "android-platform" group.
> To post to this group, send email to android-...@googlegroups.com.
> To unsubscribe from this group, send email to
> android-platfo...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-platform?hl=en.
>



--
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.

Chad Fawcett

unread,
Nov 24, 2009, 4:44:31 PM11/24/09
to android-...@googlegroups.com
It looks like you're probably building on OS X 10.6? (Your note mentions leopard instead of snow leopard, but also 10.6.) 10.6 is currently unsupported by an AOSP repo sync out of the box, for a combination of issues related to 64 bit, default compiler, and jdk versions. 

There are a set of patches currently under review which take care of known issues, but until they're all merged into master (or other solutions are implemented), you'll need to pull them in manually with git if you want to build on Snow Leopard.

The critical build ones:

The proposed java 6/5 change, if you don't have java 5 (this one should help ubuntu 9.10 as well):

This one actually isn't needed on 10.6, but needed on previous versions of OS X (10.5), due to a compile flag issue with a previous patch:

Masood Mortazavi

unread,
Nov 25, 2009, 2:51:07 AM11/25/09
to android-...@googlegroups.com
Thank you very much.

Right, I'm using 10.6, the "snow leopard".
(Sorry for the confusion.)

After the application of the first three patches suggested below, I go much further but end up stalling here on Mac OS-X 10.6:

Install: out/host/darwin-x86/bin/mksdcard
host C: mkyaffs2image <= external/yaffs2/yaffs2/utils/mkyaffs2image.c
In file included from external/yaffs2/yaffs2/utils/mkyaffs2image.c:40:
external/yaffs2/yaffs2/yaffs_tagsvalidity.h:23: warning: redundant redeclaration of ‘yaffs_InitialiseTags’
external/yaffs2/yaffs2/yaffs_guts.h:888: warning: previous declaration of ‘yaffs_InitialiseTags’ was here
external/yaffs2/yaffs2/utils/mkyaffs2image.c: In function ‘write_chunk’:
external/yaffs2/yaffs2/utils/mkyaffs2image.c:240: error: ‘convert_endian’ undeclared (first use in this function)
external/yaffs2/yaffs2/utils/mkyaffs2image.c:240: error: (Each undeclared identifier is reported only once
external/yaffs2/yaffs2/utils/mkyaffs2image.c:240: error: for each function it appears in.)
external/yaffs2/yaffs2/utils/mkyaffs2image.c: In function ‘write_object_header’:
external/yaffs2/yaffs2/utils/mkyaffs2image.c:293: error: ‘convert_endian’ undeclared (first use in this function)
external/yaffs2/yaffs2/utils/mkyaffs2image.c: In function ‘fix_stat’:
external/yaffs2/yaffs2/utils/mkyaffs2image.c:305: warning: passing argument 5 of ‘fs_config’ from incompatible pointer type
external/yaffs2/yaffs2/utils/mkyaffs2image.c: In function ‘main’:
external/yaffs2/yaffs2/utils/mkyaffs2image.c:485: error: ‘convert_endian’ undeclared (first use in this function)
make: *** [out/host/darwin-x86/obj/EXECUTABLES/mkyaffs2image_intermediates/yaffs2/utils/mkyaffs2image.o] Error 1


The offending code is:

#ifdef HAVE_BIG_ENDIAN
static int convert_endian = 1;
#elif defined(HAVE_LITTLE_ENDIAN)
static int convert_endian = 0;
#endif

I didn't want to do anything more exhaustive to dig into this but a simple search in platform/external shows that nowhere in that directory have either HAVE_BIG_ENDIAN or HAVE_LITTLE_ENDIAN  been defined. This may explain why the other errors are seen.

- m.

Chad Fawcett

unread,
Nov 25, 2009, 8:58:52 AM11/25/09
to android-...@googlegroups.com
I believe change 11845 should fix that error.

I'm not a repo/git expert, but did you use the repo download command instead of the git pull one to pull in the patches? Since two of the patches apply to system/core, if you used the repo version, whichever of those two core patches you downloaded second probably bumped out the previous patch.   

I'm still meaning to get more up to speed on the nuances of git merging, cherry-picking, fast forward, rebase, etc (light reading over the holiday weekend perhaps), so this may not be the best method, but I tend to just use the "git pull" command from gerrit, after changing into the relative project root (cd system/core in this case).

 -Chad

Masood Mortazavi

unread,
Nov 25, 2009, 11:53:51 AM11/25/09
to android-...@googlegroups.com

I'm far less of a repo/git expert. 

Would a "repo sync" with the main tree do away with these patches? (Is that the best way to get back to the original state prior to these patches?)

I did use the "repo download" to get these patches because I guessed I would need to cd to the relative directory for "git pull" to work but wasn't sure if that would be the right approach.  Also, the second patch has a higher number and I figured I would need. I also guessed that doing "repo download" sequentially will take care to ensure consistent changes were applied. 

Are you saying that "git pull" only applies the specific changes without clobbering previous changes?

- m.

Jean-Baptiste Queru

unread,
Nov 25, 2009, 12:23:04 PM11/25/09
to android-...@googlegroups.com
In a nuthsell:

-the history in git is made of immutable commit objects organized in a
DAG that is built incrementally, with a full snapshot of the source
tree attached to each commit.

-git fetch replicates commits from a remote instance into your local
one, but doesn't modify your local state.

-git merge creates a commit that combines the ancestry of multiple
commits (the first one bring your current HEAD). A fast forward is
when one of those commits is already a descendant of the other(s) and
can be used as the result of the merge.

-git cherry-pick essentially diffs a commit against its parent, and
patches it on top of another.

-grossly oversimplifying, git rebase is an automated sequence of cherry-picks.

-git pull combines git fetch and git merge: replicate commits from a
remote instance and combine them with your current HEAD.

-repo download combines git fetch and git checkout: replicate commits
from a remote instance and switch your HEAD and local state to the
commit that just got fetched.

Hope that helps a bit.

JBQ

On Wed, Nov 25, 2009 at 8:53 AM, Masood Mortazavi

Masood Mortazavi

unread,
Nov 25, 2009, 2:31:36 PM11/25/09
to android-...@googlegroups.com
Yes, this summary is very helpful, particularly the last comparison between "repo download" and "git pull"

..............................

For the record, on the patches proposed earlier on this tread:

The "git pull" of the following patches in the appropriate directories were sufficient to drive to completion the build on my MacBook Pro / Mac OS-X 10.6.2 with various tooling as suggested in the software download page for Android:

git pull git://android.git.kernel.org/platform/system/core refs/changes/45/11845/3
git pull git://android.git.kernel.org/platform/external/qemu refs/changes/46/11846/3
git pull git://android.git.kernel.org/platform/system/core refs/changes/97/12597/1

(For each of these, I will also make an appropriate comment on the change records here: https://review.source.android.com/#change,)

Although I'm using JDK 6 on this laptop, I didn't have to git this patch:


Perhaps, it is already part of the main HEAD that I repo syn-ed with right before the above patch applications?

( I also didn't seem to need to apply this one: https://review.source.android.com/#change,12623  )

What is the appropriate test run?
Where are tests described?
It would be good to test this build.

Thanks,
- m.
Reply all
Reply to author
Forward
0 new messages