bug-coreutils
[Top][All Lists]
Advanced

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

gnulib warnings while building coreutils (was: stable or not?)


From: Eric Blake
Subject: gnulib warnings while building coreutils (was: stable or not?)
Date: Thu, 20 Aug 2009 08:23:55 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.22) Gecko/20090605 Thunderbird/2.0.0.22 Mnenhy/0.7.6.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Jim Meyering on 8/20/2009 7:59 AM:
> Eric Blake wrote:
> 
>> are more warnings in gnulib not worth fixing, but these looked obvious;
>> meanwhile the warnings from chcon onwards halted the build since you add
>> -Werror in src):
>>
>>   CC     exclude.o
>> exclude.c: In function `fnmatch_pattern_has_wildcards':
>> exclude.c:116: warning: initialization discards qualifiers from pointer
>> target type

Assigning a string literal to non-const char*.

>> exclude.c: At top level:
>> exclude.c:204: warning: no previous prototype for 'new_exclude_segment'
>> exclude.c:333: warning: no previous prototype for 'excluded_file_pattern_p'
>> exclude.c:356: warning: no previous prototype for 'excluded_file_name_p'
> 
> I think those are new and should be fixed.

I think all three of these new functions are for internal use only; so
adding static fixes the issue.

> 
>>   CC     vasnprintf.o
>> vasnprintf.c:143:1: warning: macro "DCHAR_SET" is not used
>> vasnprintf.c:258:1: warning: macro "decimal_point_char_defined" is not used
>> vasnprintf.c:261: warning: function declaration isn't a prototype
>> vasnprintf.c: In function `decimal_point_char':
>> vasnprintf.c:261: warning: old-style parameter declaration
> 
> It'd be great to fix more of the ones in gnulib.
> I haven't spent much time on things that belong to Bruno.
> There are a few in things I could change, but for which
> the only possible change appears to make matters worse.

Avoiding unused macros is overkill, so I won't touch that.  But the
old-style declaration is easy - add an explicit void.

> 
>>   CC     chcon.o
>> In file included from chcon.c:28:
>> ../lib/selinux-at.h:34: warning: declaration of 'dirfd' shadows a global
>> declaration
>> /usr/include/sys/dirent.h:68: warning: shadowed declaration is here
> 
> This is a good one to fix.  Easy, too.
> Just rename the parameters via e.g., s/dirfd/dir_fd/.

Done (well, I see Jim wrote an email on the same subject while I was
typing this email).  I'm pushing this:

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkqNXHsACgkQ84KuGfSFAYCF4gCglpPSx/wqYVIbtglC2EFh0LXB
pr0AoLro9h/VV6etJsY4OmwF0+ROR+aQ
=+fO8
-----END PGP SIGNATURE-----
From bab00aef25c236cd0b910fa70465854d94cdbf0e Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Thu, 20 Aug 2009 08:21:46 -0600
Subject: [PATCH] build: avoid some compiler warnings

* lib/selinux-at.h: Use dir_fd, not dirfd, to avoid shadowing.
* lib/exclude.c (fnmatch_pattern_has_wildcards): Use correct
type.
(new_exclude_segment, excluded_file_pattern_p)
(excluded_file_name_p): Reduce scope.
* lib/vasnprintf.c (decimal_point_char): Avoid warning on
old-style declaration.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog        |   11 +++++++++++
 lib/exclude.c    |    8 ++++----
 lib/selinux-at.h |   20 ++++++++++----------
 lib/vasnprintf.c |    2 +-
 4 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d50fcb0..23a9238 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2009-08-20  Eric Blake  <address@hidden>
+
+       build: avoid some compiler warnings
+       * lib/selinux-at.h: Use dir_fd, not dirfd, to avoid shadowing.
+       * lib/exclude.c (fnmatch_pattern_has_wildcards): Use correct
+       type.
+       (new_exclude_segment, excluded_file_pattern_p)
+       (excluded_file_name_p): Reduce scope.
+       * lib/vasnprintf.c (decimal_point_char): Avoid warning on
+       old-style declaration.
+
 2009-08-20  Simon Josefsson  <address@hidden>

        * tests/test-exclude1.sh: Handle Windows EOL.
