Merge branch 'dd/poll-dot-h'
authorJunio C Hamano <gitster@pobox.com>
Mon, 19 Nov 2018 07:24:41 +0000 (16:24 +0900)
committerJunio C Hamano <gitster@pobox.com>
Mon, 19 Nov 2018 07:24:41 +0000 (16:24 +0900)
A build update.

* dd/poll-dot-h:
  git-compat-util: prefer poll.h to sys/poll.h

1  2 
Makefile
configure.ac

diff --combined Makefile
+++ b/Makefile
@@@ -59,13 -59,6 +59,13 @@@ all:
  # Define CURL_CONFIG to curl's configuration program that prints information
  # about the library (e.g., its version number).  The default is 'curl-config'.
  #
 +# Define CURL_LDFLAGS to specify flags that you need to link when using libcurl,
 +# if you do not want to rely on the libraries provided by CURL_CONFIG.  The
 +# default value is a result of `curl-config --libs`.  An example value for
 +# CURL_LDFLAGS is as follows:
 +#
 +#     CURL_LDFLAGS=-lcurl
 +#
  # Define NO_EXPAT if you do not have expat installed.  git-http-push is
  # not built, and you cannot push using http:// and https:// transports (dumb).
  #
  #
  # Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin).
  #
 -# Define NEEDS_SSL_WITH_CURL if you need -lssl with -lcurl (Minix).
 -#
 -# Define NEEDS_IDN_WITH_CURL if you need -lidn when using -lcurl (Minix).
 -#
  # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
  #
  # Define NEEDS_LIBINTL_BEFORE_LIBICONV if you need libintl before libiconv.
  # Define MMAP_PREVENTS_DELETE if a file that is currently mmapped cannot be
  # deleted or cannot be replaced using rename().
  #
+ # Define NO_POLL_H if you don't have poll.h.
+ #
  # Define NO_SYS_POLL_H if you don't have sys/poll.h.
  #
  # Define NO_POLL if you do not have or don't want to use poll().
- # This also implies NO_SYS_POLL_H.
+ # This also implies NO_POLL_H and NO_SYS_POLL_H.
  #
  # Define NEEDS_SYS_PARAM_H if you need to include sys/param.h to compile,
  # *PLEASE* REPORT to git@vger.kernel.org if your platform needs this;
  # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the
  # user.
  #
 -# Define GETTEXT_POISON if you are debugging the choice of strings marked
 -# for translation.  In a GETTEXT_POISON build, you can turn all strings marked
 -# for translation into gibberish by setting the GIT_GETTEXT_POISON variable
 -# (to any value) in your environment.
 -#
  # Define JSMIN to point to JavaScript minifier that functions as
  # a filter to have gitweb.js minified.
  #
@@@ -991,7 -995,6 +993,7 @@@ LIB_OBJS += sub-process.
  LIB_OBJS += symlinks.o
  LIB_OBJS += tag.o
  LIB_OBJS += tempfile.o
 +LIB_OBJS += thread-utils.o
  LIB_OBJS += tmp-objdir.o
  LIB_OBJS += trace.o
  LIB_OBJS += trailer.o
        ifdef CURLDIR
                # Try "-Wl,-rpath=$(CURLDIR)/$(lib)" in such a case.
                BASIC_CFLAGS += -I$(CURLDIR)/include
 -              CURL_LIBCURL = -L$(CURLDIR)/$(lib) $(CC_LD_DYNPATH)$(CURLDIR)/$(lib) -lcurl
 +              CURL_LIBCURL = -L$(CURLDIR)/$(lib) $(CC_LD_DYNPATH)$(CURLDIR)/$(lib)
        else
 -              CURL_LIBCURL = -lcurl
 -      endif
 -      ifdef NEEDS_SSL_WITH_CURL
 -              CURL_LIBCURL += -lssl
 -              ifdef NEEDS_CRYPTO_WITH_SSL
 -                      CURL_LIBCURL += -lcrypto
 -              endif
 -      endif
 -      ifdef NEEDS_IDN_WITH_CURL
 -              CURL_LIBCURL += -lidn
 +              CURL_LIBCURL =
        endif
  
 +ifdef CURL_LDFLAGS
 +      CURL_LIBCURL += $(CURL_LDFLAGS)
 +else
 +      CURL_LIBCURL += $(shell $(CURL_CONFIG) --libs)
 +endif
 +
        REMOTE_CURL_PRIMARY = git-remote-http$X
        REMOTE_CURL_ALIASES = git-remote-https$X git-remote-ftp$X git-remote-ftps$X
        REMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)
@@@ -1449,13 -1455,14 +1451,14 @@@ ifdef NO_SYMLINK_HEA
        BASIC_CFLAGS += -DNO_SYMLINK_HEAD
  endif
  ifdef GETTEXT_POISON
 -      BASIC_CFLAGS += -DGETTEXT_POISON
 +$(warning The GETTEXT_POISON option has been removed in favor of runtime GIT_TEST_GETTEXT_POISON. See t/README!)
  endif
  ifdef NO_GETTEXT
        BASIC_CFLAGS += -DNO_GETTEXT
        USE_GETTEXT_SCHEME ?= fallthrough
  endif
  ifdef NO_POLL
+       NO_POLL_H = YesPlease
        NO_SYS_POLL_H = YesPlease
        COMPAT_CFLAGS += -DNO_POLL -Icompat/poll
        COMPAT_OBJS += compat/poll/poll.o
