This is the mail archive of the
ecos-discuss@sourceware.cygnus.com
mailing list for the eCos project.
Re: CDL question
>>>>> "Grant" == Grant Edwards <grante@visi.com> writes:
>> You cannot change the default value of some option in another
>> package (for the time being anyway), manipulating package
>> configury like that breaks encapsulation.
>>
>> Instead your HAL package should use an appropriate requires
>> property, i.e.:
>>
>> cdl_package XXXPKG_HAL_ARM_WHATEVER {
>> ...
>> requires CYGHWR_HAL_ARM_BIGENDIAN
>> }
>>
>> The libcdl inference engine should sort this out pretty much
>> automatically, with no user intervention.
Grant> Cool, thanks. The "no user intervention" part was what I
Grant> hadn't figured out how to do.
Grant> I was using "requires CYGHWR_HAL_ARM_BIGENDIAN == 1", but
Grant> that didn't set the user value, it just warned you when you
Grant> did an "ecosconfig check".
I believe it should actually figure things out as soon as you do the
`ecosconfig new', unless you explicitly disable inference with
--no-resolve. If you look at the resulting ecos.ecc savefile, you
should see CYGHWR_HAL_ARM_BIGENDIAN with an inferred value, which
takes priority over the default value.
However, I have just spotted a problem in the inference engine code:
currently it will fail to trigger for "xxx == 1" if xxx is a boolean,
it will only trigger if xxx has a data part. If you rewrite it as
"requires CYGHWR_HAL_ARM_BIGENDIAN" then things should work better.
Unfortunately the inference engine does still need a fair bit of work,
but it was not worth holding up the release for that.
Bart