From 2a79e36f93e005251528d75f12687709b0830d14 Mon Sep 17 00:00:00 2001 From: dfr Date: Fri, 29 Sep 2000 13:29:43 +0000 Subject: [PATCH] Add ia64 support and fix problems when cross-building when the host has a different pointer size from the target. --- usr.bin/gensetdefs/gensetdefs.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/usr.bin/gensetdefs/gensetdefs.c b/usr.bin/gensetdefs/gensetdefs.c index e5d15a0d538..c6ce48f4bbd 100644 --- a/usr.bin/gensetdefs/gensetdefs.c +++ b/usr.bin/gensetdefs/gensetdefs.c @@ -30,7 +30,7 @@ #if defined(arch_i386) #define __ELF_WORD_SIZE 32 #include -#elif defined(arch_alpha) || defined(arch_sparc64) +#elif defined(arch_alpha) || defined(arch_sparc64) || defined(arch_ia64) #define __ELF_WORD_SIZE 64 #include #endif @@ -81,12 +81,24 @@ main(int argc, char **argv) hashent *list; FILE *fp; char *ptrop; - int align; + int align, ptrsize; for (i = 1; i < argc; i++) if (enter_sets(argv[i]) == -1) status = EXIT_FAILURE; +#if defined(arch_i386) + ptrop = "long"; + ptrsize = 4; + align = 2; +#elif defined(arch_alpha) || defined(arch_ia64) + ptrop = "quad"; + ptrsize = 8; + align = 3; +#endif + if (!ptrop) + errx(1, "unknown architecture"); + fp = fopen("setdefs.h", "w"); if (!fp) err(1, "setdefs.h"); @@ -95,7 +107,7 @@ main(int argc, char **argv) hashent *next; fprintf(fp, "DEFINE_SET(%s, %lu);\n", list->name, - (unsigned long) (list->size / sizeof (void *))); + (unsigned long) (list->size / ptrsize)); next = list->next; free(list->name); free(list); @@ -103,16 +115,6 @@ main(int argc, char **argv) } fclose(fp); -#if defined(arch_i386) - ptrop = "long"; - align = 2; -#elif defined(arch_alpha) - ptrop = "quad"; - align = 3; -#endif - if (!ptrop) - errx(1, "unknown architecture"); - fp = fopen("setdef0.c", "w"); if (!fp) err(1, "setdef0.c"); -- 2.45.2