@@@ -1494,6 -1501,9 +1497,9 @@@ endi
  ifdef NO_SYS_SELECT_H
        BASIC_CFLAGS += -DNO_SYS_SELECT_H
  endif
+ ifdef NO_POLL_H
+       BASIC_CFLAGS += -DNO_POLL_H
+ endif
  ifdef NO_SYS_POLL_H
        BASIC_CFLAGS += -DNO_SYS_POLL_H
  endif
@@@ -1673,6 -1683,7 +1679,6 @@@ ifdef NO_PTHREAD
  else
        BASIC_CFLAGS += $(PTHREAD_CFLAGS)
        EXTLIBS += $(PTHREAD_LIBS)
 -      LIB_OBJS += thread-utils.o
  endif
  
  ifdef HAVE_PATHS_H
@@@ -2106,7 -2117,7 +2112,7 @@@ $(SCRIPT_LIB) : % : %.sh GIT-SCRIPT-DEF
        $(QUIET_GEN)$(cmd_munge_script) && \
        mv $@+ $@
  
 -git.res: git.rc GIT-VERSION-FILE
 +git.res: git.rc GIT-VERSION-FILE GIT-PREFIX
        $(QUIET_RC)$(RC) \
          $(join -DMAJOR= -DMINOR= -DMICRO= -DPATCHLEVEL=, $(wordlist 1, 4, \
            $(shell echo $(GIT_VERSION) 0 0 0 0 | tr '.a-zA-Z-' ' '))) \
@@@ -2599,6 -2610,7 +2605,6 @@@ ifdef GIT_TEST_CMP_USE_COPIED_CONTEX
        @echo GIT_TEST_CMP_USE_COPIED_CONTEXT=YesPlease >>$@+
  endif
        @echo NO_GETTEXT=\''$(subst ','\'',$(subst ','\'',$(NO_GETTEXT)))'\' >>$@+
 -      @echo GETTEXT_POISON=\''$(subst ','\'',$(subst ','\'',$(GETTEXT_POISON)))'\' >>$@+
  ifdef GIT_PERF_REPEAT_COUNT
        @echo GIT_PERF_REPEAT_COUNT=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_REPEAT_COUNT)))'\' >>$@+
  endif
@@@ -3093,16 -3105,14 +3099,16 @@@ cover_db_html: cover_d
  # An example command to build against libFuzzer from LLVM 4.0.0:
  #
  # make CC=clang CXX=clang++ \
 -#      CFLAGS="-fsanitize-coverage=trace-pc-guard -fsanitize=address" \
 +#      FUZZ_CXXFLAGS="-fsanitize-coverage=trace-pc-guard -fsanitize=address" \
  #      LIB_FUZZING_ENGINE=/usr/lib/llvm-4.0/lib/libFuzzer.a \
  #      fuzz-all
  #
 +FUZZ_CXXFLAGS ?= $(CFLAGS)
 +
  .PHONY: fuzz-all
  
  $(FUZZ_PROGRAMS): all
 -      $(QUIET_LINK)$(CXX) $(CFLAGS) $(LIB_OBJS) $(BUILTIN_OBJS) \
 +      $(QUIET_LINK)$(CXX) $(FUZZ_CXXFLAGS) $(LIB_OBJS) $(BUILTIN_OBJS) \
                $(XDIFF_OBJS) $(EXTLIBS) git.o $@.o $(LIB_FUZZING_ENGINE) -o $@
  
  fuzz-all: $(FUZZ_PROGRAMS)
diff --combined configure.ac
@@@ -600,14 -600,17 +600,14 @@@ AC_CHECK_PROG([CURL_CONFIG], [curl-conf
  
  if test $CURL_CONFIG != no; then
      GIT_CONF_SUBST([CURL_CONFIG])
 -    if test -z "${NO_OPENSSL}"; then
 -      AC_MSG_CHECKING([if Curl supports SSL])
 -      if test $(curl-config --features|grep SSL) = SSL; then
 -         NEEDS_SSL_WITH_CURL=YesPlease
 -         AC_MSG_RESULT([yes])
 -      else
 -         NEEDS_SSL_WITH_CURL=
 -         AC_MSG_RESULT([no])
 -      fi
 -      GIT_CONF_SUBST([NEEDS_SSL_WITH_CURL])
 +
 +    if test -z "$CURL_CONFIG_OPTS"; then
 +        CURL_CONFIG_OPTS="--libs"
      fi
 +
 +    CURL_LDFLAGS=$($CURL_CONFIG $CURL_CONFIG_OPTS)
 +    AC_MSG_NOTICE([Setting CURL_LDFLAGS to '$CURL_LDFLAGS'])
 +    GIT_CONF_SUBST([CURL_LDFLAGS], [$CURL_LDFLAGS])
  fi
  
  fi
@@@ -789,6 -792,12 +789,12 @@@ AC_CHECK_HEADER([sys/select.h]
  [NO_SYS_SELECT_H=UnfortunatelyYes])
  GIT_CONF_SUBST([NO_SYS_SELECT_H])
  #
+ # Define NO_POLL_H if you don't have poll.h
+ AC_CHECK_HEADER([poll.h],
+ [NO_POLL_H=],
+ [NO_POLL_H=UnfortunatelyYes])
+ GIT_CONF_SUBST([NO_POLL_H])
+ #
  # Define NO_SYS_POLL_H if you don't have sys/poll.h
  AC_CHECK_HEADER([sys/poll.h],
  [NO_SYS_POLL_H=],