[PD-dev] [pure-data:bugs] #1100 CFLAGS=-O6 breaks CC=clang

Claude Heiland-Allen claudiusmaximus at users.sf.net
Wed Aug 7 11:58:48 CEST 2013




---

** [bugs:#1100] CFLAGS=-O6 breaks CC=clang**

**Status:** open
**Labels:** buildsystem performance 
**Created:** Wed Aug 07, 2013 09:58 AM UTC by Claude Heiland-Allen
**Last Updated:** Wed Aug 07, 2013 09:58 AM UTC
**Owner:** nobody

Versions
--------

    Pd-0.45.0 ("test") compiled 10:29:40 Aug  7 2013   (git from today)
    gcc (Debian 4.7.2-5) 4.7.2
    Debian clang version 3.0-6.2 (tags/RELEASE_30/final) (based on LLVM 3.0)
    Linux cappuccino 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux

Reproduction
------------

    ./autogen.sh
    CC=clang ./configure ...

What Happens
------------

    configure: error: C compiler cannot create executables
    See `config.log' for more details

The log contains:

    configure:3810: checking whether the C compiler works
    configure:3832: clang  -O6 -funroll-loops -fomit-frame-pointer   conftest.c  >&5
    error: invalid value '6' in '-O6'

What I Expected
---------------

Pd's build system to autodetect which -O# levels are supported by the chosen compiler, or at least use a more reasonable default.

What Happened After I Fixed It
------------------------------

Pd's load meter reported that one patch of mine used 10% CPU when Pd was compiled with clang's -O3.  In comparison, Pd compiled with gcc's -O6 used 25% CPU.  I did disable CPU frequency scaling on all cores for this test.

Simple Bugfix Patch
-------------------

    diff --git a/configure.ac b/configure.ac
    index 5bd21cc..255ad42 100644
    --- a/configure.ac
    +++ b/configure.ac
    @@ -45,7 +45,7 @@ case $host in
            if test "x${ANDROID}" = "xno"; then
             LINUX=yes
             portaudio=yes
    -        CFLAGS="$CFLAGS -O6 -funroll-loops -fomit-frame-pointer"
    +        CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer"
            fi
            EXTERNAL_CFLAGS="-fPIC"
            EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC"

A better patch would set CFLAGS after detecting which compiler is being used.



---

Sent from sourceforge.net because pd-dev at lists.iem.at is subscribed to https://sourceforge.net/p/pure-data/bugs/

To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/pure-data/admin/bugs/options.  Or, if this is a mailing list, you can unsubscribe from the mailing list.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20130807/a28aed1b/attachment.htm>


More information about the Pd-dev mailing list