Last-minute fixes:
- Removed compilation warning in SQL2C++ converter on GCC <= 4.1
- When defining UDAs attribute PREFUNC is now used conditionally (fixed oversight in a couple of modules)
- fixed bug that prevented src/bin/madpack to run on some non-bash shells (like on Ubuntu)
- Build instructions: Made Runtime/Build Dependencies a required read.
diff --git a/ReadMe_Build.txt b/ReadMe_Build.txt
index 1564d3b..067cf4a 100644
--- a/ReadMe_Build.txt
+++ b/ReadMe_Build.txt
@@ -5,14 +5,14 @@
 Building and Installing from Source
 ===================================
 
-Run-time Requirements:
-----------------------
+** Run-time Requirements (required read):
+-----------------------------------------
 
 - LAPACK and BLAS libraries
 
 
-Build-time Requirements:
-------------------------
+** Build-time Requirements (required read):
+-------------------------------------------
 
 - LAPACK and BLAS libraries as above plus their header files.
   
diff --git a/doc/src/sql.yy b/doc/src/sql.yy
index 15a218b..44830b2 100644
--- a/doc/src/sql.yy
+++ b/doc/src/sql.yy
@@ -31,7 +31,9 @@
      *    warn_unused_result
      */
 	#if defined(__GNUC__)
-        #pragma GCC diagnostic ignored "-Wwrite-strings"
+        #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
+            #pragma GCC diagnostic ignored "-Wwrite-strings"
+        #endif
         #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
             #pragma GCC diagnostic ignored "-Wunused-result"
         #endif
diff --git a/methods/decision_tree/src/pg_gp/decision_tree.sql_in b/methods/decision_tree/src/pg_gp/decision_tree.sql_in
index b94cf25..c81300b 100644
--- a/methods/decision_tree/src/pg_gp/decision_tree.sql_in
+++ b/methods/decision_tree/src/pg_gp/decision_tree.sql_in
@@ -237,7 +237,7 @@
 DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.CreateHash(int, MADLIB_SCHEMA.svec, int);
 CREATE AGGREGATE MADLIB_SCHEMA.CreateHash(int, MADLIB_SCHEMA.svec, int) (
   SFUNC=MADLIB_SCHEMA.weight_count,
-  PREFUNC=MADLIB_SCHEMA.weight_aggr,
+  m4_ifdef(`GREENPLUM',`prefunc=MADLIB_SCHEMA.weight_aggr,')
   STYPE=MADLIB_SCHEMA.hash_val
 );
 
@@ -514,7 +514,7 @@
 DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.FindInfoGain(FLOAT, FLOAT, INT, INT, INT, INT);
 CREATE AGGREGATE MADLIB_SCHEMA.FindInfoGain(FLOAT, FLOAT, INT, INT, INT, INT) (
   SFUNC=MADLIB_SCHEMA.findinfogain_sfunc,
-  PREFUNC = MADLIB_SCHEMA.findinfogain_prefunc,
+  m4_ifdef(`GREENPLUM',`prefunc=MADLIB_SCHEMA.findinfogain_prefunc,')
   FINALFUNC=MADLIB_SCHEMA.findinfogain_finalfunc,
   STYPE=MADLIB_SCHEMA.findinfogain_type
 );
diff --git a/methods/svec/src/pg_gp/svec.sql_in b/methods/svec/src/pg_gp/svec.sql_in
index b669ada..a6c0ef9 100644
--- a/methods/svec/src/pg_gp/svec.sql_in
+++ b/methods/svec/src/pg_gp/svec.sql_in
@@ -892,7 +892,7 @@
 -- DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.svec_sum(MADLIB_SCHEMA.svec);
 CREATE AGGREGATE MADLIB_SCHEMA.svec_sum (MADLIB_SCHEMA.svec) (
 	SFUNC = MADLIB_SCHEMA.svec_plus,
-	PREFUNC = MADLIB_SCHEMA.svec_plus,
+	m4_ifdef(`GREENPLUM',`prefunc=MADLIB_SCHEMA.svec_plus,')
 	INITCOND = '{1}:{0.}', -- Zero
 	STYPE = MADLIB_SCHEMA.svec
 );
@@ -902,7 +902,7 @@
 -- DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.svec_count_nonzero(MADLIB_SCHEMA.svec);
 CREATE AGGREGATE MADLIB_SCHEMA.svec_count_nonzero (MADLIB_SCHEMA.svec) (
 	SFUNC = MADLIB_SCHEMA.svec_count,
-	PREFUNC = MADLIB_SCHEMA.svec_plus,
+	m4_ifdef(`GREENPLUM',`prefunc=MADLIB_SCHEMA.svec_plus,')
  	INITCOND = '{1}:{0.}', -- Zero
 	STYPE = MADLIB_SCHEMA.svec
 );
@@ -912,7 +912,7 @@
 -- DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.svec_agg(float8);
 CREATE AGGREGATE MADLIB_SCHEMA.svec_agg (float8) (
 	SFUNC = MADLIB_SCHEMA.svec_pivot,
-	PREFUNC = MADLIB_SCHEMA.svec_concat,
+	m4_ifdef(`GREENPLUM',`prefunc=MADLIB_SCHEMA.svec_concat,')
 	STYPE = MADLIB_SCHEMA.svec
 );
 
@@ -921,7 +921,7 @@
 -- DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.svec_median_inmemory(float8);
 CREATE AGGREGATE MADLIB_SCHEMA.svec_median_inmemory (float8) (
 	SFUNC = MADLIB_SCHEMA.svec_pivot,
-	PREFUNC = MADLIB_SCHEMA.svec_concat,
+	m4_ifdef(`GREENPLUM',`prefunc=MADLIB_SCHEMA.svec_concat,')
 	FINALFUNC = MADLIB_SCHEMA.svec_median,
 	STYPE = MADLIB_SCHEMA.svec
 );
diff --git a/src/bin/madpack b/src/bin/madpack
index 855dfa0..963e64b 100755
--- a/src/bin/madpack
+++ b/src/bin/madpack
@@ -43,8 +43,6 @@
 # function main()
 if test $DID_NOT_FIND_INTERPRETER -ne 0; then
     for VERSION in $PYTHON_VERSIONS; do
-        VERSION_DENSE=${VERSION/./}
-        
         setAndTestPythonVesion "${VERSION}"
         if test $DID_NOT_FIND_INTERPRETER -eq 0; then
             break
diff --git a/src/ports/postgres/modules/regress/logistic.sql_in b/src/ports/postgres/modules/regress/logistic.sql_in
index 88d586c..e7124fc 100644
--- a/src/ports/postgres/modules/regress/logistic.sql_in
+++ b/src/ports/postgres/modules/regress/logistic.sql_in
@@ -246,7 +246,7 @@
     
     STYPE=DOUBLE PRECISION[],
     SFUNC=MADLIB_SCHEMA.logregr_cg_step_transition,
-    PREFUNC=MADLIB_SCHEMA.logregr_cg_step_merge_states,
+    m4_ifdef(`GREENPLUM',`prefunc=MADLIB_SCHEMA.logregr_cg_step_merge_states,')
     FINALFUNC=MADLIB_SCHEMA.logregr_cg_step_final,
 	INITCOND='{0,0,0,0,0,0}'
 );
@@ -268,7 +268,7 @@
     
     STYPE=DOUBLE PRECISION[],
     SFUNC=MADLIB_SCHEMA.logregr_irls_step_transition,
-    PREFUNC=MADLIB_SCHEMA.logregr_irls_step_merge_states,
+    m4_ifdef(`GREENPLUM',`prefunc=MADLIB_SCHEMA.logregr_irls_step_merge_states,')
     FINALFUNC=MADLIB_SCHEMA.logregr_irls_step_final,
 	INITCOND='{0,0,0}'
 );