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

Allan McRae allan at archlinux.org
Mon May 6 18:34:28 EDT 2013


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.

Allan




More information about the arch-general mailing list