I read the case attached in the #935. Since this problem happens in the inline asm, it makes sense to remove -march=anyx86 from the Makefile.
2011/12/8 David Coakley <dcoak...@gmail.com>: > Hi Jian-Xin, > > You are right, there is a bug in that we should not emit bad assembly. > However, I think it is correct that this code does not compile with > the options we are using and the bug doesn't change my proposed build > change. > > I filed bug 935 ("impossible constraint error not detected") with a > test case that might make things more clear: > > https://bugs.open64.net/show_bug.cgi?id=935 > > Christopher, I believe SSE2 support has been cleaned up in the last > few years and anything missing should be considered a bug. > > -David Coakley / AMD Open Source Compiler Engineering > > On Sat, Dec 3, 2011 at 10:49 PM, Jian-Xin Lai <laij...@gmail.com> wrote: >> I haven't tried to build the compiler on Fedora 16. But it looks like >> a bug in CG when generate the x87 instructions. Why not fix the error? >> >> 2011/12/4 David Coakley <dcoak...@gmail.com>: >>> Hi all, >>> >>> I recently tried building on Fedora 16 64-bit and ran into the same >>> error others have seen: >>> >>> /tmp/ccspin#.BqR0xk.s: Assembler messages: >>> /tmp/ccspin#.BqR0xk.s:1662: Error: bad register name `%st2' >>> /tmp/ccspin#.BqR0xk.s:1732: Error: operand type mismatch for `divss' >>> make[3]: *** [ieee_module_support.o] Error 1 >>> >>> The conflict occurs because the system include files assume SSE2 >>> support while the Open64 build is set up to target the most generic >>> cpu possible -- for 32-bit code, it's i386 which does not support >>> SSE2. >>> >>> My proposed fix follows -- we remove the restrictive options and just >>> let the compiler use the default options according to the host system. >>> With this change I'm able to build on Fedora 16 since we >>> automatically tune for a cpu that supports SSE2 for any 64-bit host. >>> The only negative effect I can think of is that those who build binary >>> releases of Open64 will need to be careful about selecting a build >>> machine that matches the minimum target cpu requirements. >>> >>> -David Coakley / AMD Open Source Compiler Engineering >>> >>> >>> Index: osprey/linux/make/gcommondefs >>> =================================================================== >>> --- osprey/linux/make/gcommondefs (revision 3843) >>> +++ osprey/linux/make/gcommondefs (working copy) >>> @@ -166,16 +166,6 @@ >>> CCNAME = pathcc >>> C++NAME = pathCC >>> F90 = pathf90 >>> - ifeq ($(BUILD_TARGET), X8664) >>> - CCNAME += -march=anyx86 >>> - C++NAME += -march=anyx86 >>> - F90 += -march=anyx86 >>> - endif >>> - ifeq ($(BUILD_TARGET), IA32) >>> - CCNAME += -march=anyx86 >>> - C++NAME += -march=anyx86 >>> - F90 += -march=anyx86 >>> - endif >>> F77 = $(F90) >>> AR = ar >>> endif >>> >>> @@ -186,23 +176,6 @@ >>> C++NAME = openCC >>> F90 = openf90 >>> F90_RTLIBS = -Wl,-Bstatic -lfortran -Wl,-Bdynamic >>> - >>> - ifeq ($(BUILD_TARGET), X8664) >>> - CCNAME += -march=anyx86 >>> - C++NAME += -march=anyx86 >>> - F90 += -march=anyx86 >>> - endif >>> - ifeq ($(BUILD_TARGET), IA32) >>> - CCNAME += -march=anyx86 >>> - C++NAME += -march=anyx86 >>> - F90 += -march=anyx86 >>> - endif >>> - ifeq ($(BUILD_TARGET), IA64) >>> - # only 64bit libraries set the BUILD_ARCH to X8664 >>> - CCNAME += >>> - C++NAME += >>> - F90 += >>> - endif >>> F77 = $(F90) >>> AR = ar >>> endif >>> @@ -218,32 +191,15 @@ >>> CCNAME += -run-build=$(TOP_BUILDDIR) -L$(BUILD_AREA)/libopen64rt >>> -L$(BUILD_AREA)/libacml_mv >>> C++NAME += -run-build=$(TOP_BUILDDIR) >>> F90 += -run-build=$(TOP_BUILDDIR) >>> - >>> - ifeq ($(BUILD_TARGET), X8664) >>> - CCNAME += -march=anyx86 >>> - C++NAME += -march=anyx86 >>> - F90 += -march=anyx86 >>> - endif >>> - ifeq ($(BUILD_TARGET), IA32) >>> - CCNAME += -march=anyx86 >>> - C++NAME += -march=anyx86 >>> - F90 += -march=anyx86 >>> - endif >>> - ifeq ($(BUILD_TARGET), IA64) >>> - # only 64bit libraries set the BUILD_ARCH to X8664 >>> - CCNAME += >>> - C++NAME += >>> - F90 += >>> - endif >>> F77 = $(F90) >>> AR = ar >>> endif >>> >>> ifeq ($(BUILD_ARCH), IA32) >>> # only 32bit libraries set the BUILD_TARGET to IA32 >>> - CCNAME += -m32 -mno-sse2 >>> - C++NAME += -m32 -mno-sse2 >>> - F90 += -m32 -mno-sse2 >>> + CCNAME += -m32 >>> + C++NAME += -m32 >>> + F90 += -m32 >>> endif >>> >>> ifeq ($(BUILD_ARCH), X8664) >>> >>> ------------------------------------------------------------------------------ >>> All the data continuously generated in your IT infrastructure >>> contains a definitive record of customers, application performance, >>> security threats, fraudulent activity, and more. Splunk takes this >>> data and makes sense of it. IT sense. And common sense. >>> http://p.sf.net/sfu/splunk-novd2d >>> _______________________________________________ >>> Open64-devel mailing list >>> Open64-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/open64-devel >> >> >> >> -- >> Regards, >> Lai Jian-Xin -- Regards, Lai Jian-Xin ------------------------------------------------------------------------------ Cloud Services Checklist: Pricing and Packaging Optimization This white paper is intended to serve as a reference, checklist and point of discussion for anyone considering optimizing the pricing and packaging model of a cloud services business. Read Now! http://www.accelacomm.com/jaw/sfnl/114/51491232/ _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel