summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary V. Vaughan <git@mlists.thewrittenword.com>2010-05-14 09:31:43 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-06-01 00:36:27 (GMT)
commitf9f33cdc78b5893a4764b1437b59536f399a50d1 (patch)
treecd509cc43dcd284861f820c62ffa6395d9aaa2e6
parente88a135bc55a974ea04576ccc014c5e2bdc4b892 (diff)
downloadgit-f9f33cdc78b5893a4764b1437b59536f399a50d1.zip
git-f9f33cdc78b5893a4764b1437b59536f399a50d1.tar.gz
git-f9f33cdc78b5893a4764b1437b59536f399a50d1.tar.bz2
Allow disabling "inline"
Compiler support for inline is sometimes buggy, and occasionally missing entirely. This patch adds a test for inline support, and redefines the keyword with the preprocessor if necessary at compile time. Signed-off-by: Gary V. Vaughan <gary@thewrittenword.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Makefile7
-rw-r--r--config.mak.in1
-rw-r--r--configure.ac6
3 files changed, 14 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index f3717f1..7f62996 100644
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,9 @@ all::
# Define SOCKLEN_T to a suitable type (such as 'size_t') if your
# system headers do not define a socklen_t type.
#
+# Define INLINE to a suitable substitute (such as '__inline' or '') if git
+# fails to compile with errors about undefined inline functions or similar.
+#
# Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf()
# or vsnprintf() return -1 instead of number of characters which would
# have been written to the final string if enough space had been available.
@@ -1090,6 +1093,10 @@ else
BROKEN_PATH_FIX = '/^\# @@BROKEN_PATH_FIX@@$$/d'
endif
+ifneq (,$(INLINE))
+ BASIC_CFLAGS += -Dinline=$(INLINE)
+endif
+
ifneq (,$(SOCKLEN_T))
BASIC_CFLAGS += -Dsocklen_t=$(SOCKLEN_T)
endif
diff --git a/config.mak.in b/config.mak.in
index ed0f8f5..e2dbd1c 100644
--- a/config.mak.in
+++ b/config.mak.in
@@ -58,6 +58,7 @@ NO_INET_PTON=@NO_INET_PTON@
NO_ICONV=@NO_ICONV@
OLD_ICONV=@OLD_ICONV@
NO_DEFLATE_BOUND=@NO_DEFLATE_BOUND@
+INLINE=@INLINE@
SOCKLEN_T=@SOCKLEN_T@
FREAD_READS_DIRECTORIES=@FREAD_READS_DIRECTORIES@
SNPRINTF_RETURNS_BOGUS=@SNPRINTF_RETURNS_BOGUS@
diff --git a/configure.ac b/configure.ac
index df831c3..b33cc6a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -327,6 +327,12 @@ GIT_PARSE_WITH(tcltk))
AC_MSG_NOTICE([CHECKS for programs])
#
AC_PROG_CC([cc gcc])
+AC_C_INLINE
+case $ac_cv_c_inline in
+ inline | yes | no) ;;
+ *) AC_SUBST([INLINE], [$ac_cv_c_inline]) ;;
+esac
+
# which switch to pass runtime path to dynamic libraries to the linker
AC_CACHE_CHECK([if linker supports -R], git_cv_ld_dashr, [
SAVE_LDFLAGS="${LDFLAGS}"