[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] fix compiler warnings in hurd/procfs

From: Thomas Schwinge
Subject: Re: [PATCH] fix compiler warnings in hurd/procfs
Date: Mon, 23 May 2016 13:06:13 +0200
User-agent: Notmuch/0.9-125-g4686d11 (http://notmuchmail.org) Emacs/24.5.1 (i586-pc-linux-gnu)


On Tue, 29 Dec 2015 23:11:26 +0100, Flavio Cruz <flaviocruz@gmail.com> wrote:
> procfs: Fix compiler warnings.
> * include/sys/procfs.h: Change uintptr_t to vm_address_t.
> * procfs/process.c: Fix format strings.
> * procfs/rootdir.c: Add missing casts.

(Note that the <sys/procfs.h> header file does not relate to the procfs

> --- a/include/sys/procfs.h
> +++ b/include/sys/procfs.h
> @@ -63,8 +63,8 @@ struct elf_psinfo
>    char pr_psargs[ELF_PRARGSZ];       /* Initial part of argument list.  */
>    int pr_wstat;                      /* Zombie exit status (not really 
> used).  */
>    int pr_argc;                       /* The argument count at startup.  */
> -  uintptr_t pr_argv;         /* Original argument vector address.  */
> -  uintptr_t pr_envp;         /* Original environment vector address.  */
> +  vm_address_t pr_argv;              /* Original argument vector address.  */
> +  vm_address_t pr_envp;              /* Original environment vector address. 
>  */
>  };
>  typedef struct elf_psinfo psinfo_t;

Amended as follows.  It may be some kind of
layering/encapsulation/abstraction violation to be including a Mach
header file in <sys/procfs.h>, but given that vm_address_t is a Mach
type, it's what we should do.  Maybe we shouldn't be using vm_address_t
here, actually.

commit 305e83c42624c8cf84452d5d0fa7669e2af6f997
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Mon May 23 11:23:57 2016 +0200

    Make <sys/procfs.h> self-contained again
    Commit e914bfc3d6e5ddf6f8c5e93a4334873a48a24ddf made <sys/procfs.h>
    Autoconf/configure tests change as follows:
        checking sys/procfs.h usability... [-yes-]{+no+}
        checking sys/procfs.h presence... yes
        {+configure: WARNING: sys/procfs.h: present but cannot be compiled+}
        {+configure: WARNING: sys/procfs.h:     check for missing prerequisite 
        {+configure: WARNING: sys/procfs.h: see the Autoconf documentation+}
        {+configure: WARNING: sys/procfs.h:     section "Present But Cannot Be 
        {+configure: WARNING: sys/procfs.h: proceeding with the compiler's 
        checking for sys/procfs.h...[-yes-]{+no+}
        [-checking for prstatus_t in sys/procfs.h... no-]
        [-checking for prstatus32_t in sys/procfs.h... no-]
        [-checking for prstatus_t.pr_who in sys/procfs.h... no-]
        [-checking for prstatus32_t.pr_who in sys/procfs.h... no-]
        [-checking for pstatus_t in sys/procfs.h... yes-]
        [-checking for pxstatus_t in sys/procfs.h... no-]
        [-checking for pstatus32_t in sys/procfs.h... no-]
        [-checking for prpsinfo_t in sys/procfs.h... no-]
        [-checking for prpsinfo_t.pr_pid in sys/procfs.h... no-]
        [-checking for prpsinfo32_t in sys/procfs.h... no-]
        [-checking for prpsinfo32_t.pr_pid in sys/procfs.h... no-]
        [-checking for psinfo_t in sys/procfs.h... yes-]
        [-checking for psinfo_t.pr_pid in sys/procfs.h... yes-]
        [-checking for psinfo32_t in sys/procfs.h... no-]
        [-checking for psinfo32_t.pr_pid in sys/procfs.h... no-]
        [-checking for lwpstatus_t in sys/procfs.h... yes-]
        [-checking for lwpxstatus_t in sys/procfs.h... no-]
        [-checking for lwpstatus_t.pr_context in sys/procfs.h... no-]
        [-checking for lwpstatus_t.pr_reg in sys/procfs.h... yes-]
        [-checking for lwpstatus_t.pr_fpreg in sys/procfs.h... yes-]
        [-checking for win32_pstatus_t in sys/procfs.h... no-]
    That is because of:
        $ echo '#include <sys/procfs.h>' | gcc -x c - -o /dev/null -S
        In file included from <stdin>:1:0:
        /usr/include/sys/procfs.h:66:3: error: unknown type name ‘vm_address_t’
           vm_address_t pr_argv;  /* Original argument vector address.  */
        /usr/include/sys/procfs.h:67:3: error: unknown type name ‘vm_address_t’
           vm_address_t pr_envp;  /* Original environment vector address.  */
    * include/sys/procfs.h: Include <mach/std_types.h> to make file 
 include/sys/procfs.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git include/sys/procfs.h include/sys/procfs.h
index 09d2030..4acc346 100644
--- include/sys/procfs.h
+++ include/sys/procfs.h
@@ -1,5 +1,5 @@
 /* <sys/procfs.h> -- data structures describing ELF core file formats
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2015, 2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,6 +29,7 @@
 #include <features.h>
 #include <inttypes.h>
+#include <mach/std_types.h>
 #include <sys/types.h>
 #include <sys/time.h>
 #include <ucontext.h>


Attachment: signature.asc
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]