Hello,

I've just committed a large change to FPC's trunk repository (version 2.3.1; 2.1.x is unaffected), which does the following:

  * new internal set format for big endian systems. Advantages:
    * varsets ({$packset x}) are now supported on big endian targets
    * gdb now displays sets properly on big endian systems
    * cleanup of generic set code (in, include/exclude, helpers), all
      based on "bitpacked array[] of 0..1" now
  * there are no helpers available yet to convert sets from the old to
    the new format, because the set format will change again slightly
    in the near future (so that e.g. a set of 24..31 will be stored in
    1 byte), and creating two classes of set conversion helpers would
confuse things (i.e., it's not recommended to use trunk currently for programs which load sets stored to disk by big endian programs compiled
    by previous FPC versions)
* cross-endian compiling has been tested and still works, but one case
    is not supported: compiling a compiler for a different endianess
using a starting compiler from before the current revision (so first
    cycle natively, and then use the newly created compiler to create a
    cross-compiler)

Especially keep in mind point 3 if you compile new FPC compilers from source yourself, and point 2 if you use trunk/2.3.1 for your own usage rather than fixes_2_2/2.1.x

Over time, these changes will go into fixes_2_2 as well, but only after things have settled down and when the conversion helpers are available.


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to