[Top][All Lists]
[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
- gnulib warnings while building coreutils (was: stable or not?),
Eric Blake <=