This is the mail archive of the ecos-devel@sources.redhat.com 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]

Re: C vs C++ compilations


John Dallaway wrote:


Long-term, it seems that we will definitely need to separate C and C++ build flags. We could certainly introduce CYGBLD_GLOBAL_CXXFLAGS (similar to CYGBLD_GLOBAL_CFLAGS) and modify the makefile generation code to use it. This would not be a huge task, but modifying 100+ platforms HALs to accommodate the change might be. I'm not so keen on the option of hacking the makefile generation code to treat 'legacy' platform HALs differently.

See bug 1000035. The long term solution definitely doesn't involve anything like a CYGBLD_GLOBAL_CFLAGS. Flags to deal with warnings, optimisation, debugging etc. should be brought out separately - there's no reason for most of them to be anywhere near a platform HAL.


The attached version [ of the patch ] works fine on my
PowerPC and ARM targets.  There still are some warnings when there are
special rules.

What version (date) of ecosconfig has the support for the full flag set?

I realize that it will be some effort to split up the CDL and handle
these problems fully, but as I said I think it's something we should
address. The patch could be committed now as it doesn't conflict with any other changes (e.g. using CXXFLAGS)


It seems that your proposed patch constitutes a temporary workaround to silence build warnings before we address the real problem. A couple of comments:

a) Why do you modify the flags for building both C and C++ files in your patch? From your description of the problem, it seems that the flags you cite need only be removed when compiling C files.

More interesting is why the patch worked even despite that: -fvtable-gc should be removed globally anyway - last I knew the GCC support was broken (and when it worked, it was apparently unreliable anyway, and in any case no core eCos code uses it). -Woverloaded-virtual is just a warning. I'm surprised compiles didn't fail with -fno-rtti missing though. Maybe luckily enough the right sections are present and correctly defined in the chosen targets/architectures. But yes the patch should be changed if it affects c++ compiles too.


However, I'm wondering whether we should just bite the bullet and split out the C and C++ build flags soon rather than introduce a workaround. I would be interested in comments from the other maintainers.

Again bug 1000035. It's tied up with the makefile generator rewrite.


Jifl
--
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--["No sense being pessimistic, it wouldn't work anyway"]-- Opinions==mine


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