RDEPENDS_${PN} = ""
PACKAGES = ""
EXTRA_OEMAKE = ""
-EXTRA_OECONF = " --with-embedded-server "
do_install() {
oe_runmake 'DESTDIR=${D}' install
- mv -f ${D}${libdir}/mysql/* ${D}${libdir}
- rmdir ${D}${libdir}/mysql
install -d ${D}${bindir}
install -m 0755 sql/gen_lex_hash ${D}${bindir}/
+ install -m 0755 extra/comp_err ${D}${bindir}/
+ install -m 0755 scripts/comp_sql ${D}${bindir}/
}
+++ /dev/null
-Index: mysql-5.1.40/sql/Makefile.am
-===================================================================
---- mysql-5.1.40.orig/sql/Makefile.am
-+++ mysql-5.1.40/sql/Makefile.am
-@@ -174,10 +174,10 @@ link_sources:
- # This generates lex_hash.h
- # NOTE Built sources should depend on their sources not the tool
- # this avoid the rebuild of the built files in a source dist
--lex_hash.h: gen_lex_hash.cc lex.h
-- $(MAKE) $(AM_MAKEFLAGS) gen_lex_hash$(EXEEXT)
-- ./gen_lex_hash$(EXEEXT) > $@-t
-- $(MV) $@-t $@
-+GEN_LEX_HASH = ./gen_lex_hash$(EXEEXT)
-+
-+lex_hash.h: gen_lex_hash$(EXEEXT)
-+ $(GEN_LEX_HASH) > $@
-
- # For testing of udf_example.so
- udf_example_la_SOURCES= udf_example.c
+++ /dev/null
-Tell autoconf about with-plugin option to avoid warnings like:
-configure: WARNING: unrecognized options: --with-plugin-maria
-
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-Index: mariadb-5.1.67/config/ac-macros/plugins.m4
-===================================================================
---- mariadb-5.1.67.orig/config/ac-macros/plugins.m4
-+++ mariadb-5.1.67/config/ac-macros/plugins.m4
-@@ -38,6 +38,7 @@ AC_DEFUN([_MYSQL_PLUGIN],[
- _MYSQL_PLUGAPPEND([__mysql_plugin_list__],[$1])
- m4_define([MYSQL_PLUGIN_NAME_]AS_TR_CPP([$1]), [$3])
- m4_define([MYSQL_PLUGIN_DESC_]AS_TR_CPP([$1]), [$4])
-+ m4_ifdef([_AC_ENABLE_IF], [_AC_ENABLE_IF([with],[plugin-$1])])
- _MYSQL_PLUGAPPEND_META([$1], $5)
- ifelse(m4_bregexp(__mysql_include__,[/plug\.in$]),-1,[],[
- MYSQL_PLUGIN_DIRECTORY([$1],
+++ /dev/null
-Index: mysql-4.1.22/configure.in
-===================================================================
---- mysql-4.1.22.orig/configure.in 2009-01-28 16:33:28.000000000 +0000
-+++ mysql-4.1.22/configure.in 2009-01-28 16:43:26.000000000 +0000
-@@ -471,8 +471,8 @@
-
- # Lock for PS
- AC_PATH_PROG(PS, ps, ps)
--AC_MSG_CHECKING("how to check if pid exists")
--PS=$ac_cv_path_PS
-+AC_CACHE_CHECK([how to check if pid exists], [ac_cv_FIND_PROC],
-+[
- # Linux style
- if $PS p $$ 2> /dev/null | grep $0 > /dev/null
- then
-@@ -511,8 +511,9 @@
- AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
- esac
- fi
--AC_SUBST(FIND_PROC)
--AC_MSG_RESULT("$FIND_PROC")
-+ac_cv_FIND_PROC="$FIND_PROC"
-+])
-+AC_SUBST([FIND_PROC], [$ac_cv_FIND_PROC])
-
- # Check if a pid is valid
- AC_PATH_PROG(KILL, kill, kill)
+++ /dev/null
-Index: mysql-5.1.40/configure.in
-===================================================================
---- mysql-5.1.40.orig/configure.in
-+++ mysql-5.1.40/configure.in
-@@ -226,8 +226,6 @@ else
- AC_PATH_PROG(AS, as, as)
- fi
-
--# Still need ranlib for readline; local static use only so no libtool.
--AC_PROG_RANLIB
- # We use libtool
- #AC_LIBTOOL_WIN32_DLL
- AC_PROG_LIBTOOL
--- /dev/null
+Avoid CMAKE_MODULE_PATH being overwritten
+
+OE-Core's setting of CMAKE_MODULE_PATH stomps on MariaDB's value unless
+we set it after setting the project name.
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+Upstream-Status: Inappropriate [working around OE-Core bug]
+
+--- mariadb/CMakeLists.txt 2014-07-17 11:01:07.676353047 +0100
++++ mariadb/CMakeLists.txt 2014-07-17 11:01:31.299353107 +0100
+@@ -28,8 +28,6 @@
+
+ MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}")
+
+-SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
+-
+ # Distinguish between community and non-community builds, with the
+ # default being a community build. This does not impact the feature
+ # set that will be compiled in; it's merely provided as a hint to
+@@ -77,6 +75,8 @@
+ ENDIF()
+ PROJECT(${MYSQL_PROJECT_NAME})
+
++SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
++
+ IF(BUILD_CONFIG)
+ INCLUDE(
+ ${CMAKE_SOURCE_DIR}/cmake/build_configurations/${BUILD_CONFIG}.cmake)
+++ /dev/null
-From 24404044ad4c28026e400e1fcd85358f2060aa96 Mon Sep 17 00:00:00 2001
-From: Alexey Botchkov <holyfoot@askmonty.org>
-Date: Sun, 10 Mar 2013 23:08:05 +0400
-Subject: [PATCH] MDEV-4252 geometry query crashes server. The bug was
- found by Alyssa Milburn. If the number of points of a geometry feature
- read from binary representation is greater than 0x10000000, then
- the (uint32) (num_points * 16) will cut the higher byte, which leads to
- various errors. Fixed by additional check if (num_points >
- max_n_points).
-
-Upstream-Status: Backport
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
----
- mysql-test/r/gis.result | 3 +++
- mysql-test/t/gis.test | 1 +
- sql/spatial.cc | 27 ++++++++++++++++++---------
- sql/spatial.h | 9 +++++----
- 4 files changed, 27 insertions(+), 13 deletions(-)
-
-diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result
-index 8dad72f..69e73d0 100644
---- a/mysql-test/r/gis.result
-+++ b/mysql-test/r/gis.result
-@@ -1087,4 +1087,7 @@ NULL
- #
- SELECT GEOMETRYCOLLECTION((SELECT @@OLD));
- ERROR 22007: Illegal non geometric '' value found during parsing
-+select astext(0x0100000000030000000100000000000010);
-+astext(0x0100000000030000000100000000000010)
-+NULL
- End of 5.1 tests
-diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test
-index abda3e9..cc5d158 100644
---- a/mysql-test/t/gis.test
-+++ b/mysql-test/t/gis.test
-@@ -826,5 +826,6 @@ SELECT ISCLOSED(CONVERT(CONCAT(' ', 0x2), BINARY(20)));
- --error ER_ILLEGAL_VALUE_FOR_TYPE
- SELECT GEOMETRYCOLLECTION((SELECT @@OLD));
-
-+select astext(0x0100000000030000000100000000000010);
-
- --echo End of 5.1 tests
-diff --git a/sql/spatial.cc b/sql/spatial.cc
-index eec028e..94d0238 100644
---- a/sql/spatial.cc
-+++ b/sql/spatial.cc
-@@ -556,7 +556,7 @@ bool Gis_line_string::get_data_as_wkt(String *txt, const char **end) const
- n_points= uint4korr(data);
- data += 4;
-
-- if (n_points < 1 ||
-+ if (n_points < 1 || n_points > max_n_points ||
- no_data(data, SIZEOF_STORED_DOUBLE * 2 * n_points) ||
- txt->reserve(((MAX_DIGITS_IN_DOUBLE + 1)*2 + 1) * n_points))
- return 1;
-@@ -594,7 +594,8 @@ int Gis_line_string::geom_length(double *len) const
- return 1;
- n_points= uint4korr(data);
- data+= 4;
-- if (n_points < 1 || no_data(data, SIZEOF_STORED_DOUBLE * 2 * n_points))
-+ if (n_points < 1 || n_points > max_n_points ||
-+ no_data(data, SIZEOF_STORED_DOUBLE * 2 * n_points))
- return 1;
-
- get_point(&prev_x, &prev_y, data);
-@@ -628,7 +629,7 @@ int Gis_line_string::is_closed(int *closed) const
- return 0;
- }
- data+= 4;
-- if (n_points == 0 ||
-+ if (n_points == 0 || n_points > max_n_points ||
- no_data(data, SIZEOF_STORED_DOUBLE * 2 * n_points))
- return 1;
-
-@@ -798,7 +799,8 @@ bool Gis_polygon::get_data_as_wkt(String *txt, const char **end) const
- return 1;
- n_points= uint4korr(data);
- data+= 4;
-- if (no_data(data, (SIZEOF_STORED_DOUBLE*2) * n_points) ||
-+ if (n_points > max_n_points ||
-+ no_data(data, (SIZEOF_STORED_DOUBLE*2) * n_points) ||
- txt->reserve(2 + ((MAX_DIGITS_IN_DOUBLE + 1) * 2 + 1) * n_points))
- return 1;
- txt->qs_append('(');
-@@ -852,7 +854,8 @@ int Gis_polygon::area(double *ar, const char **end_of_data) const
- if (no_data(data, 4))
- return 1;
- n_points= uint4korr(data);
-- if (no_data(data, (SIZEOF_STORED_DOUBLE*2) * n_points))
-+ if (n_points > max_n_points ||
-+ no_data(data, (SIZEOF_STORED_DOUBLE*2) * n_points))
- return 1;
- get_point(&prev_x, &prev_y, data+4);
- data+= (4+SIZEOF_STORED_DOUBLE*2);
-@@ -888,7 +891,8 @@ int Gis_polygon::exterior_ring(String *result) const
- n_points= uint4korr(data);
- data+= 4;
- length= n_points * POINT_DATA_SIZE;
-- if (no_data(data, length) || result->reserve(1+4+4+ length))
-+ if (n_points > max_n_points ||
-+ no_data(data, length) || result->reserve(1+4+4+ length))
- return 1;
-
- result->q_append((char) wkb_ndr);
-@@ -973,7 +977,8 @@ int Gis_polygon::centroid_xy(double *x, double *y) const
- return 1;
- org_n_points= n_points= uint4korr(data);
- data+= 4;
-- if (no_data(data, (SIZEOF_STORED_DOUBLE*2) * n_points))
-+ if (n_points > max_n_points ||
-+ no_data(data, (SIZEOF_STORED_DOUBLE*2) * n_points))
- return 1;
- get_point(&prev_x, &prev_y, data);
- data+= (SIZEOF_STORED_DOUBLE*2);
-@@ -1260,7 +1265,8 @@ bool Gis_multi_line_string::get_data_as_wkt(String *txt,
- return 1;
- n_points= uint4korr(data + WKB_HEADER_SIZE);
- data+= WKB_HEADER_SIZE + 4;
-- if (no_data(data, n_points * (SIZEOF_STORED_DOUBLE*2)) ||
-+ if (n_points > max_n_points ||
-+ no_data(data, n_points * (SIZEOF_STORED_DOUBLE*2)) ||
- txt->reserve(2 + ((MAX_DIGITS_IN_DOUBLE + 1) * 2 + 1) * n_points))
- return 1;
- txt->qs_append('(');
-@@ -1521,7 +1527,8 @@ bool Gis_multi_polygon::get_data_as_wkt(String *txt, const char **end) const
- return 1;
- uint32 n_points= uint4korr(data);
- data+= 4;
-- if (no_data(data, (SIZEOF_STORED_DOUBLE * 2) * n_points) ||
-+ if (n_points > max_n_points ||
-+ no_data(data, (SIZEOF_STORED_DOUBLE * 2) * n_points) ||
- txt->reserve(2 + ((MAX_DIGITS_IN_DOUBLE + 1) * 2 + 1) * n_points,
- 512))
- return 1;
-@@ -1604,6 +1611,8 @@ int Gis_multi_polygon::geometry_n(uint32 num, String *result) const
- if (no_data(data, 4))
- return 1;
- n_points= uint4korr(data);
-+ if (n_points > max_n_points)
-+ return 1;
- data+= 4 + POINT_DATA_SIZE * n_points;
- }
- } while (--num);
-diff --git a/sql/spatial.h b/sql/spatial.h
-index 20b3856..7d25425 100644
---- a/sql/spatial.h
-+++ b/sql/spatial.h
-@@ -197,6 +197,11 @@ struct MBR
- class Geometry
- {
- public:
-+ // Maximum number of points in feature that can fit into String
-+ static const uint32 max_n_points=
-+ (uint32) (UINT_MAX32 - WKB_HEADER_SIZE - 4 /* n_points */) /
-+ POINT_DATA_SIZE;
-+public:
- Geometry() {} /* Remove gcc warning */
- virtual ~Geometry() {} /* Remove gcc warning */
- static void *operator new(size_t size, void *buffer)
-@@ -379,10 +384,6 @@ class Gis_point: public Geometry
-
- class Gis_line_string: public Geometry
- {
-- // Maximum number of points in LineString that can fit into String
-- static const uint32 max_n_points=
-- (uint32) (UINT_MAX32 - WKB_HEADER_SIZE - 4 /* n_points */) /
-- POINT_DATA_SIZE;
- public:
- Gis_line_string() {} /* Remove gcc warning */
- virtual ~Gis_line_string() {} /* Remove gcc warning */
---
-1.8.1.6
-
+++ /dev/null
-From 9f714cdd3bf4bd8ee06cd38dcd2c6e8990a4ec48 Mon Sep 17 00:00:00 2001
-From: Alexey Botchkov <holyfoot@askmonty.org>
-Date: Mon, 18 Mar 2013 17:58:00 +0400
-Subject: [PATCH] MDEV-4252 geometry query crashes server. Additional fixes
- for possible overflows in length-related calculations in 'spatial'
- implementations. Checks added to the ::get_data_size() methods.
- max_n_points decreased to occupy less 2G size. An object of that size is
- practically inoperable anyway.
-
-Upstream-Status: Backport
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
----
- mysql-test/r/gis.result | 12 +++++++++
- mysql-test/t/gis.test | 6 +++++
- sql/spatial.cc | 67 ++++++++++++++++++++++++++++++++++---------------
- sql/spatial.h | 2 +-
- 4 files changed, 66 insertions(+), 21 deletions(-)
-
-diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result
-index 69e73d0..7566f0b 100644
---- a/mysql-test/r/gis.result
-+++ b/mysql-test/r/gis.result
-@@ -1087,7 +1087,19 @@ NULL
- #
- SELECT GEOMETRYCOLLECTION((SELECT @@OLD));
- ERROR 22007: Illegal non geometric '' value found during parsing
-+#
-+# MDEV-4252 geometry query crashes server
-+#
- select astext(0x0100000000030000000100000000000010);
- astext(0x0100000000030000000100000000000010)
- NULL
-+select envelope(0x0100000000030000000100000000000010);
-+envelope(0x0100000000030000000100000000000010)
-+NULL
-+select geometryn(0x0100000000070000000100000001030000000200000000000000ffff0000, 1);
-+geometryn(0x0100000000070000000100000001030000000200000000000000ffff0000, 1)
-+NULL
-+select geometryn(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1);
-+geometryn(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1)
-+NULL
- End of 5.1 tests
-diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test
-index cc5d158..c42541e 100644
---- a/mysql-test/t/gis.test
-+++ b/mysql-test/t/gis.test
-@@ -826,6 +826,12 @@ SELECT ISCLOSED(CONVERT(CONCAT(' ', 0x2), BINARY(20)));
- --error ER_ILLEGAL_VALUE_FOR_TYPE
- SELECT GEOMETRYCOLLECTION((SELECT @@OLD));
-
-+--echo #
-+--echo # MDEV-4252 geometry query crashes server
-+--echo #
- select astext(0x0100000000030000000100000000000010);
-+select envelope(0x0100000000030000000100000000000010);
-+select geometryn(0x0100000000070000000100000001030000000200000000000000ffff0000, 1);
-+select geometryn(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1);
-
- --echo End of 5.1 tests
-diff --git a/sql/spatial.cc b/sql/spatial.cc
-index 94d0238..5a4b768 100644
---- a/sql/spatial.cc
-+++ b/sql/spatial.cc
-@@ -394,18 +394,19 @@ const char *Geometry::append_points(String *txt, uint32 n_points,
- const char *Geometry::get_mbr_for_points(MBR *mbr, const char *data,
- uint offset) const
- {
-- uint32 points;
-+ uint32 n_points;
- /* read number of points */
- if (no_data(data, 4))
- return 0;
-- points= uint4korr(data);
-+ n_points= uint4korr(data);
- data+= 4;
-
-- if (no_data(data, (SIZEOF_STORED_DOUBLE * 2 + offset) * points))
-+ if (n_points > max_n_points ||
-+ no_data(data, (POINT_DATA_SIZE + offset) * n_points))
- return 0;
-
- /* Calculate MBR for points */
-- while (points--)
-+ while (n_points--)
- {
- data+= offset;
- mbr->add_xy(data, data + SIZEOF_STORED_DOUBLE);
-@@ -484,9 +485,12 @@ const Geometry::Class_info *Gis_point::get_class_info() const
-
- uint32 Gis_line_string::get_data_size() const
- {
-- if (no_data(m_data, 4))
-+ uint32 n_points, size;
-+ if (no_data(m_data, 4) ||
-+ (n_points= uint4korr(m_data)) > max_n_points ||
-+ no_data(m_data, (size= 4 + n_points * POINT_DATA_SIZE)))
- return GET_SIZE_ERROR;
-- return 4 + uint4korr(m_data) * POINT_DATA_SIZE;
-+ return size;
- }
-
-
-@@ -665,6 +669,9 @@ int Gis_line_string::end_point(String *result) const
- if (no_data(m_data, 4))
- return 1;
- n_points= uint4korr(m_data);
-+ if (n_points == 0 || n_points > max_n_points ||
-+ no_data(m_data, POINT_DATA_SIZE * n_points))
-+ return 1;
- return create_point(result, m_data + 4 + (n_points - 1) * POINT_DATA_SIZE);
- }
-
-@@ -674,11 +681,14 @@ int Gis_line_string::point_n(uint32 num, String *result) const
- uint32 n_points;
- if (no_data(m_data, 4))
- return 1;
-+ num--;
- n_points= uint4korr(m_data);
-- if ((uint32) (num - 1) >= n_points) // means (num > n_points || num < 1)
-+ if (num >= n_points ||
-+ num > max_n_points || // means (num > n_points || num < 1)
-+ no_data(m_data, num * POINT_DATA_SIZE))
- return 1;
-
-- return create_point(result, m_data + 4 + (num - 1) * POINT_DATA_SIZE);
-+ return create_point(result, m_data + 4 + num*POINT_DATA_SIZE);
- }
-
- const Geometry::Class_info *Gis_line_string::get_class_info() const
-@@ -692,6 +702,7 @@ const Geometry::Class_info *Gis_line_string::get_class_info() const
- uint32 Gis_polygon::get_data_size() const
- {
- uint32 n_linear_rings;
-+ uint32 n_points;
- const char *data= m_data;
-
- if (no_data(data, 4))
-@@ -701,10 +712,13 @@ uint32 Gis_polygon::get_data_size() const
-
- while (n_linear_rings--)
- {
-- if (no_data(data, 4))
-+ if (no_data(data, 4) ||
-+ (n_points= uint4korr(data)) > max_n_points)
- return GET_SIZE_ERROR;
-- data+= 4 + uint4korr(data)*POINT_DATA_SIZE;
-+ data+= 4 + n_points*POINT_DATA_SIZE;
- }
-+ if (no_data(data, 0))
-+ return GET_SIZE_ERROR;
- return (uint32) (data - m_data);
- }
-
-@@ -1037,9 +1051,14 @@ const Geometry::Class_info *Gis_polygon::get_class_info() const
-
- uint32 Gis_multi_point::get_data_size() const
- {
-- if (no_data(m_data, 4))
-- return GET_SIZE_ERROR;
-- return 4 + uint4korr(m_data)*(POINT_DATA_SIZE + WKB_HEADER_SIZE);
-+ uint32 n_points;
-+ uint32 size;
-+
-+ if (no_data(m_data, 4) ||
-+ (n_points= uint4korr(m_data)) > max_n_points ||
-+ no_data(m_data, (size= 4 + n_points*(POINT_DATA_SIZE + WKB_HEADER_SIZE))))
-+ return GET_SIZE_ERROR;
-+ return size;
- }
-
-
-@@ -1107,7 +1126,8 @@ bool Gis_multi_point::get_data_as_wkt(String *txt, const char **end) const
- return 1;
-
- n_points= uint4korr(m_data);
-- if (no_data(m_data+4,
-+ if (n_points > max_n_points ||
-+ no_data(m_data+4,
- n_points * (SIZEOF_STORED_DOUBLE * 2 + WKB_HEADER_SIZE)) ||
- txt->reserve(((MAX_DIGITS_IN_DOUBLE + 1) * 2 + 1) * n_points))
- return 1;
-@@ -1160,6 +1180,7 @@ const Geometry::Class_info *Gis_multi_point::get_class_info() const
- uint32 Gis_multi_line_string::get_data_size() const
- {
- uint32 n_line_strings;
-+ uint32 n_points;
- const char *data= m_data;
-
- if (no_data(data, 4))
-@@ -1169,11 +1190,13 @@ uint32 Gis_multi_line_string::get_data_size() const
-
- while (n_line_strings--)
- {
-- if (no_data(data, WKB_HEADER_SIZE + 4))
-+ if (no_data(data, WKB_HEADER_SIZE + 4) ||
-+ (n_points= uint4korr(data + WKB_HEADER_SIZE)) > max_n_points)
- return GET_SIZE_ERROR;
-- data+= (WKB_HEADER_SIZE + 4 + uint4korr(data + WKB_HEADER_SIZE) *
-- POINT_DATA_SIZE);
-+ data+= (WKB_HEADER_SIZE + 4 + n_points*POINT_DATA_SIZE);
- }
-+ if (no_data(data, 0))
-+ return GET_SIZE_ERROR;
- return (uint32) (data - m_data);
- }
-
-@@ -1327,7 +1350,7 @@ int Gis_multi_line_string::geometry_n(uint32 num, String *result) const
- return 1;
- n_points= uint4korr(data + WKB_HEADER_SIZE);
- length= WKB_HEADER_SIZE + 4+ POINT_DATA_SIZE * n_points;
-- if (no_data(data, length))
-+ if (n_points > max_n_points || no_data(data, length))
- return 1;
- if (!--num)
- break;
-@@ -1407,6 +1430,7 @@ const Geometry::Class_info *Gis_multi_line_string::get_class_info() const
- uint32 Gis_multi_polygon::get_data_size() const
- {
- uint32 n_polygons;
-+ uint32 n_points;
- const char *data= m_data;
-
- if (no_data(data, 4))
-@@ -1425,11 +1449,14 @@ uint32 Gis_multi_polygon::get_data_size() const
-
- while (n_linear_rings--)
- {
-- if (no_data(data, 4))
-+ if (no_data(data, 4) ||
-+ (n_points= uint4korr(data)) > max_n_points)
- return GET_SIZE_ERROR;
-- data+= 4 + uint4korr(data) * POINT_DATA_SIZE;
-+ data+= 4 + n_points * POINT_DATA_SIZE;
- }
- }
-+ if (no_data(data, 0))
-+ return GET_SIZE_ERROR;
- return (uint32) (data - m_data);
- }
-
-diff --git a/sql/spatial.h b/sql/spatial.h
-index 7d25425..d7632c1 100644
---- a/sql/spatial.h
-+++ b/sql/spatial.h
-@@ -199,7 +199,7 @@ class Geometry
- public:
- // Maximum number of points in feature that can fit into String
- static const uint32 max_n_points=
-- (uint32) (UINT_MAX32 - WKB_HEADER_SIZE - 4 /* n_points */) /
-+ (uint32) (INT_MAX32 - WKB_HEADER_SIZE - 4 /* n_points */) /
- POINT_DATA_SIZE;
- public:
- Geometry() {} /* Remove gcc warning */
---
-1.8.1.6
-
+++ /dev/null
-mariadb-native: fix link error on Ubuntu 13.10
-
-Below errors only occurs on Ubuntu 13.10:
-
-$arch-linux-libtool: link: g++ ... -o .libs/mysqltest_embedded \
- ../../libmysqld/.libs/libmysqld.so -ldl
-
- ../../libmysqld/.libs/libmysqld.so: undefined reference to `dlopen'
- ../../libmysqld/.libs/libmysqld.so: undefined reference to `dlclose'
- ../../libmysqld/.libs/libmysqld.so: undefined reference to `dlerror'
- ../../libmysqld/.libs/libmysqld.so: undefined reference to `dlsym'
-
-GCC/ld verion on the host:
- gcc (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1
- GNU ld (GNU Binutils for Ubuntu) 2.23.52.20130913
-
-This is a strange behavior on Ub13.10, it fails even '-ldl' in the
-link command line. Below fix will append '-ldl' to dependency_libs
-in libmysqld.la.
-
-Upstream-Status: Submitted [https://mariadb.atlassian.net/browse/MDEV-5362]
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
-================================================
-diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am
-index 7a2c92e..eee501e 100644
---- a/libmysqld/Makefile.am
-+++ b/libmysqld/Makefile.am
-@@ -92,7 +92,7 @@ INC_LIB= $(top_builddir)/regex/libregex.la \
- @ndbcluster_libs@ @NDB_SCI_LIBS@ \
- @mysql_embedded_plugin_libs@ \
- $(libevent_inc_libs) \
-- $(yassl_inc_libs)
-+ $(yassl_inc_libs) @LIBDL@
-
- if HAVE_YASSL
- yassl_inc_libs= $(top_builddir)/extra/yassl/src/libyassl.la \
--- /dev/null
+From 6db2a606196fb38a6d106dc409eee1cb9a40a440 Mon Sep 17 00:00:00 2001
+From: Tor Didriksen <tor.didriksen@oracle.com>
+Date: Mon, 24 Jun 2013 17:15:35 +0200
+Subject: [PATCH] Bug#16809055 MYSQL 5.6 AND 5.7 STILL USE LIBMYSQLCLIENT.SO.18
+
+With this patch, the libmysql/ directory contains:
+libmysqlclient.a
+libmysqlclient_r.a -> libmysqlclient.a
+libmysqlclient_r.so -> libmysqlclient.so*
+libmysqlclient_r.so.18 -> libmysqlclient.so.18*
+libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0*
+libmysqlclient.so -> libmysqlclient.so.18*
+libmysqlclient.so.18 -> libmysqlclient.so.18.1.0*
+libmysqlclient.so.18.1.0*
+
+This fixes libmysqlclient_r symlinks pointing to the unversioned
+libmysqlclient.so symlink (leading to package QA errors since the
+libmysqlclient-r package ends up depending on libmysqlclient-dev).
+
+Borrowed from MySQL 5.6 tree at https://github.com/percona/mysql/
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+---
+ cmake/install_macros.cmake | 25 +++++++++++++++----------
+ cmake/mysql_version.cmake | 3 ++-
+ libmysql/CMakeLists.txt | 36 ++++++++++++++++++++++++++++--------
+ 3 files changed, 45 insertions(+), 19 deletions(-)
+
+diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake
+index b8efdf8..a0d0e68 100644
+--- a/cmake/install_macros.cmake
++++ b/cmake/install_macros.cmake
+@@ -1,4 +1,4 @@
+-# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+ #
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -111,28 +111,33 @@ FUNCTION(INSTALL_SCRIPT)
+ ENDFUNCTION()
+
+ # Install symbolic link to CMake target.
+-# the link is created in the same directory as target
+-# and extension will be the same as for target file.
+-MACRO(INSTALL_SYMLINK linkname target destination component)
++# We do 'cd path; ln -s target_name link_name'
++# We also add an INSTALL target for "${path}/${link_name}"
++MACRO(INSTALL_SYMLINK target target_name link_name destination component)
+ IF(UNIX)
+ GET_TARGET_PROPERTY(location ${target} LOCATION)
+ GET_FILENAME_COMPONENT(path ${location} PATH)
+- GET_FILENAME_COMPONENT(name ${location} NAME)
+- SET(output ${path}/${linkname})
++ MESSAGE(STATUS "target ${target}")
++ MESSAGE(STATUS "link_name ${link_name}")
++ MESSAGE(STATUS "target_name ${target_name}")
++ MESSAGE(STATUS "path ${path}")
++ MESSAGE(STATUS "")
++
++ SET(output ${path}/${link_name})
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${output}
+ COMMAND ${CMAKE_COMMAND} ARGS -E remove -f ${output}
+ COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink
+- ${name}
+- ${linkname}
++ ${target_name}
++ ${link_name}
+ WORKING_DIRECTORY ${path}
+ DEPENDS ${target}
+ )
+
+- ADD_CUSTOM_TARGET(symlink_${linkname}
++ ADD_CUSTOM_TARGET(symlink_${link_name}
+ ALL
+ DEPENDS ${output})
+- SET_TARGET_PROPERTIES(symlink_${linkname} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
++ SET_TARGET_PROPERTIES(symlink_${link_name} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+ IF(CMAKE_GENERATOR MATCHES "Xcode")
+ # For Xcode, replace project config with install config
+ STRING(REPLACE "${CMAKE_CFG_INTDIR}"
+diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt
+index be5760f..96286ff 100644
+--- a/libmysql/CMakeLists.txt
++++ b/libmysql/CMakeLists.txt
+@@ -180,6 +180,12 @@ IF(MSVC)
+ INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug)
+ ENDIF()
+
++MACRO(GET_TARGET_NAME target out_name)
++ GET_TARGET_PROPERTY(location ${target} LOCATION)
++ GET_FILENAME_COMPONENT(name ${location} NAME)
++ SET(${out_name} ${name})
++ENDMACRO()
++
+ IF(UNIX)
+ MACRO(GET_VERSIONED_LIBNAME LIBNAME EXTENSION VERSION OUTNAME)
+ SET(DOT_VERSION ".${VERSION}")
+@@ -192,7 +198,13 @@ IF(UNIX)
+ SET(${OUTNAME} ${LIBNAME}${EXTENSION}${DOT_VERSION})
+ ENDIF()
+ ENDMACRO()
+- INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a mysqlclient ${INSTALL_LIBDIR} Development)
++ENDIF()
++
++IF(UNIX)
++ GET_TARGET_NAME(mysqlclient lib_name)
++ INSTALL_SYMLINK(mysqlclient
++ ${lib_name} ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a
++ ${INSTALL_LIBDIR} Development)
+ ENDIF()
+
+ IF(NOT DISABLE_SHARED)
+@@ -205,10 +217,9 @@ IF(NOT DISABLE_SHARED)
+ # libtool compatability
+ IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
+ SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}")
+- ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
+- SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0")
+ ELSE()
+- SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0.0")
++ SET(OS_SHARED_LIB_VERSION
++ "${SHARED_LIB_MAJOR_VERSION}.${SHARED_LIB_MINOR_VERSION}.0")
+ ENDIF()
+ # Name of shared library is mysqlclient on Unix
+ SET_TARGET_PROPERTIES(libmysql PROPERTIES
+@@ -239,8 +250,13 @@ IF(NOT DISABLE_SHARED)
+ "${CMAKE_SHARED_LIBRARY_SUFFIX}"
+ ""
+ linkname)
+- INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR} SharedLibraries)
+- SET(OS_SHARED_LIB_SYMLINKS "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}")
++ GET_TARGET_NAME(libmysql lib_name)
++ GET_FILENAME_COMPONENT(lib_name_we ${lib_name} NAME_WE)
++ INSTALL_SYMLINK(libmysql
++ ${lib_name} ${linkname}
++ ${INSTALL_LIBDIR} SharedLibraries)
++ SET(OS_SHARED_LIB_SYMLINKS
++ "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}")
+ LIST(REMOVE_DUPLICATES OS_SHARED_LIB_SYMLINKS)
+ FOREACH(ver ${OS_SHARED_LIB_SYMLINKS})
+ GET_VERSIONED_LIBNAME(
+@@ -248,7 +264,11 @@ IF(NOT DISABLE_SHARED)
+ "${CMAKE_SHARED_LIBRARY_SUFFIX}"
+ "${ver}"
+ linkname)
+- INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR} SharedLibraries)
++ GET_VERSIONED_LIBNAME(
++ ${lib_name_we} "${CMAKE_SHARED_LIBRARY_SUFFIX}" "${ver}" lib_name_ver)
++ INSTALL_SYMLINK(libmysql
++ ${lib_name_ver} ${linkname}
++ ${INSTALL_LIBDIR} SharedLibraries)
+ ENDFOREACH()
+ ENDIF()
+ ENDIF()
+--
+2.0.3
+
+++ /dev/null
---- mysql-4.1.22/configure.in.old 2008-09-18 20:11:15.000000000 -0500
-+++ mysql-4.1.22/configure.in 2008-09-18 20:12:28.000000000 -0500
-@@ -456,9 +456,9 @@ else
- fi
- fi
-
--AC_SUBST(HOSTNAME)
--AC_SUBST(PERL)
--AC_SUBST(PERL5)
-+AC_SUBST(HOSTNAME,/bin/hostname)
-+AC_SUBST(PERL,$(bindir)/perl)
-+AC_SUBST(PERL5,$(bindir)/perl)
-
- # for build ndb docs
-
-@@ -516,16 +516,17 @@ AC_MSG_RESULT("$FIND_PROC")
-
- # Check if a pid is valid
- AC_PATH_PROG(KILL, kill, kill)
-+AC_SUBST(KILL,/bin/kill)
- AC_MSG_CHECKING("for kill switches")
--if $ac_cv_path_KILL -0 $$
-+if $KILL -0 $$
- then
-- CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
-+ CHECK_PID="$KILL -0 \$\$PID > /dev/null 2> /dev/null"
- elif kill -s 0 $$
- then
-- CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
-+ CHECK_PID="$KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
- else
- AC_MSG_WARN([kill -0 to check for pid seems to fail])
-- CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
-+ CHECK_PID="$KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
- fi
- AC_SUBST(CHECK_PID)
- AC_MSG_RESULT("$CHECK_PID")
+++ /dev/null
-Index: mysql-5.1.40/config/ac-macros/misc.m4
-===================================================================
---- mysql-5.1.40.orig/config/ac-macros/misc.m4
-+++ mysql-5.1.40/config/ac-macros/misc.m4
-@@ -476,7 +476,7 @@ AC_DEFUN([MYSQL_STACK_DIRECTION],
- {
- exit (find_stack_direction() < 0);
- }], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1,
-- ac_cv_c_stack_direction=)])
-+ ac_cv_c_stack_direction=0)])
- AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
- ])dnl
-
skip-external-locking
skip-networking
ignore-builtin-innodb
+default-storage-engine = myisam
bind-address = localhost
+++ /dev/null
-# MySQL init script
-
-. /etc/default/rcS
-
-case "$1" in
- start)
- /usr/bin/mysqld_safe &
- ;;
- stop)
- if test -f /var/lib/mysql/mysqld.pid ; then
- PID=`cat /var/lib/mysql/mysqld.pid`
- kill $PID
- fi
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo "Usage: /etc/init.d/mysqld {start|stop|restart}"
- ;;
-esac
-
-exit 0
+++ /dev/null
-diff --git a/storage/innodb_plugin/plug.in b/storage/innodb_plugin/plug.in
-index 7650251..3cc22c5 100644
---- a/storage/innodb_plugin/plug.in
-+++ b/storage/innodb_plugin/plug.in
-@@ -56,180 +56,10 @@ MYSQL_PLUGIN_ACTIONS(innodb_plugin, [
- esac
- AC_SUBST(INNODB_DYNAMIC_CFLAGS)
-
-- AC_MSG_CHECKING(whether GCC atomic builtins are available)
-- # either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
-- AC_TRY_RUN(
-- [
-- int main()
-- {
-- long x;
-- long y;
-- long res;
-- char c;
--
-- x = 10;
-- y = 123;
-- res = __sync_bool_compare_and_swap(&x, x, y);
-- if (!res || x != y) {
-- return(1);
-- }
--
-- x = 10;
-- y = 123;
-- res = __sync_bool_compare_and_swap(&x, x + 1, y);
-- if (res || x != 10) {
-- return(1);
-- }
--
-- x = 10;
-- y = 123;
-- res = __sync_add_and_fetch(&x, y);
-- if (res != 123 + 10 || x != 123 + 10) {
-- return(1);
-- }
--
-- c = 10;
-- res = __sync_lock_test_and_set(&c, 123);
-- if (res != 10 || c != 123) {
-- return(1);
-- }
--
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1],
-- [GCC atomic builtins are available])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
--
-- AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins)
-- # either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not
-- AC_TRY_RUN(
-- [
-- #include <pthread.h>
-- #include <string.h>
--
-- int main(int argc, char** argv) {
-- pthread_t x1;
-- pthread_t x2;
-- pthread_t x3;
--
-- memset(&x1, 0x0, sizeof(x1));
-- memset(&x2, 0x0, sizeof(x2));
-- memset(&x3, 0x0, sizeof(x3));
--
-- __sync_bool_compare_and_swap(&x1, x2, x3);
--
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1],
-- [pthread_t can be used by GCC atomic builtins])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
--
-- AC_MSG_CHECKING(whether Solaris libc atomic functions are available)
-- # Define HAVE_IB_SOLARIS_ATOMICS if _all_ of the following
-- # functions are present.
-- AC_CHECK_FUNCS(atomic_add_long_nv \
-- atomic_cas_32 \
-- atomic_cas_64 \
-- atomic_cas_ulong \
-- atomic_swap_uchar)
--
-- if test "${ac_cv_func_atomic_add_long_nv}" = "yes" -a \
-- "${ac_cv_func_atomic_cas_32}" = "yes" -a \
-- "${ac_cv_func_atomic_cas_64}" = "yes" -a \
-- "${ac_cv_func_atomic_cas_ulong}" = "yes" -a \
-- "${ac_cv_func_atomic_swap_uchar}" = "yes" ; then
--
-- AC_DEFINE([HAVE_IB_SOLARIS_ATOMICS], [1],
-- [Define to 1 if Solaris libc atomic functions are available]
-- )
-- fi
--
-- AC_MSG_CHECKING(whether pthread_t can be used by Solaris libc atomic functions)
-- # either define HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS or not
-- AC_TRY_RUN(
-- [
-- #include <pthread.h>
-- #include <string.h>
--
-- int main(int argc, char** argv) {
-- pthread_t x1;
-- pthread_t x2;
-- pthread_t x3;
--
-- memset(&x1, 0x0, sizeof(x1));
-- memset(&x2, 0x0, sizeof(x2));
-- memset(&x3, 0x0, sizeof(x3));
--
-- if (sizeof(pthread_t) == 4) {
--
-- atomic_cas_32(&x1, x2, x3);
--
-- } else if (sizeof(pthread_t) == 8) {
--
-- atomic_cas_64(&x1, x2, x3);
--
-- } else {
--
-- return(1);
-- }
--
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1],
-- [pthread_t can be used by solaris atomics])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
--
- # this is needed to know which one of atomic_cas_32() or atomic_cas_64()
- # to use in the source
- AC_CHECK_SIZEOF([pthread_t], [], [#include <pthread.h>])
-
-- # Check for x86 PAUSE instruction
-- AC_MSG_CHECKING(for x86 PAUSE instruction)
-- # We have to actually try running the test program, because of a bug
-- # in Solaris on x86_64, where it wrongly reports that PAUSE is not
-- # supported when trying to run an application. See
-- # http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6478684
-- # We use ib_ prefix to avoid collisoins if this code is added to
-- # mysql's configure.in.
-- AC_TRY_RUN(
-- [
-- int main() {
-- __asm__ __volatile__ ("pause");
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
- ])
-
- # vim: set ft=config:
-diff --git a/storage/xtradb/plug.in b/storage/xtradb/plug.in
-index 3fadacc..a33f4dc 100644
---- a/storage/xtradb/plug.in
-+++ b/storage/xtradb/plug.in
-@@ -56,215 +56,10 @@ MYSQL_PLUGIN_ACTIONS(xtradb, [
- esac
- AC_SUBST(INNODB_DYNAMIC_CFLAGS)
-
-- AC_MSG_CHECKING(whether GCC atomic builtins are available)
-- # either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
-- AC_TRY_RUN(
-- [
-- int main()
-- {
-- long x;
-- long y;
-- long res;
-- char c;
--
-- x = 10;
-- y = 123;
-- res = __sync_bool_compare_and_swap(&x, x, y);
-- if (!res || x != y) {
-- return(1);
-- }
--
-- x = 10;
-- y = 123;
-- res = __sync_bool_compare_and_swap(&x, x + 1, y);
-- if (res || x != 10) {
-- return(1);
-- }
--
-- x = 10;
-- y = 123;
-- res = __sync_add_and_fetch(&x, y);
-- if (res != 123 + 10 || x != 123 + 10) {
-- return(1);
-- }
--
-- c = 10;
-- res = __sync_lock_test_and_set(&c, 123);
-- if (res != 10 || c != 123) {
-- return(1);
-- }
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1],
-- [GCC atomic builtins are available])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
--
-- AC_MSG_CHECKING(whether GCC 64-bit atomic builtins are available)
-- # either define HAVE_IB_GCC_ATOMIC_BUILTINS_64 or not
-- AC_TRY_RUN(
-- [
-- #include <stdint.h>
-- int main()
-- {
-- int64_t x, y, res;
--
-- x = 10;
-- y = 123;
-- res = __sync_bool_compare_and_swap(&x, x, y);
-- if (!res || x != y) {
-- return(1);
-- }
--
-- x = 10;
-- y = 123;
-- res = __sync_add_and_fetch(&x, y);
-- if (res != 123 + 10 || x != 123 + 10) {
-- return(1);
-- }
--
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS_64], [1],
-- [GCC 64-bit atomic builtins are available])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
--
-- AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins)
-- # either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not
-- AC_TRY_RUN(
-- [
-- #include <pthread.h>
-- #include <string.h>
--
-- int main(int argc, char** argv) {
-- pthread_t x1;
-- pthread_t x2;
-- pthread_t x3;
--
-- memset(&x1, 0x0, sizeof(x1));
-- memset(&x2, 0x0, sizeof(x2));
-- memset(&x3, 0x0, sizeof(x3));
--
-- __sync_bool_compare_and_swap(&x1, x2, x3);
--
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1],
-- [pthread_t can be used by GCC atomic builtins])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
--
-- AC_MSG_CHECKING(whether Solaris libc atomic functions are available)
-- # Define HAVE_IB_SOLARIS_ATOMICS if _all_ of the following
-- # functions are present.
-- AC_CHECK_FUNCS(atomic_add_long_nv \
-- atomic_cas_32 \
-- atomic_cas_64 \
-- atomic_cas_ulong \
-- atomic_swap_uchar)
--
-- if test "${ac_cv_func_atomic_add_long_nv}" = "yes" -a \
-- "${ac_cv_func_atomic_cas_32}" = "yes" -a \
-- "${ac_cv_func_atomic_cas_64}" = "yes" -a \
-- "${ac_cv_func_atomic_cas_ulong}" = "yes" -a \
-- "${ac_cv_func_atomic_swap_uchar}" = "yes" ; then
--
-- AC_DEFINE([HAVE_IB_SOLARIS_ATOMICS], [1],
-- [Define to 1 if Solaris libc atomic functions are available]
-- )
-- fi
--
-- AC_MSG_CHECKING(whether pthread_t can be used by Solaris libc atomic functions)
-- # either define HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS or not
-- AC_TRY_RUN(
-- [
-- #include <pthread.h>
-- #include <string.h>
--
-- int main(int argc, char** argv) {
-- pthread_t x1;
-- pthread_t x2;
-- pthread_t x3;
--
-- memset(&x1, 0x0, sizeof(x1));
-- memset(&x2, 0x0, sizeof(x2));
-- memset(&x3, 0x0, sizeof(x3));
--
-- if (sizeof(pthread_t) == 4) {
--
-- atomic_cas_32(&x1, x2, x3);
--
-- } else if (sizeof(pthread_t) == 8) {
--
-- atomic_cas_64(&x1, x2, x3);
--
-- } else {
--
-- return(1);
-- }
--
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1],
-- [pthread_t can be used by solaris atomics])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
--
- # this is needed to know which one of atomic_cas_32() or atomic_cas_64()
- # to use in the source
- AC_CHECK_SIZEOF([pthread_t], [], [#include <pthread.h>])
-
-- # Check for x86 PAUSE instruction
-- AC_MSG_CHECKING(for x86 PAUSE instruction)
-- # We have to actually try running the test program, because of a bug
-- # in Solaris on x86_64, where it wrongly reports that PAUSE is not
-- # supported when trying to run an application. See
-- # http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6478684
-- # We use ib_ prefix to avoid collisoins if this code is added to
-- # mysql's configure.in.
-- AC_TRY_RUN(
-- [
-- int main() {
-- __asm__ __volatile__ ("pause");
-- return(0);
-- }
-- ],
-- [
-- AC_DEFINE([HAVE_IB_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist])
-- AC_MSG_RESULT(yes)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ],
-- [
-- AC_MSG_RESULT(no)
-- ]
-- )
- ])
-
- # vim: set ft=config:
--- /dev/null
+Remove host path from include directories
+
+Naturally this breaks cross-compilation if present.
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+--- mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt 2014-07-17 14:37:04.529327998 +0100
++++ mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt 2014-07-17 14:43:56.991337895 +0100
+@@ -39,7 +39,6 @@
+
+ ## default includes and libraries
+ include_directories(SYSTEM
+- /usr/local/include
+ ${ZLIB_INCLUDE_DIRS}
+ )
+
+++ /dev/null
-storage: forbids absolute addresses on IA-32
-
-The shared lib has relocations in .text
-...
-WARNING: QA Issue: ELF binary '/usr/lib/plugin/ha_xtradb.so.0.0.0' has relocations in .text
-WARNING: QA Issue: ELF binary '/usr/lib/plugin/ha_innodb_plugin.so.0.0.0' has relocations in .text
-...
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- storage/innodb_plugin/plug.in | 2 +-
- storage/xtradb/plug.in | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/storage/innodb_plugin/plug.in b/storage/innodb_plugin/plug.in
---- a/storage/innodb_plugin/plug.in
-+++ b/storage/innodb_plugin/plug.in
-@@ -50,7 +50,7 @@ MYSQL_PLUGIN_ACTIONS(innodb_plugin, [
- ;;
- *86)
- # Use absolute addresses on IA-32
-- INNODB_DYNAMIC_CFLAGS="$INNODB_DYNAMIC_CFLAGS -prefer-non-pic"
-+ # INNODB_DYNAMIC_CFLAGS="$INNODB_DYNAMIC_CFLAGS -prefer-non-pic"
- ;;
- esac
- AC_SUBST(INNODB_DYNAMIC_CFLAGS)
-diff --git a/storage/xtradb/plug.in b/storage/xtradb/plug.in
-index a33f4dc..4c186fd 100644
---- a/storage/xtradb/plug.in
-+++ b/storage/xtradb/plug.in
-@@ -51,7 +51,7 @@ MYSQL_PLUGIN_ACTIONS(xtradb, [
- ;;
- *86)
- # Use absolute addresses on IA-32
-- INNODB_DYNAMIC_CFLAGS="$INNODB_DYNAMIC_CFLAGS -prefer-non-pic"
-+ # INNODB_DYNAMIC_CFLAGS="$INNODB_DYNAMIC_CFLAGS -prefer-non-pic"
- ;;
- esac
- AC_SUBST(INNODB_DYNAMIC_CFLAGS)
---
-1.7.9.5
-
+++ /dev/null
-zlib: let lib dir configurable
-
-The zlib were found in $mysql_zlib_dir/lib, and the
-search will fail if zlib in $mysql_zlib_dir/lib64.
-
-Let lib dir configurable rather than hardcode.
-
-Upstream-Status: Pending
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- config/ac-macros/zlib.m4 | 12 ++++++------
- configure.in | 8 ++++++++
- 2 files changed, 14 insertions(+), 6 deletions(-)
-
-diff --git a/config/ac-macros/zlib.m4 b/config/ac-macros/zlib.m4
---- a/config/ac-macros/zlib.m4
-+++ b/config/ac-macros/zlib.m4
-@@ -106,17 +106,17 @@ case $SYSTEM_TYPE in
- ;;
- *)
- # Test for libz using all known library file endings
-- if test \( -f "$mysql_zlib_dir/lib/libz.a" -o \
-- -f "$mysql_zlib_dir/lib/libz.so" -o \
-- -f "$mysql_zlib_dir/lib/libz.sl" -o \
-- -f "$mysql_zlib_dir/lib/libz.dylib" \) \
-+ if test \( -f "$mysql_zlib_dir/$base_libdir/libz.a" -o \
-+ -f "$mysql_zlib_dir/$base_libdir/libz.so" -o \
-+ -f "$mysql_zlib_dir/$base_libdir/libz.sl" -o \
-+ -f "$mysql_zlib_dir/$base_libdir/libz.dylib" \) \
- -a -f "$mysql_zlib_dir/include/zlib.h"; then
- ZLIB_INCLUDES="-I$mysql_zlib_dir/include"
-- ZLIB_LIBS="-L$mysql_zlib_dir/lib -lz"
-+ ZLIB_LIBS="-L$mysql_zlib_dir/$base_libdir -lz"
- MYSQL_CHECK_ZLIB_DIR
- fi
- if test "x$mysql_cv_compress" != "xyes"; then
-- AC_MSG_ERROR([headers or binaries were not found in $mysql_zlib_dir/{include,lib}])
-+ AC_MSG_ERROR([headers or binaries were not found in $mysql_zlib_dir/{include,$base_libdir}])
- fi
- ;;
- esac
-diff --git a/configure.in b/configure.in
-index 2c6c08e..193b59a 100644
---- a/configure.in
-+++ b/configure.in
-@@ -104,6 +104,14 @@ AC_SUBST(SHARED_LIB_MAJOR_VERSION)
- AC_SUBST(SHARED_LIB_VERSION)
- AC_SUBST(AVAILABLE_LANGUAGES)
-
-+AC_ARG_WITH([baselib-dir],
-+ AC_HELP_STRING([--baselib-dir=DIR],
-+ [Provide MySQL with a custom location of
-+ baselib dir. Given DIR, such as zlib binary is
-+ assumed to be in $zlib-dir/$DIR.]),
-+ [base_libdir=${withval}],
-+ [base_libdir="lib"])
-+
- # Check whether a debug mode should be enabled.
- AC_ARG_WITH([debug],
- AS_HELP_STRING([--with-debug@<:@=full@:>@],
---
-1.8.1.2
-
require ${PN}_${PV}.inc
-DEPENDS += "mariadb-native ncurses zlib"
+EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1"
+
+DEPENDS += "mariadb-native ncurses zlib readline libaio"
PROVIDES += "mysql5"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI = "http://mirrors.coreix.net/mariadb/mariadb-${PV}/kvm-tarbake-jaunty-x86/mariadb-${PV}.tar.gz \
- file://configure.in.patch \
- file://plug.in.patch \
- file://misc.m4.patch \
- file://Makefile.am.patch \
- file://fix_host_path.patch \
- file://configure-ps-cache-check.patch \
- file://fix-cve-2013-1861-1.patch \
- file://fix-cve-2013-1861-2.patch \
- file://zlib-let-libdir-configurable.patch \
- file://storage-forbids-absolute-addresses-on-IA-32.patch \
+SRC_URI = "http://mirror.stshosting.co.uk/mariadb/mariadb-${PV}/source/mariadb-${PV}.tar.gz \
+ file://fix-cmake-module-path.patch \
+ file://remove-bad-path.patch \
+ file://fix-mysqlclient-r-version.patch \
file://my.cnf \
- file://mysqld.sh \
- file://avoid-plugin-options-warnings.patch \
- file://fix-link-error-ub1310.patch \
"
-SRC_URI[md5sum] = "44c331fa91943155e4796f89e17a0612"
-SRC_URI[sha256sum] = "33471e9275c9b03919cabc38eb39f807d645adabf6a1a18f2e41ed73f47677c8"
+SRC_URI[md5sum] = "fa9ba00b084b95a45fab70860c412f10"
+SRC_URI[sha256sum] = "efc839e6627064b3b5c6c39854198f0d34907f48937804758d4c09c7717be8d3"
S = "${WORKDIR}/mariadb-${PV}"
BINCONFIG_GLOB = "mysql_config"
-inherit autotools-brokensep binconfig update-rc.d useradd
+inherit cmake gettext binconfig update-rc.d useradd
INITSCRIPT_PACKAGES = "${PN}-server"
INITSCRIPT_NAME = "mysqld"
USERADD_PARAM_${PN}-server = "--system --home-dir /var/mysql -g nogroup --shell /bin/false mysql"
-export ac_cv_path_PS="/bin/ps"
-export ac_cv_FIND_PROC="/bin/ps p \$\$PID | grep -v grep | grep mysqld > /dev/null"
-PARALLEL_MAKE = " "
EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
-EXTRA_OECONF = "--with-atomic-ops=up \
- --with-embedded-server \
- --sysconfdir=/etc/mysql \
- --localstatedir=/var/mysql \
- --disable-dependency-tracking \
- --without-debug \
- --with-low-memory \
- --without-query-cache \
- --without-plugin-maria \
- --without-man \
- --without-docs \
- --with-zlib-dir=${STAGING_EXECPREFIXDIR} \
- --with-baselib-dir=${base_libdir} \
- --with-pic \
- "
-do_configure_append() {
- sed -i /comp_err/d ${B}/sql/share/Makefile
+python __anonymous() {
+ # This is a pain but it's the only way to pass these in since
+ # MariaDB's cmake scripts insist on prepending the prefix to the
+ # specified values for INSTALL_*
+ localdata = d.createCopy()
+ localdata.setVar('prefix', '')
+ localdata.setVar('exec_prefix', '')
+ d.setVar('bindir_noprefix', localdata.getVar('bindir', True).lstrip('/'))
+ d.setVar('sbindir_noprefix', localdata.getVar('sbindir', True).lstrip('/'))
+ d.setVar('datadir_noprefix', localdata.getVar('datadir', True).lstrip('/'))
+ d.setVar('libdir_noprefix', localdata.getVar('libdir', True).lstrip('/'))
+}
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
+PACKAGECONFIG_class-native = ""
+PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam"
+
+# MariaDB doesn't link properly with gold
+# https://mariadb.atlassian.net/browse/MDEV-5982
+TARGET_CFLAGS += "-fuse-ld=bfd"
+
+EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
+ -DWITH_JEMALLOC=no \
+ -DWITHOUT_TOKUDB=TRUE \
+ -DCMAKE_DISABLE_FIND_PACKAGE_Boost=TRUE \
+ -DGROFF=FALSE \
+ -DNROFF=FALSE \
+ -DENABLE_DTRACE=FALSE \
+ -DWITH_PIC=ON \
+ -DINSTALL_DOCDIR:PATH=${datadir_noprefix}/doc/${BPN} \
+ -DINSTALL_BINDIR:PATH=${bindir_noprefix} \
+ -DINSTALL_SBINDIR:PATH=${sbindir_noprefix} \
+ -DINSTALL_SCRIPTDIR:PATH=${bindir_noprefix} \
+ -DINSTALL_LIBDIR:PATH=${libdir_noprefix} \
+ -DINSTALL_PLUGINDIR:PATH=${libdir_noprefix}/plugin \
+ -DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \
+ -DINSTALL_MYSQLSHAREDIR:PATH=${datadir_noprefix}/mysql \
+ -DINSTALL_SUPPORTFILESDIR:PATH=${datadir_noprefix}/mysql-support-files \
+ -DMYSQL_DATADIR:PATH=/var/mysql \
+ -DCAT_EXECUTABLE=`which cat` \
+ -DCMAKE_AR:FILEPATH=${AR}"
+do_configure_append() {
# handle distros with different values of ${libexecdir}
libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'`
sed -i -e "s:/libexec:/$libexecdir2:g" ${S}/scripts/mysql_install_db.sh
sed -i -e "s:/libexec:/$libexecdir2:g" ${S}/scripts/mysqld_safe.sh
}
+do_generate_toolchain_file_append_class-native () {
+ # If these are set cmake will assume we're cross-compiling, which will
+ # result in certain things we want being disabled
+ sed -i "/set( CMAKE_SYSTEM_NAME/d" ${WORKDIR}/toolchain.cmake
+ sed -i "/set( CMAKE_SYSTEM_PROCESSOR/d" ${WORKDIR}/toolchain.cmake
+}
+
+do_compile_prepend_class-target () {
+ # These need to be in-tree or make will think they need to be built,
+ # and since we're cross-compiling that is disabled
+ cp ${STAGING_BINDIR_NATIVE}/comp_err ${S}/extra
+ cp ${STAGING_BINDIR_NATIVE}/comp_sql ${S}/scripts
+}
+
SYSROOT_PREPROCESS_FUNCS += "mariadb_sysroot_preprocess"
# We need to append this so it runs *after* binconfig's preprocess function
do_install() {
oe_runmake 'DESTDIR=${D}' install
- mv -f ${D}${libdir}/mysql/* ${D}${libdir}
- rmdir ${D}${libdir}/mysql
- find ${D}${libdir} -name '*.la'|xargs sed -i 's#${libdir}/mysql#${libdir}#'
- install -d ${D}/etc/init.d
- install -m 0644 ${WORKDIR}/my.cnf ${D}/etc/
- install -m 0755 ${WORKDIR}/mysqld.sh ${D}/etc/init.d/mysqld
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/my.cnf ${D}/${sysconfdir}/
+ mv ${D}/${sysconfdir}/init.d/mysql ${D}/${sysconfdir}/init.d/mysqld
}
pkg_postinst_${PN}-server () {
mkdir /var/lib/mysql
chown mysql.nogroup /var/lib/mysql
- mysql_install_db
+ mysql_install_db --basedir=${prefix} --user=mysql
}
perl-module-io-socket-inet perl-module-io-select"
FILES_libmysqlclient = "\
- ${libdir}/libmysqlclient.so.* \
- ${libdir}/plugin/*.so.*"
+ ${libdir}/libmysqlclient.so.*"
FILES_libmysqlclient-dev = " \
${includedir}/mysql/ \
${libdir}/libmysqlclient.so \
- ${libdir}/libmysqlclient.la \
- ${libdir}/plugin/*.so \
- ${libdir}/plugin/*.la \
${sysconfdir}/aclocal \
${bindir}/mysql_config"
FILES_libmysqlclient-staticdev = "\
- ${libdir}/*.a \
- ${libdir}/plugin/*.a"
+ ${libdir}/*.a"
FILES_libmysqlclient-dbg = "${libdir}/plugin/.debug/ \
/usr/mysql-test/lib/My/SafeProcess/.debug/my_safe_process"
FILES_libmysqlclient-r = "${libdir}/libmysqlclient_r.so.*"
FILES_libmysqlclient-r-dev = "\
- ${libdir}/libmysqlclient_r.so \
- ${libdir}/libmysqlclient_r.la"
+ ${libdir}/libmysqlclient_r.so"
FILES_libmysqlclient-r-staticdev = "${libdir}/libmysqlclient_r.a"
FILES_libmysqlclient-r-dbg = "${libdir}/plugin/.debuglibmysqlclient_r.so.*"
${bindir}/mysql_setpermission \
${bindir}/mysql_tzinfo_to_sql \
${bindir}/mysql_upgrade \
+ ${bindir}/mysql_plugin \
${bindir}/mysql_zap \
${bindir}/mysqlbinlog \
${bindir}/mysqld_multi \
${sbindir}/ndb_cpcd \
${sbindir}/ndbd \
${sbindir}/ndb_mgmd \
+ ${libdir}/plugin/*.so \
${datadir}/mysql/ \
${localstatedir}/mysql/ \
${sysconfdir}/init.d \