diff options
author | des <des@FreeBSD.org> | 2009-09-10 08:33:28 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2009-09-10 08:33:28 +0000 |
commit | b9f96dd3c05dc496081fe2e9cf86821da07743bc (patch) | |
tree | 9ba7f97d1f900d2e397cdc914d2996d68b6f4d9a /sys | |
parent | ff3ab430a7bf6fea4ff59ac975732091f88f3182 (diff) | |
download | FreeBSD-src-b9f96dd3c05dc496081fe2e9cf86821da07743bc.zip FreeBSD-src-b9f96dd3c05dc496081fe2e9cf86821da07743bc.tar.gz |
If a certain feature that was present in FreeBSD 7 was removed or changed in
FreeBSD 8, the compatibility shims should be built not just when FreeBSD 7
compatibility is requested, but also when compatibility with any older
FreeBSD version where that feature was present is requested.o
Without this patch, a kernel config that sets COMPAT_FREEBSD6 but not *7
would fail to build due to inconsistencies between the declaration of the
compatibility shims and their use in the SysV code.
There are similar errors in other *proto.h headers in the tree.
MFC after: 3 weeks
Diffstat (limited to 'sys')
-rw-r--r-- | sys/compat/freebsd32/freebsd32_proto.h | 10 | ||||
-rw-r--r-- | sys/sys/sysproto.h | 16 |
2 files changed, 18 insertions, 8 deletions
diff --git a/sys/compat/freebsd32/freebsd32_proto.h b/sys/compat/freebsd32/freebsd32_proto.h index d957b7c..2a74fad 100644 --- a/sys/compat/freebsd32/freebsd32_proto.h +++ b/sys/compat/freebsd32/freebsd32_proto.h @@ -626,7 +626,8 @@ int freebsd4_freebsd32_sigreturn(struct thread *, struct freebsd4_freebsd32_sigr #endif /* COMPAT_FREEBSD4 */ -#ifdef COMPAT_FREEBSD6 +#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ + defined(COMPAT_FREEBSD6) struct freebsd6_freebsd32_pread_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; @@ -680,10 +681,11 @@ int freebsd6_freebsd32_lseek(struct thread *, struct freebsd6_freebsd32_lseek_ar int freebsd6_freebsd32_truncate(struct thread *, struct freebsd6_freebsd32_truncate_args *); int freebsd6_freebsd32_ftruncate(struct thread *, struct freebsd6_freebsd32_ftruncate_args *); -#endif /* COMPAT_FREEBSD6 */ +#endif /* COMPAT_FREEBSD[456] */ -#ifdef COMPAT_FREEBSD7 +#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ + defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) struct freebsd7_freebsd32_semctl_args { char semid_l_[PADL_(int)]; int semid; char semid_r_[PADR_(int)]; @@ -705,7 +707,7 @@ int freebsd7_freebsd32_semctl(struct thread *, struct freebsd7_freebsd32_semctl_ int freebsd7_freebsd32_msgctl(struct thread *, struct freebsd7_freebsd32_msgctl_args *); int freebsd7_freebsd32_shmctl(struct thread *, struct freebsd7_freebsd32_shmctl_args *); -#endif /* COMPAT_FREEBSD7 */ +#endif /* COMPAT_FREEBSD[4567] */ #define FREEBSD32_SYS_AUE_freebsd32_wait4 AUE_WAIT4 #define FREEBSD32_SYS_AUE_freebsd4_freebsd32_getfsstat AUE_GETFSSTAT diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h index 7c654bf..987cc3a 100644 --- a/sys/sys/sysproto.h +++ b/sys/sys/sysproto.h @@ -2233,13 +2233,21 @@ int freebsd4_sigreturn(struct thread *, struct freebsd4_sigreturn_args *); #endif /* COMPAT_FREEBSD4 */ -#ifdef COMPAT_FREEBSD6 +#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) -#endif /* COMPAT_FREEBSD6 */ +#endif /* COMPAT_FREEBSD[45] */ -#ifdef COMPAT_FREEBSD7 +#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ + defined(COMPAT_FREEBSD6) + + +#endif /* COMPAT_FREEBSD[456] */ + + +#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ + defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7) struct freebsd7___semctl_args { char semid_l_[PADL_(int)]; int semid; char semid_r_[PADR_(int)]; @@ -2261,7 +2269,7 @@ int freebsd7___semctl(struct thread *, struct freebsd7___semctl_args *); int freebsd7_msgctl(struct thread *, struct freebsd7_msgctl_args *); int freebsd7_shmctl(struct thread *, struct freebsd7_shmctl_args *); -#endif /* COMPAT_FREEBSD7 */ +#endif /* COMPAT_FREEBSD[4567] */ #define SYS_AUE_syscall AUE_NULL #define SYS_AUE_exit AUE_EXIT |