diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 41de4ac..d16ec37 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -18,9 +18,14 @@
 on: [push, pull_request]
 
 jobs:
-  build-on-macOS:
+  Build-and-Test:
 
-    runs-on: macOS-10.15
+    strategy:
+      fail-fast: false
+      matrix:
+        platform: [ubuntu-latest, macos-latest]
+
+    runs-on: ${{ matrix.platform }}
 
     steps:
 
@@ -28,67 +33,79 @@
 
     - name: lint check
       run: |
-        csrutil status
         ulimit -a
         mvn apache-rat:check
 
+    - name: initilize OS
+      run: |
+        case $(uname -s) in
+          Darwin) .github/workflows/scripts/init_macos.sh ;;
+          Linux)  .github/workflows/scripts/init_linux.sh ;;
+        esac
+
     - name: install thirdparty
       run: |
-        # download prebuilt libraries
-        curl -sL http://yum.oushu-tech.com/oushurepo/yumrepo/internal/linux/toolchain/dependency-Darwin.tar.xz | tar -xJ -C $GITHUB_WORKSPACE
-        for file in $(find $GITHUB_WORKSPACE/dependency-Darwin/package/bin -name '*' -type f) $(find $GITHUB_WORKSPACE/dependency-Darwin/package/lib -name '*.dylib' -type f); do
-          if [[ $(file $file | grep Mach-O) ]]; then
-            install_name_tool -add_rpath $GITHUB_WORKSPACE/dependency-Darwin/package/lib $file;
-          fi
-        done
-        install_name_tool -add_rpath $GITHUB_WORKSPACE/dependency-Darwin/package/lib/perl5/5.28.0/darwin-thread-multi-2level/CORE/ $GITHUB_WORKSPACE/dependency-Darwin/package/bin/perl
-        rm -rf $GITHUB_WORKSPACE/dependency-Darwin/package/include/hdfs
-        rm -rf $GITHUB_WORKSPACE/dependency-Darwin/package/lib/libhdfs3*
+        set -x
+        source .github/workflows/scripts/toolchain.sh
 
     - name: configure
       timeout-minutes: 10
       run: |
-        source $GITHUB_WORKSPACE/dependency-Darwin/package/env.sh
+        source .github/workflows/scripts/toolchain.sh
         export CFLAGS="$CFLAGS -w"
-        export LDFLAGS="$LDFLAGS -Wl,-rpath,$GITHUB_WORKSPACE/dependency-Darwin/package/lib"
+        export LDFLAGS="$LDFLAGS -Wl,-rpath,$HAWQ_TOOLCHAIN_PATH/dependency/package/lib"
 
         ./configure --enable-debug --prefix=/tmp/hawq || cat config.log
         test -f config.status
 
     - name: build hawq
       run: |
-        source $GITHUB_WORKSPACE/dependency-Darwin/package/env.sh
-        make -j$(sysctl -n hw.ncpu)
-        make -j$(sysctl -n hw.ncpu) install
+        source .github/workflows/scripts/toolchain.sh
+        make
+        make install
 
     - name: build feature-test
       run: |
-        source $GITHUB_WORKSPACE/dependency-Darwin/package/env.sh
-        make -j$(sysctl -n hw.ncpu) feature-test
+        source .github/workflows/scripts/toolchain.sh
+        make feature-test
 
-    - name: test executable
+    - name: package HAWQ on Linux
+      if: runner.os == 'Linux'
       run: |
-        for file in $(find /tmp/hawq/bin -name '*' -type f); do
+        source .github/workflows/scripts/toolchain.sh
+        cp -r $HAWQ_TOOLCHAIN_PATH/dependency/package/lib/* /tmp/hawq/lib
+
+    - name: package HAWQ on macOS
+      if: runner.os == 'macOS'
+      run: |
+        source .github/workflows/scripts/toolchain.sh
+        for file in $(find /tmp/hawq/bin /tmp/hawq/lib -name '*' -type f); do
           if [[ $(file $file | grep Mach-O) ]]; then
             install_name_tool -add_rpath /tmp/hawq/lib $file;
           fi
         done
+        cp -r $HAWQ_TOOLCHAIN_PATH/dependency/package/lib/* /tmp/hawq/lib
+
+    - name: test executable
+      run: |
         source /tmp/hawq/greenplum_path.sh
         postgres -V
         src/test/feature/feature-test --gtest_list_tests
 
     - name: install HDFS
       run: |
-        export HOMEBREW_NO_INSTALL_CLEANUP=1
-        brew install hadoop
-
-    - name: initilize macOS
-      run: .github/workflows/scripts/init_macos.sh
+        wget -nv https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
+        sudo install -o $USER -d /usr/local/hadoop-3.3.0
+        sudo ln -snf hadoop-3.3.0 /usr/local/hadoop
+        sudo tee /usr/local/bin/hdfs <<<'exec /usr/local/hadoop/bin/hdfs $@'
+        sudo chmod a+x /usr/local/bin/hdfs
+        tar xf hadoop-3.3.0.tar.gz -C /usr/local/
 
     - name: initilize HDFS
       run: |
-        export HADOOP_HOME=/usr/local/opt/hadoop/libexec
+        export HADOOP_HOME=/usr/local/hadoop/
         .github/workflows/scripts/init_hdfs.sh
+        sudo -u $USER hdfs dfs -ls /
 
     - name: initilize HAWQ
       run: |
diff --git a/.github/workflows/scripts/download/.gitignore b/.github/workflows/scripts/download/.gitignore
new file mode 100644
index 0000000..57c53d5
--- /dev/null
+++ b/.github/workflows/scripts/download/.gitignore
@@ -0,0 +1 @@
+./*
diff --git a/.github/workflows/scripts/init_linux.sh b/.github/workflows/scripts/init_linux.sh
new file mode 100755
index 0000000..357adf9
--- /dev/null
+++ b/.github/workflows/scripts/init_linux.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+set -e
+
+
+
+# Setup passphraseless ssh
+test -f ~/.ssh/id_rsa || ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
+cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
+chmod go-w ~
+chmod 0700 ~/.ssh
+chmod 0600 ~/.ssh/authorized_keys
+
+tee -a ~/.ssh/config <<EOF_ssh_config
+Host *
+   StrictHostKeyChecking no
+   UserKnownHostsFile=/dev/null
+EOF_ssh_config
+
+ssh -v localhost whoami
+
+# Configure system kernel state
+sudo tee /etc/sysctl.conf << EOF_sysctl
+kernel.shmmax = 1000000000
+kernel.shmmni = 4096
+kernel.shmall = 4000000000
+kernel.sem = 250 512000 100 2048
+kernel.sysrq = 1
+kernel.core_uses_pid = 1
+kernel.msgmnb = 65536
+kernel.msgmax = 65536
+kernel.msgmni = 2048
+net.ipv4.tcp_syncookies = 0
+net.ipv4.conf.default.accept_source_route = 0
+net.ipv4.tcp_max_syn_backlog = 200000
+net.ipv4.conf.all.arp_filter = 1
+net.ipv4.ip_local_port_range = 10000 65535
+net.core.netdev_max_backlog = 200000
+net.netfilter.nf_conntrack_max = 524288
+fs.nr_open = 3000000
+kernel.threads-max = 798720
+kernel.pid_max = 798720
+
+net.core.rmem_max=2097152
+net.core.wmem_max=2097152
+net.core.somaxconn=4096
+EOF_sysctl
+sudo sysctl -p
+
+# Add data folder
+sudo install -o $USER -d /tmp/db_data/
diff --git a/.github/workflows/scripts/toolchain.sh b/.github/workflows/scripts/toolchain.sh
new file mode 100644
index 0000000..f7339c8
--- /dev/null
+++ b/.github/workflows/scripts/toolchain.sh
@@ -0,0 +1,90 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+export HAWQ_TOOLCHAIN_PATH=$(cd "$( dirname "${BASH_SOURCE[0]-$0}" )" && pwd)/download
+
+# GitHub Release for third-party package
+# https://github.com/apache/hawq/releases/tag/thirdparty
+REPO=https://github.com/apache/hawq/releases/download/thirdparty/
+
+
+
+###
+### macOS
+###
+if [[ $(uname -s) == Darwin ]]; then
+  if [ ! -d $HAWQ_TOOLCHAIN_PATH/dependency-Darwin ]; then
+    (cd $HAWQ_TOOLCHAIN_PATH && curl -OL $REPO/dependency-Darwin.tar.xz)
+    (cd $HAWQ_TOOLCHAIN_PATH && tar xJf dependency-Darwin.tar.xz -C $HAWQ_TOOLCHAIN_PATH)
+    ln -snf dependency-Darwin $HAWQ_TOOLCHAIN_PATH/dependency
+
+    for file in $(find $HAWQ_TOOLCHAIN_PATH/dependency/package/bin -name '*' -type f) $(find $HAWQ_TOOLCHAIN_PATH/dependency/package/lib -name '*.dylib' -type f); do
+      if [[ $(file $file | grep Mach-O) ]]; then
+        install_name_tool -add_rpath $HAWQ_TOOLCHAIN_PATH/dependency/package/lib $file || true
+      fi
+    done
+    install_name_tool -add_rpath $HAWQ_TOOLCHAIN_PATH/dependency/package/lib/perl5/5.28.0/darwin-thread-multi-2level/CORE/ $HAWQ_TOOLCHAIN_PATH/dependency/package/bin/perl
+  fi
+
+  export MAKEFLAGS=-j$(sysctl -n hw.ncpu)
+fi
+
+
+
+###
+### Linux
+###
+if [[ $(uname -s) == Linux ]]; then
+  if [ ! -d $HAWQ_TOOLCHAIN_PATH/gcc ]; then
+    (cd $HAWQ_TOOLCHAIN_PATH && curl -OL $REPO/gcc-7.4.0-x86_64-linux-sles11.4.tar.xz)
+    (cd $HAWQ_TOOLCHAIN_PATH && tar xJf gcc-7.4.0-x86_64-linux-sles11.4.tar.xz -C $HAWQ_TOOLCHAIN_PATH)
+    ln -snf gcc-7.4.0-x86_64-linux-sles11.4 $HAWQ_TOOLCHAIN_PATH/gcc
+  fi
+  if [ ! -d $HAWQ_TOOLCHAIN_PATH/cmake ]; then
+    (cd $HAWQ_TOOLCHAIN_PATH && curl -OL $REPO/cmake-3.12.4-Linux-x86_64.tar.gz)
+    (cd $HAWQ_TOOLCHAIN_PATH && tar xzf cmake-3.12.4-Linux-x86_64.tar.gz -C $HAWQ_TOOLCHAIN_PATH)
+    ln -snf cmake-3.12.4-Linux-x86_64 $HAWQ_TOOLCHAIN_PATH/cmake
+  fi
+  if [ ! -d $HAWQ_TOOLCHAIN_PATH/dependency-gcc-x86_64-Linux/ ]; then
+    (cd $HAWQ_TOOLCHAIN_PATH && curl -OL $REPO/dependency-gcc-x86_64-Linux.tar.gz)
+    (cd $HAWQ_TOOLCHAIN_PATH && tar xzf dependency-gcc-x86_64-Linux.tar.gz -C $HAWQ_TOOLCHAIN_PATH)
+    ln -snf dependency-gcc-x86_64-Linux $HAWQ_TOOLCHAIN_PATH/dependency
+  fi
+
+  export PATH=$HAWQ_TOOLCHAIN_PATH/gcc/bin:$HAWQ_TOOLCHAIN_PATH/cmake/bin:$PATH
+  export LD_LIBRARY_PATH=$HAWQ_TOOLCHAIN_PATH/gcc/lib64/:$LD_LIBRARY_PATH
+
+  export CPATH=$HAWQ_TOOLCHAIN_PATH/gcc/include/c++/7.4.0/:$HAWQ_TOOLCHAIN_PATH/gcc/include/c++/7.4.0/x86_64-pc-linux-gnu/
+  export CPATH=$CPATH:/usr/include/x86_64-linux-gnu/
+  export LIBRARY_PATH=$HAWQ_TOOLCHAIN_PATH/gcc/lib64/:/usr/lib/x86_64-linux-gnu/
+
+  unset CPPFLAGS
+  export CFLAGS='-std=gnu11 -fno-use-linker-plugin'
+  export CXXFLAGS='-fpermissive -fno-use-linker-plugin'
+  unset LDFLAGS
+
+  export CC=gcc
+  export CXX=g++
+  export LD=ld
+
+  export MAKEFLAGS=-j$(nproc)
+fi
+
+
+
+###
+rm -rf $HAWQ_TOOLCHAIN_PATH/dependency/package/include/hdfs
+rm -rf $HAWQ_TOOLCHAIN_PATH/dependency/package/lib/libhdfs3*
+source $HAWQ_TOOLCHAIN_PATH/dependency/package/env.sh
diff --git a/depends/dbcommon/src/dbcommon/function/arithmetic-function.h b/depends/dbcommon/src/dbcommon/function/arithmetic-function.h
index 8377454..023e542 100644
--- a/depends/dbcommon/src/dbcommon/function/arithmetic-function.h
+++ b/depends/dbcommon/src/dbcommon/function/arithmetic-function.h
@@ -20,6 +20,8 @@
 #ifndef DBCOMMON_SRC_DBCOMMON_FUNCTION_ARITHMETIC_FUNCTION_H_
 #define DBCOMMON_SRC_DBCOMMON_FUNCTION_ARITHMETIC_FUNCTION_H_
 
+#include <math.h>
+
 #include <cfloat>
 #include <cmath>
 #include <functional>
diff --git a/depends/libhdfs3/Makefile b/depends/libhdfs3/Makefile
index a60d8a8..ae5e2aa 100644
--- a/depends/libhdfs3/Makefile
+++ b/depends/libhdfs3/Makefile
@@ -66,7 +66,7 @@
 	mkdir -p build; \
 	cd build; \
 	if [ ! -f libhdfs3_build_timestamp ]; then \
-		$(abs_top_srcdir)/$(subdir)/bootstrap --prefix=$(prefix) $(PRE_CFG_ARG) && touch libhdfs3_build_timestamp; \
+		$(abs_top_srcdir)/$(subdir)/bootstrap --prefix=$(prefix) --dependency=$(prefix) $(PRE_CFG_ARG) && touch libhdfs3_build_timestamp; \
 	fi
 
 else
diff --git a/depends/libyarn/Makefile b/depends/libyarn/Makefile
index c6754a5..d667901 100644
--- a/depends/libyarn/Makefile
+++ b/depends/libyarn/Makefile
@@ -66,7 +66,7 @@
 	mkdir -p build; \
 	cd build; \
 	if [ ! -f libyarn_build_timestamp ]; then \
-		$(abs_top_srcdir)/$(subdir)/bootstrap --prefix=$(prefix) $(PRE_CFG_ARG) && touch libyarn_build_timestamp; \
+		$(abs_top_srcdir)/$(subdir)/bootstrap --prefix=$(prefix) --dependency=$(prefix) $(PRE_CFG_ARG) && touch libyarn_build_timestamp; \
 	fi
 
 else
