From 9e1ea8f2fe94851902ec6e954b9f3473c7564f4a Mon Sep 17 00:00:00 2001 From: Joseph Koshy Date: Mon, 13 Nov 2006 04:28:29 +0000 Subject: [PATCH] Attempt to improve application portability by marking `struct ar_hdr' as `packed'. The C standard leaves the alignment of individual members of a C struct upto the implementation, so pedantically speaking portable code cannot assume that the layout of a `struct ar_hdr' in memory will match its layout in a file. Using a __packed attribute declaration forces file and memory layouts for this structure to match. Submitted by: ru --- include/ar.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/ar.h b/include/ar.h index e04874fcbda3..40b4d74b04c6 100644 --- a/include/ar.h +++ b/include/ar.h @@ -39,11 +39,15 @@ * SUCH DAMAGE. * * @(#)ar.h 8.2 (Berkeley) 1/21/94 + * + * $FreeBSD$ */ #ifndef _AR_H_ #define _AR_H_ +#include + /* Pre-4BSD archives had these magic numbers in them. */ #define OARMAG1 0177555 #define OARMAG2 0177545 @@ -62,6 +66,6 @@ struct ar_hdr { char ar_size[10]; /* size in bytes */ #define ARFMAG "`\n" char ar_fmag[2]; /* consistency check */ -}; +} __packed; #endif /* !_AR_H_ */