[GRASS-dev] [GRASS GIS] #2916: configure bug (?): FORTIFY_SOURCE in CPPFLAGS breaks configure on Arch Linux
    GRASS GIS 
    trac at osgeo.org
       
    Thu Feb 18 18:00:22 PST 2016
    
    
  
#2916: configure bug (?): FORTIFY_SOURCE in CPPFLAGS breaks configure on Arch
Linux
------------------------+-------------------------
  Reporter:  msieczka   |      Owner:  grass-dev@…
      Type:  defect     |     Status:  new
  Priority:  normal     |  Milestone:  7.0.4
 Component:  Compiling  |    Version:  7.0.3
Resolution:             |   Keywords:
       CPU:  All        |   Platform:  Linux
------------------------+-------------------------
Comment (by glynn):
 Replying to [comment:12 msieczka]:
 > If understand what you are saying, the following would be better
 (putting aside your point against forcibly enabling _FORTIFY_SOURCE at
 all):
 >
 {{{
 export CFLAGS="$CPPFLAGS $CFLAGS"
 export CXXFLAGS="$CPPFLAGS $CXXFLAGS"
 unset CPPFLAGS
 }}}
 The problem with this is that it breaks any case where the preprocessor is
 run standalone, rather than as part of compilation.
 I don't think that happens anywhere within actual the GRASS build process,
 as Platform.make.in doesn't mention @CPP@ anywhere (so there's no valid
 way for a Makefile to know how to run the preprocessor by itself).
 But it can create problems for the configure script, which uses the pre-
 processor extensively. E.g. AC_CHECK_HEADERS is based upon AC_TRY_CPP, so
 if it needs e.g. any -I switches from CPPFLAGS, moving those into
 CFLAGS/CXXFLAGS will break it.
 > Do you know whether all (sane) CPPFLAGS can be safely be mixed into
 CXXFLAGS and CFLAGS like this?
 That isn't a problem. The C compiler is always passed both $(CFLAGS) and
 $(CPPFLAGS), while the C++ compiler is always passed both $(CXXFLAGS) and
 $(CPPFLAGS). If the preprocessor is run separately, it should only be
 passed $(CPPFLAGS), hence the distinction.
 > And what do you think about scimmia's "ancient version of autoconf used"
 #comment:1? I mean could using a newer autoconf version to generate the
 GRASS configure script fix the problem?
 Maybe. Like many autoconf macros, AC_PROG_CPP runs through a fixed set of
 candidates until one appears to work. It's possible that a newer version
 has more candidates. Or it's possible that it's smarter at ignoring
 warnings from the preprocessor.
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2916#comment:13>
GRASS GIS <https://grass.osgeo.org>
    
    
More information about the grass-dev
mailing list