RTEMS-CVS is broken
Joel Sherrill
joel.sherrill at oarcorp.com
Thu Jul 13 16:15:39 UTC 2006
Ralf Corsepius wrote:
>On Thu, 2006-07-13 at 10:24 -0500, Joel Sherrill wrote:
>
>
>>Ralf Corsepius wrote:
>>
>>
>>
>>>Thomas,
>>>
>>>your last week's monster check in into RTEMS cvs screwed up RTEMS badly:
>>>
>>>Since your patch, all BSPs, I've tried so far, fail with an error
>>>similar to this:
>>>..
>>>./../../../../armulator/lib/include/rtems/confdefs.h:385: error:
>>>'ATA_DRIVER_TASK_DEFAULT_PRIORITY' undeclared here (not in a function)
>>>gmake[5]: *** [init.o] Error 1
>>>..
>>>
>>>
>>>
>>>
>>>
>>What configure command are you using?
>>
>>
>
>In the case above:
>
><dir>/rtems/configure --target=arm-rtems4.7 --enable-maintainer-mode
>--enable-posix
>
>
>
Hmmm.. that built for me. I don't have anything different from CVS
right now
that would be in an arm build.
>>>Furthermore, checking what you checked in to confdefs.h, makes me
>>>believe you broke cpukit:
>>>
>>>E.g. this
>>>+#ifdef CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
>>>+#include <libchip/ata.h>
>>>+#endif
>>>
>>>accesses libchip/ata.h (not part of cpukit).
>>>
>>>
>>>
>>>
>>>
>>>
>>This may not be so bad since it should only be turned on by code which knows
>>the libchip ATA driver is supported on that BSP.
>>
>>
>Sorry I consider the above to be truely unacceptably bad design:
>
>You are turning the hierarchies upside down:
>1. libchip drivers are "plugins", a BSP has to "glue them together".
>cpukit should not need to know anything about a driver.
>
>
RTEMS CPUKit can define the standard public interface to a device driver.
The top 1/2 of ata.h looks to be the generic driver interface similar to the
*drv.h files in libcsupport. The bottom looks implementation specific
to me.
>2. Conditionally including files outside of cpukit from inside of
>cpukit, renders successful building a random accident.
>
>
>
>> It would be more
>>correct long
>>term to move the ata.h file to cpukit if it is a "standard RTEMS driver
>>interface" and (hopefully) doesn't suck in a lot more.
>>
>>
>The ata stuff is i386 specific.
>
>
>
Other embedded targets have ata interfaces. Maybe this implementation
is i386 specific
but the interface is not.
>>>Furthermore, you missed to add changelog entries.
>>>
>>>
>>>
>>>
>>>
>>That's not good. :(
>>
>>
>Yes, it renders reverting these changes a pain.
>
>Ralf
>
>
>
>
More information about the users
mailing list