Home | History | Annotate | Download | only in m4
      1 # ===========================================================================
      2 #   Modified from https://www.gnu.org/software/autoconf-archive/ax_add_fortify_source.html
      3 # ===========================================================================
      4 #
      5 # SYNOPSIS
      6 #
      7 #   AX_ADD_FORTIFY_SOURCE
      8 #
      9 # DESCRIPTION
     10 #
     11 #   Check whether -D_FORTIFY_SOURCE=2 can be added to CFLAGS without macro
     12 #   redefinition warnings. Some distributions (such as Gentoo Linux) enable
     13 #   _FORTIFY_SOURCE globally in their compilers, leading to unnecessary
     14 #   warnings in the form of
     15 #
     16 #     <command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
     17 #     <built-in>: note: this is the location of the previous definition
     18 #
     19 #   which is a problem if -Werror is enabled. This macro checks whether
     20 #   _FORTIFY_SOURCE is already defined, and if not, adds -D_FORTIFY_SOURCE=2
     21 #   to CFLAGS.
     22 #
     23 # LICENSE
     24 #
     25 #   Copyright (c) 2017 David Seifert <soap (a] gentoo.org>
     26 #
     27 #   Copying and distribution of this file, with or without modification, are
     28 #   permitted in any medium without royalty provided the copyright notice
     29 #   and this notice are preserved.  This file is offered as-is, without any
     30 #   warranty.
     31 
     32 #serial 1
     33 
     34 AC_DEFUN([AX_ADD_FORTIFY_SOURCE],[
     35     AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 to CFLAGS])
     36     AC_LINK_IFELSE([
     37         AC_LANG_SOURCE(
     38             [[
     39                 int main() {
     40                 #ifndef _FORTIFY_SOURCE
     41                     return 0;
     42                 #else
     43                     this_is_an_error;
     44                 #endif
     45                 }
     46             ]]
     47         )], [
     48             AC_MSG_RESULT([yes])
     49             CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
     50         ], [
     51             AC_MSG_RESULT([no])
     52     ])
     53 ])
     54