Your message dated Tue, 21 Aug 2007 03:57:17 -0700
with message-id <[EMAIL PROTECTED]>
and subject line pam: FTBFS (ppc64): "duplicate 'unsigned'" - Please use 
'uint32_t' instead of '__u32' 
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: pam
Version: 0.76-23
Severity: normal
Tags: patch

When building 'pam' on ppc64/unstable, I get the following error:

gcc -Wall -Wwrite-strings       -Wpointer-arith -Wcast-qual -Wcast-align        
-Wstrict-prototypes -Wmissing-prototypes        -Wnested-externs -Winline 
-Wshadow -Dlinux -g -D_GNU_SOURCE -D_REENTRANT -fPIC -O2 -I./include 
-I/pam-0.76/Linux-PAM/libpam/include -I/pam-0.76/Linux-PAM 
-I/pam-0.76/Linux-PAM/libpamc/include   -DPAM_DYNAMIC    -c pamc_client.c -o 
dynamic/pamc_client.o
In file included from /usr/include/asm/types.h:8,
                 from /usr/include/asm-ppc64/elf.h:4,
                 from /usr/include/asm/elf.h:8,
                 from /usr/include/asm-ppc64/sigcontext.h:12,
                 from /usr/include/asm/sigcontext.h:8,
                 from /usr/include/bits/sigcontext.h:28,
                 from /usr/include/signal.h:333,
                 from /usr/include/sys/wait.h:30,
                 from libpamc.h:18,
                 from pamc_client.c:9:
