View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000216 | Cinelerra-GG | Feature | public | 2019-05-14 10:18 | 2026-01-08 19:20 |
| Reporter | Andrew-R | Assigned To | PhyllisSmith | ||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | acknowledged | Resolution | open | ||
| Summary | 0000216: Support for PowerPC (BE and LE variants) | ||||
| Description | Back in February Daniel Reurich started thread about compiling Cinelerra-GG on ppc64le (power8/power9 platform). https://lists.cinelerra-gg.org/pipermail/cin/2019-February/000351.html I only have emulated machines of this type, via qemu (3.1+, 4.0+). I did few hacks back in time, but none of my builds resulted in working Cin - on ppc64le it was lack of ALL icons and crashes, on ppc32 BE (without altivec) Cin just failed to start GUI at all - crashes again .... BCSignals _compilation_ issue was fixed in https://git.cinelerra-gg.org/git/?p=goodguy/cinelerra.git;a=commit;h=3932d2c16e903573db3cacdb3102dea9639c6ca4, but other issues probably not .... | ||||
| Steps To Reproduce | See https://lists.cinelerra-gg.org/pipermail/cin/2019-February/000361.html for qemu command lines for ppc64le machine. See https://lists.cinelerra-gg.org/pipermail/cin/2019-March/000408.html for emulated X5000 machine (ppc64 BE but run in 32-bit mode, no altivec ... so, I force-disabled altivec in ffmpeg/x264/x265 as they were represented in thirdparty dir) May be ppc emulation was not completely correct ..some ppc fixes still not landed in qemu git, so I wait ... https://lists.gnu.org/archive/html/qemu-devel/2019-05/msg01253.html and down this thread .... | ||||
| Tags | No tags attached. | ||||
| Attached Files | .ash_history (10,727 bytes)
apk update
apk upgrade
mc
apk ?
apk --help
apk lsit mc
apk list mc
apk add mc
apk list xorg
apk list xserver
apk list
apk list perl
apk add perl pythong gcc git svn
apk add perl python gcc git svn
apk add perl python gcc git
top
setup-xorg=base
setup-xorg-base
setup-udev
ps axv
killall -9 apk
apk lsit subversion
apk list subversion
apk add subversion
setup-xorg-base
apk list xfce
apk list fluxbox
apk app fluxbox
apk add fluxbox
apk list xterm
apk list term
apk list *term
apk list | grep term
apk add lxterminal
apk list | grep ffmpeg
apk add ffmpeg
startx
mcedit /etc/X11/xorg.conf
startx
mcedit /etc/X11/xorg.conf
startx
startx -depth 8
lspci
dmesg
dmesg | grep drm
dmesg | grep boch
dmesg | grep bonch
dmesg | grep fb
apk add mplayer
apk add mpg123
apk add ogg123
apk add ogg321
apk add vorbis-tools
apk add vorbis
apk list | grep vorbis
apk add libvorbis-dev
apk list | grep fbset
apk add fbset
mcedit /etc/X11/xorg.conf
startx
X -configure
apk list | grep fbdev
apk add xf86-video-fbdev
X -configure
startx
apk list | grep xinit
mcedit .xinitrc
startx
apk list | grep xterm
apk list | grep menu
apk add dmenu
apk list | grep xfce
apk add xfce4
startx
mcedit .xinitrc
startx
uptime
apk add xrandr
xrandr
xdpyinfo
apk add xdpyinfo
apk list *-dev
apk add *-dev
apk --help
apk add libx11-dev-1.6.6-r0
apk add libx11-dev
apk add ffmpeg-dev
apk list firefox
apk list links
apk add links
apk add imlib2-dev
apk add libxml2-dev
mkdir src
apk add a52dec-dev
ls
cd src
links cinelerra-gg.com
git clone git://git.cinelerra-gg.org/goodguy/cinelerra.git
cd cinelerra/
cd ./cinelerra-5.1/
./autogen.sh
apk add automake
./autogen.sh
apk add autoconf m4 flex bison
./autogen.sh
top
free
apk add gkrellm
apk add xmms
./configure --help
apk add openxr
apk add openexr
./configure
mcedit config.log
gcc
g++
apk add g++
./configure
arch
apk add arch
apk add gtk+-2.0-dev
apk add gtk2.0-dev
apk add gtk2-dev
apk list gtk2
apk list gtk-2
apk list gtk+-2
apk list gtk+-2.0
apk list gtk*
apk add gtk+2.0-dev
apk add ccache
apk add nasm yasm
apk add lzma fftw3
apk add xz xz-dev
apk add opus-dev lame-dev
apk add x265-dev x264-dev openjpeg-dev
apk add libasound-dev
apk add asound-dev
apk add alsa
apk add asound
apk add asound-lib
apk list alsa-lib
apk add alsa-dev
apk list alsa*
apk add alsa-lib-dev-1.1.4.1 alsa-utils alsaconf
apk add alsa-lib-dev alsa-utils alsaconf
apk list fftw
make
apk list make
apk add make
apk list patch
apk add patch
apk list tiff*
apk add tiff-dev
apk add cmake
apk list bash
apk list coreutils
apk add coreutils
arch
/usr/bin/arch
ls /bin/arch
ls /sbin/arch
apk info a coreutils
apk info -a coreutils
uname -a
top
free
apk list twolame
uname -a
uname -p
man uname
apk add man
uname -p
whereis uname
apk add whereis
ls /bin/uname
ls -la /bin/uname
uname -h
uname --help
uname -m
uname -p
uname -i
uname -o
uname -a
gcc --version
cat /proc/cpuinfo
ls /usr/share/autoconf/
ls /usr/share/automake-1.15/config.guess
/usr/share/automake-1.15/config.guess
mc
precmd() { if [ ! "${PWD##$HOME}" ]; then MC_PWD="~"; else [ "${PWD##$HOME/}" = "$PWD" ] && MC_PWD="$PWD" || MC_PWD="~/${PWD##$HOME/}"; fi; echo "$USER@$(hostname -s):$MC_PWD"; pwd>&6; kill -STOP $$; }; PRECMD=precmd; PS1='$($PRECMD)$ '
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057build'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057autotools'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057autotools'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra'`"
cd "`printf '%b' '\0057root\0057src'`"
cd "`printf '%b' '\0057root'`"
cd "`printf '%b' '\0057'`"
cd "`printf '%b' '\0057usr'`"
cd "`printf '%b' '\0057usr\0057share'`"
cd "`printf '%b' '\0057usr\0057share\0057automake\00551\005615'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057autotools'`"
cd "`printf '%b' '\0057usr\0057share\0057automake\00551\005615'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057autotools'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057twolame\00550\00563\005613'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057twolame\00550\00563\005613\0057build\0055scripts'`"
cd "`printf '%b' '\0057usr\0057share\0057automake\00551\005615'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057twolame\00550\00563\005613\0057build\0055scripts'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057twolame\00550\00563\005613'`"
apk add diffutils
apk list headers
apk list kernel
apk list kernel*
apk list *header*
apk add linux-headers
free -m
apk add lftp
free -m
apk add gdb
startx
cd src/cinelerra/cinelerra-5.1/
cat /proc/cpuinfo
make -j 3
poweroff
startx
poweroff
cat /proc/cpuinfo
lspci
poweroff
cat /proc/cpuinfo
startx
poweroff
startx
poweroff
startx
poweroff
cat /proc/cpuinfo
startx
cd src/cinelerra/cinelerra-5.1/
make
mc
precmd() { if [ ! "${PWD##$HOME}" ]; then MC_PWD="~"; else [ "${PWD##$HOME/}" = "$PWD" ] && MC_PWD="$PWD" || MC_PWD="~/${PWD##$HOME/}"; fi; echo "$USER@$(hostname -s):$MC_PWD"; pwd>&6; kill -STOP $$; }; PRECMD=precmd; PS1='$($PRECMD)$ '
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057libtheora\00551\00561\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra'`"
cd "`printf '%b' '\0057root\0057src'`"
cd "`printf '%b' '\0057root'`"
cd "`printf '%b' '\0057'`"
cd "`printf '%b' '\0057rules\0056d'`"
cd "`printf '%b' '\0057'`"
cd "`printf '%b' '\0057usr'`"
cd "`printf '%b' '\0057usr\0057share'`"
cd "`printf '%b' '\0057usr\0057share\0057automake\00551\005615'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057libtheora\00551\00561\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057libuuid\00551\00560\00563'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057libvorbis\00551\00563\00566'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057libvorbis\00551\00563\00566\0057lib'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057libvorbis\00551\00563\00566'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057liba52'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057libao'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057libao'`"
make
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057liba52'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057liba52\0057\0056libs'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564\0057liba52'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057a52dec\00550\00567\00564'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057build'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty\0057flac\00551\00563\00562'`"
cd "`printf '%b' '\0057root\0057src\0057cinelerra\0057cinelerra\00555\00561\0057thirdparty'`"
lftp 10.0.2.2
man apk
apk list apk*
apk list doc*
apk list *doc*
apk list *doc
apk list doc
apk --help
cat ~/.ash_history
lftp 10.0.2.2
ppc64le_incomplete_2.diff (5,119 bytes)
diff --git a/cinelerra-5.1/cinelerra/Makefile b/cinelerra-5.1/cinelerra/Makefile
index c1f97f1..a0424de 100644
--- a/cinelerra-5.1/cinelerra/Makefile
+++ b/cinelerra-5.1/cinelerra/Makefile
@@ -389,7 +389,7 @@ ifneq ($(WANT_CIN_3RDPARTY),no)
LIBS += $(libraries)
else
-LIBS += -lpthread -lm -lbz2 -llzma -lz -lpng -luuid
+LIBS += -lpthread -lm -lbz2 -llzma -lz -lpng -luuid -lbexecinfo -lintl
LIBS += -lX11 -lXau -lXdmcp -lXext -lXfixes -lXv -lXinerama
LIBS += -lfontconfig -lfreetype
LIBS += -lavcodec -lavdevice -lavfilter -lavformat -lavresample -lavutil
@@ -447,7 +447,7 @@ ifneq ($(WANT_NUMA),no)
LIBS += -lnuma
endif
ifneq ($(WANT_LV2),no)
-LIBS += -llilv-0 -lsratom-0 -lserd-0 -lsord-0 -lsuil-0
+LIBS += -llilv-0 -lsratom-0 -lserd-0 -lsord-0 -lsuil-0 -lexecinfo
endif
endif
diff --git a/cinelerra-5.1/guicast/Makefile b/cinelerra-5.1/guicast/Makefile
index 15442cf..e35495b 100644
--- a/cinelerra-5.1/guicast/Makefile
+++ b/cinelerra-5.1/guicast/Makefile
@@ -12,6 +12,12 @@ ifeq ($(OBJDIR), amd64)
BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B i386 -I binary -O elf64-x86-64\""
endif
+ifeq ($(OBJDIR), ppc64le)
+BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B powerpc -I binary -O elf64-powerpcle\""
+endif
+
+
+
$(shell mkdir -p $(OBJDIR) )
OBJS = \
diff --git a/cinelerra-5.1/guicast/bcsignals.C b/cinelerra-5.1/guicast/bcsignals.C
index ed50cfb..8442847 100644
--- a/cinelerra-5.1/guicast/bcsignals.C
+++ b/cinelerra-5.1/guicast/bcsignals.C
@@ -389,6 +389,9 @@ const char* BC_Signals::sig_to_str(int number)
#if __x86_64__
#define IP rip
#endif
+#if __powerpc64__
+#define IP nip
+#endif
#ifndef IP
#error gotta have IP
#endif
@@ -404,13 +407,14 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
// it is not necessary to be root if ptrace is allowed via:
// echo 0 > /proc/sys/kernel/yama/ptrace_scope (usually set to 1)
// if( uid != 0 ) return;
+
ucontext_t *uc = (ucontext_t *)sc;
int pid = getpid(), tid = gettid();
struct sigcontext *c = (struct sigcontext *)&uc->uc_mcontext;
- uint8_t *ip = (uint8_t *)c->IP;
- fprintf(stderr,"** %s at %p in pid %d, tid %d\n",
- n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
- (void*)ip, pid, tid);
+// uint8_t *ip = (uint8_t *)c->IP;
+// fprintf(stderr,"** %s at %p in pid %d, tid %d\n",
+// n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
+// (void*)ip, pid, tid);
FILE *fp = 0;
char fn[PATH_MAX];
if( BC_Signals::trap_path ) {
@@ -419,9 +423,9 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
}
if( fp ) {
fprintf(stderr,"writing debug data to %s\n", fn);
- fprintf(fp,"** %s at %p in pid %d, tid %d\n",
- n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
- (void*)c->IP, pid, tid);
+// fprintf(fp,"** %s at %p in pid %d, tid %d\n",
+// n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
+// (void*)c->IP, pid, tid);
}
else {
strcpy(fn, "stdout");
@@ -458,13 +462,13 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
int pfd = open(proc_mem,O_RDONLY);
if( pfd >= 0 ) {
fprintf(fp,"\nCODE:\n");
- for( int i=-32; i<32; ) {
- uint8_t v; void *vp = (void *)(ip + i);
- if( !(i & 7) ) fprintf(fp,"%p: ", vp);
- if( pread(pfd,&v,sizeof(v),(off_t)vp) != sizeof(v) ) break;
- fprintf(fp,"%c%02x", !i ? '>' : ' ', v);
- if( !(++i & 7) ) fprintf(fp,"\n");
- }
+// for( int i=-32; i<32; ) {
+// uint8_t v; void *vp = (void *)(ip + i);
+// if( !(i & 7) ) fprintf(fp,"%p: ", vp);
+// if( pread(pfd,&v,sizeof(v),(off_t)vp) != sizeof(v) ) break;
+// fprintf(fp,"%c%02x", !i ? '>' : ' ', v);
+// if( !(++i & 7) ) fprintf(fp,"\n");
+// }
fprintf(fp,"\n");
close(pfd);
}
@@ -494,5 +498,6 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
}
char *const argv[4] = { (char*) "/bin/sh", (char*) "-c", cmd, 0 };
execvp(argv[0], &argv[0]);
+
}
diff --git a/cinelerra-5.1/libzmpeg3/Makefile b/cinelerra-5.1/libzmpeg3/Makefile
index b256c73..712fd29 100644
--- a/cinelerra-5.1/libzmpeg3/Makefile
+++ b/cinelerra-5.1/libzmpeg3/Makefile
@@ -4,8 +4,10 @@ include $(TOPDIR)/global_config
ifneq ($(WANT_LIBZMPEG),no)
CC = gcc
-NASM = nasm
-USE_MMX ?= 0
+#NASM = nasm
+#USE_MMX ?= 0
+USE_MMX = 0
+
DYNAMIC_FONTS ?= 1
ifeq ($(OBJDIR), alpha)
@@ -120,10 +122,10 @@ clean:
$(OBJS):
$(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.C) -o $*.o
-$(ASMOBJS):
- $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.S) -o $*.o
-$(NASMOBJS):
- $(NASM) -f elf $(subst $(OBJDIR)/,, $*.s) -o $*.o
+#$(ASMOBJS):
+# $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.S) -o $*.o
+#$(NASMOBJS):
+# $(NASM) -f elf $(subst $(OBJDIR)/,, $*.s) -o $*.o
$(OBJDIR)/%.o: %.C
$(OBJDIR)/audio/%.o: audio/%.C
diff --git a/cinelerra-5.1/libzmpeg3/libzmpeg3.h b/cinelerra-5.1/libzmpeg3/libzmpeg3.h
index 430ebb4..9e93753 100644
--- a/cinelerra-5.1/libzmpeg3/libzmpeg3.h
+++ b/cinelerra-5.1/libzmpeg3/libzmpeg3.h
@@ -5,7 +5,7 @@
/* for quicktime build */
#define MAXFRAMESAMPLES 65536
#define ZDVB
-#define USE_FUTEX
+/* #define USE_FUTEX */
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS
ppc_X5000_prelim.diff (6,481 bytes)
diff --git a/cinelerra-5.1/cinelerra/Makefile b/cinelerra-5.1/cinelerra/Makefile
index dfdfd23..e497aec 100644
--- a/cinelerra-5.1/cinelerra/Makefile
+++ b/cinelerra-5.1/cinelerra/Makefile
@@ -389,7 +389,7 @@ ifneq ($(WANT_CIN_3RDPARTY),no)
LIBS += $(libraries)
else
-LIBS += -lpthread -lm -lbz2 -llzma -lz -lpng -luuid
+LIBS += -lpthread -lm -lbz2 -llzma -lz -lpng -luuid -lbexecinfo -lintl
LIBS += -lX11 -lXau -lXdmcp -lXext -lXfixes -lXv -lXinerama
LIBS += -lfontconfig -lfreetype
LIBS += -lavcodec -lavdevice -lavfilter -lavformat -lavresample -lavutil
@@ -447,7 +447,7 @@ ifneq ($(WANT_NUMA),no)
LIBS += -lnuma
endif
ifneq ($(WANT_LV2),no)
-LIBS += -llilv-0 -lsratom-0 -lserd-0 -lsord-0 -lsuil-0
+LIBS += -llilv-0 -lsratom-0 -lserd-0 -lsord-0 -lsuil-0 -lexecinfo
endif
endif
diff --git a/cinelerra-5.1/guicast/Makefile b/cinelerra-5.1/guicast/Makefile
index 201c5a4..53148a5 100644
--- a/cinelerra-5.1/guicast/Makefile
+++ b/cinelerra-5.1/guicast/Makefile
@@ -12,6 +12,21 @@ ifeq ($(OBJDIR), amd64)
BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B i386 -I binary -O elf64-x86-64\""
endif
+ifeq ($(OBJDIR), ppc64le)
+BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B powerpc -I binary -O elf64-powerpcle\""
+endif
+
+ifeq ($(OBJDIR), ppc)
+BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B powerpc -I binary -O elf32-powerpc\""
+endif
+
+ifeq ($(OBJDIR), ppc64)
+BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B powerpc -I binary -O elf64-powerpc\""
+endif
+
+
+
+
$(shell mkdir -p $(OBJDIR) )
OBJS = \
diff --git a/cinelerra-5.1/guicast/bcsignals.C b/cinelerra-5.1/guicast/bcsignals.C
index ed50cfb..f8da11d 100644
--- a/cinelerra-5.1/guicast/bcsignals.C
+++ b/cinelerra-5.1/guicast/bcsignals.C
@@ -389,6 +389,9 @@ const char* BC_Signals::sig_to_str(int number)
#if __x86_64__
#define IP rip
#endif
+#if __powerpc64__ || __powerpc__
+#define IP nip
+#endif
#ifndef IP
#error gotta have IP
#endif
@@ -404,13 +407,14 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
// it is not necessary to be root if ptrace is allowed via:
// echo 0 > /proc/sys/kernel/yama/ptrace_scope (usually set to 1)
// if( uid != 0 ) return;
+
ucontext_t *uc = (ucontext_t *)sc;
int pid = getpid(), tid = gettid();
struct sigcontext *c = (struct sigcontext *)&uc->uc_mcontext;
- uint8_t *ip = (uint8_t *)c->IP;
- fprintf(stderr,"** %s at %p in pid %d, tid %d\n",
- n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
- (void*)ip, pid, tid);
+// uint8_t *ip = (uint8_t *)c->IP;
+// fprintf(stderr,"** %s at %p in pid %d, tid %d\n",
+// n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
+// (void*)ip, pid, tid);
FILE *fp = 0;
char fn[PATH_MAX];
if( BC_Signals::trap_path ) {
@@ -419,9 +423,9 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
}
if( fp ) {
fprintf(stderr,"writing debug data to %s\n", fn);
- fprintf(fp,"** %s at %p in pid %d, tid %d\n",
- n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
- (void*)c->IP, pid, tid);
+// fprintf(fp,"** %s at %p in pid %d, tid %d\n",
+// n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
+// (void*)c->IP, pid, tid);
}
else {
strcpy(fn, "stdout");
@@ -458,13 +462,13 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
int pfd = open(proc_mem,O_RDONLY);
if( pfd >= 0 ) {
fprintf(fp,"\nCODE:\n");
- for( int i=-32; i<32; ) {
- uint8_t v; void *vp = (void *)(ip + i);
- if( !(i & 7) ) fprintf(fp,"%p: ", vp);
- if( pread(pfd,&v,sizeof(v),(off_t)vp) != sizeof(v) ) break;
- fprintf(fp,"%c%02x", !i ? '>' : ' ', v);
- if( !(++i & 7) ) fprintf(fp,"\n");
- }
+// for( int i=-32; i<32; ) {
+// uint8_t v; void *vp = (void *)(ip + i);
+// if( !(i & 7) ) fprintf(fp,"%p: ", vp);
+// if( pread(pfd,&v,sizeof(v),(off_t)vp) != sizeof(v) ) break;
+// fprintf(fp,"%c%02x", !i ? '>' : ' ', v);
+// if( !(++i & 7) ) fprintf(fp,"\n");
+// }
fprintf(fp,"\n");
close(pfd);
}
@@ -494,5 +498,6 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
}
char *const argv[4] = { (char*) "/bin/sh", (char*) "-c", cmd, 0 };
execvp(argv[0], &argv[0]);
+
}
diff --git a/cinelerra-5.1/libzmpeg3/Makefile b/cinelerra-5.1/libzmpeg3/Makefile
index b256c73..712fd29 100644
--- a/cinelerra-5.1/libzmpeg3/Makefile
+++ b/cinelerra-5.1/libzmpeg3/Makefile
@@ -4,8 +4,10 @@ include $(TOPDIR)/global_config
ifneq ($(WANT_LIBZMPEG),no)
CC = gcc
-NASM = nasm
-USE_MMX ?= 0
+#NASM = nasm
+#USE_MMX ?= 0
+USE_MMX = 0
+
DYNAMIC_FONTS ?= 1
ifeq ($(OBJDIR), alpha)
@@ -120,10 +122,10 @@ clean:
$(OBJS):
$(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.C) -o $*.o
-$(ASMOBJS):
- $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.S) -o $*.o
-$(NASMOBJS):
- $(NASM) -f elf $(subst $(OBJDIR)/,, $*.s) -o $*.o
+#$(ASMOBJS):
+# $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.S) -o $*.o
+#$(NASMOBJS):
+# $(NASM) -f elf $(subst $(OBJDIR)/,, $*.s) -o $*.o
$(OBJDIR)/%.o: %.C
$(OBJDIR)/audio/%.o: audio/%.C
diff --git a/cinelerra-5.1/libzmpeg3/libzmpeg3.h b/cinelerra-5.1/libzmpeg3/libzmpeg3.h
index 430ebb4..9e93753 100644
--- a/cinelerra-5.1/libzmpeg3/libzmpeg3.h
+++ b/cinelerra-5.1/libzmpeg3/libzmpeg3.h
@@ -5,7 +5,7 @@
/* for quicktime build */
#define MAXFRAMESAMPLES 65536
#define ZDVB
-#define USE_FUTEX
+/* #define USE_FUTEX */
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS
diff --git a/cinelerra-5.1/thirdparty/Makefile b/cinelerra-5.1/thirdparty/Makefile
index 4fae862..84593fd 100644
--- a/cinelerra-5.1/thirdparty/Makefile
+++ b/cinelerra-5.1/thirdparty/Makefile
@@ -109,7 +109,7 @@ esound.mak_vars+= CFLAGS=""
esound.ldflags=" -lm -lstdc++"
fftw.cfg_params= --disable-fortran --enable-shared=no
ffmpeg.cfg_params= \
- --enable-pthreads --enable-gpl \
+ --enable-pthreads --disable-altivec --enable-gpl \
--disable-ffplay --disable-vaapi \
$(call if_pkg,twolame,--enable-libtwolame) \
$(call if_pkg,openjpeg,--enable-libopenjpeg) \
@@ -215,9 +215,9 @@ openexr.cfg_params?=--enable-shared=no --with-ilmbase-prefix=$(call bld_path,ilm
speech_tools.mak_params?=-j1
tiff.cfg_params+= --enable-shared=no --disable-zstd
twolame.cfg_params?=--enable-shared=no
-x264.cfg_params?= --enable-static --enable-pic
+x264.cfg_params?= --enable-static --enable-pic --disable-asm
x265.cfg_vars?=$(call cmake_config,source)
-x265.cfg_params?= -DENABLE_SHARED=no
+x265.cfg_params?= -DENABLE_SHARED=no -DENABLE_ALTIVEC=off -DCPU_POWER8=off
libvpx.cfg_params?= --enable-pic
DS:=$$$$$$$$
| ||||
|
|
Two little patches I did right now (not even compile tested) One should hackfix configure so it will not add x86-specific .a archive from thirdparty/mjpegtools for non-x86 arches Second should limit futex usage in libzmpeg3 to x86 or x86_64 libmmxsse_isolation_configure_ac.diff (1,408 bytes)
diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac
index 90048a2..5948fba 100644
--- a/cinelerra-5.1/configure.ac
+++ b/cinelerra-5.1/configure.ac
@@ -321,10 +321,17 @@ PKG_3RD([libvorbis],[auto],
lib/.libs/libvorbisfile.a ],
[ include . ])
+## arch dep tests
+ARCH=[`uname -m`]
+I86=[`expr "x$ARCH" : 'xi[346]86.*'`]
+X86=[`expr "x$ARCH" : 'x..._64*'`]
+
+if test "x$I86$X86" != "x00" ; then
+
PKG_3RD([mjpegtools],[yes],
[mjpegtools-2.1.0],
- [ utils/mmxsse/.libs/libmmxsse.a \
- utils/.libs/libmjpegutils.a \
+ [ utils/.libs/libmjpegutils.a \
+ utils/mmxsse/.libs/libmmxsse.a \
lavtools/.libs/liblavfile.a \
lavtools/.libs/liblavjpeg.a \
mplex/.libs/libmplex2.a \
@@ -332,6 +339,21 @@ PKG_3RD([mjpegtools],[yes],
mpeg2enc/.libs/libmpeg2encpp.a ],
[ . lavtools utils ])
+else
+
+
+PKG_3RD([mjpegtools],[yes],
+ [mjpegtools-2.1.0],
+ [ utils/.libs/libmjpegutils.a \
+ lavtools/.libs/liblavfile.a \
+ lavtools/.libs/liblavjpeg.a \
+ mplex/.libs/libmplex2.a \
+ yuvfilters/.libs/libyuvfilters.a \
+ mpeg2enc/.libs/libmpeg2encpp.a ],
+ [ . lavtools utils ])
+
+fi
+
PKG_3RD([openexr],[auto],
[openexr-2.2.1],
[ IlmImf/.libs/libIlmImf.a \
@@ -369,7 +391,7 @@ PKG_3RD([x265],[auto],
[ libx265.a ],
[ . source ])
-PKG_3RD([libvpx],[auto],
+PKG_3RD([libvpx],[yes],
[libvpx-1.8.0],
[ libvpx.a ],
[ . ])
no_futex_in_libzmpeg3_on_nonx86.diff (404 bytes)
diff --git a/cinelerra-5.1/libzmpeg3/libzmpeg3.h b/cinelerra-5.1/libzmpeg3/libzmpeg3.h index 430ebb4..9bd02e6 100644 --- a/cinelerra-5.1/libzmpeg3/libzmpeg3.h +++ b/cinelerra-5.1/libzmpeg3/libzmpeg3.h @@ -5,7 +5,9 @@ /* for quicktime build */ #define MAXFRAMESAMPLES 65536 #define ZDVB +#if __x86_64__ || __i386__ #define USE_FUTEX +#endif #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS |
|
|
Working on at after all those years - ppc32 and ppc64le now starts, for ppc64 our x265 build script need some smarts so it will disable altivec on ppc64 in x265 (it only works for power8 variant, not for earlier cpus). https://github.com/kth5/archpower/blob/master/x265/PKGBUILD |
|
|
Thank you @Andrew-R for the update and work. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2019-05-14 10:18 | Andrew-R | New Issue | |
| 2019-05-14 10:18 | Andrew-R | File Added: .ash_history | |
| 2019-05-14 10:18 | Andrew-R | File Added: ppc64le_incomplete_2.diff | |
| 2019-05-14 10:18 | Andrew-R | File Added: ppc_X5000_prelim.diff | |
| 2019-05-14 15:19 | Andrew-R | File Added: libmmxsse_isolation_configure_ac.diff | |
| 2019-05-14 15:19 | Andrew-R | File Added: no_futex_in_libzmpeg3_on_nonx86.diff | |
| 2019-05-14 15:19 | Andrew-R | Note Added: 0001523 | |
| 2026-01-05 15:44 | Andrew-R | Note Added: 0005807 | |
| 2026-01-08 19:20 | PhyllisSmith | Assigned To | => PhyllisSmith |
| 2026-01-08 19:20 | PhyllisSmith | Status | new => acknowledged |
| 2026-01-08 19:20 | PhyllisSmith | Note Added: 0005808 |