summaryrefslogtreecommitdiff
path: root/bootstrap.conf
AgeCommit message (Collapse)Author
2015-04-27build: reduce gettext dependency to 0.19.2Pádraig Brady
* bootstrap.conf: 0.19.2 is available on openSUSE-13.2, Debian-8.0, and Ubuntu-14.10. Given there were issues with earlier 0.19 gettext releases, set this as the new minimum. * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise. Reported by Bernhard Voelker
2015-04-26build: update gnulib submodule to latestPaul Eggert
* bootstrap.conf (gnulib_modules): Add file-has-acl. (buildreq): Bump autopoint and gettext to 0.19.4. * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.4. * gl/lib/tempname.c.diff, gl/lib/tempname.h.diff: Merge recent gnulib changes.
2015-01-01maint: update further copyright year number rangesBernhard Voelker
* bootstrap: Update copyright year manually (missing in previous gnulib update). * tests/init.sh: Likewise. The entries in the exemption list are processed by "grep -vEf ./.x-update-copyright", and therefore evaluated as an extended regular expression (ERE). Thus, the "bootstrap" entry also matched for bootstrap.conf which we want to be updated. * .x-update-copyright: Change all entries to EREs, i.e. including the caret ^ and dollar sign $ meta-characters matching the beginning and the end of a line. * bootstrap.conf: Update copyright year by "make update-copyright". Finally, the only one showing up with the following command should be the COPYING file: $ git grep 'Copyright .* Free Software' | grep -v '2015 Free Software'
2014-12-19diagnose too-large numbers betterPádraig Brady
Following on from commit v8.23-82-gaddae94, consistently diagnose numbers that are too large, so as to distinguish from other errors, and make the limits obvious. * gl/modules/xdectoint: A new module implementing xdecto[iu]max(), which handles the common case of parsing a bounded integer and exiting with a diagnostic on error. * gl/lib/xdectoimax.c: The signed variant. * gl/lib/xdectoint.c: The parameterized implementation. * gl/lib/xdectoint.h: The interface. * gl/lib/xdectoumax.c: The unsigned variant. * bootstrap.conf: Reference the new module. * cfg.mk (exclude_file_name_regexp--sc_require_config_h_first): Exclude the parameterized templates. * src/csplit.c: Output EOVERFLOW or ERANGE errors if appropriate. * src/fmt.c: Likewise. * src/fold.c: Likewise. * src/head.c: Likewise. * src/ls.c: Likewise. * src/nl.c: Likewise. * src/nproc.c: Likewise. * src/shred.c: Likewise. * src/shuf.c: Likewise. * src/stdbuf.c: Likewise. * src/stty.c: Likewise. * src/tail.c: Likewise. * src/truncate.c: Likewise. * src/split.c: Likewise. * src/pr.c: Likewise. * tests/pr/pr-tests.pl: Adjust to avoid matching errno diagnostic. * tests/fmt/base.pl: Likewise. * tests/split/l-chunk.sh: Likewise. * tests/misc/shred-negative.sh: Likewise. * tests/misc/tail.pl: Likewise. Also remove the redundant existing ERR_SUBST from test err-6. * tests/ls/hex-option.sh: Check HEX/OCT options. * tests/misc/shred-size.sh: Likewise. * tests/misc/stty-row-col.sh: Likewise.
2014-07-13build: support building all tools in a single binaryAlex Deymo
Add the --enable-single-binary option to the configure file. When enabled, this option builds a single binary file containing the selected tools. Which tool gets executed depends on the value of argv[0] which can be set implicitly through symlinks to the single program. This setup reduces significantly the size of a complete coreutils install, since code from lib/libcoreutils.a is not duplicated in every one of the more than 100 binaries. Runtime overhead is increased due to more dynamic libraries being loaded, and extra initialization being performed for all utils. Also initially a larger binary is loaded from storage, though this is usually alleviated due to caching and lazy mmaping of unused blocks, and in fact the single binary should have better caching characteristics. Comparing the size of the individual versus single binary on x86_64: $ cd src $ size coreutils $ size -t $(../build-aux/gen-lists-of-programs.sh --list-progs | grep -Ev '(coreutils|libstdbuf)') | tail -n1 text data bss dec hex filename 1097416 5388 88432 1191236 122d44 src/coreutils 4901010 124964 163768 5189742 4f306e (TOTALS) Storage requirements are reduced similarly: $ cd src $ du -h coreutils $ du -ch $(../build-aux/gen-lists-of-programs.sh --list-progs | grep -Ev '(coreutils|libstdbuf)') | tail -n1 1.2M coreutils 5.3M total When installing, the makefile will create either symlinks or shebangs based on the --enable-single-binary setting, for each configured tool. In this way, all the tools are still callable individually, but they are all implemented by the same "coreutils" binary installed on the same directory. * .gitignore: Add new generated files. * Makefile.am: New rules to generate build-aux/gen-single-binary.sh and install symlinks. * NEWS: Mention the new feature. * README: Add "coreutils" to the list of utils. * bootstrap.conf: Regenerate src/single-binary.mk * build-aux/gen-lists-of-programs.sh: New --list-progs option. * build-aux/gen-single-binary.sh: Regenerate * configure.ac: New --enable-single-binary option and other variables. Disallow --enable-single-binary=symlinks with --program-prefix et. al. * man/coreutils.x: Manpage hook. * man/local.mk: Add manpage hook and fix dependencies. * src/coreutils.c: Multicall implementation. * src/local.mk: New rules for the single binary option. * tests/local.mk: Add $single_binary_progs to support require_built_() from init.cfg * tests/misc/env.sh: Avoid the use of symlink to echo. * tests/misc/help-version.sh: Add exception for coreutils. * tests/install/basic-1.sh: Really avoid using ginstall strip functionality if there is an issue with the independent strip command. * src/kill.c: Changes to call exit() in main. * src/readlink.c: Likewise. * src/shuf.c: Likewise. * src/timeout.c: Likewise. * src/truncate.c: Likewise.
2014-01-17build: avoid unneeded spawn-pipe gnulib modulePádraig Brady
* bootstrap.conf: Reference the used pipe-posix module rather than the uneeded and larger spawn-pipe module, which the pipe module is the deprecated equivalent of.
2014-01-02maint: update all copyright year number rangesBernhard Voelker
Run "make update-copyright", but then also run this, perl -pi -e 's/2\d\d\d-//' tests/sample-test to make that one script use the single most recent year number.
2013-07-02maint: refactor SMACK interface to a separate modulePádraig Brady
Consolidate all smack routines and checks in a module. We replace and wrap the most commonly used smack routines, which allows removing ifdefs throughout the code. * gl/lib/smack.h: A new header containing the implementation of the wrapped and replacement routines. Note the is_smack_enabled() routine should be optimized out at compile time when compiled on a system without libsmack. * gl/modules/smack: Describe the new module and move the configure time code here from ... * m4/jm-macros.m4: ... here. * bootstrap.conf: Reference the new module. * src/id.c: Use the routines without ifdefs where possible. * src/ls.c: Likewise. * src/mkdir.c: Likewise. * src/mkfifo.c: Likewise. * src/mknod.c: Likewise.
2013-01-23build: update gnulib submodule to latestPaul Eggert
* bootstrap.conf (gnulib_modules): Add statat. The fstatat module was split in two, and we need both halves.
2013-01-01maint: update all copyright year number rangesJim Meyering
Run "make update-copyright", but then also run this, perl -pi -e 's/2\d\d\d-//' tests/sample-test to make that one script use the single most recent year number.
2012-09-11build: build lib/ using non-recursive makeJim Meyering
* bootstrap.conf (gnulib_modules): Use the new module. (bootstrap_post_import_hook): Invoke prefix-gnulib-mk. * configure.ac (AC_CONFIG_FILES): Remove lib/Makefile. * lib/Makefile.am: Renamed... * lib/local.mk: ...to this. * src/local.mk (CLEANFILES): Append, don't set. (noinst_LIBRARIES): Likewise. (AM_CPPFLAGS): Don't set this here. * Makefile.am (AM_CPPFLAGS): Define here instead. (noinst_LIBRARIES, CLEANFILES, MOSTLYCLEANDIRS, MOSTLYCLEANFILES): Initialize here, so we can append to them from each included local.mk (SUBDIRS): Remove "lib".
2012-09-10maint: move the last coreutils-specific files from lib/ to gl/Jim Meyering
Convert the few remaining coreutils-specific files in lib/ to gnulib-style modules under gl/, removing their corresponding .m4 files, since the information recorded in those files is better stored in module-description file in gl/modules/. * bootstrap.conf (gnulib_modules): Add new modules: fd-reopen, buffer-lcm, xfts, strnumcmp. * gl/lib/buffer-lcm.c: Renamed from the file in lib/. * gl/lib/buffer-lcm.h: Likewise. * gl/lib/fd-reopen.c: Likewise. * gl/lib/fd-reopen.h: Likewise. * gl/lib/strintcmp.c: Likewise. * gl/lib/strnumcmp-in.h: Likewise. * gl/lib/strnumcmp.c: Likewise. * gl/lib/strnumcmp.h: Likewise. * gl/lib/xfts.c: Likewise. * gl/lib/xfts.h: Likewise. * gl/modules/buffer-lcm: New module-description file. * gl/modules/fd-reopen: Likewise. * gl/modules/strnumcmp: Likewise. * gl/modules/xfts: Likewise. * m4/fd-reopen.m4: Remove, no longer needed. * m4/strnumcmp.m4: Likewise. * m4/xfts.m4: Likewise. * m4/prereq.m4: Do not AC_REQUIRE the m4 functions from our just-removed m4/*.m4 files.
2012-09-01maint: improve remake rules for maintainersStefano Lattarini
This is a follow up on today's commit v8.19-60-g4f2e62b". * Makefile.am ($(top_srcdir)/m4/cu-progs.m4, $(srcdir)/src/cu-progs.mk): New, generate these files from the 'build-aux/gen-lists-of-programs.sh', the same way it's done from the bootstrap script. * bootstrap.conf (bootstrap_post_import_hook): Add comment about the necessity to keep those new rules synced with the commands here. Enhance those commands so to that the generated files are set read-only.
2012-09-01build: refactor how lists of coreutils programs are definedStefano Lattarini
This is in preparation of future changes. Still, this patch leaves the build system in a better shape; true, with more indirections, but also with less convoluted and brittle hacks. Unfortunately, this commit also makes some rebuild rules incomplete; that will son be fixed by follow-up patches. * build-aux/gen-lists-of-programs.sh: New, generates autoconf and automake input fragments that define "lists" of all coreutils programs, with further distinctions about how and when these programs should be built (by default; if the system is capable enough; only if the user asks for them explicitly). This is useful to avoid duplicating the definitions of these lists among several files (at least 'configure.ac' 'src/Makefile.am'); such duplication had proved a source of inconsistencies and bugs in the past. And the pre-existing way to avoid such duplication, as implemented in 'configure.ac' before this patch, was overly complex and brittle. * Makefile.am (EXTRA_DIST): Distribute the new script. * bootstrap.conf (bootstrap_post_import_hook): Run the new script to generate 'm4/cu-progs.m4' and 'src/cu-progs.mk'. * .gitignore: Ignore those files. * configure.ac: Include 'm4/cu-progs.m4', and decidedly simplify most of the program lists definition and processing accordingly. * src/Makefile.am: Similarly include 'src/cu-progs.mk', containing definition of variables $(default__progs), $(no_install__progs) and $(build_if_possible__progs). Accordingly ... (no_install__progs, build_if_possible__progs): ... remove. (EXTRA_DIST): Adjust definition. Adjust a comment.
2012-09-01maint: add our 'bootstrap_post_import_hook' functionStefano Lattarini
This is in preparation of future changes. * bootstrap.conf (bootstrap_post_import_hook): New, will be executed by bootstrap after gnulib-tool but before the autotools. Move creation of dummy ChangeLog into it.
2012-08-31maint: make required gettext version consistentStefano Lattarini
* bootstrap.conf ($buildreq): Require gettext >= 0.18.1, consistently with the call to AM_GNU_GETTEXT_VERSION in configure.ac.
2012-08-30build: require Automake >= 1.11.2Stefano Lattarini
Now that we use AM_TESTS_ENVIRONMENT, we must require Automake >= 1.11.2. * configure.ac (AM_INIT_AUTOMAKE): Bump version requirement to 1.11.2. * bootstrap.conf ($buildreq): Likewise.
2012-05-04maint: rely on gnulib's new sys_resource moduleJim Meyering
* bootstrap.conf (gnulib_modules): Add sys_resource. * src/sort.c: Remove #if HAVE_SYS_RESOURCE_H guard around inclusion of <sys/resource.h> and move the inclusion "up" into the alphabetized list of its peers. This also avoids a failure of the sc_prohibit_always_true_header_tests syntax-check rule. * m4/jm-macros.m4 (gl_CHECK_ALL_HEADERS): Remove sys/resource.h.
2012-04-22maint: sync up required autoconf version in bootstrap.confStefano Lattarini
* bootstrap.conf ($buildreq): Require autoconf 2.64, not 2.62. This is consistent with what is required by AC_PREREQ in configure.ac.
2012-03-22maint: ensure PATH_MAX is set correctlyPádraig Brady
This reverts part of commit v8.12-103-g54cbe6e. * src/system.h: Include gnulib's pathmax.h to honor system specific limits, and then we set PATH_MAX only if needed. Note pathmax.h no longer uses pathconf ("/", _PC_PATH_MAX). Note I didn't reinstate the comments about limits.h inclusion order, because pathmax.h includes limits.h anyway.
2012-03-21build: add numerous gnulib modules, mostly for improved portabilityJim Meyering
* bootstrap.conf (gnulib_modules): Add numerous modules for improved portability. Reported by Eric Blake in http://thread.gmane.org/gmane.comp.gnu.coreutils.general/2426/focus=2489 * po/POTFILES.in: Add new files.
2012-01-01maint: update all copyright year number rangesJim Meyering
Run "make update-copyright".
2011-12-17build: remove now-useless code from bootstrap.confJim Meyering
* bootstrap.conf (bootstrap_epilogue): Remove now-unnecessary, snippet that edited gnulib-tests/gnulib.mk. This snippet was rendered unnecessary by commit v8.14-73-g5bf2c0e.
2011-11-24maint: bootstrap: run autopoint and libtoolize *before* gnulib-toolJim Meyering
* bootstrap (AUTOPOINT, AUTORECONF): Factor out definitions. Run autopoint and libtoolize *before* gnulib-tool. After it, run an abbreviated autoreconf, rather than a loop around all tools. * bootstrap.conf (gnulib_tool_option_extras): Add both --symlink and --makefile-name=gnulib.mk. Remove stray use of $bt. * lib/Makefile.am: Initialize all of the following so that generated code in gnulib.mk may use += to append to those variables: AM_CFLAGS, AM_CPPFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST, MAINTAINERCLEANFILES, MOSTLYCLEANDIRS, MOSTLYCLEANFILES, SUFFIXES, noinst_LIBRARIES.
2011-11-24maint: use gnulib's gettext-h, not the gettext moduleJim Meyering
* bootstrap.conf (gnulib_modules): Use gnulib's gettext-h, not the gettext module. Not only is gettext-h far smaller (it has far fewer dependencies than the gnulib module), but it does not suffer from the problem with the gettext module whereby it adds a -I.../intl option to compilation flags. That can provoke warnings, since we don't have such a directory. We used to work around that via a hack in bootstrap, but that was ugly and inefficient.
2011-11-12maint: install customized git hooks to keep commit logs consistentJim Meyering
* bootstrap.conf (buildreq): Copy (with backup) coreutils-supplied git hooks into .git/hooks, to help keep commit logs normalized.
2011-11-04build: do use fstatat and unlinkat modules, now that they're separateJim Meyering
* bootstrap.conf (gnulib_modules): Add fstatat and unlinkat.
2011-11-02build: adapt to gnulib's recent openat/fchmodat separationJim Meyering
* gnulib: Update to latest, pulling in the openat/fchmodat separation. * bootstrap.conf (gnulib_modules): Add fchmodat, now that gnulib has moved it into its own module.
2011-11-01build: adapt to gnulib's recent openat/fchownat separationJim Meyering
* bootstrap.conf (gnulib_modules): Add fchownat, now that gnulib has moved it into its own module. * gnulib: Update to latest.
2011-08-12pathchk: port to hosts where mbstate_t is replacedPaul Eggert
This problem was discovered when trying to build git coreutils on Solaris 8 sparcv9 with Sun C 5.8: the 3rd argument to mbrlen was of type int * (a pointer to the gnulib replacement mbstate_t) but the system mbrlen wants the system mbstate_t *. * bootstrap.conf (gnulib_modules): Add mbrlen. * src/pathchk.c (mbrlen, mbstate_t) [!(HAVE_MBRLEN && HAVE_MBSTATE_T)]: Remove macros, which are wrong now that gnulib supplies replacements for mbstate_t and mbrlen.
2011-08-11bootstrap: use latest gnulib bootstrap, gettextPaul Eggert
* bootstrap: Sync from gnulib. This removes an obsolescent gettext.m4 patch, along with some other changes that do not seem to affect coreutils. * bootstrap.conf (gnulib_modules): Use gettext, not gettext-h. Current gnulib gettext seems to work without needing special hacking. * configure.ac (AM_GNU_GETTEXT_VERSION): Now 0.18.1, not 0.17. * gnulib: Update to latest.
2011-08-11maint: use gnulib's new largefile modulueJim Meyering
* bootstrap.conf (gnulib_modules): Add largefile. This is useful to Mac OS X 10.5 users if/when configure is generated using autoconf prior to v2.68-80-gdb2f2e0. * gnulib: Update to latest.
2011-07-29build: require gnulib's fclose moduleJim Meyering
* bootstrap.conf (gnulib_modules): Explicitly use the fclose module. This is required, now that gnulib's close module no longer depends on fclose. Without this module, we would be exposed to fclose bugs affecting at least glibc 2.13 and FreeBSD. Reported by Bernhard Voelker. Suggested by Eric Blake.
2011-07-25timeout: support sub-second timeoutsPádraig Brady
* src/timeout.c (settimeout): A new function to convert from a floating point duration and call alarm() or timer_settime() if that's available. (parse_duration): Return a double rather than unsigned int. (usage): Mention floating point is supported. (main): Pass the double to settimeout() rather than calling alarm() directly with the parsed int. (cleanup): Likewise. * doc/coreutils.texi (timeout invocation): Say floating point timeouts now supported, and mention the caveat with resolution. * bootstrap.conf: Include the timer-time gnulib module. * tests/misc/timeout-parameters: Add a test with nanoseconds. * NEWS: Mention the improvement.
2011-07-12build: list makeinfo 4.13 as a build-from-git requirementEric Blake
* bootstrap.conf (buildreq): List 4.13 as minimum makeinfo version. Prompted by Joachim Schmitz's report in http://debbugs.gnu.org/9050.
2011-06-25maint: don't use gnulib's pathmax module; define PATH_MAX if neededJim Meyering
* bootstrap.conf (gnulib_modules): Remove pathmax. * src/system.h: Don't include "pathmax.h". (PATH_MAX) [!PATH_MAX]: Define to 8192. Defining it to a constant is preferable to using a definition from pathmax.h that might expand to pathconf ("/", _PC_PATH_MAX). Prompted by discussion leading to: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/27183/focus=27269
2011-06-25build: bootstrap: remove obsolete gettext-related file exclusionsJim Meyering
* bootstrap.conf: Don't bother to exclude gettext/intl-related .m4 files. That exclusion is no longer necessary.
2011-06-13maint: use stat-size module from gnulibJames Youngman
* gnulib: Update to latest. * src/system.h: Definitions of ST_* macros have moved into the gnulib module stat-size (specifically, the header file stat-size.h), so remove them from here. * src/truncate.c: Include stat-size.h. * src/stat.c: Likewise. * src/shred.c: Likewise. * src/ls.c: Likewise. * src/du.c: Likewise. * src/ioblksize.h: New file. Move definition of io_blksize out of system.h so that system.h does not have to include stat-size.h. * src/cat.c: Include ioblksize.h. * src/split.c: Likewise. * src/copy.c: Include both stat-size.h and ioblksize.h. * src/Makefile.am (noinst_HEADERS): Add ioblksize.h.
2011-05-03maint: remove use of gnulib's obsolete strtol moduleJim Meyering
* bootstrap.conf (gnulib_modules): Remove now-obsolete "strtol". Remove use of $obsolete_gnulib_modules: unused since commit edc69f91.
2011-04-29build: update to latest gnulibEric Blake
* gnulib: Update to latest. * bootstrap.conf (gnulib_modules): Add xgetgroups.
2011-04-25maint: explicitly list full-read and full-write module namesJim Meyering
* bootstrap.conf (gnulib_modules): Include full-read and full-write explicitly. Before, we'd get them via safe-read, but with newer gnulib, that is no longer enough: link failure due to undefined references to full_write.
2011-03-20bootstrap: do not exclude m4/message.m4Paul Eggert
* bootstrap.conf (excluded_files): Don't exclude m4/lcmessage.m4, as it's needed with the latest gnulib.
2011-03-13maint: use wcswidth from gnulibPádraig Brady
* gl/lib/mbsalign.c (rpl_wcswidth): Remove this in favor of the equivalent wcswidth replacement in gnulib. * bootstrap.conf: Depend on the wcswidth module. Suggested by Bruno Haible.
2011-01-14maint: refactor to use read-file from gnulibPádraig Brady
* bootstrap.conf: Add the read-file module * src/ptx.c: Replace the original code which would needlessly read SIZE_MAX bytes of files larger than this. * src/shuf.c: Replace the original code.
2011-01-11gnulib: Also use dtoastr and ldtoastr modules.Paul Eggert
This adjusts to the recent splitting of the ftoastr module into 3 <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00199.html>. * bootstrap.conf (gnulib_modules): Add dtoastr, ldtoastr, as coreutils needs all 3 modules now.
2011-01-01maint: update all copyright year number rangesJim Meyering
Run "make update-copyright".
2010-12-30maint: allow gettext 0.17 againEric Blake
Commit 041c9c47 traded the 'gettext' module for the lighter 'gettext-h' module, so as to not require the latest gettext release (we only need the latest release if we ship gettext as a dependent library, but coreutils has long preferred to use it as an external library). But that commit overlooked two places necessary to allow the use of gettext 0.17. This does not force you to downgrade (using gettext 0.18.1.1 is still just fine), nor does it affect tarballs (once a tarball is built with a given gettext version, it can be built on other machines regardless of what gettext version is present). * bootstrap.conf (buildreq): Relax prerequisite. * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
2010-11-18od: fix bugs in displaying floating-point valuesPaul Eggert
* NEWS: Describe patch. * bootstrap.conf (gnulib_modules): Add ftoastr. * src/od.c: Include ftoastr.h, not float.h. (FLT_DIG, DBL_DIG): Remove. No need to verify LDBL_DIG. (FMT_BYTES_ALLOCATED): No need to worry about floating point now, since this format is no longer used for floating point. (PRINT_FIELDS): New macro, with most of the guts of the old PRINT_TYPE. (PRINT_TYPE): Rewrite to use PRINT_FIELDS. (PRINT_FLOATTYPE): New macro. This uses the new functions from ftoastr. (print_float, print_double, print_long_double): Reimplement using PRINT_FLOATTYPE. (decode_one_format): Calculate field widths based on ftoastr-supplied macros. * tests/Makefile.am (TESTS): Add misc/od-float. * tests/misc/od-float: New file.
2010-11-16build: add `patch` as a bootstrap dependencyPádraig Brady
* bootstrap.conf (buildreq): require `patch` as it's used by gnulib-tool to apply local diffs to gnulib modules
2010-11-13maint: remove fstimeprec (variable precision time stamp) supportJim Meyering
The implementation of variable-precision time stamps relied on heuristics that made the output subtly nondeterministic, or at least hard to reproduce: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/21531/focus=21538 So, for now at least, we're removing that feature. * bootstrap.conf (gnulib_modules): Remove fstimeprec. * gl/lib/fstimeprec.c, gl/lib/fstimeprec.h: Remove files. * gl/modules/fstimeprec, gl/modules/fstimeprec-tests: Likewise. * gl/tests/test-fstimeprec.c: Remove file.