OK, these should be applied and 'pushed' both to branch 0.45 and to 'master'.
cheers Miller
On Tue, Aug 27, 2013 at 07:21:06PM +0200, IOhannes m zmölnig wrote:
On 08/23/13 21:00, Miller Puckette wrote:
Hi all,
Pd version 0.45-0 is available on http://crca.ucsd.edu/~msp/software.htm
cool. i started updating the Debian packages...
As always I'm sure there will be problems here and there - you're welcome to report them on the Pd mailing list (pd-list@iem.at) which is always the fastest way to get me to see them.
two smallish notes.
#1 CFLAGS when manually including the Debian-patch "usercflags" (that makes sure that user-specified CFLAGS are honoured by prepending the configure-detected flags rather than appending), a small oversight has occured:
- on *linux*, the configure-CFLAGS are still appended. instead the
change was made for *hurd* (aka "GNU"). i think this was simply a confusion of "GNU" and "linux".
- otoh. the *hurd* CFLAGS still include "-O6"
the attached "usercflags.patch" hopefully gets this right. it /also/ fixes the CFLAGS append/prepend order for cygwin & mingw (though i admit that i have not tested this)
#2 BUILD FAILURES with "-Werror=format-security" when trying to build with the above error-flag (which pays some extra attention to argument passing), the build fails due to two problems. a) a call of "error(buf)" withing bug() is rejected, as the 'error'-function really reads "error(const char *fmt, ...)" and 'buf' is not a format, resp. there are no varargs. the fix is simply to call error("consistency check failed: %s", buf) and not construct the "consitency-failed" string beforehand. cool, this makes the code a little more readable! b) more serious, the new [text] object uses 'pd_error("ouch %s", str)', when pd_error() really needs a pointer to a pd-object... this is a potential crasher bug, as it accesses string memory as objects.
the attached patch "fix_format-security.patch" fixes this as well.
gfmasdr IOhannes
Author: Paul Brossier piem@debian.org Description: do not overwrite user cflags, add them *after* hardcoded ones --- puredata.orig/configure.ac +++ puredata/configure.ac @@ -42,7 +42,7 @@ if test "x${ANDROID}" = "xno"; then LINUX=yes portaudio=yes
CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer"
fi EXTERNAL_CFLAGS="-fPIC" EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC"CFLAGS="-O3 -funroll-loops -fomit-frame-pointer $CFLAGS"
@@ -50,7 +50,7 @@ ;; *-*-gnu*) HURD=yes
- CFLAGS="-O6 -funroll-loops -fomit-frame-pointer $CFLAGS"
- CFLAGS="-O3 -funroll-loops -fomit-frame-pointer $CFLAGS" EXTERNAL_CFLAGS="-fPIC" EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC" EXTERNAL_EXTENSION=pd_linux
@@ -62,7 +62,8 @@ # to make the final linking phase use g++ # asio=yes portaudio=yes
- CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer -DWINVER=0x0501 -D_WIN32_WINNT=0x0501"
- CFLAGS="-O3 -funroll-loops -fomit-frame-pointer -DWINVER=0x0501
+-D_WIN32_WINNT=0x0501 $CFLAGS" # ASIO is a C++ library, so if its included, then use g++ to build CC=g++ EXTERNAL_CFLAGS="-mms-bitfields" @@ -73,7 +74,7 @@ WINDOWS=yes CYGWIN=yes portaudio=yes
- CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer"
- CFLAGS="-O3 -funroll-loops -fomit-frame-pointer $CFLAGS" EXTERNAL_CFLAGS= EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -lpd" EXTERNAL_EXTENSION=dll
Author: IOhannes m zm??lnig Description: printf-like varargs functions must have a proper format; use "error('%s', str);" rather than "error(str);" also pd_error() requires an instance-pointer as the first argument --- puredata.orig/src/s_print.c +++ puredata/src/s_print.c @@ -282,12 +282,11 @@ va_list ap; t_int arg[8]; int i;
- strcpy(buf, "consistency check failed: "); va_start(ap, fmt);
- vsnprintf(buf+strlen(buf), MAXPDSTRING-1, fmt, ap);
- vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap);
- error(buf);
- error("consistency check failed: %s", buf);
}
/* this isn't worked out yet. */
--- puredata.orig/src/x_text.c +++ puredata/src/x_text.c @@ -1174,7 +1174,7 @@ } else {
pd_error("text sequence: unknown flag '%s'...",
pd_error(x, "text sequence: unknown flag '%s'...", argv->a_w.w_symbol->s_name); } argc--; argv++;
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list