Hi Chen,
I did not completely reproduce your problem but from the information you provided I think the problem is the layout of your repository directories. The Genode build system kind of overlays all repos into one virtual tree. So, targets under <repo>/src/<target> end up in the root build directory as <target> (see further below...)
On Mon, Jun 06, 2011 at 10:14:42AM -0700, Chen Tian wrote:
. (examples) |-- helloworld | `-- src | `-- app | |-- main.cc | `-- target.mk `-- thread-migration `-- src `-- app |-- 32 | `-- target.mk |-- 64 | `-- target.mk `-- main.cc
This means app from helloworld overlays with app from thread-migration. Therefore, a successful compile of app/main.cc from helloworld produces app/main.o in the build tree, which is also linked if app/32 from thread-migration is built.
I suggest to put the targets in your repos into target-name-specific subdirectories that do not overlay/clash.
Greets