You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by rl...@apache.org on 2015/10/10 10:36:15 UTC

[2/2] incubator-hawq git commit: HAWQ-23. Fixed building gpfdist error

HAWQ-23. Fixed building gpfdist error


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/c941468b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/c941468b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/c941468b

Branch: refs/heads/master
Commit: c941468b65e179b6b91ed9062258f90369218e4f
Parents: 4e7fe92
Author: Ming LI <ml...@pivotal.io>
Authored: Fri Oct 9 16:17:29 2015 +0800
Committer: rlei <rl...@pivotal.io>
Committed: Sat Oct 10 16:35:24 2015 +0800

----------------------------------------------------------------------
 configure                             |  40 ++++++++++
 configure.in                          |   3 +
 src/bin/gpfdist/Makefile              | 114 ++++++++---------------------
 src/bin/gpfdist/src/gpfdist/gpfdist.c |   2 +-
 4 files changed, 75 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/c941468b/configure
----------------------------------------------------------------------
diff --git a/configure b/configure
index dad68b7..b4c7a54 100755
--- a/configure
+++ b/configure
@@ -654,6 +654,7 @@ PTHREAD_CC
 acx_pthread_config
 LIBOBJS
 HAVE_IPV6
+APR_CONFIG
 CXXCPP
 ac_ct_CXX
 CXXFLAGS
@@ -11092,6 +11093,45 @@ else
 fi
 
 
