Home | History | Annotate | Download | only in release
      1 ############################################################################
      2 # Copyright 2016-2017 Intel Corporation
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #     http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 ############################################################################
     16 # pylint: disable=locally-disabled, invalid-name, missing-docstring
     17 
     18 """g++ compiler configuration for release
     19 """
     20 from parts.config import ConfigValues, configuration
     21 
     22 def map_default_version(env):
     23     return env['GCC_VERSION']
     24 
     25 config = configuration(map_default_version)
     26 
     27 config.VersionRange("3-*",
     28                     append=ConfigValues(
     29                         CCFLAGS=['',
     30                                  # second level optimization
     31                                  '-O2',
     32                                  # treat warnings as errors
     33                                  '-Werror',
     34                                  # enable all warnings
     35                                  '-Wall',
     36                                  # extra warnings
     37                                  '-Wextra',
     38                                  # pedantic warnings
     39                                  # '-Wpedantic',
     40                                  '-Wformat',
     41                                  '-Wformat-security',
     42                                  '-fstack-protector',
     43                                  '-fPIC'],
     44                         CXXFLAGS=['',
     45                                   # modern C++ features support
     46                                   '-std=c++0x'],
     47                         CPPDEFINES=['NDEBUG',
     48                                     '_FORTIFY_SOURCE=2'],
     49                         LINKFLAGS=['-fstack-protector',
     50                                    '-znoexecstack',
     51                                    '-zrelro',
     52                                    '-znow',
     53                                    '-pie'],
     54                     )
     55                    )
     56