Bug 11421 - GCC error message for ARM Cortex-A9/ARM.V7
Summary: GCC error message for ARM Cortex-A9/ARM.V7
Status: RESOLVED INVALID
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: 2018.05.2
Hardware: Other Linux
: P5 blocker
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-22 12:14 UTC by ecs.egon.derflinger@t-online.de
Modified: 2018-10-22 22:36 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ecs.egon.derflinger@t-online.de 2018-10-22 12:14:09 UTC
Dear ARM-friends, 

please find below the GCC error message for the source code also given below. 

The compiler error is reported for interrupt label "FIQ" only. 

Thanks for your help!

BR Egon:)

 

 

//--------------------------------------------------------------------------------------------------

13:44:13 **** Incremental Build of configuration Debug for project MsgDma ****
make all 
Building file: /opt/ScCU_Firmware/ScCU-FW/hal/halFpga/irq/src/IrqCA9ArmV7.c
Invoking: Cross GCC Compiler
arm-buildroot-linux-gnueabi-gcc -I/opt/ScCU_Firmware/ScCU-FW/hal/halFpga/irq/inc/ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/IrqCA9ArmV7.d" -MT"src/IrqCA9ArmV7.o" -o "src/IrqCA9ArmV7.o" "/opt/ScCU_Firmware/ScCU-FW/hal/halFpga/irq/src/IrqCA9ArmV7.c"
/opt/ScCU_Firmware/ScCU-FW/hal/halFpga/irq/src/IrqCA9ArmV7.c: In Funktion »__isr_C_A9_A_V7_fiq«:
/opt/ScCU_Firmware/ScCU-FW/hal/halFpga/irq/src/IrqCA9ArmV7.c:61:1: Fehler: Befehl erfüllt nicht seine Bedingungen:
}
^
(insn/f 13 12 14 (set (reg/f:SI 13 sp)
(plus:SI (reg/f:SI 11 fp)
(const_int 4 [0x4]))) /opt/ScCU_Firmware/ScCU-FW/hal/halFpga/irq/src/IrqCA9ArmV7.c:61 4 {*arm_addsi3}
(expr_list:REG_CFA_ADJUST_CFA (set (reg/f:SI 13 sp)
(plus:SI (reg/f:SI 11 fp)
(const_int 4 [0x4])))
(nil)))
/opt/ScCU_Firmware/ScCU-FW/hal/halFpga/irq/src/IrqCA9ArmV7.c:61:1: interner Compiler-Fehler: in extract_constrain_insn, bei recog.c:2246
Bitte senden Sie einen vollständigen Fehlerbericht auf Englisch ein;
inclusive vorverarbeitetem Quellcode, wenn es dienlich ist.
Siehe <http://bugs.buildroot.net/> für nähere Anweisungen.
make: *** [src/IrqCA9ArmV7.o] Fehler 1
src/subdir.mk:44: die Regel für Ziel „src/IrqCA9ArmV7.o“ scheiterte

13:44:14 Build Finished (took 790ms)

//--------------------------------------------------------------------------------------------------

Source file IrqCA9ArmV7.c

 

 

/*! \brief text text.
*
* text text text text.
*
* Name : IrqCA9ArmV7.cpp
* Author : ECSed
* Version : 1.0
* Copyright : Your copyright notice
*/

//std includes (goes first)
//---
//interface & project includes
#include "IrqCA9ArmV7.h"
//module includes (goes last)
//---

//public:

//6.31.4 ARM Function Attributes
//acc. https://gcc.gnu.org/onlinedocs/gcc/ARM-Function-Attributes.html
/*
*
*/
void __attribute__ ((interrupt ("IRQ"))) __isr_C_A9_A_V7_irq(void) {
//your IRQ service code goes here
}

/*
*
*/
void __attribute__ ((interrupt ("UNDEF"))) __isr_C_A9_A_V7_undev(void) {
//your UNDEF service code goes here
}

/*
*
*/
void __attribute__ ((interrupt ("SWI"))) __isr_C_A9_A_V7_swi(void) {
//your SWI service code goes here
}

/*
*
*/
void __attribute__ ((interrupt ("ABORT"))) __isr_C_A9_A_V7_abort(void) {
//your ABORT service code goes here
}


//void __attribute__ ((interrupt)) __isr_C_A9_A_V7_pabort (void)
//void __attribute__ ((interrupt)) __isr_C_A9_A_V7_dabort (void)

/*
*
*/
void __attribute__ ((interrupt ("FIQ"))) __isr_C_A9_A_V7_fiq(void) {
//your FIQ service code goes here
}

//protected:
//private

//--------------------------------------------------------------------------------------------------

Header file IrqCA9ArmV7.h

 

/*! \brief text text.
*
* text text text text.
*
* Name : IrqCA9ArmV7.h
* Author : ECSed
* Version : 1.0
* Copyright : Your copyright notice
*/

#ifndef _Irq_C_A9_Arm_V7_H_
# define _Irq_C_A9_Arm_V7_H_

//std includes (goes first)
//---
//interface & project includes
//---
//module includes (goes last)
//---


//public:
//see DE1-SoC Computer System with ARM Cortex-A9, p. 32
void __attribute__ ((interrupt ("IRQ"))) __isr_C_A9_A_V7_irq(void);
void __attribute__ ((interrupt ("UNDEF"))) __isr_C_A9_A_V7_undev(void);
void __attribute__ ((interrupt ("SWI"))) __isr_C_A9_A_V7_swi(void);
void __attribute__ ((interrupt ("ABORT"))) __isr_C_A9_A_V7_abort(void);
//void __attribute__ ((interrupt)) __isr_C_A9_A_V7_pabort (void);
//void __attribute__ ((interrupt)) __isr_C_A9_A_V7_dabort (void);
void __attribute__ ((interrupt ("FIQ"))) __isr_C_A9_A_V7_fiq(void);

//protected:
//private

#endif //_Irq_C_A9_Arm_V7_H_
Comment 1 ecs.egon.derflinger@t-online.de 2018-10-22 12:20:49 UTC
Compiled with -v option:

GNU C11 (Buildroot 2016.11.2-g944d03b) Version 5.4.0 (arm-buildroot-linux-gnueabi)
	kompiliert von GNU-C-Version 5.4.0 20160609, GMP-Version 6.1.1, MPFR-Version 3.1.5, MPC-Version 1.0.3.
Comment 2 Arnout Vandecappelle 2018-10-22 22:36:41 UTC
I don't know what the "Command does not fulfill its conditions" error message means exactly. However, a Buildroot-generated compiler is targeted for hosted compilation. I am not sure that it is capable of generating code for a freestanding environment, where the FIQ attribute would be relevant. You may be better off downloading an ARM-supported toolchain from https://developer.arm.com/open-source/gnu-toolchain