From: Guilhem Bichot Date: November 3 2010 4:26pm Subject: bzr commit into mysql-5.5-bugteam branch (guilhem:3122) Bug#57933 List-Archive: http://lists.mysql.com/commits/122737 X-Bug: 57933 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2410774501548908632==" --===============2410774501548908632== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/mysql_src/bzrrepos_new/5.5-bugteam-57933/ based on revid:georgi.kodinov@stripped 3122 Guilhem Bichot 2010-11-03 BUG#57933 "add -Wdeclaration-after-statement to gcc builds" implementation for autotools and cmake. @ CMakeLists.txt Detect compiler flag -Wdeclaration-after-statement and use it if exists. The detection cannot happen before "INCLUDE(configure.cmake)" because configure.cmake is what does "INCLUDE (CheckCSourceCompiles)" which is needed for CHECK_C_COMPILER_FLAG. That's a first reason to move the first maintainer-related block down. A second reason is that I could not understand why we set some variables (MY_MAINTAINER*) early in a first block; I believe they don't influence anything until we use them to set CMAKE_C_FLAGS in the second block. So I move the first block into the second. I don't know whether adding -Wno-error to CMAKE_REQUIRED_FLAGS is still needed, for me it compiles even without it, but I left it. @ config/ac-macros/maintainer.m4 Add flag to autotools build. modified: CMakeLists.txt config/ac-macros/maintainer.m4 === modified file 'CMakeLists.txt' --- a/CMakeLists.txt 2010-10-21 12:12:23 +0000 +++ b/CMakeLists.txt 2010-11-03 16:26:00 +0000 @@ -111,28 +111,6 @@ IF(DEFINED ENV{CPPFLAGS}) ADD_DEFINITIONS($ENV{CPPFLAGS}) ENDIF() -# -# Control aspects of the development environment which are -# specific to MySQL maintainers and developers. -# -OPTION(MYSQL_MAINTAINER_MODE "MySQL maintainer-specific development environment" OFF) -# Whether the maintainer mode should be enabled. -IF(MYSQL_MAINTAINER_MODE) - IF(CMAKE_COMPILER_IS_GNUCC) - SET(MY_MAINTAINER_C_WARNINGS - "-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror" - CACHE STRING "C warning options used in maintainer builds.") - ENDIF() - IF(CMAKE_COMPILER_IS_GNUCXX) - SET(MY_MAINTAINER_CXX_WARNINGS "${MY_MAINTAINER_C_WARNINGS} -Wno-unused-parameter" - CACHE STRING "C++ warning options used in maintainer builds.") - ENDIF() - # Do not make warnings in checks into errors. - IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX) - SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-error") - ENDIF() -ENDIF() - # Add macros INCLUDE(character_sets) INCLUDE(zlib) @@ -247,11 +225,36 @@ MYSQL_CHECK_SSL() MYSQL_CHECK_READLINE() # -# Setup maintainer mode options by the end. Platform checks are -# not run with the warning options as to not perturb fragile checks -# (i.e. do not make warnings into errors). +# Control aspects of the development environment which are +# specific to MySQL maintainers and developers. +# We set compiler flags only here towards the end: earlier +# platform checks are not run with the warning options to +# not perturb fragile checks (i.e. do not make warnings into errors). # +OPTION(MYSQL_MAINTAINER_MODE "MySQL maintainer-specific development environment" OFF) +# Whether the maintainer mode should be enabled. IF(MYSQL_MAINTAINER_MODE) + IF(CMAKE_COMPILER_IS_GNUCC) + CHECK_C_COMPILER_FLAG("-Wdeclaration-after-statement" HAVE_DECLARATION_AFTER_STATEMENT) + IF(HAVE_DECLARATION_AFTER_STATEMENT) + SET(MY_MAINTAINER_DECLARATION_AFTER_STATEMENT "-Wdeclaration-after-statement") + ENDIF() + SET(MY_MAINTAINER_C_WARNINGS + "-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror") + ENDIF() + IF(CMAKE_COMPILER_IS_GNUCXX) + SET(MY_MAINTAINER_CXX_WARNINGS "${MY_MAINTAINER_C_WARNINGS} -Wno-unused-parameter" + CACHE STRING "C++ warning options used in maintainer builds.") + ENDIF() + IF(CMAKE_COMPILER_IS_GNUCC) + SET(MY_MAINTAINER_C_WARNINGS + "${MY_MAINTAINER_C_WARNINGS} ${MY_MAINTAINER_DECLARATION_AFTER_STATEMENT}" + CACHE STRING "C warning options used in maintainer builds.") + ENDIF() + # Do not make warnings in checks into errors. + IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-error") + ENDIF() # Set compiler flags required under maintainer mode. MESSAGE(STATUS "C warning options: ${MY_MAINTAINER_C_WARNINGS}") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MY_MAINTAINER_C_WARNINGS}") === modified file 'config/ac-macros/maintainer.m4' --- a/config/ac-macros/maintainer.m4 2010-10-18 16:27:10 +0000 +++ b/config/ac-macros/maintainer.m4 2010-11-03 16:26:00 +0000 @@ -19,6 +19,7 @@ AC_DEFUN([MY_MAINTAINER_MODE_WARNINGS], AS_IF([test "$GCC" = "yes"], [ C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror" CXX_WARNINGS="${C_WARNINGS} -Wno-unused-parameter" + C_WARNINGS="${C_WARNINGS} -Wdeclaration-after-statement" ]) # Test whether the warning options work. --===============2410774501548908632== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/guilhem@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: guilhem@stripped # target_branch: file:///home/mysql_src/bzrrepos_new/5.5-bugteam-\ # 57933/ # testament_sha1: f10f849d4f58e5c9da0f6407082fd1e3e1e29157 # timestamp: 2010-11-03 17:26:04 +0100 # source_branch: file:///home/mysql_src/bzrrepos_new/mysql-5.1-\ # bugteam/ # base_revision_id: georgi.kodinov@stripped\ # es9tjw3p63wsk8nw # # Begin bundle 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 uky4AaNhw4MSLwU/4u5IpwoSGeB/j6A= --===============2410774501548908632==--