diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-07-15 00:55:33 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-07-15 00:55:33 +0200 |
commit | 9e1a18db9fd34a6156007c7db563f46095989b62 (patch) | |
tree | 92b59e5c123a3d48a257d8a75af209a502d2b589 /libguile/objcodes.c | |
parent | ba4c43dc3b6c4bb3b65883283e00228df6029371 (diff) | |
download | guile-9e1a18db9fd34a6156007c7db563f46095989b62.tar.gz |
Augment `OBJCODE_COOKIE' to detect wrong endianness or word size.
* libguile/objcodes.c (OBJCODE_ENDIANNESS, _OBJCODE_STRINGIFY,
OBJCODE_STRINGIFY, OBJCODE_WORD_SIZE): New macros.
(OBJCODE_COOKIE): Use them. The intent is that `.go' files compiled
for a different endianness or word size are detected.
Diffstat (limited to 'libguile/objcodes.c')
-rw-r--r-- | libguile/objcodes.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libguile/objcodes.c b/libguile/objcodes.c index 4f219717a..d5d66952c 100644 --- a/libguile/objcodes.c +++ b/libguile/objcodes.c @@ -33,8 +33,22 @@ #include "programs.h" #include "objcodes.h" +/* The endianness marker in objcode. */ +#ifdef WORDS_BIGENDIAN +# define OBJCODE_ENDIANNESS "BE" +#else +# define OBJCODE_ENDIANNESS "LE" +#endif + +#define _OBJCODE_STRINGIFY(x) # x +#define OBJCODE_STRINGIFY(x) _OBJCODE_STRINGIFY (x) + +/* The word size marker in objcode. */ +#define OBJCODE_WORD_SIZE OBJCODE_STRINGIFY (SIZEOF_VOID_P) + /* nb, the length of the header should be a multiple of 8 bytes */ -#define OBJCODE_COOKIE "GOOF-0.6" +#define OBJCODE_COOKIE \ + "GOOF-0.6-" OBJCODE_ENDIANNESS "-" OBJCODE_WORD_SIZE "---" /* |