This is the mail archive of the ecos-patches@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1001607] Cortex-M4F architectural Floating Point Support


Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001607

--- Comment #26 from Ilija Kocho <ilijak@siva.com.mk> 2012-08-12 12:05:05 BST ---
(In reply to comment #24)

[snip]

> 
> 1) Cortex-M4/M3 selector is removed, and CYGBLD_ARCH_XFLAGS added, with comment
> regarding GCC issue. Anti-flags (4) moved to CYGINT_HAL_CORTEXM_FPU and
> CYGINT_HAL_FPV4_SP_D16 (respecting FPU abstraction). There is, however a
> problem with unresolved conflicts when I click on CYGHWR_HAL_CORTEXM_FPU.
> Funny, but it resolves when I right-click RESOLVE in conflict window.

It seems that is_substr() expressions are executed concurrently rather than
sequentially. Following snippets, although less elegant, produce correct
behavior.

        cdl_interface CYGINT_HAL_FPV4_SP_D16 {
            flavor     bool
            display    "FPU is FPv4-SP-D16"
            implements CYGINT_HAL_CORTEXM_FPU

            requires { !CYGHWR_HAL_CORTEXM_FPU implies
                !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mfpu=fpv4-sp-d16") &&
                !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mfloat-abi=hard")
            }
            requires { !CYGHWR_HAL_CORTEXM_FPU implies
                !is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mfpu=fpv4-sp-d16") &&
                !is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mfloat-abi=hard")

            }

            requires { (CYGHWR_HAL_CORTEXM_FPU && !CYGINT_HAL_FPV4_SP_D16) 
                implies
                !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mfpu=fpv4-sp-d16")
            }
            requires { (CYGHWR_HAL_CORTEXM_FPU && !CYGINT_HAL_FPV4_SP_D16)
                implies
                !is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mfpu=fpv4-sp-d16")
            }

        }

        cdl_component CYGHWR_HAL_CORTEXM_FPU {
            display        "Use hardware FPU"
            flavor         bool
            active_if      (CYGINT_HAL_CORTEXM_FPU )
            default_value  0; #{ CYGINT_HAL_CORTEXM_FPU }
            compile        cortexm_fpu.c

           }
      }

        cdl_component CYGHWR_HAL_FPV4_SP_D16 {
            flavor none
            active_if CYGINT_HAL_FPV4_SP_D16 && CYGHWR_HAL_CORTEXM_FPU
            display     "FPv4-SP-D16"
            no_define
            compile     fpv4_sp_d16.c

                requires {
                    is_substr(CYGBLD_GLOBAL_CFLAGS, " -mcpu=cortex-m4") &&
                    is_substr(CYGBLD_GLOBAL_CFLAGS, " -mfloat-abi=hard") &&
                    is_substr(CYGBLD_GLOBAL_CFLAGS, " -mfpu=fpv4-sp-d16") &&
                    !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mcpu=cortex-m3")
                }

                requires {
                    is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mcpu=cortex-m4") &&
                    is_substr(CYGBLD_GLOBAL_LDFLAGS," -mfloat-abi=hard") &&
                    is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mfpu=fpv4-sp-d16") &&
                    !is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mcpu=cortex-m3")
                }
            }
       }

Ilija

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]