+# apr for gpfdist
+# Extract the first word of "apr-1-config", so it can be a program name with args.
+set dummy apr-1-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_APR_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$APR_CONFIG"; then
+  ac_cv_prog_APR_CONFIG="$APR_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_APR_CONFIG="yes"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+APR_CONFIG=$ac_cv_prog_APR_CONFIG
+if test -n "$APR_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $APR_CONFIG" >&5
+$as_echo "$APR_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+test -z "$APR_CONFIG" && as_fn_error $? "Please install apr from http://apr.apache.org/ and add dir of 'apr-1-config' to env variable '$PATH'." "$LINENO" 5
 
 ##
 ## Types, structures, compiler characteristics

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/c941468b/configure.in
----------------------------------------------------------------------
diff --git a/configure.in b/configure.in
index c2d7dc0..1a35284 100644
--- a/configure.in
+++ b/configure.in
@@ -1233,6 +1233,9 @@ AC_SEARCH_LIBS(hdfsOpenFile, hdfs3, [], [AC_MSG_ERROR([libhdfs3 is required])],
 AC_CHECK_HEADERS(libyarn/LibYarnClientC.h, [], [AC_MSG_ERROR([libyarn is required])])
 AC_SEARCH_LIBS(newLibYarnClient, yarn, [], [AC_MSG_ERROR([libyarn is required])], [])
 
+# apr for gpfdist
+AC_CHECK_PROG([APR_CONFIG], [apr-1-config],[yes])
+test -z "$APR_CONFIG" && AC_MSG_ERROR([Please install apr from http://apr.apache.org/ and add dir of 'apr-1-config' to env variable '$PATH'.])
 
 ##
 ## Types, structures, compiler characteristics

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/c941468b/src/bin/gpfdist/Makefile
----------------------------------------------------------------------
diff --git a/src/bin/gpfdist/Makefile b/src/bin/gpfdist/Makefile
index 36a204b..65d0439 100644
--- a/src/bin/gpfdist/Makefile
+++ b/src/bin/gpfdist/Makefile
@@ -1,114 +1,62 @@
-# prevent included makefiles from stealing default target
-default: all
 
 subdir = src/bin/gpfdist
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
-# NO_M64 set in Makefile.global turns off default to 64-bit
-# here, select bitness we desire this build for gcc and ld
-CC=$(strip $(BLD_CC) $(BLD_CFLAGS))
+LIBS := -levent -lyaml -lz -lbz2 -lssl -lcrypto
 
-GPFDISTDIR=$(CURDIR)
-CDBINCL=-I$(GPFDISTDIR)/../../../src/include
-
-ifeq "$(BLD_ARCH)" "win32"
-override CC=$(strip /usr/local/mingw32/bin/mingw32-gcc $(BLD_CFLAGS))
-override BLD_CFLAGS += -L/usr/local/mingw32/mingw32/lib -I/usr/local/mingw32/mingw32/include -DWIN32 $(CDBINCL)/port/win32 $(CDBINCL)/port/win32_msvc -DFRONTEND
-GPFDISTFILES=gpfdist.c
-GPFDISTFILES_EXTRA=fstream.c gfile.c transform.c glob.c $(CURDIR)/../src/port/dirent.c $(CURDIR)/../src/port/strlcpy.c $(CURDIR)/../src/port/win32error.c $(CURDIR)/../src/port/snprintf.c
-GPFDISTOBJS_EXTRA=$(strip $(patsubst %.c,%.o,$(notdir $(GPFDISTFILES_EXTRA))))
-GPFDIST_INCLUDES=-I$(BLD_TOP)/src/gpfdist/include
-GPFDIST_LIBS=-L$(CURDIR)/../src/port -lpgport -lws2_32 -lgdi32
-EXT_EXE=.exe
-else
-GPFDISTFILES=fstream.c gfile.c gpfdist.c transform.c
-GPFDISTOBJSFILES=$(subst .c,.o,$(GPFDISTFILES))
-# link with static libyaml so gpfdist won't need LD_LIBRARY_PATH
-ifneq "$(findstring $(BLD_ARCH),aix5_ppc_64 aix5_ppc_32 osx104_x86)" ""
-GPFDIST_LIBS=-lyaml -lz -lbz2
-else
-GPFDIST_LIBS=$(BLD_THIRDPARTY_LIB_DIR)/libyaml.a -lz -lbz2
-endif
-endif
-
-export CC
-export LDFLAGS=$(BLD_CFLAGS)
+code_dir     = $(CURDIR)/src/gpfdist/
+GPFDISTFILES = fstream.c gfile.c gpfdist.c transform.c
+OBJS         = $(subst .c,.o,$(GPFDISTFILES))
 
 SHELL=bash
-OPT=-g -O3
-LIBEVENT=libevent-1.4.3-stable
-OPENSSL=openssl-0.9.8r
-OPENSSL_LIBS=-lssl -lcrypto
-GP_VERSION:=$(shell cat $(BLD_TOP)/VERSION)
+GP_VERSION:=$(shell cat $(top_builddir)/VERSION)
+
+APR_CFG  := $(shell which apr-1-config)
+APR_DIR  := $(shell dirname $(APR_CFG))/../
+INCLUDES := $$($(APR_CFG) --includes) -I$(code_dir) -I$(CURDIR)/../../../src/include $(INCLUDES)
+CFLAGS   := $$($(APR_CFG) --cflags) -Wall $(GPFXDIST) $(CFLAGS)
+LIBS     := $$($(APR_CFG) --link-ld --libs) $(LIBS)
 
 # flag to include/exclude gpfdist transformation support
 GPFXDIST=-DGPFXDIST
 
-INCLUDES=-I$(BLD_THIRDPARTY_INCLUDE_DIR) $$($(BLD_THIRDPARTY_BIN_DIR)/apr-1-config --includes) -I. $(BLD_THIRDPARTY_OPENSSL_INCLUDES) 
-CFLAGS=$(OPT) $$($(BLD_THIRDPARTY_BIN_DIR)/apr-1-config --cflags) -Wall $(GPFXDIST)
-APRLIBS=$$($(BLD_THIRDPARTY_BIN_DIR)/apr-1-config --link-ld --libs) 
-APULIBS= $$($(BLD_THIRDPARTY_BIN_DIR)/apu-1-config --link-ld --libs)
-CPPFLAGS=$$($(BLD_THIRDPARTY_BIN_DIR)/apr-1-config --cppflags) -DGP_VERSION="$(GP_VERSION)"
-ifeq "$(BLD_ARCH)" "win32"
-GPFDIST_CPPFLAGS=$$($(BLD_THIRDPARTY_BIN_DIR)/apr-1-config --cppflags) -DGP_VERSION="$(GP_VERSION)"
-GPFDIST_CPPFLAGS_EXTRA=$$($(BLD_THIRDPARTY_BIN_DIR)/apr-1-config --cppflags)
-else
-sol10_sparc_32_CPPFLAGS=-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-sol9_sparc_32_CPPFLAGS=-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-sol8_sparc_32_CPPFLAGS=-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-rhel4_x86_32_CPPFLAGS=-D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
-rhel5_x86_32_CPPFLAGS=-D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
-GPFDIST_CPPFLAGS=$$($(BLD_THIRDPARTY_BIN_DIR)/apr-1-config --cppflags) -DGP_VERSION="$(GP_VERSION)" $($(BLD_ARCH)_CPPFLAGS)
-endif
-
-osx105_x86_GPFDIST_LDFLAGS=-Wl,-search_paths_first
-GPFDIST_LDFLAGS=$($(BLD_ARCH)_GPFDIST_LDFLAGS)
-
-all: 
-
-#mkdir mkgpfdist
+sol10_sparc_32_CPPFLAGS = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+sol9_sparc_32_CPPFLAGS  = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+sol8_sparc_32_CPPFLAGS  = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+rhel4_x86_32_CPPFLAGS   = -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
+rhel5_x86_32_CPPFLAGS   = -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
+GPFDIST_CPPFLAGS        = $$($(APR_CFG) --cppflags) -DGP_VERSION="$(GP_VERSION)" $($(BLD_ARCH)_CPPFLAGS)
+CFLAGS:=$(GPFDIST_CPPFLAGS) $(CFLAGS)
 
-#mkgpma mkgp 
+all: mkdir mkgpfdist
 
 mkgpfdist: mkdir
 	@echo --- gpfdist --------------------------------------------------
 	cd src/gpfdist/ && \
 	  ln -sf ../../../../../src/backend/utils/misc/fstream/*.c . && ls ../../../../../src/backend/utils/misc/fstream/*.c
-	mkdir -p src/gpfdist/include
-	perl -p -i -e 's,^prefix=.*$$,prefix="$(BLD_THIRDPARTY_DIR)",' $(BLD_THIRDPARTY_DIR)/bin/apr-1-config
-ifeq "$(BLD_ARCH)" "win32"
-	cd src/gpfdist/ && \
-	  $(CC) $(INCLUDES) $(GPFDIST_INCLUDES) $(CDBINCL) $(GPFDIST_CPPFLAGS_EXTRA) $(CFLAGS) $(GPFDIST_LDFLAGS) -Werror -c \
-	  $(GPFDISTFILES_EXTRA)
-	cd src/gpfdist/ && \
-	  $(CC) $(INCLUDES) $(GPFDIST_INCLUDES) $(CDBINCL) $(GPFDIST_CPPFLAGS) $(CFLAGS) $(GPFDIST_LDFLAGS) -Werror -o gpfdist$(EXT_EXE) \
-	  $(GPFDISTFILES) $(GPFDISTOBJS_EXTRA) $(APRLIBS) -levent $(OPENSSL_LIBS) -L$(BLD_THIRDPARTY_LIB_DIR) $(GPFDIST_LIBS)
-else
+	perl -p -i -e 's,^prefix=.*$$,prefix="$(APR_DIR)",' $(APR_CFG)
+
 	for file in $(GPFDISTFILES); do \
-	    (cd src/gpfdist/ && \
-	      $(CC) $(INCLUDES) $(GPFDIST_INCLUDES) $(CDBINCL) $(GPFDIST_CPPFLAGS) $(CFLAGS) -Werror -c $${file}); \
+	    ( $(CC) $(INCLUDES) $(CFLAGS) $(LIBS) -c $(code_dir)$${file}); \
 	done
-	cd src/gpfdist/ && \
-	  $(CC) $(INCLUDES) $(GPFDIST_INCLUDES) $(CDBINCL) $(GPFDIST_CPPFLAGS) $(CFLAGS) $(GPFDIST_LDFLAGS) -Werror -o gpfdist$(EXT_EXE) \
-	  $(GPFDISTOBJSFILES) $(GPFDISTOBJS_EXTRA) $(APRLIBS) -levent $(OPENSSL_LIBS) -L$(BLD_THIRDPARTY_LIB_DIR) $(GPFDIST_LIBS)
-endif
+	# link
+	$(CC) -o $(code_dir)gpfdist $(OBJS)  $(LIBS)
+
 	mkdir -p build/bin
-	cp -f src/gpfdist/gpfdist$(EXT_EXE) build/bin/
+	mv -f src/gpfdist/gpfdist build/bin/
 
 mkdir:
-	@mkdir -p src/build/lib src/build/include build/bin build/bin/lib
+	@mkdir -p build/bin
 
 clean: 
-	rm -f src/gpfdist/gpfdist
-	rm -rf src/build
-	find src -name '*.o' -exec rm -f {} \;
+	rm -rf build
+	find . -name '*.o' -exec rm -f {} \;
 
 install:
-	${INSTALL_SCRIPT} -d ${bindir}
 	@for file in `find build/bin -type f`; \
 		do \
-			echo install $${file} into ${bindir};\
-			${INSTALL_SCRIPT} $${file} ${bindir}; \
+			echo install $${file} into '$(DESTDIR)$(bindir)';\
+			$(INSTALL_PROGRAM) $${file} '$(DESTDIR)$(bindir)'; \
 		done
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/c941468b/src/bin/gpfdist/src/gpfdist/gpfdist.c
----------------------------------------------------------------------
diff --git a/src/bin/gpfdist/src/gpfdist/gpfdist.c b/src/bin/gpfdist/src/gpfdist/gpfdist.c
index f4067f1..716a155 100644
--- a/src/bin/gpfdist/src/gpfdist/gpfdist.c
+++ b/src/bin/gpfdist/src/gpfdist/gpfdist.c
@@ -2246,7 +2246,7 @@ gnet_parse_request(const char* buf, int* len, apr_pool_t* pool)
 
 			/* add to previous hvalue */
 			req->hvalue[req->hc - 1] = gstring_trim(apr_pstrcat(pool,
-					req->hvalue[req->hc - 1], " ", line, 0));
+					req->hvalue[req->hc - 1], " ", line, (char*)NULL));
 			continue;
 		}
 		/* find a colon, and break the line in two */