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

------------------------------------------------------------------------------
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

Reply via email to