From 2efd6b47bf59c3202ccc6218b42ba360136d3789 Mon Sep 17 00:00:00 2001
From: Paul Smith <psmith@gnu.org>
Date: Sun, 28 Oct 2012 14:57:49 +0000
Subject: [PATCH] Rearrange elements to reduce struct size on 64bit
 architectures.

---
 hash.h |  6 +++---
 job.h  | 12 +++++-------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/hash.h b/hash.h
index 6624fe6e..960cbd78 100644
--- a/hash.h
+++ b/hash.h
@@ -41,6 +41,9 @@ typedef void (*hash_map_arg_func_t) __P((void const *item, void *arg));
 struct hash_table
 {
   void **ht_vec;
+  hash_func_t ht_hash_1;	/* primary hash function */
+  hash_func_t ht_hash_2;	/* secondary hash function */
+  hash_cmp_func_t ht_compare;	/* comparison function */
   unsigned long ht_size;	/* total number of slots (power of 2) */
   unsigned long ht_capacity;	/* usable slots, limited by loading-factor */
   unsigned long ht_fill;	/* items in table */
@@ -48,9 +51,6 @@ struct hash_table
   unsigned long ht_collisions;	/* # of failed calls to comparison function */
   unsigned long ht_lookups;	/* # of queries */
   unsigned int ht_rehashes;	/* # of times we've expanded table */
-  hash_func_t ht_hash_1;	/* primary hash function */
-  hash_func_t ht_hash_2;	/* secondary hash function */
-  hash_cmp_func_t ht_compare;	/* comparison function */
 };
 
 typedef int (*qsort_cmp_t) __P((void const *, void const *));
diff --git a/job.h b/job.h
index 68760f2f..0b594a19 100644
--- a/job.h
+++ b/job.h
@@ -43,22 +43,20 @@ struct child
     struct file *file;		/* File being remade.  */
 
     char **environment;		/* Environment for commands.  */
-
+    char *sh_batch_file;        /* Script file for shell commands */
     char **command_lines;	/* Array of variable-expanded cmd lines.  */
-    unsigned int command_line;	/* Index into above.  */
     char *command_ptr;		/* Ptr into command_lines[command_line].  */
 
-    pid_t pid;			/* Child process's ID number.  */
 #ifdef VMS
+    char *comname;              /* Temporary command file name */
     int efn;			/* Completion event flag number */
     int cstatus;		/* Completion status */
-    char *comname;              /* Temporary command file name */
 #endif
-    char *sh_batch_file;        /* Script file for shell commands */
+
+    unsigned int command_line;	/* Index into command_lines.  */
+    pid_t pid;			/* Child process's ID number.  */
     unsigned int remote:1;	/* Nonzero if executing remotely.  */
-
     unsigned int noerror:1;	/* Nonzero if commands contained a '-'.  */
-
     unsigned int good_stdin:1;	/* Nonzero if this child has a good stdin.  */
     unsigned int deleted:1;	/* Nonzero if targets have been deleted.  */
     unsigned int dontcare:1;    /* Saved dontcare flag.  */