Since commit 3bf75404, on 26-09-1998, errno may not have been reset.
Noticed with a spurious coreutils test failure on Darwin 14.0.0.
* lib/xstrtol.c (__xstrtol): Always reset errno before returning.
I just debugged a failure in sharutils-4.14.2-1 for using basename()
without including <libgen.h>. In the process, I realized that we
aren't doing a good job of explaining why we don't offer a libgen.h
replacement (it is useless because the only two functions it
provides are also useless).
* doc/posix-headers/libgen.texi (libgen.h): Refer to dirname module.
Signed-off-by: Eric Blake <eblake@redhat.com>
This works better than 'assert' when compiling with -DNDEBUG,
as it avoids some compiler diagnostics in that case.
Reported by Norihiro Tanaka in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-12/msg00215.html
* MODULES.html.sh (func_all_modules): Add 'assure'.
* lib/assure.h, modules/assure: New files.
* lib/chdir-long.c, lib/cycle-check.c, lib/fchdir.c, lib/fts.c:
* lib/poll.c, lib/savewd.c, lib/utimens.c, lib/xstrtol.c:
Prefer 'assure' to 'assert'.
* modules/chdir-long, modules/cycle-check, modules/fchdir:
* modules/poll, modules/savewd, modules/utimens, modules/xstrtol:
Depend on 'assure'.
* m4/getcwd-path-max.m4: Avoid the replacement if it
won't be effective due to the PATH_MAX limitation of lstat().
(gl_cv_func_getcwd_path_max): Adjust to indicate this case.
* m4/getcwd.m4 (gl_FUNC_GETCWD): Define HAVE_GETCWD_SHORTER
for this case for use in tests, and also exclude this
case when setting REPLACE_GETCWD.
* tests/test-getcwd.c (test_long_name): Restrict the
tested path length so that lstat() will not be passed
a path greater than PATH_MAX.
Also key a test condition on HAVE_OPENAT_SUPPORT rather
than AT_FDCWD, since the latter is set unconditionally
since Sep 2009 in commit 52c658e9.
* lib/parse-datetime.y (yylex): Use the same prototype in the
function definition as the declaration, to avoid a -Wstrict-prototypes
warning seen when using byacc.
* doc/posix-headers/stddef.texi (stddef.h): Document max_align_t.
* lib/stddef.in.h (_@GUARD_PREFIX@_STDDEF_H) [__need_wint_t]:
Do not undef, as that might cause max_align_t to be defined twice.
Instead, change use to check for _GL_STDDEF_WINT_T too.
(max_align_t) [!HAVE_MAX_ALIGN_T]: New decl.
* m4/stddef_h.m4 (gl_STDDEF_H, gl_STDDEF_H_DEFAULTS):
Check for max_align_t.
* modules/stddef (stddef.h): Substitute HAVE_MAX_ALIGN_T.
* modules/stddef-tests (Depends-on): Add stdalign.
* tests/test-stddef.c: Test max_align_t.
On Mac OS X 10.8, the TARGET_* macros are unconditonally defined
as 0 or 1 in <TargetConditionals.h>, and the previous check always
yielded true on non-iOS environment.
* lib/unistd.in.h (environ) [__APPLE__]: Check the values of
TARGET_OS_IPHONE and TARGET_IPHONE_SIMULATOR, instead of whether
they are defined.
* lib/posixtm.c (IF_LINT): Remove.
(year, posix_time_parse):
Return true (not 0) if successful. All callers changed.
(posix_time_parse): Simplify to pacify GCC without need for IF_LINT.
UNIXROOT is used to specify a drive of a root of FHS. So if a path is
started with '/', then it should be translated to "$UNIXROOT/".
* lib/relocatable.c (relocate): Prepend $UNIXROOT to pathname if it is
started with '/' on EMX.
On OS/2 kLIBC, freopen() returns NULL even if it is successful if
filename is NULL.
* lib/freopen.c (rpl_freopen): Workaround.
* m4/freopen.m4: Add os2* case.
* lib/relocatable.c: Define strcmp and strncmp to stricmp and strnicmp
on EMX, respectively.
(_DLL_InitTerm): New on EMX.
(get_shared_library_fullname): Implement on EMX.
Signed-off-by: Eric Blake <eblake@redhat.com>
On OS/2 kLIBC, struct sched_param is in spawn.h. So without this a
redefinition error occurs when sched.h is inclued by spawn.h.
* lib/sched.in.h: Include spawn.h on kLIBC.
* lib/sched_h.m4: Check struct sched_param in spawn.h as well.
With this patch it is possible to put e.g. "perl::XML:XPath -" in
$buildreq in bootstrap.conf which will cause a check for perl module
XML::XPath using:
perl -m"XML::XPath" -e 'exit 0' >/dev/null 2>&1
If this fails due to any other error than XML::XPath missing, it is left
on the user to fix up his/her bootstrap.conf. One of the examples
might be perl itself missing, which should be in $buildreq and precede
any perl::Module specifications. Versioning of perl modules is not
supported.
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
An adjustment of the previous commit c5c4f53b.
* lib/vasnprintf.c (VASNPRINTF): free() generally doesn't set errno,
but it can potentially in certain edge cases.
Reported by Eric Blake.
* lib/filevercmp.h (filevercmp): Tag with _GL_ATTRIBUTE_PURE
* lib/posixtm.c: (IF_LINT): Define.
(posix_time_parse): Use it to void a "may be used uninitialized"
warning, seen only with -O3.
On platforms with CRLF endings (such as OS/2), use of 'echo' may
leave behind an unwanted CR.
* build-aux/git-version-gen: Use printf instead of echo and tr.
Signed-off-by: Eric Blake <eblake@redhat.com>
On OS/2, x:* is an absolute path, too.
* gnulib-tool (func_gnulib_dir): Add ?:* case.
(func_relconcat): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
* lib/argp-help.c (argp_doc): Never translate the empty string,
when "\v" is the first or last character of the string, as that
has a reserved meaning to return the header info from a po file.
This also fixes a small memory leak in the !post case.
The issue can be seen with this command for example:
LC_MESSAGES=en_US grub2-mknetdir --help
On AIX 7.1, 'select' is defined as static and cannot be referred
to from inline function.
* lib/pipe-filter-aux.h (nointr_select): Remove, manually expand
the definition...
* lib/pipe-filter-gi.c (filter_loop): ...here, and...
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): ...here.