Sylvain Beucler [Tue, 27 May 2014 20:21:55 +0000 (22:21 +0200)]
gnulib-tool: adjust translation wget to avoid a https redirection
Context: http://translationproject.org/latest/gnulib redirects to
https://translationproject.org/latest/gnulib/
Rationale: if the user falls back to wget, she doesn't have rsync and
is probably in a minimal build environment, where packages such as
'ca-certificates' are missing as well, resulting in a failed (and
difficult to detect since ignored) translation initial fetch.
Consequently let's avoid https if possible, and add the missing
trailing slash. This also avoids an unnecessary 302 redirection.
* gnulib-tool: Add trailing slash to gnulib URL.
Pádraig Brady [Thu, 22 May 2014 16:09:49 +0000 (17:09 +0100)]
getlogin_r-tests: fix various issues in recent change
* tests/test-getlogin_r.c: Include required headers that were
missed in recent commit eec20b4e.
Also consistently check the errno rather than the return value from
getlogin_r as POSIX only specifies that non zero is returned on error.
* modules/getlogin_r-tests (configure.ac): Add the check for ttyname().
Paul Eggert [Thu, 22 May 2014 07:05:01 +0000 (00:05 -0700)]
fchdir: port 'open' and 'close' redefinitions to AIX 7.1
* lib/chown.c, lib/clean-temp.c, lib/copy-file.c, lib/execute.c:
* lib/fsusage.c, lib/gc-gnulib.c, lib/javacomp.c, lib/mountlist.c:
* lib/openat-proc.c, lib/pagealign_alloc.c, lib/progreloc.c:
* lib/spawn-pipe.c:
Do not #undef 'open' and 'close'. AIX 7 does '#define open open64'
and then 'int open64(const char *, int, ...);', which means the
declaration for 'open' gets lost if we later '#undef open'.
Discovered while building grep pretest 2.18.151-1c770 on AIX 7.1,
where the compilation reported the non-fatal error "In function
'openat_proc_name' ... warning: implicit declaration of function
'open'". In this case the error is relatively harmless, but in
other cases it might not be so minor.
Paul Eggert [Wed, 21 May 2014 01:14:48 +0000 (18:14 -0700)]
xalloc: don't potentially generate invalid code for xmemdup calls
* lib/xalloc.h (xmemdup): Do not mark with _GL_ATTRIBUTE_ALLOC, as
this function can initialize the newly-allocated storage with new
pointers, which means this function is not malloc-like. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56955
Pádraig Brady [Sun, 18 May 2014 01:48:03 +0000 (02:48 +0100)]
getlogin-tests: avoid false failure under cron
* tests/test-getlogin.c (main): Avoid verifying errnos from ttyname()
since that's not what's under test. Centos 6 was seen to return
EINVAL for ttyname() when run from cron.
Paul Eggert [Fri, 16 May 2014 20:56:00 +0000 (13:56 -0700)]
mbrlen, mbrtowc: fix bug with empty input
* lib/mbrtowc.c (rpl_mbrtowc) [MBRTOWC_EMPTY_INPUT_BUG]: Fix the bug.
* m4/mbrlen.m4 (gl_MBRLEN_EMPTY_INPUT): New macro. It's not used,
so this is mainly for documentation.
* m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT): New macro.
(gl_FUNC_MBRTOWC): Use it.
* tests/test-mbrtowc.c (main): Test for the bug.
Paul Eggert [Fri, 16 May 2014 01:30:04 +0000 (18:30 -0700)]
doc: document mbrtowc and mbrlen problem with empty input
* doc/posix-functions/mbrlen.texi (mbrlen):
* doc/posix-functions/mbrtowc.texi (mbrtowc):
Document portability problem when the input string is empty. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=16950
getlogin-tests: avoid false failure under sudo/ssh etc.
* modules/getlogin-tests (configure.ac): Check for ttyname().
* tests/test-getlogin.c (main): Don't depend on environment variables
to correlate with getlogin(), since sudo and ssh etc. can tamper
with the LOGNAME and USER env vars. Instead lookup the name from
the uid associated with the stdin tty.
Paul Eggert [Sun, 11 May 2014 07:36:37 +0000 (00:36 -0700)]
mbsstr, quotearg, xstrtol: pacify IRIX 6.5 cc
These were found when building the latest grep snapshot on IRIX 6.5.
* lib/mbsstr.c (knuth_morris_pratt_multibyte): Break "a=b=c;" into
"b=c; a=b;", since IRIX 6.5 cc complains about the former if b is
never used later.
* lib/quotearg.c (quoting_options_from_style):
* lib/xstrtol.c (__xstrtol):
Use enum instead of 0, to pacify IRIX 6.5 cc.
gitlog-to-changelog: revert inclusion of git-log-fix file
Assaf Gordon reported that this would replace a project's
existing git-log-fix. This file is always going to be project
specific if it exists at all, so it's better to make it optional.
A corresponding change will be made to GNU hello to improve
usage of the git-log-fix file.
* build-aux/git-log-fix: Delete dummy file.
* modules/gitlog-to-changelog: Don't reference the project
specific git-log-fix file.
Natanael Copa [Fri, 18 Apr 2014 09:16:27 +0000 (09:16 +0000)]
physmem: use sysinfo if _SC_PHYS_PAGES unavailable
* lib/physmem.c (physmem_total): Some systems like musl libc do not
(yet) support _SC_PHYS_PAGES. Use the linux syscall sysinfo as fallback
if _SC_PHYS_PAGES or _SC_PAGESIZE fails.
(physmem_available): Likewise for _SC_AVPHYS_PAGES.
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Paul Eggert [Sat, 19 Apr 2014 05:29:55 +0000 (22:29 -0700)]
exclude: port to strict C99
Strict C does not allow converting a function pointer to void *
and vice versa. Pass a pointer to a function pointer instead.
* lib/exclude.c (add_exclude_file):
Pass the address of the function pointer.
(call_addfn): And deference the address here, to match.
Paul Eggert [Fri, 18 Apr 2014 05:41:09 +0000 (22:41 -0700)]
regex: do not depend on malloc-gnu
* modules/regex (Depends-on): Remove malloc-gnu.
It's no longer needed, because of the 2012-12-29 patch
"regex: port to hosts where malloc (0) == NULL".
Reported by Nathan Kennedy in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-04/msg00026.html
Paul Eggert [Sat, 12 Apr 2014 17:45:47 +0000 (10:45 -0700)]
xalloc: allow x2nrealloc (P, PN, S) where P && !*PN
* lib/xalloc.h (x2nrealloc): Extend slightly, to allow the current
size to be zero even when the pointer is nonnull. This
accommodates the use case where P is malloc (0) and *PN is 0 on a
host where malloc (0) yields nonnull.
* lib/fts.c (_D_EXACT_NAMLEN): Remove macro.
(fts_build): Store the length of the dp->d_name entry in a local variable
instead of calling strlen() several times via the above, removed macro.
For 'rm -rf some-dir' with e.g. 1M directory entries, this speeds up the
run by ~4%, and reduces the execution time by about a third if run
via "ltrace -c rm -rf some-dir".
Paul Eggert [Thu, 27 Mar 2014 20:38:41 +0000 (13:38 -0700)]
obstack: Remove ancient NeXTSTEP gcc support conditional
This change will ease merging with glibc. The "#if ... __NEXT__"
causes a warning with -Wundef which glibc now enables by default.
Problem reported by Will Newton in
<http://lists.gnu.org/archive/html/bug-gnulib/2014-03/msg00032.html>.
glibc <sys/cdefs.h> now uses __extension__ for GCC 2.8 or later,
so go with that.
* lib/obstack.h (__extension__):
Bernhard Voelker [Wed, 26 Mar 2014 01:45:58 +0000 (02:45 +0100)]
strftime: wrap macros in "do {...} while(0)"
* lib/strftime.c (DO_NUMBER): Wrap multi-statement code block of
this macro in "do {...} while(0)" to prevent false use as a
single statement, e.g., in an un-braced "{}" else-block.
(DO_SIGNED_NUMBER, DO_TZ_OFFSET, DO_NUMBER_SPACEPAD): Likewise.
(strftime_case_): Remove 'else' after 'goto' - which was the
only non-fatal, un-braced use of one of the above macros.
Spotted by coverity (NESTING_INDENT_MISMATCH).
Bernhard Voelker [Wed, 26 Mar 2014 00:42:11 +0000 (01:42 +0100)]
modechange: avoid memory leaks for invalid octal modes
* lib/modechange.c (mode_compile): During the parsing of
notations like +40, free the 'mc' buffer for invalid mode
strings like +17777 (greater than the maximum octal mode),
=18 (bad octal mode characters) or u=1 ('affected' with
octal modes).
Reproducer, e.g.:
$ valgrind --leak-check=full chmod +17777 file
Introduced via the 2012-03-09 commit, 4730c3e3, "modechange:
add notations +40, 00440, etc.".
Spotted by coverity (RESOURCE_LEAK).
Paul Eggert [Fri, 7 Mar 2014 05:53:50 +0000 (21:53 -0800)]
regex: port to OS X 10.8.5 en_US.UTF-8 locale
This fixes a bug when ignoring case and when comparing the
titlecase letter 'Lj' (U+01C8 LATIN CAPITAL LETTER L WITH SMALL
LETTER J) to the corresponding uppercase letter 'LJ' (U+01C7 LATIN
CAPITAL LETTER LJ). In the OS X 10.8.5 en_US.UTF-8 locale, the
titlecase letter is neither lowercase nor uppercase, but
uppercasing the titlecase letter (via towupper) yields the
uppercase letter, so the two letters should match when ignoring case.
Problem reported by Jim Meyering in <http://debbugs.gnu.org/16911#16>.
* lib/regex_internal.c (build_wcs_upper_buffer, build_upper_buffer):
Don't test whether a character is lowercase before uppercasing it.
Kevin Cernekee [Wed, 5 Mar 2014 20:10:56 +0000 (12:10 -0800)]
stdint, read-file: fix missing SIZE_MAX on Android (tiny change)
This is basically one of the options Bruno Haible proposed in:
http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00282.html
* lib/sys_types.in.h (_GL_INCLUDING_UNISTD_H): New macro.
* lib/stdint.in.h: Use it.
* modules/stdint (Depends-on): Add sys_types.
Pádraig Brady [Tue, 25 Feb 2014 10:58:48 +0000 (10:58 +0000)]
parse-datetime: fix crash or infloop in TZ="" parsing
This was reported in http://bugs.gnu.org/16872
from the coreutils command: date -d 'TZ="""'
The infinite loop for this case was present since the
initial TZ="" parsing support in commit de95bdc2 29-10-2004.
This was changed to a crash or heap corruption depending
on the platform with commit 2e3e4195 18-01-2010.
* lib/parse-datetime.y (parse_datetime): Break out of the
TZ="" parsing loop once the second significant " is found.
Also skip over any subsequent whitespace to be consistent
with the non TZ= case.
* tests/test-parse-datetime.c: Add test cases for TZ="" parsing.
Paul Eggert [Thu, 27 Feb 2014 07:57:26 +0000 (23:57 -0800)]
savedir: new symbol for fast-read version
* lib/savedir.h (SAVEDIR_SORT_FASTREAD): New symbol, for programs
like GNU cp that want to use SAVEDIR_SORT_INODE if available,
SAVEDIR_SORT_NONE otherwise. Problem reported by Bernhard Voelker in:
http://lists.gnu.org/archive/html/coreutils/2014-02/msg00037.html
Paul Eggert [Tue, 25 Feb 2014 19:16:27 +0000 (11:16 -0800)]
unistd: port readlink to Mac OS X 10.3.9
* lib/unistd.in.h (_GL_INCLUDING_UNISTD_H): New macro, to work
around self-include problem in Mac OS X 10.3.9 when combined with
readlink module. Problem reported by Klaus Zietler in
<http://bugs.gnu.org/16825>.
Paul Eggert [Mon, 24 Feb 2014 00:16:31 +0000 (16:16 -0800)]
diffseq: remove TOO_EXPENSIVE heuristic
Problem with diffutils reported by Vincent Lefevre in
<http://bugs.gnu.org/16848>. The simplest solution is to remove
the TOO_EXPENSIVE heuristic that I added to GNU diff in 1993.
Although appropriate for circa-1993 hardware, these days the heuristic
seems to be more trouble than it's worth.
* lib/diffseq.h: Modernize citations.
(struct context): Remove member too_expensive.
All uses changed.
(struct partition): Remove members lo_minimal, hi_minimal.
All uses changed.
(diag, compareseq): Remove arg find_minimal. All uses changed.
(diag): Remove the TOO_EXPENSIVE heuristic that I added back in
1993 to make 'diff' run faster (but not as well) on large inputs.
These days, computers are fast enough that it's typically better
to run slower but more accurately.
* lib/fstrcmp.c: Remove duplicate comment.
* lib/fstrcmp.c (strcmp_bounded):
* lib/git-merge-changelog.c (compute_differences):
Adjust to diffseq.h changes.
Pádraig Brady [Tue, 14 Jan 2014 16:59:07 +0000 (16:59 +0000)]
spawn: fix link error on uclibc
* m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): use AC_SEARCH_LIBS,
to incorporate -lrt if needed (on uclibc for example).
* modules/posix_spawn: Reference the substituted LIB.
Thomas Petazzoni [Fri, 21 Feb 2014 23:41:38 +0000 (00:41 +0100)]
m4: fix gl_TIMER_TIME() detection of threads on uClibc
The timer_time.m4 gl_TIMER_TIME function determines which libraries
need to be linked to get access to the timer function, generally -lrt
for Linux systems. On platforms where threads are used, librt
typically uses thread functions from libpthread.
However, the test to determine whether the platform has thread or not
is incorrect: it assumes that if the C library is uClibc, then threads
are not available. This is actually not true: uClibc has configurable
thread support, and when thread support is available, librt calls
libpthread functions.
This is important when static linking is used, because otherwise only
-lrt is used at link time, which fails because librt calls undefined
thread functions. Both -lrt and -lpthread must be passed.
This problem is fixed by making the uClibc thread detection a bit
smarter, thanks to the usage of the __HAS_NO_THREADS__ macro defined
in <bits/uClibc_config.h>, which itself is included by <features.h>.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 21 Feb 2014 20:02:10 +0000 (13:02 -0700)]
maintainer-makefiles: provide AC_PROG_SED for older autoconf
Pavel Hrdina reported build failures on RHEL 5, where autoconf 2.59
is still the default, and predates the introduction of AC_PROG_SED.
This version is copied from autoconf 2.69, but with lots of constructs
open-coded because of macros not being available in 2.59; I tested
that the result selects the correct sed under RHEL 5.
* m4/gnulib-common.m4 (AC_PROG_SED): Copy from newer autoconf.
This commit adds support for POSIX extended regular expressions
and fixes a long-standing memory leak (pattern buffer was never
freed). It also implements a new interface function to read
exclude patterns from a FILE, which passes an additional parameter
to its callback function, thereby allowing to preserve its state
between invocations.
* lib/exclude.c (struct patopts): Pack regex and pattern into union.
(pattern_buffer): New struct.
(exclude): New member patbuf.
(exclude_add_pattern_buffer): New function.
(free_exclude_segment): Free regexps.
(free_exclude): Free allocated pattern buffers.
(exclude_patopts): New function.
(file_pattern_matches): Use exclude_patopts.
(add_exclude): support regexps.
(add_exclude_fp): New function.
(add_exclude_file): Rewrite using add_exclude_fp.
(fnmatch_pattern_has_wildcards): Support posix extended regexps.
* lib/exclude.h (EXCLUDE_REGEX, EXCLUDE_ALLOC): New flags.
(add_exclude_fp)
(exclude_add_pattern_buffer): New prototypes.
* modules/exclude: Depends on regex and filename.
Eric Blake [Thu, 20 Feb 2014 13:56:42 +0000 (06:56 -0700)]
maintainer-makefiles: use $(SED) for syntax check
Roman Bogorodskiy reported that attempts to use 'make syntax-check'
for libvirt on a BSD host was failing, due to libvirt's use of
GNU sed constructs in cfg.mk. While libvirt could be patched to
use only portable sed constructs, it is also worth making sed
replaceable so that any maintainer can use a consistent sed program
rather than being hardcoded to the first 'sed' on $PATH.
* modules/maintainer-makefile (configure.ac): Check for sane sed.
* top/maint.mk: Change sed to $(SED).
Paul Eggert [Wed, 5 Feb 2014 19:09:15 +0000 (11:09 -0800)]
file-type: add support for doors and other less-common file types
Problem with S_ISDOOR reported by Rich Burridge.
* lib/file-type.c (file_type): Do S_ISLNK early too. Do S_TYPEIS*
macros before the rest. Add S_ISCTG, S_ISDOOR, S_ISMPB, S_ISMPC,
S_ISMPX, S_ISNAM, S_ISNWK, S_ISOFD, S_ISOFL, S_ISPORT, S_ISWHT.
Eric Blake [Thu, 23 Jan 2014 03:39:45 +0000 (20:39 -0700)]
pthread: work around winpthread header pollution on mingw
Dan Berrange reported compilation failure of libvirt on Fedora 20
when cross-compiling to mingw; the problem was traced to bogus
macros in the winpthreads <pthread.h> header shipped as part of
mingw-headers 3.0.
CC util/libvirt_util_la-virerror.lo
In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/sys/time.h:10:0,
from ../gnulib/lib/sys/time.h:39,
from ../gnulib/lib/sys/select.h:117,
from util/virutil.h:31,
from util/virerror.c:35:
../gnulib/lib/time.h:468:21: error: expected identifier or '(' before '{' token
_GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer,
^
Gnulib's time.h was already working around the pthread.h pollution,
but now that newer mingw has started providing struct timespec,
the workaround was no longer being hit. Moving the pollution
workaround to the wrapper around the broken header solves the problem.
* lib/time.in.h: Move pthread workarounds...
* lib/pthread.in.h: ...here.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Also build pthread.h when we
detect macro pollution on mingw.
* doc/posix-headers/pthread.texi (pthread.h): Document the problems.
Paul Eggert [Tue, 21 Jan 2014 06:12:56 +0000 (22:12 -0800)]
fdopen-tests: port to Tru64
* tests/test-fdopen.c (main): Don't invoke fdopen on a file
descriptors that is not open, as POSIX doesn't specify the
resulting behavior and the test does not work on Tru64.
Problem reported by Steven M. Schweda in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-01/msg00079.html
Paul Eggert [Thu, 16 Jan 2014 21:01:07 +0000 (13:01 -0800)]
strtoimax: port to platforms lacking 'long long'
VMS's pre-C99 compiler lacks 'long long', so 'configure' doesn't
check whether strtoll is declared, which causes the C file to
wrongly report an error. Problem reported by Steven M. Schweda in:
http://lists.gnu.org/archive/html/bug-diffutils/2014-01/msg00003.html
* lib/strtoimax.c (strtoull):
Declare only if HAVE_UNSIGNED_LONG_LONG_INT.
(strtoll): Declare only if HAVE_LONG_LONG_INT.
Jim Meyering [Sat, 4 Jan 2014 00:58:50 +0000 (16:58 -0800)]
maint.mk: adapt openat.h-include-without-use test
* top/maint.mk (sc_prohibit_openat_without_use): Also check for
FCHMODAT_INLINE, FCHOWNAT_INLINE and STATAT_INLINE, to avoid
failing on gnulib's own lib/{chmod,chown,stat}at.c files.
With this change, running "make sc_maint" in gnulib's top-level
directory now passes for me.
Ben Pfaff [Thu, 9 Jan 2014 06:15:21 +0000 (22:15 -0800)]
relocatable-shell: Update suggested usage in maintainer documentation.
Instead of suggesting an inline usage of "sed", that would have to be
cut-and-pasted for every directory to be relocated, suggest a shell
function.
Make the example obviously an example, whereas previously it looked like
it might be literal text.
Thanks to Reuben Thomas <rrt@sc3d.org> for pointing out these issues. See
http://lists.gnu.org/archive/html/bug-gnulib/2014-01/msg00039.html for
further context.
Paul Eggert [Tue, 7 Jan 2014 19:46:27 +0000 (11:46 -0800)]
tests: simplify porting to Solaris 10 /bin/sh
Some test cases in 'grep' need a shell that groks '$(';
export re_shell_ for their benefit. Problem reported for 'grep'
by Dagobert Michelsen in <http://bugs.gnu.org/16380>.
* tests/init.sh (re_shell_): Export if it's used.
Eric Blake [Mon, 6 Jan 2014 17:26:37 +0000 (10:26 -0700)]
md5, sha1, sha256, sha512: support older autoconf
On RHEL 6 (using autoconf 2.63), './gnulib-tool --test crypto/md5'
fails with this, ever since commit 3386f398:
executing aclocal -I glm4
glm4/gl-openssl.m4:11: error: m4_defn: undefined macro: _m4_divert_diversion
glm4/gl-openssl.m4:11: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
aclocal: autom4te failed with exit status: 1
Autoconf 2.63b introduced some bug fixes to m4_divert*, including
the ability to use the diversion stack prior to calling m4_init;
and aclocal happens to be a use of autom4te where m4_init was
not invoked prior to the expansion of gl_CRYPTO_CHECK. The fix
is to copy the trick used in newer autoconf - wrap the entire
execution of autom4te inside one more layer of diversion stack,
where _m4_divert_diversion being defined serves as a nice witness
of whether we are already wrapped. This workaround has to live
in 00gnulib.m4 in order to come prior to any other m4 file that
might be included by virtue of gnulib.
Then, with my first attempt applied, I still got failures on
RHEL 5 (using autoconf 2.59); it turns out that without the
guaranteed-FIFO behavior of m4_wrap added in 2.62 and newer,
places that _do_ use m4_init got confused if our wrapper pops
its state in an m4_wrap that happens in LIFO order. It took
some experimenting to find a formula that guarantees we undo
the wrap at the correct moment before the m4_init warning
message can chew us out about an unabalanced diversion stack.
* m4/00gnulib.m4 (m4_divert_push): Wrap diversion stack
on older autoconf.
Reported off-list by Pavel Hrdina.
Eric Blake [Mon, 6 Jan 2014 17:20:59 +0000 (10:20 -0700)]
include_next: port to autoconf 2.63
On RHEL 6.4 (using autoconf 2.63), './gnulib-tool --test math'
fails with the following, since commit 74540d44:
executing autoconf
configure:5693: error: possibly undefined macro: AS_VAR_COPY
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
Since we document that we support out-of-the-box use with autoconf
2.59 and later, the fix is to provide a fallback definition.
* m4/gnulib-common.m4 (AS_VAR_COPY): Define if missing.
Jim Meyering [Sat, 4 Jan 2014 18:50:45 +0000 (10:50 -0800)]
maint: add a gnulib-local rule to keep non-ascii out of .texi files
* cfg.mk (sc_keep_gnulib_texi_files_mostly_ascii): New rule,
so that "make sc_maint" will ding anyone who puts non-ascii
in any of gnulib's .texi files.
Jim Meyering [Sat, 4 Jan 2014 01:17:27 +0000 (17:17 -0800)]
freadable, fwritable, fwriting: declare with the "pure" attribute
* lib/freadable.h (freadable): Declare with the "pure" attribute.
* lib/fwritable.h (fwritable): Likewise.
* lib/fwriting.h (fwriting): Likewise.
Suggested by Bruno Haible.
Jim Meyering [Sat, 4 Jan 2014 00:58:50 +0000 (16:58 -0800)]
maint.mk: adapt openat.h-include-without-use test
* top/maint.mk (sc_prohibit_openat_without_use): Also check for
FCHMODAT_INLINE, FCHOWNAT_INLINE and STATAT_INLINE, to avoid
failing on gnulib's own lib/{chmod,chown,stat}at.c files.
With this change, running "make sc_maint" in gnulib's top-level
directory now passes for me.
Paul Eggert [Thu, 2 Jan 2014 05:51:10 +0000 (21:51 -0800)]
relocatable-script: remove unused code
Problem reported by Reuben Thomas in:
http://lists.gnu.org/archive/html/bug-gnulib/2013-12/msg00117.html
* build-aux/relocatable.sh.in (func_tmpdir): Remove unused function.
Jim Meyering [Thu, 2 Jan 2014 04:25:44 +0000 (20:25 -0800)]
maint: fix public-submodule-commit to work with newer git
* top/maint.mk (public-submodule-commit): Remove excess quoting.
We were over-quoting the test arguments, and somewhere prior to
version 1.8.5.2.229, git stopped removing those excess quotes,
which made the test fail, since the unexpanded strings would
always differ; using GIT_TRACE=1 confirmed that the git merge-base
command wasn't even being run.
Eric Blake [Tue, 24 Dec 2013 18:16:07 +0000 (11:16 -0700)]
passfd: give nicer error for recvfd at eof
I noticed that recvfd() fails with errno set to EACCES if the
other end of the socket has closed (such as if it calls _exit());
but "Permission denied" as the strerror() message doesn't read
very well. This improves things to give the nicer message:
"Transport endpoint is not connected".
* lib/passfd.c (recvfd): Fake ENOTCONN if other end closes early.
* tests/test-passfd.c (main): Enhance test to cover this.
Paul Eggert [Tue, 17 Dec 2013 20:38:54 +0000 (12:38 -0800)]
gettimeofday: port recent C++ fix to Emacs
Without this further patch, Emacs won't build due to
the portcheck failing. Also, this simplifies the patch a bit.
* lib/time.in.h (localtime, gmtime): Don't replace unless
GNULIB_GETTIMEOFDAY. Treat them more like mktime.
* lib/time.in.h (localtime, gmtime):
* m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME):
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS):
* modules/time (time.h):
Don't worry about about the possibility of localtime and gmtime
being absent; they're present in all C libraries we know about.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS):
Don't assume sys_time is present and has been initialized.
Instead, use a hack that should work even if it hasn't been.
Don't use a portcheck for gmtime or localtime; this supports
the hack.
* modules/time (time.h): Substitute GNULIB_GETTIMEOFDAY.
John W. Eaton [Tue, 17 Dec 2013 19:04:37 +0000 (11:04 -0800)]
gettimeofday: fix C++ crosscompilation
Never replace gmtime and localtime by macros when compiling with
C++, this prevents <ctime> from being included.
* m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Do not
define gmtime and localtime as preprocessor macros. Instead
define some HAVE_GMTIME, HAVE_LOCALTIME, REPLACE_GMTIME, and
REPLACE_LOCALTIME substitutions.
* lib/time.in.h: Declare gmtime and localtime when needed.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): AC_SUBST HAVE_GMTIME,
HAVE_LOCALTIME, REPLACE_GMTIME, and REPLACE_LOCALTIME.
* modules/time: Depend on gettimeofday, and substitute the above
variables in time.h.