Skip to content

Commit

Permalink
timezone: add a configure flag to disable program install
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Mike Frysinger committed Sep 18, 2015
1 parent 36546ff commit 1cba403
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 3 deletions.
11 changes: 11 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
2015-09-18 Mike Frysinger <vapier@gentoo.org>

* 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.

2015-09-18 Joseph Myers <joseph@codesourcery.com>

* timezone/Makefile: Revert previous change.
Expand Down
11 changes: 11 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
1 change: 1 addition & 0 deletions config.make.in
Original file line number Diff line number Diff line change
Expand Up @@ -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@
Expand Down
13 changes: 13 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -676,6 +676,7 @@ force_install
bindnow
enable_lock_elision
hardcoded_path_in_tests
enable_timezone_tools
use_default_link
sysheaders
with_fp
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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]
Expand Down Expand Up @@ -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 :
Expand Down
6 changes: 6 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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],
Expand Down
10 changes: 10 additions & 0 deletions manual/install.texi
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
8 changes: 5 additions & 3 deletions timezone/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 1cba403

Please sign in to comment.