Hi All,

A significant update was pushed today that was the result of a broad-based "scrub" of code to reliably support various combinations of 32 and 64 bit systems. With stronger discipline of integer data types and typedefs, and explicitly error-checked truncations, we hope to be able to build the code base for several combinations of memory address spaces, bus address spaces, sizeof(size_t), sizeof(void*) etc. (32/32, 32/64, 64/32, 64/64 etc.).

This effort was motivated in part by targeting, through cross-building, a 32 bit OMAP/ARM system running a particular linux,
that was a pure 32 bit environment.

This resulted in API changes where several places in RCC workers and C++ control API external ports, we now use "size_t" rather than "uint32_t".

We can now build the tree with the -Wconversion warning turned on to find all implicit truncations (there are none in our code now).

Imported code from other sources is not necessarily warning-free in this case. We use the scripts/filter_warnings.sh on fresh builds to see what "real" warnings exist, mostly to filter out warnings from code we didn't write and will be refreshing from other sources. The reason why these packages are imported/refreshed in code rather then established as dependencies,
has to do with cross building and porting to non-linux systems.

Cheers,
Jim



_______________________________________________
opencpi_dev mailing list
[email protected]
http://lists.opencpi.org/listinfo.cgi/opencpi_dev-opencpi.org

Reply via email to