Main Site Documentation

Compiling Cerberus in 4.3 using MDK


#1

When I try to compile the Cerberus port in NETMF 4.3, MDK’s compiler is getting called with “-fpermissive” (a GCC option to allow nonconforming code to compile). It doesn’t support this option, so the compiler terminates.

How do I disable this flag from being appended to the compiler’s arguments?

It is not getting called with this flag when I compile other solutions. I think it’s a Cortex-M4 thing.

Anyone have any ideas?


#2

Search were it is added and remove it from there, perhaps?
But the real questions is if it is a GCC specific option how did it set for MDK toolset?


#3

I’m not familiar enough with how msbuild constructs the commands to know where to begin. I looked in Tools\Targets\Microsoft.SPOT.system.MDK.settings, but I didn’t see anything.


#4

For what it’s worth, the option is passed in after all the includes, so I assume it’s set by $(ExtraFlags). Where does this variable come from?


#5

This can be set in .proj files.

content between tags


#6

Alright, I can build it if I remove

 $(ExtraCPPFlags)

from this line of Microsoft.Spot.system.mdk.targets:

<CPP_FLAGS>$(CPP_FLAGS) $(CC_CPP_COMMON_FLAGS) $(ExtraCPPFlags) </CPP_FLAGS>

This is still a huge hack.


#7

I would try searching for “-fpermissive” in every file in your PK tree


#8

Found it. It’s in FEZCerberus.settings.

Removing it fixed the problem.