Afte debugging around a bit I found the following in the .diff.gz causing this (in h/object.c):
@@ -514,9 +514,7 @@ }; /* flags */ #define GET_STREAM_FLAG(strm,name) ((strm)->sm.sm_flags & (1<<(name))) -#define SET_STREAM_FLAG(strm,name,val) (val ? \ - ((strm)->sm.sm_flags |= (1<<(name))) : \ - ((strm)->sm.sm_flags &= ~(1<<(name)))) +#define SET_STREAM_FLAG(strm,name,val) {if (val) (strm)->sm.sm_flags |= (1<<(na me)); (strm)->sm.sm_flags &= ~(1<<(name));} #define GCL_MODE_BLOCKING 1 #define GCL_MODE_NON_BLOCKING 0 There is obviously a else gone missing. The attached patch (against -19, as packages.d.o still links to that) solved the problem. Hochachtungsvoll, Bernhard R. Link
--- gcl-2.6.7.old/h/object.h 2006-09-02 21:57:41.000000000 +0000 +++ gcl-2.6.7/h/object.h 2006-09-02 15:15:20.000000000 +0000 @@ -514,7 +514,7 @@ }; /* flags */ #define GET_STREAM_FLAG(strm,name) ((strm)->sm.sm_flags & (1<<(name))) -#define SET_STREAM_FLAG(strm,name,val) {if (val) (strm)->sm.sm_flags |= (1<<(name)); (strm)->sm.sm_flags &= ~(1<<(name));} +#define SET_STREAM_FLAG(strm,name,val) {if (val) (strm)->sm.sm_flags |= (1<<(name)); else (strm)->sm.sm_flags &= ~(1<<(name));} #define GCL_MODE_BLOCKING 1 #define GCL_MODE_NON_BLOCKING 0