version update
[goodguy/cinelerra.git] / cinelerra-5.1 / blds / bsd.patch
index afc1e14fb97cae2b6e46d5a971c1efdbd16922b9..ecc6939be7217b4ab93742a8a6747ed3f6f7b0ff 100644 (file)
@@ -1,5 +1,5 @@
 diff --git a/cinelerra-5.1/Makefile.devel b/cinelerra-5.1/Makefile.devel
-index a12d8f2b..9aac014a 100644
+index 5531330..ad671f5 100644
 --- a/cinelerra-5.1/Makefile.devel
 +++ b/cinelerra-5.1/Makefile.devel
 @@ -4,7 +4,7 @@ TOPDIR := $(CURDIR)
@@ -12,35 +12,10 @@ index a12d8f2b..9aac014a 100644
  MAKEJ := $(MAKE) $(jobs)
  
 diff --git a/cinelerra-5.1/cinelerra/Makefile b/cinelerra-5.1/cinelerra/Makefile
-index 18590e3a..5eead290 100644
+index f4e536b..9b76136 100644
 --- a/cinelerra-5.1/cinelerra/Makefile
 +++ b/cinelerra-5.1/cinelerra/Makefile
-@@ -395,6 +395,7 @@ LIBS += -lfontconfig -lfreetype
- LIBS += -lavcodec -lavdevice -lavfilter -lavformat -lavresample -lavutil
- LIBS += -lswresample -lswscale
- LIBS += -lvpx -lwebp -lwebpmux
-+LIBS += -lintl -liconv -lexecinfo
- LIBS += $(if $(filter fftw,$(static_pkgs)), -lfftw3)
- LIBS += $(if $(filter flac,$(static_pkgs)), -lFLAC)
-@@ -414,7 +415,7 @@ LIBS += $(if $(filter x265,$(static_pkgs)), -lx265)
- LIBS += $(if $(filter libvpx,$(static_pkgs)), -lvpx)
- ifneq ($(WANT_GL),no)
--LIBS += -lGL -lGLU -lGLX
-+LIBS += -lGL -lGLU
- endif
- ifneq ($(WANT_XFT),no)
- LIBS += -lXft
-@@ -476,6 +477,7 @@ LV2OBJS = \
- endif
- CFLAGS := \
-+      -I/usr/local/include \
-       -I$(GUICAST) \
-       -I$(LIBZMPEG3) \
-       $(static_incs) \
-@@ -523,15 +525,15 @@ all:     $(OUTPUT) $(CUTADS) $(BDWRITE) $(LV2UI)
+@@ -512,7 +512,7 @@ all:       $(OUTPUT) $(CUTADS) $(BDWRITE) $(LV2UI)
  $(OUTPUT): $(OBJS) $(THEME_DATA) $(DCRAW) $(LIBRARIES)
        $(LINKER) `cat $(OBJDIR)/objs`
        $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(OUTPUT) $(OUTPUT_G))
@@ -49,55 +24,11 @@ index 18590e3a..5eead290 100644
        ln -f -s ../bin/$(WANT_CIN) ci
  
  ifneq ($(WANT_COMMERCIAL),no)
