Skip to content

Mbed-OS build fails for FUTURE_SEQUANA/family of targets with ARM Compiler 6.11 #9578

@SenRamakri

Description

@SenRamakri

Description

Mbed OS will be upgrading to ARMc6 Toolchain with upcoming releases. We are in the process of ensuring that all currently supported targets successfully compiles/passes tests with ARMC6 toolchain but we do have some targets currently failing the build with ARMc6 toolchain. The failures are in source code under targets folder and thus needs to be updated.

The error and warning details are as follow:
When compiling with ARMc6 toolchain for FUTURE_SEQUANA(and other related targets - FUTURE_SEQUANA_M0, FUTURE_SEQUANA_PSA, FUTURE_SEQUANA_M0_PSA) build fails with following errors:

[ERROR] In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/TARGET_MCU_PSOC6_M4/system_psoc63_cm4.c:16:
In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/device.h:30:
In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/objects.h:27:
In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/gpio_object.h:25:
In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/gpio/cy_gpio.h:123:
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:457:12: warning: unknown attribute 'zero_init' ignored [-Wunknown-attributes]
    extern CY_NOINIT char_t cy_assertFileName[CY_MAX_FILE_NAME_SIZE];  /**< The assert buffer */
           ^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:415:69: note: expanded from macro 'CY_NOINIT'
    #define CY_NOINIT           __attribute__ ((section(".noinit"), zero_init))
                                                                    ^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:458:12: warning: unknown attribute 'zero_init' ignored [-Wunknown-attributes]
    extern CY_NOINIT uint32_t cy_assertLine;                           /**< The assert line value */
           ^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:415:69: note: expanded from macro 'CY_NOINIT'
    #define CY_NOINIT           __attribute__ ((section(".noinit"), zero_init))
                                                                    ^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:493:12: warning: unknown attribute 'zero_init' ignored [-Wunknown-attributes]
    extern CY_NOINIT cy_stc_fault_frame_t cy_faultFrame;    /**< Fault frame structure */
           ^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:415:69: note: expanded from macro 'CY_NOINIT'
    #define CY_NOINIT           __attribute__ ((section(".noinit"), zero_init))
                                                                    ^
./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/TARGET_MCU_PSOC6_M4/system_psoc63_cm4.c:413:7: error: expected '(' after 'asm'
__asm void Cy_MemorySymbols(void)
      ^
./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/TARGET_MCU_PSOC6_M4/system_psoc63_cm4.c:413:6: error: expected ';' after top-level asm block
__asm void Cy_MemorySymbols(void)
     ^
     ;
./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/TARGET_MCU_PSOC6_M4/system_psoc63_cm4.c:416:5: error: use of undeclared identifier 'EXPORT'
    EXPORT __cy_memory_0_start
    ^
3 warnings and 3 errors generated.

Targets Affected: FUTURE_SEQUANA, FUTURE_SEQUANA_M0, FUTURE_SEQUANA_M0_PSA, FUTURE_SEQUANA_PSA
Toolchain used: ARM Compiler 6.11 (Version 6.11)

Note that there may be other changes required to make build successful for ARMc6, so please address them as well.

How to reproduce the issue?

  1. Install ARMC6 compiler with version 6.11
  2. Set ARMC6_PATH config variable as below.
    mbed config --global ARMC6_PATH <Path to ARMC6 Toolchain bin directory>
  3. Run the compile as: mbed compile -t ARMc6 -m <target name>

Note that you may see an "Error" when trying to use ARMc6 with "mbed compile". This is expected, but the compilation process should continue to proceed. We will be removing this Error/Warning once we switch to ARMc6 completely.

How to generate Pull Request to fix ARMc6 issues?
Please generate your pull requests addressing ARMc6 build issues with feature-armc6 as the target branch(not master branch).

Issue request type

[ ] Question
[ ] Enhancement
[x] Bug

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions