Support --enable-orca [#105338218] fix gpopt interface change fix boost_thread to use boost_thread_mt on OSX fix version detection using ivy.xml
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/a48600a1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/a48600a1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/a48600a1 Branch: refs/heads/HAWQ-459 Commit: a48600a125eed2a3da00133d6f5f8dad22d4a6a4 Parents: 29a9beb Author: Jacob Frank <[email protected]> Authored: Tue Mar 8 17:49:07 2016 -0800 Committer: C.J. Jameson <[email protected]> Committed: Mon Mar 14 12:24:56 2016 -0700 ---------------------------------------------------------------------- configure | 34 -------------------------------- configure.in | 35 --------------------------------- src/backend/Makefile | 19 +++++++++--------- src/backend/gpopt/Makefile | 25 ++++++++++------------- src/backend/gpopt/gpopt.mk | 24 ++++++++++++---------- src/bin/gpcheckhdfs/Makefile | 2 +- src/bin/gpfilesystem/hdfs/Makefile | 2 +- 7 files changed, 36 insertions(+), 105 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a48600a1/configure ---------------------------------------------------------------------- diff --git a/configure b/configure index 5135536..5669406 100755 --- a/configure +++ b/configure @@ -731,11 +731,6 @@ with_perl with_tcl enable_thread_safety INCLUDES -ORCA_DEPENDS_OPTIMIZER_VER -ORCA_DEPENDS_LIBGPOS_VER -ORCA_DEPENDS_XERCES_VER -ORCA_DEPENDS_OBJDIR_DEFAULT -ORCA_DEPENDS_DIR_INTER enable_orca enable_email enable_gphdfs @@ -5522,35 +5517,6 @@ fi -if test "$enable_orca" = yes ; then - - if test -z "$ORCA_DEPENDS_DIR" ; then - as_fn_error $? "orca is enabled but ORCA_DEPENDS_DIR is not set" "$LINENO" 5] - fi - - if test -z "$ORCA_OBJDIR_DEFAULT" ; then - as_fn_error $? "orca is enabled but ORCA_OBJDIR_DEFAULT is not set" "$LINENO" 5] - fi - - if test -z "$XERCES_VER" ; then - as_fn_error $? "orca is enabled but XERCES_VER is not set" "$LINENO" 5] - fi - - if test -z "$LIBGPOS_VER" ; then - as_fn_error $? "orca is enabled but LIBGPOS_VER is not set" "$LINENO" 5] - fi - - if test -z "$OPTIMIZER_VER" ; then - as_fn_error $? "orca is enabled but OPTIMIZER_VER is not set" "$LINENO" 5] - fi - - ORCA_DEPENDS_DIR_INTER="$ORCA_DEPENDS_DIR" - ORCA_DEPENDS_OBJDIR_DEFAULT="$ORCA_OBJDIR_DEFAULT" - ORCA_DEPENDS_XERCES_VER="$XERCES_VER" - ORCA_DEPENDS_LIBGPOS_VER="$LIBGPOS_VER" - ORCA_DEPENDS_OPTIMIZER_VER="$OPTIMIZER_VER" -fi - http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a48600a1/configure.in ---------------------------------------------------------------------- diff --git a/configure.in b/configure.in index cda7bad..489187e 100644 --- a/configure.in +++ b/configure.in @@ -639,41 +639,6 @@ PGAC_ARG_BOOL(enable, orca, no, [ --enable-orca enable Pivotal Query Opt [Define to 1 to build with Pivotal Query Optimizer. (--enable-orca)])]) AC_SUBST(enable_orca) -if test "$enable_orca" = yes ; then - - if test -z "$ORCA_DEPENDS_DIR" ; then - AC_MSG_ERROR([orca is enabled but ORCA_DEPENDS_DIR is not set])] - fi - - if test -z "$ORCA_OBJDIR_DEFAULT" ; then - AC_MSG_ERROR([orca is enabled but ORCA_OBJDIR_DEFAULT is not set])] - fi - - if test -z "$XERCES_VER" ; then - AC_MSG_ERROR([orca is enabled but XERCES_VER is not set])] - fi - - if test -z "$LIBGPOS_VER" ; then - AC_MSG_ERROR([orca is enabled but LIBGPOS_VER is not set])] - fi - - if test -z "$OPTIMIZER_VER" ; then - AC_MSG_ERROR([orca is enabled but OPTIMIZER_VER is not set])] - fi - - ORCA_DEPENDS_DIR_INTER="$ORCA_DEPENDS_DIR" - ORCA_DEPENDS_OBJDIR_DEFAULT="$ORCA_OBJDIR_DEFAULT" - ORCA_DEPENDS_XERCES_VER="$XERCES_VER" - ORCA_DEPENDS_LIBGPOS_VER="$LIBGPOS_VER" - ORCA_DEPENDS_OPTIMIZER_VER="$OPTIMIZER_VER" -fi - -AC_SUBST(ORCA_DEPENDS_DIR_INTER) -AC_SUBST(ORCA_DEPENDS_OBJDIR_DEFAULT) -AC_SUBST(ORCA_DEPENDS_XERCES_VER) -AC_SUBST(ORCA_DEPENDS_LIBGPOS_VER) -AC_SUBST(ORCA_DEPENDS_OPTIMIZER_VER) - # # Include directories # http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a48600a1/src/backend/Makefile ---------------------------------------------------------------------- diff --git a/src/backend/Makefile b/src/backend/Makefile index 8460b76..f462510 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -52,15 +52,15 @@ LIBS := $(filter-out -lpgport, $(LIBS)) $(LDAP_LIBS_BE) $(CONNECTEMCLIB) # The backend doesn't need everything that's in LIBS, however LIBS := $(filter-out -lreadline -ledit -ltermcap -lncurses -lcurses, $(LIBS)) -LIBS := -lprotobuf -lboost_thread -lboost_system -lboost_date_time -lstdc++ -lhdfs3 -lgsasl -lxml2 $(LIBS) +LIBS := -lprotobuf -lboost_thread-mt -lboost_system -lboost_date_time -lstdc++ -lhdfs3 -lgsasl -lxml2 $(LIBS) # adding orca libraries ifeq ($(enable_orca),yes) -LIBS := $(LIBS) -L$(ORCA_DEPENDS_DIR_INTER)/libgpos/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpos -LIBS := $(LIBS) -L$(ORCA_DEPENDS_DIR_INTER)/lib -lxerces-c -LIBS := $(LIBS) -L$(ORCA_DEPENDS_DIR_INTER)/libnaucrates/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lnaucrates -LIBS := $(LIBS) -L$(ORCA_DEPENDS_DIR_INTER)/libgpdbcost/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpdbcost -LIBS := $(LIBS) -L$(ORCA_DEPENDS_DIR_INTER)/libgpopt/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpopt +LIBS := $(LIBS) -lgpos +LIBS := $(LIBS) -lxerces-c +LIBS := $(LIBS) -lnaucrates +LIBS := $(LIBS) -lgpdbcost +LIBS := $(LIBS) -lgpopt LIBS := $(LIBS) -L$(top_builddir)/src/backend/gpopt -ldxltranslators endif @@ -213,9 +213,6 @@ ifeq ($(MAKE_DLL), true) $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a' endif endif -ifeq ($(enable_orca),yes) - $(MAKE) -C gpopt install -endif $(MAKE) -C catalog install-data $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample' $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample' @@ -228,6 +225,10 @@ endif ${INSTALL_DATA} $(srcdir)/utils/misc/etc/slaves ${sysconfdir} ${INSTALL_DATA} $(srcdir)/utils/misc/etc/template-hawq-site.xml ${sysconfdir} ${INSTALL_DATA} $(srcdir)/utils/misc/etc/gpcheck.cnf ${sysconfdir} +ifeq ($(enable_orca), yes) + $(MAKE) -C gpopt $@ INSTLOC=$(DESTDIR)$(libdir) +endif + install-bin: postgres $(POSTGRES_IMP) installdirs $(INSTALL_PROGRAM) postgres$(X) '$(DESTDIR)$(bindir)/postgres$(X)' http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a48600a1/src/backend/gpopt/Makefile ---------------------------------------------------------------------- diff --git a/src/backend/gpopt/Makefile b/src/backend/gpopt/Makefile index b587ffd..a7ffa87 100644 --- a/src/backend/gpopt/Makefile +++ b/src/backend/gpopt/Makefile @@ -39,29 +39,24 @@ else GPOPT_UDF_FLAGS := -shared endif -LIBGPOS_DIR = $(ORCA_DEPENDS_DIR_INTER)/libgpos -LIBNAUCRATES_DIR = $(ORCA_DEPENDS_DIR_INTER)/libnaucrates -LIBGPDBCOST_DIR = $(ORCA_DEPENDS_DIR_INTER)/libgpdbcost -LIBGPOPT_DIR = $(ORCA_DEPENDS_DIR_INTER)/libgpopt - include $(top_srcdir)/src/backend/common.mk libdxltranslators.$(LDSFX): $(SUBDIROBJS) $(OBJS) $(CXX) $(CXXFLAGS) $(LDLIBFLAGS) \ - -L$(LIBGPOS_DIR)/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpos \ - -L$(ORCA_DEPENDS_DIR_INTER)/lib -lxerces-c \ - -L$(LIBNAUCRATES_DIR)/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lnaucrates \ - -L$(LIBGPDBCOST_DIR)/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpdbcost \ - -L$(LIBGPOPT_DIR)/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpopt -lpthread -o $@ \ + -lgpos \ + -lxerces-c \ + -lnaucrates \ + -lgpdbcost \ + -lgpopt -lpthread -o $@ \ $(SUBDIROBJS) $(OBJS) libgpoptudf.$(LDSFX): $(SUBDIROBJS) $(CXX) $(CXXFLAGS) $(GPOPT_UDF_FLAGS) \ - -L$(ORCA_DEPENDS_DIR_INTER)/lib -lxerces-c \ - -L$(LIBGPOS_DIR)/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpos \ - -L$(LIBNAUCRATES_DIR)/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lnaucrates \ - -L$(LIBGPDBCOST_DIR)/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpdbcost \ - -L$(LIBGPOPT_DIR)/$(ORCA_DEPENDS_OBJDIR_DEFAULT) -lgpopt \ + -lxerces-c \ + -lgpos \ + -lnaucrates \ + -lgpdbcost \ + -lgpopt \ -o $@ ./utils/funcs.o install: http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a48600a1/src/backend/gpopt/gpopt.mk ---------------------------------------------------------------------- diff --git a/src/backend/gpopt/gpopt.mk b/src/backend/gpopt/gpopt.mk index 6c77d2f..0099667 100644 --- a/src/backend/gpopt/gpopt.mk +++ b/src/backend/gpopt/gpopt.mk @@ -25,6 +25,8 @@ UNAME = $(shell uname) UNAME_P = $(shell uname -p) +UNAME_M = $(shell uname -m) + ARCH_OS = GPOS_$(UNAME) ARCH_CPU = GPOS_$(UNAME_P) @@ -41,8 +43,9 @@ ifeq "$(BLD_TYPE)" "opt" GPOPT_flags = -O3 -fno-omit-frame-pointer -g3 endif -ARCH_BIT = GPOS_64BIT -ifeq (Darwin, $(UNAME)) +ifeq (x86_64, $(UNAME_M)) + ARCH_BIT = GPOS_64BIT +else ARCH_BIT = GPOS_32BIT endif @@ -52,14 +55,15 @@ else ARCH_FLAGS = -m64 endif +GREP_SED_VAR = $(top_builddir)/src/backend/gpopt/ivy.xml | sed -e 's|\(.*\)rev="\(.*\)"[ ]*conf\(.*\)|\2|' + +XERCES_VER = $(shell grep "\"xerces-c\"" $(GREP_SED_VAR)) +LIBGPOS_VER = $(shell grep "\"libgpos\"" $(GREP_SED_VAR)) +OPTIMIZER_VER = $(shell grep "\"optimizer\"" $(GREP_SED_VAR)) + BLD_FLAGS = $(ARCH_FLAGS) -D$(ARCH_BIT) -D$(ARCH_CPU) -D$(ARCH_OS) $(GPOPT_flags) override CPPFLAGS := -fPIC $(CPPFLAGS) override CPPFLAGS := $(BLD_FLAGS) $(CPPFLAGS) -override CPPFLAGS := -DGPOS_VERSION=\"$(ORCA_DEPENDS_LIBGPOS_VER)\" $(CPPFLAGS) -override CPPFLAGS := -DGPOPT_VERSION=\"$(ORCA_DEPENDS_OPTIMIZER_VER)\" $(CPPFLAGS) -override CPPFLAGS := -DXERCES_VERSION=\"$(ORCA_DEPENDS_XERCES_VER)\" $(CPPFLAGS) -override CPPFLAGS := -I $(ORCA_DEPENDS_DIR_INTER)/include $(CPPFLAGS) -override CPPFLAGS := -I $(ORCA_DEPENDS_DIR_INTER)/libgpos/include $(CPPFLAGS) -override CPPFLAGS := -I $(ORCA_DEPENDS_DIR_INTER)/libgpopt/include $(CPPFLAGS) -override CPPFLAGS := -I $(ORCA_DEPENDS_DIR_INTER)/libnaucrates/include $(CPPFLAGS) -override CPPFLAGS := -I $(ORCA_DEPENDS_DIR_INTER)/libgpdbcost/include $(CPPFLAGS) +override CPPFLAGS := -DGPOS_VERSION=\"$(LIBGPOS_VER)\" $(CPPFLAGS) +override CPPFLAGS := -DGPOPT_VERSION=\"$(OPTIMIZER_VER)\" $(CPPFLAGS) +override CPPFLAGS := -DXERCES_VERSION=\"$(XERCES_VER)\" $(CPPFLAGS) http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a48600a1/src/bin/gpcheckhdfs/Makefile ---------------------------------------------------------------------- diff --git a/src/bin/gpcheckhdfs/Makefile b/src/bin/gpcheckhdfs/Makefile index cd81902..0b88600 100644 --- a/src/bin/gpcheckhdfs/Makefile +++ b/src/bin/gpcheckhdfs/Makefile @@ -20,7 +20,7 @@ subdir = src/bin/gpcheckhdfs top_builddir = ../../.. include $(top_builddir)/src/Makefile.global -LIBS := -lprotobuf -lboost_thread -lboost_system -lboost_date_time -lstdc++ -lhdfs3 -lgsasl $(LIBS) +LIBS := -lprotobuf -lboost_thread-mt -lboost_system -lboost_date_time -lstdc++ -lhdfs3 -lgsasl $(LIBS) OBJS=gpcheckhdfs.o http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a48600a1/src/bin/gpfilesystem/hdfs/Makefile ---------------------------------------------------------------------- diff --git a/src/bin/gpfilesystem/hdfs/Makefile b/src/bin/gpfilesystem/hdfs/Makefile index b0fb359..2399789 100644 --- a/src/bin/gpfilesystem/hdfs/Makefile +++ b/src/bin/gpfilesystem/hdfs/Makefile @@ -24,7 +24,7 @@ OBJS = gpfshdfs.o PG_CPPFLAGS = -I$(libpq_srcdir) PG_LIBS = $(libpq_pgport) -SHLIB_LINK = -lprotobuf -lboost_thread -lboost_system -lboost_date_time -lstdc++ -lhdfs3 +SHLIB_LINK = -lprotobuf -lboost_thread-mt -lboost_system -lboost_date_time -lstdc++ -lhdfs3 ifdef USE_PGXS PGXS := $(shell pg_config --pgxs)
