Hello, The current version in SVN fails to compile in sparc machines since gcc defines "sparc" as a macro in sparc machines that expands to 1 (see below) but Triple.h defines "sparc" as a enum constant. $ cpp -dM /dev/null | grep sparc #define sparc 1 #define __sparc__ 1 #define __sparc 1 The attached patch fixes this problem by renaming sparc to sparc_. Thanks, Venkatraman -------------- next part -------------- A non-text attachment was scrubbed... Name: llvm-compile-in-sparc.patch Type: application/octet-stream Size: 4049 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090824/ec581f9b/attachment.obj>
Hi Venkatraman,> The current version in SVN fails to compile in sparc machines since > gcc defines "sparc" as a macro in sparc machines that expands to 1 > (see below) but Triple.h defines "sparc" as a enum constant. > > $ cpp -dM /dev/null | grep sparc > #define sparc 1 > #define __sparc__ 1 > #define __sparc 1 > > The attached patch fixes this problem by renaming sparc to sparc_.the same thing happens with mips: "mips" is defined to be a numerical value on mips machines, and this breaks Triple.h. Ciao, Duncan.
Hi, I think I should rename the constants to be a little less likely to collide. I think just upcasing them might be good enough? - Daniel On Tue, Aug 25, 2009 at 12:20 AM, Duncan Sands<baldrick at free.fr> wrote:> Hi Venkatraman, > >> The current version in SVN fails to compile in sparc machines since >> gcc defines "sparc" as a macro in sparc machines that expands to 1 >> (see below) but Triple.h defines "sparc" as a enum constant. >> >> $ cpp -dM /dev/null | grep sparc >> #define sparc 1 >> #define __sparc__ 1 >> #define __sparc 1 >> >> The attached patch fixes this problem by renaming sparc to sparc_. > > the same thing happens with mips: "mips" is defined to be a numerical > value on mips machines, and this breaks Triple.h. > > Ciao, > > Duncan. >
On Aug 25, 2009, at 12:20 AM, Duncan Sands wrote:> Hi Venkatraman, > >> The current version in SVN fails to compile in sparc machines since >> gcc defines "sparc" as a macro in sparc machines that expands to 1 >> (see below) but Triple.h defines "sparc" as a enum constant. >> >> $ cpp -dM /dev/null | grep sparc >> #define sparc 1 >> #define __sparc__ 1 >> #define __sparc 1 >> >> The attached patch fixes this problem by renaming sparc to sparc_. > > the same thing happens with mips: "mips" is defined to be a numerical > value on mips machines, and this breaks Triple.h.I committed r80072 to fix this. -Chris