/usr/include/asm-ppc64/types.h:27: error: duplicate 'unsigned'
/usr/include/asm-ppc64/types.h:27: error: two or more data types in declaration 
specifiers
/usr/include/asm-ppc64/types.h:33: error: duplicate 'unsigned'
/usr/include/asm-ppc64/types.h:33: error: two or more data types in declaration 
specifiers
make[2]: *** [dynamic/pamc_client.o] Error 1
make[2]: Leaving directory `/pam-0.76/Linux-PAM/libpamc'

This is caused by the definition of '__u32' in 
Linux-PAM/libpamc/include/security/pam_client.h.

Please use the standard types 'uint32_t' and 'uint8_t' from the
C99 standard include file <inttypes.h> instead of '__u32' and '__u8' 
which are used by the linux kernel headers internally.

With the attached patch 'pam' can be compiled on ppc64.

Regards
Andreas Jochens

diff -urN ../tmp-orig/pam-0.76/Linux-PAM/libpamc/include/security/pam_client.h 
./Linux-PAM/libpamc/include/security/pam_client.h
--- ../tmp-orig/pam-0.76/Linux-PAM/libpamc/include/security/pam_client.h        
2005-09-16 13:24:15.000000000 +0200
+++ ./Linux-PAM/libpamc/include/security/pam_client.h   2005-09-16 
13:17:47.000000000 +0200
@@ -16,6 +16,7 @@
 #include <unistd.h>
 #include <string.h>
 #include <stdio.h>
+#include <inttypes.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -25,14 +26,7 @@
 
 typedef struct pamc_handle_s *pamc_handle_t;
 
-/* binary prompt structure pointer */
-#ifndef __u32
-# define __u32  unsigned int
-#endif
-#ifndef __u8
-# define __u8  unsigned char
-#endif
-typedef struct { __u32 length; __u8 control; } *pamc_bp_t;
+typedef struct { uint32_t length; uint8_t control; } *pamc_bp_t;
 
 /*
  * functions provided by libpamc
@@ -95,10 +89,10 @@
 # define PAM_BP_FREE        free
 #endif /* PAM_BP_FREE */
 
-#define __PAM_BP_WOCTET(x,y)  (*((y) + (__u8 *)(x)))
-#define __PAM_BP_ROCTET(x,y)  (*((y) + (const __u8 *)(x)))
+#define __PAM_BP_WOCTET(x,y)  (*((y) + (uint8_t *)(x)))
+#define __PAM_BP_ROCTET(x,y)  (*((y) + (const uint8_t *)(x)))
 
-#define PAM_BP_MIN_SIZE       (sizeof(__u32) + sizeof(__u8))
+#define PAM_BP_MIN_SIZE       (sizeof(uint32_t) + sizeof(uint8_t))
 #define PAM_BP_MAX_LENGTH     0x20000                   /* an advisory limit */
 #define PAM_BP_WCONTROL(x)    (__PAM_BP_WOCTET(x,4))
 #define PAM_BP_RCONTROL(x)    (__PAM_BP_ROCTET(x,4))
@@ -107,8 +101,8 @@
                               (__PAM_BP_ROCTET(x,2)<< 8)+      \
                               (__PAM_BP_ROCTET(x,3)    ))
 #define PAM_BP_LENGTH(x)      (PAM_BP_SIZE(x) - PAM_BP_MIN_SIZE)
-#define PAM_BP_WDATA(x)       (PAM_BP_MIN_SIZE + (__u8 *) (x))
-#define PAM_BP_RDATA(x)       (PAM_BP_MIN_SIZE + (const __u8 *) (x))
+#define PAM_BP_WDATA(x)       (PAM_BP_MIN_SIZE + (uint8_t *) (x))
+#define PAM_BP_RDATA(x)       (PAM_BP_MIN_SIZE + (const uint8_t *) (x))
 
 /* Note, this macro always '\0' terminates renewed packets */
 
@@ -116,13 +110,13 @@
 do {                                                                       \
     if (old_p) {                                                           \
        if (*(old_p)) {                                                    \
-           __u32 __size;                                                  \
+           uint32_t __size;                                               \
             __size = PAM_BP_SIZE(*(old_p));                                \
            memset(*(old_p), 0, __size);                                   \
            PAM_BP_FREE(*(old_p));                                         \
        }                                                                  \
        if (cntrl) {                                                       \
-           __u32 __size;                                                  \
+           uint32_t __size;                                               \
                                                                            \
            __size = PAM_BP_MIN_SIZE + data_length;                        \
            if ((*(old_p) = PAM_BP_CALLOC(1, 1+__size))) {                 \
@@ -145,7 +139,7 @@
 #define PAM_BP_FILL(prmpt, offset, length, data)                           \
 do {                                                                       \
     size_t bp_length;                                                      \
-    __u8 *prompt = (__u8 *) (prmpt);                                       \
+    uint8_t *prompt = (uint8_t *) (prmpt);                                     
  \
     bp_length = PAM_BP_LENGTH(prompt);                                     \
     if (bp_length < ((length)+(offset))) {                                 \
        PAM_BP_ASSERT("attempt to write over end of prompt");              \
@@ -156,7 +150,7 @@
 #define PAM_BP_EXTRACT(prmpt, offset, length, data)                        \
 do {                                                                       \
     size_t __bp_length;                                                    \
-    const __u8 *__prompt = (const __u8 *) (prmpt);                         \
+    const uint8_t *__prompt = (const uint8_t *) (prmpt);                       
  \
     __bp_length = PAM_BP_LENGTH(__prompt);                                 \
     if (((offset) < 0) || (__bp_length < ((length)+(offset)))              \
        || ((length) < 0)) {                                               \
diff -urN ../tmp-orig/pam-0.76/Linux-PAM/libpamc/pamc_converse.c 
./Linux-PAM/libpamc/pamc_converse.c
--- ../tmp-orig/pam-0.76/Linux-PAM/libpamc/pamc_converse.c      2005-09-16 
13:24:15.000000000 +0200
+++ ./Linux-PAM/libpamc/pamc_converse.c 2005-09-16 13:19:03.000000000 +0200
@@ -34,8 +34,8 @@
 
 int pamc_converse(pamc_handle_t pch, pamc_bp_t *prompt_p)
 {
-    __u32 size, offset=0;
-    __u8 control, raw[PAM_BP_MIN_SIZE];
+    uint32_t size, offset=0;
+    uint8_t control, raw[PAM_BP_MIN_SIZE];
 
     D(("called"));
 
@@ -109,7 +109,7 @@
     /* pump all of the prompt into the agent */
     do {
        int rval = write(pch->current->writer,
-                        offset + (const __u8 *) (*prompt_p),
+                        offset + (const uint8_t *) (*prompt_p),
                         size - offset);
        if (rval == -1) {
            switch (errno) {
@@ -171,7 +171,7 @@
        value from the previous loop */
 
     while (offset < size) {
-       int rval = read(pch->current->reader, offset + (__u8 *) *prompt_p,
+       int rval = read(pch->current->reader, offset + (uint8_t *) *prompt_p,
                        size-offset);
 
        if (rval == -1) {


--- End Message ---
--- Begin Message ---
Version: 0.79-1

Fixed upstream in version 0.79, so not a problem for etch and above.

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/

--- End Message ---

Reply via email to