On Tue, 18 Aug 2009, Brandon Casey wrote: > The SUNWspro compiler doesn't set __i386__. Instead it sets __i386, and > I think __x86_64 and __amd64 where appropriate. So, compilation with > the SUNWspro compiler on x86 is currently unaffected by these changes and > falls back to the generic routines. > > It seems that v5.10 of the compiler can grok both the __asm__ statements > and the ({...}) naked block notation and passes all of the tests when the > block_sha1 code is modified to add defined(__i386) to each of the macro > statements. > > The 5.8 version cannot grok the naked block, and requires spelling __asm__ > as __asm for inline assembly. Even then it appears that there is a bug in > the assembly that is produced (a google search told me so), so the assembly > code does not successfully compile. > > I haven't had much time to think about how or whether to address this. > > Adding something like the following would get ugly real quick: > > (defined(__i386) && defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5100)) I think the best solution in this case might simply be to add something like this somewhere at the top of git-compat-util.h after the system includes: /* * The SUNWspro compiler uses different symbols than gcc. * Let's standardize on the gcc flavor. */ #if defined(__i386) && !defined(__i386__) #define __i386__ #endif #if (defined(__x86_64) || defined(__amd64)) && !defined(__x86_64__) #define __x86_64__ #endif /* * SUNWspro from version 5.10 supports gcc extensions such as gcc's * statement expressions and extended inline asm, so let's pretend... */ #if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5100)) #define __GNUC__ #endif Nicolas -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html