diff --git a/lib/exclude.c b/lib/exclude.c
index d4baab5..32f2a0a 100644
--- a/lib/exclude.c
+++ b/lib/exclude.c
@@ -113,7 +113,7 @@ struct exclude
 bool
 fnmatch_pattern_has_wildcards (const char *str, int options)
 {
-  char *cset = "\\?*[]";
+  const char *cset = "\\?*[]";
   if (options & FNM_NOESCAPE)
     cset++;
   while (*str)
@@ -199,7 +199,7 @@ string_free (void *data)

 /* Create new exclude segment of given TYPE and OPTIONS, and attach it
    to the tail of list in EX */
-struct exclude_segment *
+static struct exclude_segment *
 new_exclude_segment (struct exclude *ex, enum exclude_type type, int options)
 {
   struct exclude_segment *sp = xzalloc (sizeof (struct exclude_segment));
@@ -328,7 +328,7 @@ exclude_fnmatch (char const *pattern, char const *f, int 
options)

 /* Return true if the exclude_pattern segment SEG excludes F.  */

-bool
+static bool
 excluded_file_pattern_p (struct exclude_segment const *seg, char const *f)
 {
   size_t exclude_count = seg->v.pat.exclude_count;
@@ -350,7 +350,7 @@ excluded_file_pattern_p (struct exclude_segment const *seg, 
char const *f)
 /* Return true if the exclude_hash segment SEG excludes F.
    BUFFER is an auxiliary storage of the same length as F (with nul
    terminator included) */
-bool
+static bool
 excluded_file_name_p (struct exclude_segment const *seg, char const *f,
                      char *buffer)
 {
diff --git a/lib/selinux-at.h b/lib/selinux-at.h
index 9716fe9..1d84c19 100644
--- a/lib/selinux-at.h
+++ b/lib/selinux-at.h
@@ -20,33 +20,33 @@
 /* These are the dir-fd-relative variants of the functions without the
    "at" suffix.  For example, getfileconat (AT_FDCWD, file, &c) is usually
    equivalent to getfilecon (file, &c).  The emulation is accomplished
-   by first attempting getfilecon ("/proc/self/fd/DIRFD/FILE", &c).
+   by first attempting getfilecon ("/proc/self/fd/DIR_FD/FILE", &c).
    Failing that, simulate it via save_cwd/fchdir/getfilecon/restore_cwd.
    If either the save_cwd or the restore_cwd fails (relatively unlikely),
    then give a diagnostic and exit nonzero.  */

 /* dir-fd-relative getfilecon.  Set *CON to the SELinux security context
-   of the file specified by DIRFD and FILE and return the length of *CON.
-   DIRFD and FILE are interpreted as for fstatat[*].  A non-NULL *CON
+   of the file specified by DIR_FD and FILE and return the length of *CON.
+   DIR_FD and FILE are interpreted as for fstatat[*].  A non-NULL *CON
    must be freed with freecon.  Upon error, set *CON to NULL, set errno
    and return -1.
    [*] with flags=0 here, with flags=AT_SYMLINK_NOFOLLOW for lgetfileconat  */
-int  getfileconat (int dirfd, char const *file, security_context_t *con);
+int  getfileconat (int dir_fd, char const *file, security_context_t *con);

 /* dir-fd-relative lgetfilecon.  This function is just like getfileconat,
-   except when DIRFD and FILE specify a symlink:  lgetfileconat operates on
+   except when DIR_FD and FILE specify a symlink:  lgetfileconat operates on
    the symlink, while getfileconat operates on the referent of the symlink.  */
-int lgetfileconat (int dirfd, char const *file, security_context_t *con);
+int lgetfileconat (int dir_fd, char const *file, security_context_t *con);

 /* dir-fd-relative setfilecon.  Set the SELinux security context of
-   the file specified by DIRFD and FILE to CON.  DIRFD and FILE are
+   the file specified by DIR_FD and FILE to CON.  DIR_FD and FILE are
    interpreted as for fstatat[*].  Upon success, return 0.
    Otherwise, return -1 and set errno.  */
-int  setfileconat (int dirfd, char const *file, security_context_t con);
+int  setfileconat (int dir_fd, char const *file, security_context_t con);

 /* dir-fd-relative lsetfilecon.  This function is just like setfileconat,
    except that rather than dereferencing a symlink, this function affects it. 
*/
 /* dir-fd-relative lsetfilecon.  This function is just like setfileconat,
-   except when DIRFD and FILE specify a symlink:  lsetfileconat operates on
+   except when DIR_FD and FILE specify a symlink:  lsetfileconat operates on
    the symlink, while setfileconat operates on the referent of the symlink.  */
-int lsetfileconat (int dirfd, char const *file, security_context_t con);
+int lsetfileconat (int dir_fd, char const *file, security_context_t con);
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
index bff204b..661445c 100644
--- a/lib/vasnprintf.c
+++ b/lib/vasnprintf.c
@@ -257,7 +257,7 @@ local_wcsnlen (const wchar_t *s, size_t maxlen)
 # ifndef decimal_point_char_defined
 #  define decimal_point_char_defined 1
 static char
-decimal_point_char ()
+decimal_point_char (void)
 {
   const char *point;
   /* Determine it in a multithread-safe way.  We know nl_langinfo is
-- 
1.6.3.3.334.g916e1


reply via email to

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