Commit 10aa6172 authored by Narayanan V's avatar Narayanan V
Browse files

merging mysql-5.1 -> mysql-5.1-sea

parents b467c15e 223c0177
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
[MYSQL]
post_commit_to = "commits@lists.mysql.com"
post_push_to = "commits@lists.mysql.com"
tree_name = "mysql-5.1"
tree_name = "mysql-5.1-sea"
tree_location = bzr+ssh://bk-internal.mysql.com/bzrroot/mysql-5.1-sea
post_commit_url = bzr+ssh://bk-internal.mysql.com/bzrroot/mysql-5.1-sea
project_name = "MySQL Storage Engine API team tree"
+79 −0
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@ dist-hook:
		--datadir=$(distdir)/win/data \
		--srcdir=$(top_srcdir)

all-local:		abi_check

tags:
	support-files/build-tags

@@ -231,5 +233,82 @@ test-full-qa:
	    test-binlog-statement test-ext test-fast-view \
	        test-fast-cursor test-unit

#
# Headers which need to be checked for abi/api compatibility.
# API_PREPROCESSOR_HEADER will be used until mysql_priv.h stablizes
# after which TEST_PREPROCESSOR_HEADER will be used.
#

API_PREPROCESSOR_HEADER = $(top_srcdir)/include/mysql/plugin.h \
                           $(top_srcdir)/include/mysql.h

TEST_PREPROCESSOR_HEADER = $(top_srcdir)/include/mysql/plugin.h \
                            $(top_srcdir)/sql/mysql_priv.h \
                            $(top_srcdir)/include/mysql.h

#
# Rules for checking that the abi/api has not changed.
#
# The following steps are followed in the do_abi_check rule below
#
# 1) Generate preprocessor output for the files that need to
#    be tested for abi/api changes. use -nostdinc to prevent
#    generation of preprocessor output for system headers. This
#    results in messages in stderr saying that these headers
#    were not found. Redirect the stderr output to /dev/null
#    to prevent seeing these messages.
# 2) sed the output to 
#    2.1) remove blank lines and lines that begin with "# "
#         (The header information is retained to enable easy
#         analysis of abi diffs at a later stage).
#    2.2) When gcc -E is run in the Mac OS it introduces a line of output 
#         that results in showing up as a difference between the .pp and 
#         .out files. Remove this OS specific preprocessor text inserted by
#         the preprocessor in the MAC OS. 
# 3) diff the generated file and the canons (.pp files already in
#    the repository).
# 4) delete the .out file that is generated.
#
# If the diff fails, the generated file is not removed. This will
# be useful for analysis of ABI differences (e.g. using a visual
# diff tool).
#
# A ABI change that causes a build to fail will always be accompanied
# by new canons (.out files). The .out files that are not removed will
# be replaced as the new .pp files.
#
# e.g. If include/mysql/plugin.h has an ABI change then this rule would
# leave a <build directory>/abi_check.out file.
#
# A developer with a justified API change will then do a
# mv <build directory>/abi_check.out include/mysql/plugin.pp 
# to replace the old canons with the new ones.
#

abi_check:	$(API_PREPROCESSOR_HEADER)
	$(MAKE) abi_headers="$^" do_abi_check

abi_check_all:	$(TEST_PREPROCESSOR_HEADER)
	$(MAKE) abi_headers="$^" do_abi_check

do_abi_check:
	set -ex; \
	for file in $(abi_headers); do \
	         @CC@ -E -nostdinc -dI \
	                  -I$(top_srcdir)/include \
	                  -I$(top_srcdir)/include/mysql \
	                  -I$(top_srcdir)/sql \
	                  -I$(top_builddir)/include \
	                  -I$(top_builddir)/include/mysql \
	                  -I$(top_builddir)/sql \
	                                 $$file 2>/dev/null | \
	                  @SED@ -e '/^# /d' \
	                            -e '/^[ 	]*$$/d' \
	                            -e '/^#pragma GCC set_debug_pwd/d' > \
	                                       $(top_builddir)/abi_check.out; \
	                  @DIFF@ -w $$file.pp $(top_builddir)/abi_check.out; \
	                  @RM@ $(top_builddir)/abi_check.out; \
	done

# Don't update the files from bitkeeper
%::SCCS/s.%
+1 −20
Original line number Diff line number Diff line
@@ -419,6 +419,7 @@ AC_PATH_PROG(SED, sed, sed)
AC_PATH_PROG(CMP, cmp, cmp)
AC_PATH_PROG(CHMOD, chmod, chmod)
AC_PATH_PROG(HOSTNAME, hostname, hostname)
AC_PATH_PROG(DIFF, diff, diff)
# Check for a GNU tar named 'gtar', or 'gnutar' (MacOS X) and
# fall back to 'tar' otherwise and hope that it's a GNU tar as well
AC_CHECK_PROGS(TAR, gnutar gtar tar)
@@ -443,26 +444,6 @@ AC_SUBST(HOSTNAME)
AC_SUBST(PERL)
AC_SUBST(PERL5)

# icheck, used for ABI check
AC_PATH_PROG(ICHECK, icheck, no)
# "icheck" is also the name of a file system check program on Tru64.
# Verify the program found is really the interface checker.
if test "x$ICHECK" != "xno"
then
  AC_MSG_CHECKING(if $ICHECK works as expected)
  echo "int foo;" > conftest.h
  $ICHECK --canonify -o conftest.ic conftest.h 2>/dev/null
  if test -f "conftest.ic"
  then
    AC_MSG_RESULT(yes)
  else
    AC_MSG_RESULT(no)
    ICHECK=no
  fi
  rm -f conftest.ic conftest.h
fi
AC_SUBST(ICHECK)

# Lock for PS
AC_PATH_PROG(PS, ps, ps)
AC_MSG_CHECKING("how to check if pid exists")
+2 −14
Original line number Diff line number Diff line
@@ -38,10 +38,11 @@ noinst_HEADERS = config-win.h config-netware.h my_bit.h \
			atomic/rwlock.h atomic/x86-gcc.h atomic/x86-msvc.h \
			atomic/gcc_builtins.h my_libwrap.h my_stacktrace.h

EXTRA_DIST =        mysql.h.pp mysql/plugin.h.pp

# Remove built files and the symlinked directories
CLEANFILES =            $(BUILT_SOURCES) readline openssl

EXTRA_DIST =            mysql_h.ic

# Some include files that may be moved and patched by configure
DISTCLEANFILES =	sched.h $(CLEANFILES)
@@ -63,18 +64,5 @@ my_config.h: config.h
dist-hook:
	$(RM) -f $(distdir)/mysql_version.h $(distdir)/my_config.h

#
# Rules for checking that ABI has not changed
#

# Create a icheck file and compare it to the reference
abi_check: $(HEADERS_ABI) mysql_version.h mysql_h.ic
	@set -ex; \
	if [ @ICHECK@ != no ] ; then \
	  @ICHECK@ --canonify --skip-from-re /usr/ -o $@ $(HEADERS_ABI); \
	  @ICHECK@ --compare mysql_h.ic $@; \
	fi; \
	touch abi_check;

# Don't update the files from bitkeeper
%::SCCS/s.%

include/mysql.h.pp

0 → 100644
+674 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading