Source: shadow
Version: 1:4.2-3.1
Severity: normal
Tags: patch

Hello,

Cross-building shadow almost works, the only issue is that configure
uses a runtime test for the sizes of uid_t and gid_t. The attached patch
replaces that by a build-time test.

Samuel

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'oldoldstable'), 
(500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 
'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.4.0 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Samuel
Anyone who thinks UNIX is intuitive should be forced to write 5000 lines of 
code using nothing but vi or emacs. AAAAACK!
(Discussion in comp.os.linux.misc on the intuitiveness of commands, especially
Emacs.)
--- configure.in.original       2016-02-28 21:51:24.762395274 +0100
+++ configure.in        2016-02-28 22:05:07.217337130 +0100
@@ -332,19 +332,10 @@
 AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test "x$enable_man" != "xno")
 
 if test "$enable_subids" != "no"; then
-       dnl
-       dnl FIXME: check if 32 bit UIDs/GIDs are supported by libc
-       dnl
-       AC_RUN_IFELSE([AC_LANG_SOURCE([
-#include <sys/types.h>
-int main(void) {
-       uid_t u;
-       gid_t g;
-       return (sizeof u < 4) || (sizeof g < 4);
-}
-       ])], [id32bit="yes"], [id32bit="no"])
+       AC_CHECK_SIZEOF(uid_t, ,)
+       AC_CHECK_SIZEOF(gid_t, ,)
 
-       if test "x$id32bit" = "xyes"; then
+       if test "$ac_cv_sizeof_uid_t" -ge 4 -o "$ac_cv_sizeof_gid_t" -ge 4; then
                AC_DEFINE(ENABLE_SUBIDS, 1, [Define to support the subordinate 
IDs.])
                enable_subids="yes"
        else

Reply via email to