summaryrefslogtreecommitdiffstats
path: root/usr.bin/gensetdefs
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2000-09-29 13:29:43 +0000
committerdfr <dfr@FreeBSD.org>2000-09-29 13:29:43 +0000
commit2a79e36f93e005251528d75f12687709b0830d14 (patch)
treeaa8b8b74ed4565b706a23b5fa803bfd98e4c690b /usr.bin/gensetdefs
parentb6189aae3275e10c2872ce44741ccac24324fbc8 (diff)
downloadFreeBSD-src-2a79e36f93e005251528d75f12687709b0830d14.zip
FreeBSD-src-2a79e36f93e005251528d75f12687709b0830d14.tar.gz
Add ia64 support and fix problems when cross-building when the host has
a different pointer size from the target.
Diffstat (limited to 'usr.bin/gensetdefs')
-rw-r--r--usr.bin/gensetdefs/gensetdefs.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/usr.bin/gensetdefs/gensetdefs.c b/usr.bin/gensetdefs/gensetdefs.c
index e5d15a0..c6ce48f 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 <sys/elf32.h>
-#elif defined(arch_alpha) || defined(arch_sparc64)
+#elif defined(arch_alpha) || defined(arch_sparc64) || defined(arch_ia64)
#define __ELF_WORD_SIZE 64
#include <sys/elf64.h>
#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");
OpenPOWER on IntegriCloud