Summary: | Build fails with macro expansion failures for TARGET_ANDROID | ||
---|---|---|---|
Product: | GDC | Reporter: | lt.infiltrator |
Component: | gdc | Assignee: | Johannes Pfau <johannespfau> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | ibuclaw, johannespfau |
Priority: | --- | ||
Version: | development | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
lt.infiltrator
2012-10-26 23:21:52 CEST
A recent change in gcc broke this. Workaround: Use an older gcc snapshot. The problem: GCC now defines a TARGET_ANDROID itself which clashes with our TARGET_ANDROID: ------------------------------------- * opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx> for Mask options, whether they use Var(...) or not. ------------------------------------- We can probably use that TARGET_ANDROID macro and throw away our implementation. Can you test if whether it works if you put the calls to TARGET_ANDROID in parens? So in d-spec.c:59: #if TARGET_WINDOS || TARGET_OSX || (TARGET_ANDROID) and d-spec.c:488:22: #if TARGET_LINUX && !(TARGET_ANDROID) If this does not fix it, it's probably a bug in upstream gcc as the error is in the TARGET_ANDROID macro definition which is part of gcc. Ermm, maybe the gcc TARGET_ANDROID macro expands to a runtime expression. This needs some more work then. (In reply to comment #2) > Ermm, maybe the gcc TARGET_ANDROID macro expands to a runtime expression. This > needs some more work then. That it does. Best thing to do is just give it another name... |