I've built a cache manager with WORDS_BIGENDIAN defined.

Works fine.

There's some really screwey logic in src/config/afsconfig.h that
is supposed to set WORDS_BIGENDIAN .  For aix 4.3, this starts
simply enough:
        #define AUTOCONF_FOUND_BIGENDIAN 1
        #define ENDIANESS_IN_SYS_PARAM_H 1
        presumably __BIG_ENDIAN__ isn't set (who sets this?)
Then there's a hairy ifdef towards the end that sets
WORDS_BIGENDIAN depending on __BIG_ENDIAN__, __LITTLE_ENDIAN__,
ENDIANESS_IN_SYS_PARAM_H, KERNEL, BYTE_ORDER, and AUTOCONF_FOUND_BIGENDIAN.
For kernel code on aix, this results in not setting WORDS_BIGENDIAN, and
thus building a bad cache manager.

The "simple" kludge is to just append the line "#define WORDS_BIGENDIAN 1"
at the end of src/config/afsconfig.h after configuring afs, then at the top do
        ( cd src/libafs; make clean )
                -- if you have old kernel objects in your build tree
        make only_libafs
                -- build just the cache manager
You can then copy the cache manager pieces to your already existing system.
Of course you can also build the whole thing.
Just remember that if you type configure or config.status you'll
have to patch afsconfig.h again.

The "right" fix is to do something about the ifdef in
src/config/afsconfig.h.in which comes from acconfig.h or better
yet by using AH_BOTTOM in acinclude.m4 .

                                        -Marcus Watts
_______________________________________________
OpenAFS-info mailing list
OpenAFS-info@openafs.org
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to