[arch-general] Current "CPPFLAGS=-D_FORTIFY_SOURCE=2" break some builds

Anatol Pomozov anatol.pomozov at gmail.com
Tue May 7 18:10:31 EDT 2013


Hi, Allan


On Mon, May 6, 2013 at 3:34 PM, Allan McRae <allan at archlinux.org> wrote:

> On 07/05/13 06:20, Leonid Isaev wrote:
> > On Mon, 6 May 2013 16:01:30 -0400
> > Eric Bélanger <snowmaniscool at gmail.com> wrote:
> >
> >> On Mon, May 6, 2013 at 3:45 PM, Leonid Isaev <lisaev at umail.iu.edu>
> wrote:
> >>
> >>> Hi,
> >>>
> >>>         With gcc 4.8.0-4 I can no longer build core/links package from
> ABS,
> >>> with SSL support. The issue is _not_related to makepkg (as I originally
> >>> thought), even plain ./configure fails if I export
> >>> CPPFLAGS=-D_FORTIFY_SOURCE=2, regardless of the content of
> {C,CXX,LD}FLAGS.
> >>> Here is the error:
> >>> --------------------
> >>> $ ./configure --with-ssl
> >>> [ ... ]
> >>> checking for openssl... yes
> >>> checking OPENSSL_CFLAGS...
> >>> checking OPENSSL_LIBS... -lssl -lcrypto
> >>> checking for OpenSSL... no
> >>> checking for OpenSSL... no
> >>> configure: error: OpenSSL not found
> >>> $ cat config.log
> >>> [ ... ]
> >>> configure:8095: checking for openssl
> >>> configure:8102: checking OPENSSL_CFLAGS
> >>> configure:8107: checking OPENSSL_LIBS
> >>> configure:8139: checking for OpenSSL
> >>> configure:8150: gcc -o conftest -g -O2 -D_FORTIFY_SOURCE=2   conftest.c
> >>> -lssl
> >>> -lcrypto  -lm  1>&5
> >>> In file included from configure:8143:0:
> >>> confdefs.h:8:16: error: duplicate 'unsigned'
> >>>  #define size_t unsigned
> >>>                 ^
> >>> configure: failed program was:
> >>> #line 8143 "configure"
> >>> #include "confdefs.h"
> >>> #include <openssl/ssl.h>
> >>> int main() {
> >>> SSLeay_add_ssl_algorithms()
> >>> ; return 0; }
> >>> --------------------
> >>>
> >>> With gcc 4.7.2 all builds fine with Arch's default makepkg.conf, i.e.
> no
> >>> "duplicate unsigned error". Also, unsetting CPPFLAGS allows a
> successfull
> >>> build.
> >>>
> >>> Since core/links has been successfully rebuilt, what was the gcc
> version?
> >>> ANd
> >>> can anyone else confirm the above issue?
> >>>
> >>> TIA,
> >>> L.
> >>>
> >>>
> >> Aready fixed in links in testing. Just add a prepare function with:
> >>   sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" configure
> >>
> >
> > I see, thank you. Alternatively one could simply do CPPFLAGS+=" -O2" in
> > PKGBUILD...
> >
> > I'm still confused though: are we supposed to pass -On flags to cpp now
> (this
> > is even mentioned against in the configure script)? Or is it still a
> > gcc/glibc problem?
> >
>
> The reason we do the sed is so -O2 is not passed with CPPFLAGS during
> the actual built.  This is just working around an autoconf limitation.
>

Could you please share more info about autoconf limitation? It is not clear
for me why autoconf does not pass -O2. And why it is needed when
-D_FORTIFY_SOURCE=2 is enabled. Is it a bug that reported to autoconf
project? Or maybe it is some fundamental issue that Arch packages will live
forever?


More information about the arch-general mailing list