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 <p...@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" + CFLAGS="-O3 -funroll-loops -fomit-frame-pointer $CFLAGS" fi EXTERNAL_CFLAGS="-fPIC" EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC" @@ -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++;
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list