summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-07-25 21:13:35 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-07-25 21:13:36 (GMT)
commit937be62993392246bc056e8959c8b9514ac3e534 (patch)
tree6cd44afb96fbd1edd841c5b72d3f43c4415c0c5c
parentf2cfb8fcc993b77b0a0420a84fd1a9a48cbe0ab9 (diff)
parent52fcec75ce3a010ef4b2bbd1161da5e5fe301ec7 (diff)
downloadgit-937be62993392246bc056e8959c8b9514ac3e534.zip
git-937be62993392246bc056e8959c8b9514ac3e534.tar.gz
git-937be62993392246bc056e8959c8b9514ac3e534.tar.bz2
Merge branch 'rw/make-needs-librt'
Makefile assumed that -lrt is always available on platforms that want to use clock_gettime() and CLOCK_MONOTONIC, which is not a case for recent Mac OS X. The necessary symbols are often found in libc on many modern systems and having -lrt on the command line, as long as the library exists, had no effect, but when the platform removes librt.a that is a different matter--having -lrt will break the linkage. This change could be seen as a regression for those who do need to specify -lrt, as they now specifically ask for NEEDS_LIBRT when building. Hopefully they are in the minority these days. * rw/make-needs-librt: config.mak.uname: define NEEDS_LIBRT under Linux, for now Makefile: add NEEDS_LIBRT to optionally link with librt
-rw-r--r--Makefile12
-rw-r--r--config.mak.uname2
2 files changed, 11 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index bfe8559..1978cb8 100644
--- a/Makefile
+++ b/Makefile
@@ -351,9 +351,12 @@ all::
# Define GMTIME_UNRELIABLE_ERRORS if your gmtime() function does not
# return NULL when it receives a bogus time_t.
#
-# Define HAVE_CLOCK_GETTIME if your platform has clock_gettime in librt.
+# Define HAVE_CLOCK_GETTIME if your platform has clock_gettime.
#
-# Define HAVE_CLOCK_MONOTONIC if your platform has CLOCK_MONOTONIC in librt.
+# Define HAVE_CLOCK_MONOTONIC if your platform has CLOCK_MONOTONIC.
+#
+# Define NEEDS_LIBRT if your platform requires linking with librt (glibc version
+# before 2.17) for clock_gettime and CLOCK_MONOTONIC.
#
# Define USE_PARENS_AROUND_GETTEXT_N to "yes" if your compiler happily
# compiles the following initialization:
@@ -1467,13 +1470,16 @@ endif
ifdef HAVE_CLOCK_GETTIME
BASIC_CFLAGS += -DHAVE_CLOCK_GETTIME
- EXTLIBS += -lrt
endif
ifdef HAVE_CLOCK_MONOTONIC
BASIC_CFLAGS += -DHAVE_CLOCK_MONOTONIC
endif
+ifdef NEEDS_LIBRT
+ EXTLIBS += -lrt
+endif
+
ifdef HAVE_BSD_SYSCTL
BASIC_CFLAGS += -DHAVE_BSD_SYSCTL
endif
diff --git a/config.mak.uname b/config.mak.uname
index a88f139..22958a8 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -36,6 +36,8 @@ ifeq ($(uname_S),Linux)
HAVE_DEV_TTY = YesPlease
HAVE_CLOCK_GETTIME = YesPlease
HAVE_CLOCK_MONOTONIC = YesPlease
+ # -lrt is needed for clock_gettime on glibc <= 2.16
+ NEEDS_LIBRT = YesPlease
HAVE_GETDELIM = YesPlease
SANE_TEXT_GREP=-a
endif