From patchwork Fri Sep 18 21:49:57 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 8803 X-Patchwork-Delegate: vapier@gentoo.org Received: (qmail 36837 invoked by alias); 18 Sep 2015 21:50:04 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 36825 invoked by uid 89); 18 Sep 2015 21:50:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.5 required=5.0 tests=AWL, BAYES_50, SPF_PASS, T_RP_MATCHES_RCVD, URIBL_BLACK autolearn=no version=3.3.2 X-HELO: smtp.gentoo.org From: Mike Frysinger To: libc-alpha@sourceware.org Subject: [PATCH v4] timezone: add a configure flag to disable program install Date: Fri, 18 Sep 2015 17:49:57 -0400 Message-Id: <1442612997-31368-1-git-send-email-vapier@gentoo.org> In-Reply-To: <1442599453-17511-1-git-send-email-vapier@gentoo.org> References: <1442599453-17511-1-git-send-email-vapier@gentoo.org> Some distros build+install the timezone tools (zic/zdump/tzselect) outside of glibc and use the upstream package directly. Add a configure flag to glibc so they can disable install of those tools. This allows tests to run & pass regardless of the configure flag. Only the install of them is impacted. 2015-09-18 Mike Frysinger * config.make.in (enable-timezone-tools): New variable. * configure.ac (AC_ARG_ENABLE(timezone-tools)): New configure flag. (enable_timezone_tools): Export to generated files. * configure: Regenerate. * INSTALL: Regenerate. * manual/install.texi (--disable-timezone-tools): Document new flag. * timezone/Makefile (install-sbin, install-bin-script): Wrap in a ifeq ($(enable-timezone-tools),yes) check. --- v4 - more manual word smithing & style tweaks INSTALL | 11 +++++++++++ config.make.in | 1 + configure | 13 +++++++++++++ configure.ac | 6 ++++++ manual/install.texi | 10 ++++++++++ timezone/Makefile | 8 +++++--- 6 files changed, 46 insertions(+), 3 deletions(-) diff --git a/INSTALL b/INSTALL index d55de5d..ca847e2 100644 --- a/INSTALL +++ b/INSTALL @@ -127,6 +127,17 @@ will be used, and CFLAGS sets optimization options for the compiler. library. This option hardcodes the newly built C library path in dynamic tests so that they can be invoked directly. +'--disable-timezone-tools' + By default, timezone related utilities ('zic', 'zdump', and + 'tzselect') are installed with glibc. If you are building these + independently (e.g. by using the 'tzcode' package), then this + option will allow disabling the install of these too. + + Note that you need to make sure the external tools are kept in sync + with the versions that the GNU C Library expects as the data + formats may change over time. Consult the 'timezone' subdirectory + for more details. + '--enable-lock-elision=yes' Enable lock elision for pthread mutexes by default. diff --git a/config.make.in b/config.make.in index a9f5696..bea371d 100644 --- a/config.make.in +++ b/config.make.in @@ -52,6 +52,7 @@ have-z-execstack = @libc_cv_z_execstack@ have-Bgroup = @libc_cv_Bgroup@ have-protected-data = @libc_cv_protected_data@ with-fp = @with_fp@ +enable-timezone-tools = @enable_timezone_tools@ old-glibc-headers = @old_glibc_headers@ unwind-find-fde = @libc_cv_gcc_unwind_find_fde@ have-forced-unwind = @libc_cv_forced_unwind@ diff --git a/configure b/configure index 45cc7cb..fe402ea 100755 --- a/configure +++ b/configure @@ -676,6 +676,7 @@ force_install bindnow enable_lock_elision hardcoded_path_in_tests +enable_timezone_tools use_default_link sysheaders with_fp @@ -759,6 +760,7 @@ with_default_link enable_sanity_checks enable_shared enable_profile +enable_timezone_tools enable_hardcoded_path_in_tests enable_stackguard_randomization enable_lock_elision @@ -1411,6 +1413,9 @@ Optional Features: in special situations) [default=yes] --enable-shared build shared library [default=yes if GNU ld] --enable-profile build profiled library [default=no] + --disable-timezone-tools + do not install timezone tools (if using external + ones) [default=install] --enable-hardcoded-path-in-tests hardcode newly built glibc path in tests [default=no] @@ -3548,6 +3553,14 @@ else profile=no fi +# Check whether --enable-timezone-tools was given. +if test "${enable_timezone_tools+set}" = set; then : + enableval=$enable_timezone_tools; enable_timezone_tools=$enableval +else + enable_timezone_tools=yes +fi + + # Check whether --enable-hardcoded-path-in-tests was given. if test "${enable_hardcoded_path_in_tests+set}" = set; then : diff --git a/configure.ac b/configure.ac index 7e9383a..95d700e 100644 --- a/configure.ac +++ b/configure.ac @@ -159,6 +159,12 @@ AC_ARG_ENABLE([profile], [build profiled library @<:@default=no@:>@]), [profile=$enableval], [profile=no]) +AC_ARG_ENABLE([timezone-tools], + AC_HELP_STRING([--disable-timezone-tools], + [do not install timezone tools (if using external ones) @<:@default=install@:>@]), + [enable_timezone_tools=$enableval], + [enable_timezone_tools=yes]) +AC_SUBST(enable_timezone_tools) AC_ARG_ENABLE([hardcoded-path-in-tests], AC_HELP_STRING([--enable-hardcoded-path-in-tests], diff --git a/manual/install.texi b/manual/install.texi index 63c41b0..c502446 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -157,6 +157,16 @@ By default, dynamic tests are linked to run with the installed C library. This option hardcodes the newly built C library path in dynamic tests so that they can be invoked directly. +@item --disable-timezone-tools +By default, timezone related utilities (@command{zic}, @command{zdump}, +and @command{tzselect}) are installed with glibc. If you are building +these independently (e.g. by using the @samp{tzcode} package), then this +option will allow disabling the install of these too. + +Note that you need to make sure the external tools are kept in sync with +the versions that @theglibc{} expects as the data formats may change over +time. Consult the @file{timezone} subdirectory for more details. + @item --enable-lock-elision=yes Enable lock elision for pthread mutexes by default. diff --git a/timezone/Makefile b/timezone/Makefile index bfb3463..a0b8adb 100644 --- a/timezone/Makefile +++ b/timezone/Makefile @@ -27,15 +27,17 @@ extra-objs := scheck.o ialloc.o others := zdump zic tests := test-tz tst-timezone tst-tzset -install-sbin := zic zdump - generated-dirs += testdata -install-bin-script = tzselect generated += tzselect testdata = $(objpfx)testdata +ifeq ($(enable-timezone-tools),yes) +install-sbin := zic zdump +install-bin-script = tzselect +endif + ifeq ($(run-built-tests),yes) # List zones generated by separate commands running zic on the host. # Each such zic run counts as a separate test.