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