Browse Source

fix some obscure header type size/alignment issues

Rich Felker 12 years ago
parent
commit
8c741783fc
4 changed files with 9 additions and 10 deletions
  1. 5 5
      include/net/if_arp.h
  2. 1 0
      include/regex.h
  3. 1 1
      include/signal.h
  4. 2 4
      include/sys/socket.h

+ 5 - 5
include/net/if_arp.h

@@ -117,12 +117,12 @@ struct arpreq_old {
 #define ARPD_FLUSH	0x03
 
 struct arpd_request {
-	uint16_t req;
+	unsigned short req;
 	uint32_t ip;
-	uint32_t dev;
-	uint32_t stamp;
-	uint32_t updated;
-	uint8_t ha[MAX_ADDR_LEN];
+	unsigned long dev;
+	unsigned long stamp;
+	unsigned long updated;
+	unsigned char ha[MAX_ADDR_LEN];
 };
 
 

+ 1 - 0
include/regex.h

@@ -17,6 +17,7 @@ typedef struct {
 	size_t re_nsub;
 	void *__opaque, *__padding[4];
 	size_t __nsub2;
+	char __padding2;
 } regex_t;
 
 typedef struct {

+ 1 - 1
include/signal.h

@@ -103,7 +103,7 @@ union sigval {
 struct __siginfo {
 	int si_signo, si_errno, si_code;
 	union {
-		char __pad[128 - 3*sizeof(int)];
+		char __pad[128 - 2*sizeof(int) - sizeof(long)];
 		struct {
 			pid_t si_pid;
 			uid_t si_uid;

+ 2 - 4
include/sys/socket.h

@@ -239,10 +239,8 @@ struct sockaddr
 struct sockaddr_storage
 {
 	sa_family_t ss_family;
-	union {
-		long long __align;
-		char __padding[126];
-	} __padding;
+	unsigned long __ss_align;
+	char __ss_padding[128-2*sizeof(unsigned long)];
 };
 
 int socket (int, int, int);