This is the mail archive of the ecos-discuss@sourceware.cygnus.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]

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

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