[csw-devel] SF.net SVN: gar:[21121] csw/mgar/pkg/mysql5/branches/mysql-5.5.x

Laurent Blume laurent at opencsw.org
Fri May 17 00:35:30 CEST 2013


With this one, I'm introducing some changes to the way MySQL 5.5 is
built to make it closer to how they make the official builds, which vary
according to arch and bitness (though some of their methods seem a
little dubious).
There should however not be any change in the look and feel. And I've
fixed the test so at least it fully passes "make test" now.

I'm planning to introduce it very soon because I need it. I'll test for
S10 on x86 and sparc. If anybody notices some unwelcome side-effect,
please tell me.

Laurent

On 2013-05-16 6:08 PM, lblume at users.sourceforge.net wrote:
> Revision: 21121
>           http://gar.svn.sourceforge.net/gar/?rev=21121&view=rev
> Author:   lblume
> Date:     2013-05-16 16:08:12 +0000 (Thu, 16 May 2013)
> Log Message:
> -----------
> mysql5/branches/mysql-5.5.x: Use build options close to those of the official build; Fix the make test
> 
> Modified Paths:
> --------------
>     csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile
> 
> Added Paths:
> -----------
>     csw/mgar/pkg/mysql5/branches/mysql-5.5.x/files/0005_my_vsnprintf-t_fails_bug_62572.patch
> 
> Modified: csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile
> ===================================================================
> --- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile	2013-05-16 15:47:41 UTC (rev 21120)
> +++ csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile	2013-05-16 16:08:12 UTC (rev 21121)
> @@ -28,9 +28,6 @@
>         GARCOMPILER = SOS12U3
>  endif
>  
> -#Since Solaris9 does not have sos12u3 use lower opt 
> -OPT_FLAGS_SOS12_i386 = -xO2
> -
>  # There is some assembler code, which doesn't work on sparcv8, and I don't see
>  # an easy way to switch it off.
>  ISA_DEFAULT_sparc-5.9 = sparcv8plus
> @@ -52,9 +49,21 @@
>    (Structured Query Language) database server.
>  endef
>  
> -EXTRA_CFLAGS += -mt -D__EXTENSIONS__
> -EXTRA_CXXFLAGS += -mt -D__EXTENSIONS__
> +# Those options follow those of the official builds
> +EXTRA_CFLAGS-sparc = -Xa -xstrconst
> +EXTRA_CFLAGS-i386  = -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt
> +EXTRA_CXXFLAGS-sparc = -noex 
> +EXTRA_CXXFLAGS-i386  = -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -features=no%except -xlibmil -xlibmopt
> +EXTRA_CFLAGS   += $(EXTRA_CFLAGS-$(GARCH)) -g -mt -KPIC -DDBUG_OFF -DHAVE_OPENSSL -DMULTI_THREADED -lm
> +EXTRA_CXXFLAGS += $(EXTRA_CXXFLAGS-$(GARCH)) -g0 -mt -KPIC -DDBUG_OFF -DHAVE_OPENSSL -DMULTI_THREADED -lm
>  
> +# The official build used -xO2 on 32 bit x86, -xO3 for 64 bit
> +# Use that for all builds
> +OPT_FLAGS_SOS-32 = -xO2
> +OPT_FLAGS_SOS-64 = -xO3
> +OPT_FLAGS_SOS = $(OPT_FLAGS_SOS-$(MEMORYMODEL))
> +
> +
>  INITSMF = $(sysconfdir)/init\.d/csw$(NAME)
>  
>  # Existing databases are in this location
> @@ -83,6 +92,9 @@
>  PATCHFILES += 0003-WHY-IS-CMAKE-TRYING-TO-BE-SMARTER-THAN-ME.patch
>  PATCHFILES += 0003-Use-bash-for-mysqld_safe.patch
>  
> +# Cf http://bugs.mysql.com/bug.php?id=62572
> +PATCHFILES += 0005_my_vsnprintf-t_fails_bug_62572.patch
> +
>  PACKAGES += CSWlibmysqlclient$(MYSQL_LIB_VER)
>  PKGFILES_CSWlibmysqlclient$(MYSQL_LIB_VER) += $(call baseisadirs,$(libdir),libmysqlclient\.so\.$(MYSQL_LIB_VER)(\.\d+)*)
>  SPKG_DESC_CSWlibmysqlclient$(MYSQL_LIB_VER) += MySQL $(BASE_VERSION) client library, libmysqlclient.so.$(MYSQL_LIB_VER)
> @@ -189,30 +201,6 @@
>  BUILD_DEP_PKGS += CSWcmake
>  BUILD_DEP_PKGS += CSWbison
>  
> -# Set ./configure options
> -CONFIGURE_ARGS  = $(DIRPATHS)
> -CONFIGURE_ARGS += --disable-assembler
> -# Why not have a docs package?
> -# CONFIGURE_ARGS += --without-docs
> -CONFIGURE_ARGS += --enable-local-infile
> -CONFIGURE_ARGS += --with-charset=utf8
> -CONFIGURE_ARGS += --with-extra-charsets=all
> -CONFIGURE_ARGS += --with-low-memory
> -CONFIGURE_ARGS += --with-pthread
> -CONFIGURE_ARGS += --with-readline
> -CONFIGURE_ARGS += --with-zlib-dir=$(BUILD_PREFIX)
> -CONFIGURE_ARGS += --with-ssl=$(BUILD_PREFIX)
> -CONFIGURE_ARGS += --with-plugins=max-no-ndb
> -CONFIGURE_ARGS += --with-comment="(OpenCSW)"
> -CONFIGURE_ARGS += --with-mysqld-user=mysql
> -CONFIGURE_ARGS += --with-fast-mutexes
> -CONFIGURE_ARGS += --with-libwrap
> -CONFIGURE_ARGS += --with-mysqld-libs=-lmtmalloc
> -CONFIGURE_ARGS += --with-big-tables
> -CONFIGURE_ARGS += --enable-thread-safe-client
> -CONFIGURE_ARGS_DBG = --with-debug
> -CONFIGURE_ARGS += $(CONFIGURE_ARGS_$(GARFLAVOR))
> -
>  # http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide
>  CMAKE_ARGS += -DCMAKE_INSTALL_PREFIX=$(prefix)
>  CMAKE_ARGS += -DINSTALL_LAYOUT=RPM
> @@ -220,36 +208,46 @@
>  CMAKE_ARGS += -DSYSCONFDIR=$(sysconfdir)
>  CMAKE_ARGS += -DINSTALL_BINDIR=$(subst $(prefix)/,,$(bindir))
>  CMAKE_ARGS += -DINSTALL_SBINDIR=$(subst $(prefix)/,,$(libexecdir))
> -# CMAKE_ARGS += -DINSTALL_MANDIR=$(subst $(prefix)/,,$(mandir))
>  CMAKE_ARGS += -DINSTALL_LIBDIR=$(subst $(prefix)/,,$(libdir))
>  CMAKE_ARGS += -DINSTALL_PLUGINDIR=$(subst $(prefix)/,,$(libdir))/$(NAME)/plugin
> -CMAKE_ARGS += -DWITH_READLINE=1
>  CMAKE_ARGS += -DWITH_LIBWRAP=1
>  CMAKE_ARGS += -DWITH_SSL=system
>  CMAKE_ARGS += -DWITH_ZLIB=system
>  CMAKE_ARGS += -DDEFAULT_CHARSET=utf8
>  CMAKE_ARGS += -DDEFAULT_COLLATION=utf8_general_ci
>  CMAKE_ARGS += -DWITH_COMMENT='OpenCSW'
> -CMAKE_ARGS += -DCMAKE_C_FLAGS="$(CFLAGS)"
> -CMAKE_ARGS += -DCMAKE_CXX_FLAGS="$(CXXFLAGS)"
>  CMAKE_ARGS += -DBUILD_CONFIG=mysql_release
> -# CMAKE_ARGS += -DOPENSSL_INCLUDE_DIR="$(includedir)"
> -# CMAKE_ARGS += -DCMAKE_LIBRARY_PATH="$(libdir)"
> -# CMAKE_ARGS += -DCMAKE_PREFIX_PATH="$(prefix)"
>  CMAKE_ARGS += -DOPENSSL_ROOT_DIR=$(prefix)
> -# CMAKE_ARGS += -DOPENSSL_SSL_LIBRARIES=$(libdir)/libssl.so
> -# CMAKE_ARGS += -DOPENSSL_CRYPTO_LIBRARIES=$(libdir)/libcrypto.so
> -CMAKE_ARGS += -DCMAKE_INCLUDE_PATH="$(includedir)"
> +CMAKE_ARGS += -DCMAKE_C_FLAGS="$(CFLAGS)"
> +CMAKE_ARGS += -DCMAKE_CXX_FLAGS="$(CXXFLAGS)"
>  CMAKE_ARGS += -DCMAKE_LIBRARY_PATH="$(libdir)"
> -CMAKE_ARGS += "-DCMAKE_C_FLAGS=$(CFLAGS)"
> -CMAKE_ARGS += "-DCMAKE_CXX_FLAGS=$(CXXFLAGS)"
> +CMAKE_ARGS += -DCMAKE_PREFIX_PATH="$(prefix)"
> +CMAKE_ARGS += -DCMAKE_INCLUDE_PATH="$(includedir)"
>  CMAKE_ARGS += -DCMAKE_VERBOSE_MAKEFILE=ON
> +CMAKE_ARGS += -DBISON_EXECUTABLE=/opt/csw/bin/bison
>  
> -# TODO: Make the tests pass. They don't at the moment.
> -SKIPTEST ?= 1
> -TEST_SCRIPTS = custom
> -TEST_TARGETS = check
> +# The line below come from the official MySQL build configuration
> +CMAKE_ARGS += "-DENABLED_PROFILING:BOOL=ON"
> +CMAKE_ARGS += "-DENABLE_DEBUG_SYNC:BOOL=ON"
> +CMAKE_ARGS += "-DENABLE_DTRACE:BOOL=ON"
> +CMAKE_ARGS += "-DENABLE_GCOV:BOOL=OFF"
> +CMAKE_ARGS += "-DWITH_ARCHIVE_STORAGE_ENGINE:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_BLACKHOLE_STORAGE_ENGINE:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_DEBUG:BOOL=OFF"
> +CMAKE_ARGS += "-DWITH_EMBEDDED_SERVER:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_EXAMPLE_STORAGE_ENGINE:BOOL=OFF"
> +CMAKE_ARGS += "-DWITH_EXTRA_CHARSETS:STRING=all"
> +CMAKE_ARGS += "-DWITH_FEDERATED_STORAGE_ENGINE:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_INNOBASE_STORAGE_ENGINE:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_LIBEDIT:BOOL=OFF"
> +CMAKE_ARGS += "-DWITH_PARTITION_STORAGE_ENGINE:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_PERFSCHEMA_STORAGE_ENGINE:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_PIC:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_READLINE:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_UNIT_TESTS:BOOL=ON"
> +CMAKE_ARGS += "-DWITH_VALGRIND:BOOL=OFF"
>  
> +
>  USERGROUP = /etc/opt/csw/pkg/CSW$(NAME)/cswusergroup
>  
>  PROTOTYPE_MODIFIERS = dbdir
> 
> Added: csw/mgar/pkg/mysql5/branches/mysql-5.5.x/files/0005_my_vsnprintf-t_fails_bug_62572.patch
> ===================================================================
> --- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/files/0005_my_vsnprintf-t_fails_bug_62572.patch	                        (rev 0)
> +++ csw/mgar/pkg/mysql5/branches/mysql-5.5.x/files/0005_my_vsnprintf-t_fails_bug_62572.patch	2013-05-16 16:08:12 UTC (rev 21121)
> @@ -0,0 +1,14 @@
> +--- a/unittest/mysys/my_vsnprintf-t.c.original	lun. mars 25 14:14:58 2013
> ++++ b/unittest/mysys/my_vsnprintf-t.c	jeu. mai  16 15:35:30 2013
> +@@ -31,7 +31,11 @@
> + 
> + int main(void)
> + {
> ++#if defined (__GNUC__)
> +   plan(58);
> ++#else
> ++  plan(57);
> ++#endif
> + 
> +   test1("Constant string",
> +         "Constant string");
> 
> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
> 
> _______________________________________________
> devel mailing list
> devel at lists.opencsw.org
> https://lists.opencsw.org/mailman/listinfo/devel
> 



More information about the devel mailing list