[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