Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 1 | From 2cb54158b80cdbd97ca3b36df83f9255e923ae3f Mon Sep 17 00:00:00 2001 |
| 2 | From: James Le Cuirot <chewi@aura-online.co.uk> |
| 3 | Date: Sat, 23 Aug 2014 09:46:39 +0100 |
| 4 | Subject: [PATCH] Check size of uid_t and gid_t using AC_CHECK_SIZEOF |
| 5 | |
| 6 | This built-in check is simpler than the previous method and, most |
| 7 | importantly, works when cross-compiling. |
| 8 | |
| 9 | Upstream-Status: Accepted |
| 10 | [https://github.com/shadow-maint/shadow/commit/2cb54158b80cdbd97ca3b36df83f9255e923ae3f] |
| 11 | |
| 12 | Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com> |
| 13 | --- |
| 14 | configure.in | 14 ++++---------- |
| 15 | 1 file changed, 4 insertions(+), 10 deletions(-) |
| 16 | |
| 17 | diff --git a/configure.in b/configure.in |
| 18 | index 1a3f841..4a4d6d0 100644 |
| 19 | --- a/configure.in |
| 20 | +++ b/configure.in |
| 21 | @@ -335,16 +335,10 @@ if test "$enable_subids" != "no"; then |
| 22 | dnl |
| 23 | dnl FIXME: check if 32 bit UIDs/GIDs are supported by libc |
| 24 | dnl |
| 25 | - AC_RUN_IFELSE([AC_LANG_SOURCE([ |
| 26 | -#include <sys/types.h> |
| 27 | -int main(void) { |
| 28 | - uid_t u; |
| 29 | - gid_t g; |
| 30 | - return (sizeof u < 4) || (sizeof g < 4); |
| 31 | -} |
| 32 | - ])], [id32bit="yes"], [id32bit="no"]) |
| 33 | - |
| 34 | - if test "x$id32bit" = "xyes"; then |
| 35 | + AC_CHECK_SIZEOF([uid_t],, [#include "sys/types.h"]) |
| 36 | + AC_CHECK_SIZEOF([gid_t],, [#include "sys/types.h"]) |
| 37 | + |
| 38 | + if test "$ac_cv_sizeof_uid_t" -ge 4 && test "$ac_cv_sizeof_gid_t" -ge 4; then |
| 39 | AC_DEFINE(ENABLE_SUBIDS, 1, [Define to support the subordinate IDs.]) |
| 40 | enable_subids="yes" |
| 41 | else |