mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
Standard output was never explicitly closed, so we could not
detect failure. Thus, bison would ignore the errors of writing
to a full file system and getting an I/O error on write, but only
for standard output, e.g., for --print-localedir, --print-datadir,
--help and some verbose output.
Now, "bison --print-datadir > /dev/full" reports the write failure:
bison: write error: No space left on device
Before, it would exit 0 with no diagnostic, implying success.
This is not an issue for "--output=-" or the other FILE-accepting
command-line options, because unlike most other GNU programs,
an output file argument of "-" is treated as the literal "./-",
rather than standard output.
* bootstrap.conf (gnulib_modules): Add closeout.
* src/main.c: Include "closeout.h".
Use atexit to ensure we close stdout.
* .gitignore: Ignore new files pulled in via gnulib-tool.
(cherry picked from commit acb5895680)
Conflicts:
m4/.gitignore
85 lines
2.8 KiB
Plaintext
85 lines
2.8 KiB
Plaintext
# Bootstrap configuration.
|
|
|
|
# Copyright (C) 2006-2012 Free Software Foundation, Inc.
|
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# gnulib modules used by this package.
|
|
gnulib_modules='
|
|
announce-gen argmatch assert calloc-posix close closeout config-h c-strcase
|
|
configmake dirname error extensions fdl fopen-safer gendocs getopt-gnu
|
|
gettext git-version-gen gitlog-to-changelog
|
|
gpl-3.0 hash inttypes isnan javacomp-script
|
|
javaexec-script ldexpl maintainer-makefile malloc-gnu mbschr mbsrchr
|
|
mbswidth obstack perror pipe-posix quote quotearg realloc-posix
|
|
spawn-pipe stdbool stpcpy strdup-posix strerror strtoul strverscmp
|
|
unistd unistd-safer unlocked-io update-copyright unsetenv verify
|
|
warnings xalloc xalloc-die xstrndup
|
|
|
|
fprintf-posix printf-posix snprintf-posix sprintf-posix
|
|
vsnprintf-posix vsprintf-posix
|
|
'
|
|
|
|
# Additional xgettext options to use. Use "\\\newline" to break lines.
|
|
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
|
|
--from-code=UTF-8\\\
|
|
--flag=asprintf:2:c-format\\\
|
|
--flag=complain:1:c-format --flag=complain_at:2:c-format\\\
|
|
--flag=fatal:1:c-format --flag=fatal_at:2:c-format\\\
|
|
--flag=warn:1:c-format --flag=warn_at:2:c-format\\\
|
|
--flag=unexpected_end:2:c-format\\\
|
|
'
|
|
XGETTEXT_OPTIONS_RUNTIME=$XGETTEXT_OPTIONS'\\\
|
|
--keyword=YY_ \\\
|
|
'
|
|
|
|
# Gettext supplies these files, but we don't need them since
|
|
# we don't have an intl subdirectory.
|
|
excluded_files='
|
|
m4/glibc2.m4
|
|
m4/intdiv0.m4
|
|
m4/intl.m4
|
|
m4/intldir.m4
|
|
m4/intmax.m4
|
|
m4/lcmessage.m4
|
|
m4/lock.m4
|
|
m4/longdouble.m4
|
|
m4/signed.m4
|
|
m4/uintmax_t.m4
|
|
m4/ulonglong.m4
|
|
m4/visibility.m4
|
|
'
|
|
|
|
gnulib_tool_option_extras='--symlink --makefile-name=gnulib.mk'
|
|
|
|
bootstrap_post_import_hook()
|
|
{
|
|
# Ensure that ChangeLog exists, for automake.
|
|
test -f ChangeLog || touch ChangeLog
|
|
}
|
|
|
|
bootstrap_epilogue()
|
|
{
|
|
# Make sure we don't need src/bison, which usually doesn't exist at
|
|
# the time of a bootstrap.
|
|
touch src/parse-gram.[ch]
|
|
}
|
|
|
|
# Keep our bootstrap script in sync with gnulib's. If we ever need to
|
|
# maintain our own bootstrap script again, set this to false, remove
|
|
# the bootstrap entry from the file .x-update-copyright, and add any
|
|
# needed copyright years to the copyright statement in the bootstrap
|
|
# script.
|
|
# FIXME: temporary bootstrap_sync=true
|