[Bug 1742] Warnings in system headers

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Thu Feb 24 14:40:30 UTC 2011


https://www.rtems.org/bugzilla/show_bug.cgi?id=1742

--- Comment #8 from Ralf Corsepius <ralf.corsepius at rtems.org> 2011-02-24 08:40:28 CST ---
(In reply to comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > Thus it is natural to use the
> > > definitions from <sys/cdefs.h> in <rtems/bsd/sys/cdefs.h>.
> > No ... <rtems/bsd/sys/cdefs.h> _replaces_ <sys/cdefs.h>
> 
> Would it then make sense to eliminate the content of <sys/cdefs.h>?
Depends on what you mean.

Inside of the RTEMS source-tree all sources use <rtems/bsd/sys/cdefs.h>. 
i.e. inside of RTEMS usage of <sys/cdefs.h> is eliminated.

This allows RTEMS to adapt to avoid their <sys/cdefs.h>.

> or colide
> it to
> ------------
> sys/cdefs.h:
> #include <rtems/bsd/sys/cdefs.h>
> ------------
> 
> I don't understand the rational of having to (rather) similar files available.
Portability!

Remember <sys/cdefs.h> is not covered by any standard, nevertheless most libcs
have one (<sys/cdefs.h> is BSD)

I.e. to be able to compile RTEMS against different libcs using <sys/cdefs.h>,
RTEMS would have to cater all these <sys/cdefs.h> 

=> We would end up in a portability swamp, when sources originating from
different BSDs will be introduced into RTEMS or when RTEMS will be built
against other libcs.

Remember the POSIX/unix BSP - It was the actual origih of this construct.

Another hidden aspect: Adding -I..../rtems/bsd can be applied as BSD transition
aid. Do you remember our bsd transition helper discussion from ca. 2 years ago?
This is one of these.

> You are right, it did not do any harm up to now, but since we are discussing
> it now it might be the right time to fix this.
As I tried to express before, the working principle might be a bit over the top
for people who are not familiar with the code, but I can only reiterate: I
don't see anything wrong with it.

If there is an issue, then it's RTEMS having abandoned supporting other libcs
but newlib. The solution then would be to remove "rtems/bsd/" (comprising
<rtems/bsd/sys/cdefs.h>) and to rely upon newlib's <sys/cdefs.h> only.

I am having no problems with this - The first ones to yell at me will be Joel
(who will likely loose schedsim) and those who have BSD-derived works in their
non-opensource drawers (I.e. likely you).

-- 
Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the bugs mailing list