- $(CUTADS):    $(CUTOBJS) $(CUTLIBS) $(LIBRARIES)
--      @echo g++ -o $@ $(CUTOBJS)
--      @g++ $(CFLAGS) -pthread -o $@ $(CUTOBJS) $(CUTLIBS) $(LIBS)
-+      @echo $(CXX) -o $@ $(CUTOBJS)
-+      @$(CXX) $(CFLAGS) -pthread -o $@ $(CUTOBJS) $(CUTLIBS) $(LIBS)
-       $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(CUTADS) $(CUTADS).debuginfo)
--      $(if $(findstring -ggdb,$(CFLAGS)),,strip $(CUTADS))
-+      #$(if $(findstring -ggdb,$(CFLAGS)),,strip $(CUTADS))
- install-cutads:
-       cp -av $(OBJDIR)/cutads $(BINDIR)/.
-@@ -540,18 +542,18 @@ install: install-cutads
- endif
- $(BDWRITE):   $(BDWOBJS) $(LIBRARIES)
--      @echo g++ -o $@ $(BDWOBJS)
--      @g++ $(CFLAGS) -pthread -o $@ $(BDWOBJS) $(LIBS)
-+      @echo $(CXX) -o $@ $(BDWOBJS)
-+      @$(CXX) $(CFLAGS) -pthread -o $@ $(BDWOBJS) $(LIBS)
-       $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(BDWRITE) $(BDWRITE).debuginfo)
--      $(if $(findstring -ggdb,$(CFLAGS)),,strip $(BDWRITE))
-+      #$(if $(findstring -ggdb,$(CFLAGS)),,strip $(BDWRITE))
- install-bdwrite:
-       cp -av $(OBJDIR)/bdwrite $(BINDIR)/.
- install:      install-bdwrite
- ydiff:        ydiff.C $(LIBRARIES)
--      @echo g++ -o $@ ydiff.C
--      @g++ $(CFLAGS) ydiff.C -o $@ $(LIBS)
-+      @echo $(CXX) -o $@ ydiff.C
-+      @$(CXX) $(CFLAGS) ydiff.C -o $@ $(LIBS)
- clean:
-       rm -rf $(OBJDIR)
-@@ -585,7 +587,7 @@ $(OBJDIR)/lv2ui: $(LV2OBJS)
-       @echo $(CXX) \`cat $(OBJDIR)/c_flags\` $^ -o $@
-       @$(CXX) `cat $(OBJDIR)/c_flags` $^ -o $@ $(LIBS) $(GTK2_LIBS)
-       $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(LV2UI) $(LV2UI).debuginfo)
--      $(if $(findstring -ggdb,$(CFLAGS)),,strip $(LV2UI))
-+      #$(if $(findstring -ggdb,$(CFLAGS)),,strip $(LV2UI))
- .PHONY:       lv2ui
- lv2ui:        $(LV2UI)
 diff --git a/cinelerra-5.1/cinelerra/bdcreate.C b/cinelerra-5.1/cinelerra/bdcreate.C
-index 27f728ad..9215090d 100644
+index e18ebee..eade28a 100644
 --- a/cinelerra-5.1/cinelerra/bdcreate.C
 +++ b/cinelerra-5.1/cinelerra/bdcreate.C
-@@ -25,8 +25,8 @@
+@@ -24,8 +24,8 @@
  #include <unistd.h>
  #include <fcntl.h>
  #include <errno.h>
@@ -109,7 +40,7 @@ index 27f728ad..9215090d 100644
  // BD Creation
  
 diff --git a/cinelerra-5.1/cinelerra/bdwrite.C b/cinelerra-5.1/cinelerra/bdwrite.C
-index 6a2b4ca3..78cf9bef 100644
+index 6a2b4ca..78cf9be 100644
 --- a/cinelerra-5.1/cinelerra/bdwrite.C
 +++ b/cinelerra-5.1/cinelerra/bdwrite.C
 @@ -38,7 +38,7 @@
@@ -122,7 +53,7 @@ index 6a2b4ca3..78cf9bef 100644
  #include <sys/stat.h>
  // work arounds (centos)
 diff --git a/cinelerra-5.1/cinelerra/cutads.C b/cinelerra-5.1/cinelerra/cutads.C
-index ac58d56a..f6690cf2 100644
+index ac58d56..f6690cf 100644
 --- a/cinelerra-5.1/cinelerra/cutads.C
 +++ b/cinelerra-5.1/cinelerra/cutads.C
 @@ -23,14 +23,6 @@
@@ -161,7 +92,7 @@ index ac58d56a..f6690cf2 100644
        class low_priority { public:
                low_priority() { set_priority(19, IOPRIO_CLASS_IDLE); }
 diff --git a/cinelerra-5.1/cinelerra/dvdcreate.C b/cinelerra-5.1/cinelerra/dvdcreate.C
-index 1014baf5..f38094e9 100644
+index f4587fc..dd0c883 100644
 --- a/cinelerra-5.1/cinelerra/dvdcreate.C
 +++ b/cinelerra-5.1/cinelerra/dvdcreate.C
 @@ -24,8 +24,8 @@
@@ -176,10 +107,10 @@ index 1014baf5..f38094e9 100644
  
  #define DVD_PAL_4x3   0
 diff --git a/cinelerra-5.1/cinelerra/file.C b/cinelerra-5.1/cinelerra/file.C
-index 13e1b457..9cc2f116 100644
+index f9571c9..d1197c3 100644
 --- a/cinelerra-5.1/cinelerra/file.C
 +++ b/cinelerra-5.1/cinelerra/file.C
-@@ -1594,7 +1594,10 @@ int File::record_fd()
+@@ -1589,7 +1589,10 @@ int File::record_fd()
  void File::get_exe_path(char *result, char *bnp)
  {
  // Get executable path, basename
@@ -192,23 +123,25 @@ index 13e1b457..9cc2f116 100644
                result[len] = 0;
                char *ptr = strrchr(result, '/');
 diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C
-index 3d21d2af..f3064199 100644
+index 87b8853..ad75d24 100644
 --- a/cinelerra-5.1/cinelerra/indexfile.C
 +++ b/cinelerra-5.1/cinelerra/indexfile.C
-@@ -70,7 +70,7 @@
+@@ -70,9 +70,7 @@
  
  #include <sys/types.h>
  #include <sys/stat.h>
+-#ifdef HAVE_ISOFS
 -#include <linux/iso_fs.h>
+-#endif
 +#include <isofs/cd9660/iso.h>
  
  // check for isofs volume_id for dvd/cdrom
  
 diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac
-index 1157b0a3..8c5ba61a 100644
+index ee75006..071d8e7 100644
 --- a/cinelerra-5.1/configure.ac
 +++ b/cinelerra-5.1/configure.ac
-@@ -16,8 +16,18 @@ CFG_CFLAGS+=" -Wno-unused-result"
+@@ -18,8 +18,18 @@ CFG_CFLAGS+=" -Wno-unused-result"
  CFG_CFLAGS+=" -Wno-stringop-overflow"
  CFG_CFLAGS+=" -Wno-format-truncation"
  CFG_CFLAGS+=" -Wno-format-overflow"
@@ -227,7 +160,7 @@ index 1157b0a3..8c5ba61a 100644
  CFG_CFLAGS+=" -D__STDC_CONSTANT_MACROS"
  CFG_CFLAGS+=" -D__STDC_LIMIT_MACROS"
  CFG_CFLAGS+=" -DPNG_SKIP_SETJMP_CHECK=1"
-@@ -127,7 +137,7 @@ AC_SUBST(MAK_INSTALLS)
+@@ -140,7 +150,7 @@ AC_SUBST(MAK_INSTALLS)
  AC_SUBST(MAK_UNINSTALLS)
  
  if test "x$WANT_JOBS" = "xauto"; then
@@ -236,8 +169,32 @@ index 1157b0a3..8c5ba61a 100644
    WANT_JOBS=`expr $CPUS + $CPUS / 2 + 2`
  fi
  
+@@ -1132,6 +1142,11 @@ if test "x$CFG_LDFLAGS" != "x" ; then
+   echo ""
+ fi
++if test "x$BSD" != "x" ; then
++  echo "CFLAGS += -DNO_PRCTL"
++  echo "CFLAGS += -DNO_TID"
++  echo "CFLAGS += -DNO_GDB"
++fi
+ if test "x$CYGWIN" != "x" ; then
+   echo 'FF_PATH ?= /usr/local'
+   echo 'LDFLAGS += -L$(FF_PATH)/lib'
+@@ -1147,11 +1162,6 @@ if test "x$CYGWIN" != "x" ; then
+ else
+   LDFLAGS+=" -z noexecstack"
+ fi
+-if test "x$BSD" != "x" ; then
+-  echo "CFLAGS += -DNO_PRCTL"
+-  echo "CFLAGS += -DNO_TID"
+-  echo "CFLAGS += -DNO_GDB"
+-fi
+ if test "x$WANT_X264_HIDEPTH" = "xyes" ; then
+   X264_CFG_PARAMS="$X264_CFG_PARAMS --bit-depth=10"
 diff --git a/cinelerra-5.1/db/tdb.h b/cinelerra-5.1/db/tdb.h
-index 8ee88002..9a17091e 100644
+index 8ee8800..9a17091 100644
 --- a/cinelerra-5.1/db/tdb.h
 +++ b/cinelerra-5.1/db/tdb.h
 @@ -32,7 +32,7 @@ inline void operator delete[](void *t,size_t n) { free(t); }
@@ -249,11 +206,24 @@ index 8ee88002..9a17091e 100644
  #ifdef ZFUTEX
  #include <unistd.h>
  #include <endian.h>
+diff --git a/cinelerra-5.1/guicast/Makefile b/cinelerra-5.1/guicast/Makefile
+index 201c5a4..1c3822f 100644
+--- a/cinelerra-5.1/guicast/Makefile
++++ b/cinelerra-5.1/guicast/Makefile
+@@ -95,7 +95,7 @@ $(shell echo $(OBJS) > $(OBJDIR)/objs)
+ all: $(OUTPUT) $(UTILS)
+ $(BCXFER):    bccmdl.py bcxfer.C bcxfer.h
+-      python < ./bccmdl.py
++      python2.7 < ./bccmdl.py
+       +$(MAKE) -C xfer
+ $(OUTPUT): $(OBJS) $(BCXFER)
 diff --git a/cinelerra-5.1/guicast/bclistbox.h b/cinelerra-5.1/guicast/bclistbox.h
-index f5994d53..c73169bb 100644
+index ce34ffc..0e38913 100644
 --- a/cinelerra-5.1/guicast/bclistbox.h
 +++ b/cinelerra-5.1/guicast/bclistbox.h
-@@ -185,7 +185,9 @@ public:
+@@ -187,7 +187,9 @@ public:
  
  // take_focus - used by the suggestion box to keep it from taking focus from the
  // textbox
@@ -265,7 +235,7 @@ index f5994d53..c73169bb 100644
        int deactivate();
        int is_active();
 diff --git a/cinelerra-5.1/guicast/bcpan.h b/cinelerra-5.1/guicast/bcpan.h
-index 40f5971f..73d47586 100644
+index 40f5971..73d4758 100644
 --- a/cinelerra-5.1/guicast/bcpan.h
 +++ b/cinelerra-5.1/guicast/bcpan.h
 @@ -93,7 +93,8 @@ public:
@@ -279,10 +249,10 @@ index 40f5971f..73d47586 100644
        float* get_values();
  
 diff --git a/cinelerra-5.1/guicast/bcresources.C b/cinelerra-5.1/guicast/bcresources.C
-index 1e927303..165883de 100644
+index 1d52855..c8d93bd 100644
 --- a/cinelerra-5.1/guicast/bcresources.C
 +++ b/cinelerra-5.1/guicast/bcresources.C
-@@ -38,6 +38,7 @@
+@@ -39,6 +39,7 @@
  #include <iconv.h>
  #include <sys/ipc.h>
  #include <sys/shm.h>
@@ -290,7 +260,7 @@ index 1e927303..165883de 100644
  #include <X11/extensions/XShm.h>
  #include <fontconfig/fontconfig.h>
  #include <fontconfig/fcfreetype.h>
-@@ -297,23 +298,12 @@ int BC_Resources::machine_cpus = 1;
+@@ -298,23 +299,12 @@ int BC_Resources::machine_cpus = 1;
  
  int BC_Resources::get_machine_cpus()
  {
@@ -320,116 +290,198 @@ index 1e927303..165883de 100644
  }
  
  void BC_Resources::new_vframes(int n, VFrame *vframes[], ...)
-@@ -695,7 +685,7 @@ new_vframes(20,default_medium_7segment,
-       generic_button_margin = 15;
-       draw_clock_background=1;
+@@ -367,8 +357,8 @@ BC_Resources::BC_Resources(float x_scale, float y_scale)
+       BC_WindowBase::resources = this;
+       synchronous = 0;
+       vframe_shm = 0;
 -      use_shm = -1;
+-      shm_reply = 1;
 +      use_shm = 0;
-       shm_reply = 1;
++      shm_reply = 0;
  
- // Initialize
+       if( x_scale <= 0 ) x_scale = 1;
+       if( y_scale <= 0 ) y_scale = x_scale;
 diff --git a/cinelerra-5.1/guicast/bcsignals.C b/cinelerra-5.1/guicast/bcsignals.C
-index ed50cfb1..f1b894ba 100644
+index ffc8a1c..b83b328 100644
 --- a/cinelerra-5.1/guicast/bcsignals.C
 +++ b/cinelerra-5.1/guicast/bcsignals.C
-@@ -37,9 +37,11 @@
- #include <sys/stat.h>
- #include <unistd.h>
- #include <sys/ioctl.h>
--#include <sys/prctl.h>
- #include <sys/types.h>
-+#define dirent64 dirent
-+#define readdir64 readdir
-+
- BC_Signals* BC_Signals::global_signals = 0;
- static int signal_done = 0;
-@@ -279,18 +281,6 @@ static void handle_exit(int signum)
- void BC_Signals::set_sighup_exit(int enable)
- {
--      if( enable ) {
--// causes SIGHUP to be generated when parent dies
--              signal(SIGHUP, handle_exit);
--              prctl(PR_SET_PDEATHSIG, SIGHUP, 0,0,0);
--// prevents ^C from signalling child when attached to gdb
--              setpgid(0, 0);
--              if( isatty(0) ) ioctl(0, TIOCNOTTY, 0);
--      }
--      else {
--              signal(SIGHUP, signal_entry);
--              prctl(PR_SET_PDEATHSIG, 0,0,0,0);
--      }
- }
- BC_Signals::BC_Signals()
-@@ -383,11 +373,13 @@ const char* BC_Signals::sig_to_str(int number)
+@@ -395,70 +395,72 @@ const char* BC_Signals::sig_to_str(int number)
  #include <sys/wait.h>
  #include "thread.h"
  
-+#define SC_(r)sc_##r
++#define SC_(r)mc_##r
 +
  #if __i386__
 -#define IP eip
+-#define sigregs_t sigcontext
 +#define IP SC_(eip)
++#define sigregs_t mcontext_t
+ static void reg_dump(FILE *fp,sigregs_t *rp)
+ {
+       fprintf(fp,"REGS:\n");
+-      fprintf(fp,"  gs: %04x:%04x\n", rp->gs,rp->__gsh);
+-      fprintf(fp,"  fs: %04x:%04x\n", rp->fs,rp->__fsh);
+-      fprintf(fp,"  es: %04x:%04x\n", rp->es,rp->__esh);
+-      fprintf(fp,"  ds: %04x:%04x\n", rp->ds,rp->__dsh);
+-      fprintf(fp," edi: %14p %d\n", (void*)rp->edi,rp->edi);
+-      fprintf(fp," esi: %14p %d\n", (void*)rp->esi,rp->esi);
+-      fprintf(fp," ebp: %14p %d\n", (void*)rp->ebp,rp->ebp);
+-      fprintf(fp," esp: %14p %d\n", (void*)rp->esp,rp->esp);
+-      fprintf(fp," ebx: %14p %d\n", (void*)rp->ebx,rp->ebx);
+-      fprintf(fp," edx: %14p %d\n", (void*)rp->edx,rp->edx);
+-      fprintf(fp," ecx: %14p %d\n", (void*)rp->ecx,rp->ecx);
+-      fprintf(fp," eax: %14p %d\n", (void*)rp->eax,rp->eax);
+-      fprintf(fp," trapno: %14p %d\n", (void*)rp->trapno,rp->trapno);
+-      fprintf(fp," err: %14p %d\n", (void*)rp->err,rp->err);
+-      fprintf(fp," eip: %14p %d\n", (void*)rp->eip,rp->eip);
+-      fprintf(fp," cs: %04xd : %04x\n", rp->cs,rp->__csh);
+-      fprintf(fp," eflags: %14p %d\n", (void*)rp->eflags,rp->eflags);
+-      fprintf(fp," esp_at_signal: %p %d\n", (void*)rp->esp_at_signal,rp->esp_at_signal);
+-      fprintf(fp," ss: %04xd : %04x\n", rp->ss,rp->__ssh);
+-      fprintf(fp," oldmask: %14p %d\n", (void*)rp->oldmask,rp->oldmask);
+-      fprintf(fp," cr2: %14p %d\n", (void*)rp->cr2,rp->cr2);
++      fprintf(fp,"  gs: %04x:%04x\n", rp->mc_gs,rp->mc_gs);
++      fprintf(fp,"  fs: %04x:%04x\n", rp->mc_fs,rp->mc_fs);
++      fprintf(fp,"  es: %04x:%04x\n", rp->mc_es,rp->mc_es);
++      fprintf(fp,"  ds: %04x:%04x\n", rp->mc_ds,rp->mc_ds);
++      fprintf(fp," edi: %14p %d\n", (void*)rp->mc_edi,rp->mc_edi);
++      fprintf(fp," esi: %14p %d\n", (void*)rp->mc_esi,rp->mc_esi);
++      fprintf(fp," ebp: %14p %d\n", (void*)rp->mc_ebp,rp->mc_ebp);
++      fprintf(fp," esp: %14p %d\n", (void*)rp->mc_esp,rp->mc_esp);
++      fprintf(fp," ebx: %14p %d\n", (void*)rp->mc_ebx,rp->mc_ebx);
++      fprintf(fp," edx: %14p %d\n", (void*)rp->mc_edx,rp->mc_edx);
++      fprintf(fp," ecx: %14p %d\n", (void*)rp->mc_ecx,rp->mc_ecx);
++      fprintf(fp," eax: %14p %d\n", (void*)rp->mc_eax,rp->mc_eax);
++      fprintf(fp," trapno: %14p %d\n", (void*)rp->mc_trapno,rp->mc_trapno);
++      fprintf(fp," err: %14p %d\n", (void*)rp->mc_err,rp->mc_err);
++      fprintf(fp," eip: %14p %d\n", (void*)rp->mc_eip,rp->mc_eip);
++      fprintf(fp," cs: %04x\n", (unsigned)rp->mc_cs);
++      fprintf(fp," eflags: %14p %d\n", (void*)rp->mc_eflags,rp->mc_eflags);
++      fprintf(fp," esp_at_signal: %p %d\n", (void*)rp->mc_esp_at_signal,rp->mc_esp_at_signal);
++      fprintf(fp," ss: %04xd : %04x\n", rp->mc_ss,rp->mc_ss);
++//    fprintf(fp," oldmask: %14p %d\n", (void*)rp->mc_oldmask,rp->mc_oldmask);
++//    fprintf(fp," cr2: %14p %d\n", (void*)rp->mc_cr2,rp->mc_cr2);
+       fprintf(fp,"\n");
+ }
  #endif
  #if __x86_64__
 -#define IP rip
+-#define sigregs_t sigcontext
 +#define IP SC_(rip)
++#define sigregs_t mcontext_t
+ static void reg_dump(FILE *fp,sigregs_t *rp)
+ {
+       fprintf(fp,"REGS:\n");
+-      fprintf(fp,"  r8: %20p %jd\n", (void*)rp->r8,rp->r8);
+-      fprintf(fp,"  r9: %20p %jd\n", (void*)rp->r9,rp->r9);
+-      fprintf(fp," r10: %20p %jd\n", (void*)rp->r10,rp->r10);
+-      fprintf(fp," r11: %20p %jd\n", (void*)rp->r11,rp->r11);
+-      fprintf(fp," r12: %20p %jd\n", (void*)rp->r12,rp->r12);
+-      fprintf(fp," r13: %20p %jd\n", (void*)rp->r13,rp->r13);
+-      fprintf(fp," r14: %20p %jd\n", (void*)rp->r14,rp->r14);
+-      fprintf(fp," r15: %20p %jd\n", (void*)rp->r15,rp->r15);
+-      fprintf(fp," rdi: %20p %jd\n", (void*)rp->rdi,rp->rdi);
+-      fprintf(fp," rsi: %20p %jd\n", (void*)rp->rsi,rp->rsi);
+-      fprintf(fp," rbp: %20p %jd\n", (void*)rp->rbp,rp->rbp);
+-      fprintf(fp," rbx: %20p %jd\n", (void*)rp->rbx,rp->rbx);
+-      fprintf(fp," rdx: %20p %jd\n", (void*)rp->rdx,rp->rdx);
+-      fprintf(fp," rax: %20p %jd\n", (void*)rp->rax,rp->rax);
+-      fprintf(fp," rcx: %20p %jd\n", (void*)rp->rcx,rp->rcx);
+-      fprintf(fp," rsp: %20p %jd\n", (void*)rp->rsp,rp->rsp);
+-      fprintf(fp," rip: %20p %jd\n", (void*)rp->rip,rp->rip);
+-      fprintf(fp," eflags: %14p %jd\n", (void*)rp->eflags,rp->eflags);
+-      fprintf(fp,"  cs: %04x\n", rp->cs);
+-      fprintf(fp,"  gs: %04x\n", rp->gs);
+-      fprintf(fp,"  fs: %04x\n", rp->fs);
+-      fprintf(fp," err: %20p %jd\n", (void*)rp->err,rp->err);
+-      fprintf(fp," trapno: %20p %jd\n", (void*)rp->trapno,rp->trapno);
+-      fprintf(fp," oldmask: %20p %jd\n", (void*)rp->oldmask,rp->oldmask);
+-      fprintf(fp," cr2: %20p %jd\n", (void*)rp->cr2,rp->cr2);
++      fprintf(fp,"  r8: %20p %jd\n", (void*)rp->mc_r8,rp->mc_r8);
++      fprintf(fp,"  r9: %20p %jd\n", (void*)rp->mc_r9,rp->mc_r9);
++      fprintf(fp," r10: %20p %jd\n", (void*)rp->mc_r10,rp->mc_r10);
++      fprintf(fp," r11: %20p %jd\n", (void*)rp->mc_r11,rp->mc_r11);
++      fprintf(fp," r12: %20p %jd\n", (void*)rp->mc_r12,rp->mc_r12);
++      fprintf(fp," r13: %20p %jd\n", (void*)rp->mc_r13,rp->mc_r13);
++      fprintf(fp," r14: %20p %jd\n", (void*)rp->mc_r14,rp->mc_r14);
++      fprintf(fp," r15: %20p %jd\n", (void*)rp->mc_r15,rp->mc_r15);
++      fprintf(fp," rdi: %20p %jd\n", (void*)rp->mc_rdi,rp->mc_rdi);
++      fprintf(fp," rsi: %20p %jd\n", (void*)rp->mc_rsi,rp->mc_rsi);
++      fprintf(fp," rbp: %20p %jd\n", (void*)rp->mc_rbp,rp->mc_rbp);
++      fprintf(fp," rbx: %20p %jd\n", (void*)rp->mc_rbx,rp->mc_rbx);
++      fprintf(fp," rdx: %20p %jd\n", (void*)rp->mc_rdx,rp->mc_rdx);
++      fprintf(fp," rax: %20p %jd\n", (void*)rp->mc_rax,rp->mc_rax);
++      fprintf(fp," rcx: %20p %jd\n", (void*)rp->mc_rcx,rp->mc_rcx);
++      fprintf(fp," rsp: %20p %jd\n", (void*)rp->mc_rsp,rp->mc_rsp);
++      fprintf(fp," rip: %20p %jd\n", (void*)rp->mc_rip,rp->mc_rip);
++      fprintf(fp," eflags: %14p %u\n", (void*)((unsigned long)rp->mc_flags),rp->mc_flags);
++      fprintf(fp,"  cs: %04x\n", (unsigned)rp->mc_cs);
++      fprintf(fp,"  gs: %04x\n", (unsigned)rp->mc_gs);
++      fprintf(fp,"  fs: %04x\n", (unsigned)rp->mc_fs);
++      fprintf(fp," err: %20p %jd\n", (void*)rp->mc_err,rp->mc_err);
++      fprintf(fp," trapno: %20p %d\n", (void*)((unsigned long)rp->mc_trapno),rp->mc_trapno);
++//    fprintf(fp," oldmask: %20p %jd\n", (void*)rp->mc_oldmask,rp->mc_oldmask);
++//    fprintf(fp," cr2: %20p %jd\n", (void*)rp->mc_cr2,rp->mc_cr2);
+       fprintf(fp,"\n");
+ }
+@@ -492,7 +494,7 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
+       void *ip = 0;
+ #ifndef NO_CTX
+       ucontext_t *uc = (ucontext_t *)sc;
+-      struct sigregs_t *c = (struct sigregs_t *)&uc->uc_mcontext;
++      sigregs_t *c = (sigregs_t *)&uc->uc_mcontext;
+       ip = (void *)c->IP;
  #endif
- #ifndef IP
- #error gotta have IP
-@@ -473,26 +465,5 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
-       fprintf(fp,"\n\n");
-       if( fp != stdout ) fclose(fp);
--      char cmd[1024], *cp = cmd;
--      cp += sprintf(cp, "exec gdb /proc/%d/exe -p %d --batch --quiet "
--              "-ex \"thread apply all info registers\" "
--              "-ex \"thread apply all bt full\" "
--              "-ex \"quit\"", pid, pid);
--      if( fp != stdout )
--              cp += sprintf(cp," >> \"%s\"", fn);
--      cp += sprintf(cp," 2>&1");
--//printf("handle_dump:: pid=%d, cmd='%s'  fn='%s'\n",pid,cmd,fn);
--        pid = vfork();
--        if( pid < 0 ) {
--              fprintf(stderr,"** can't start gdb, dump abondoned\n");
--              return;
--      }
--      if( pid > 0 ) {
--              waitpid(pid,0,0);
--              fprintf(stderr,"** dump complete\n");
--              return;
--      }
--        char *const argv[4] = { (char*) "/bin/sh", (char*) "-c", cmd, 0 };
--        execvp(argv[0], &argv[0]);
+       fprintf(stderr,"** %s at %p in pid %d, tid %d\n",
+diff --git a/cinelerra-5.1/guicast/bctrace.C b/cinelerra-5.1/guicast/bctrace.C
+index 7e45392..2d08b46 100644
+--- a/cinelerra-5.1/guicast/bctrace.C
++++ b/cinelerra-5.1/guicast/bctrace.C
+@@ -309,7 +309,7 @@ void BC_Trace::dump_traces(FILE *fp)
+       }
  }
  
-diff --git a/cinelerra-5.1/guicast/filesystem.C b/cinelerra-5.1/guicast/filesystem.C
-index ebc2007d..9d6452cb 100644
---- a/cinelerra-5.1/guicast/filesystem.C
-+++ b/cinelerra-5.1/guicast/filesystem.C
-@@ -33,6 +33,8 @@
- #include <unistd.h>
- #include <utime.h>
+-void trace_info::set_owner() { owner = pthread_self(); }
++void trace_info::set_owner() { owner = (unsigned long)pthread_self(); }
+ void trace_info::unset_owner() { owner = 0; }
+ void BC_Trace::dump_locks(FILE *fp)
+@@ -322,7 +322,7 @@ void BC_Trace::dump_locks(FILE *fp)
+               fprintf(fp,"    %p %s, %s %p%s",
+                       p->info, p->title, p->loc,
+                       (void*)p->tid, p->is_owner ? " *" : "");
+-              if( p->info->owner && p->info->owner != p->tid )
++              if( p->info->owner && p->info->owner != (unsigned long)p->tid )
+                       fprintf(fp," %p", (void*)p->info->owner);
+               fprintf(fp,"\n");
+       }
+diff --git a/cinelerra-5.1/guicast/filesystem.h b/cinelerra-5.1/guicast/filesystem.h
+index c976135..5613702 100644
+--- a/cinelerra-5.1/guicast/filesystem.h
++++ b/cinelerra-5.1/guicast/filesystem.h
+@@ -26,6 +26,9 @@
+ #include "bcwindowbase.inc"
+ #include "sizes.h"
  
 +#define dirent64 dirent
 +#define readdir64 readdir
- #include "filesystem.h"
++
+ class FileItem
+ {
+ public:
 diff --git a/cinelerra-5.1/guicast/thread.C b/cinelerra-5.1/guicast/thread.C
-index dff53e61..321ab4fc 100644
+index 50b52a4..321ab4f 100644
 --- a/cinelerra-5.1/guicast/thread.C
 +++ b/cinelerra-5.1/guicast/thread.C
 @@ -55,13 +55,6 @@ void* Thread::entrypoint(void *parameters)
        pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
        thread->cancel_enabled = false;
  
--// Set realtime here seince it doesn't work in start
+-// Set realtime here since it doesn't work in start
 -      if( thread->realtime && getuid() == 0 ) {
 -              struct sched_param param = { sched_priority : 1 };
 -              if(pthread_setschedparam(thread->tid, SCHED_RR, &param) < 0)
@@ -439,32 +491,19 @@ index dff53e61..321ab4fc 100644
        thread->run();
        thread->finished = true;
        if( !thread->synchronous ) {
-diff --git a/cinelerra-5.1/guicast/thread.h b/cinelerra-5.1/guicast/thread.h
-index 216ecd2b..8ebec237 100644
---- a/cinelerra-5.1/guicast/thread.h
-+++ b/cinelerra-5.1/guicast/thread.h
-@@ -27,7 +27,7 @@
- #include <unistd.h>
- #include <sys/syscall.h>
--static inline int gettid() { return syscall(SYS_gettid, 0, 0, 0); }
-+static inline long gettid() { return (long)pthread_self(); }
- // The thread does not autodelete by default.
- // If autodelete is 1 the thread autodeletes.
 diff --git a/cinelerra-5.1/plugins/Makefile b/cinelerra-5.1/plugins/Makefile
-index 6ed357c7..56081181 100644
+index e63682d..072653b 100644
 --- a/cinelerra-5.1/plugins/Makefile
 +++ b/cinelerra-5.1/plugins/Makefile
-@@ -31,7 +31,6 @@ DIRS = $(OPENCV_OBJS) \
+@@ -36,7 +36,6 @@ DIRS = $(OPENCV_OBJS) \
        brightness \
        burn \
        C41 \
 -      cdripper \
+       chorus \
        chromakey \
        chromakeyhsv \
-       color3way \
-@@ -161,6 +160,8 @@ DIRS = $(OPENCV_OBJS) \
+@@ -177,6 +176,8 @@ DIRS = $(OPENCV_OBJS) \
  #     denoisemjpeg \
  # duplicate
  #     vocoder \
@@ -474,7 +513,7 @@ index 6ed357c7..56081181 100644
  PLUGIN_DIR = $(BINDIR)/plugins
  DATA = $(PLUGIN_DIR)/fonts $(PLUGIN_DIR)/shapes
 diff --git a/cinelerra-5.1/plugins/titler/titler.C b/cinelerra-5.1/plugins/titler/titler.C
-index fefbbdb1..045e96d4 100644
+index 0fc6669..68197ab 100644
 --- a/cinelerra-5.1/plugins/titler/titler.C
 +++ b/cinelerra-5.1/plugins/titler/titler.C
 @@ -57,8 +57,7 @@