Menu

#161 cinelerra-6 compilation error

open
nobody
None
5
2018-11-15
2017-10-04
Andrey
No

./configure
make

. . .
ar xN 1 ../../thirdparty/x264.082315/libx264.a predict.o cabac.o macroblock.o set.o
make[3]: Entering directory '/home/me/Downloads/cinelerra-6/quicktime/thirdparty/x264.082315'
cat common/opencl/x264-cl.h common/opencl/motionsearch.cl common/opencl/subpel.cl common/opencl/intra.cl common/opencl/bidir.cl common/opencl/weightp.cl common/opencl/downscale.cl | ./tools/cltostr.sh common/oclobj.h
dependency file generation...
gcc -Wno-maybe-uninitialized -Wshadow -O3 -ffast-math -m64 -Wall -I. -I. -std=gnu99 -mpreferred-stack-boundary=5 -fomit-frame-pointer -fno-tree-vectorize -c -o x264.o x264.c
x264.c: In function ‘print_csp_names’:
x264.c:445:15: error: variable ‘i’ has initializer but incomplete type
for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
^
x264.c:445:27: error: storage size of ‘i’ isn’t known
for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
^
x264.c:445:5: error: ‘enum PixelFormat’ declared in ‘for’ loop initial declaration
for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
^
x264.c:445:27: warning: unused variable ‘i’ [-Wunused-variable]
for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
^
make[3]: *** [<builtin>: x264.o]</builtin> Error 1
make[3]: Leaving directory '/home/me/Downloads/cinelerra-6/quicktime/thirdparty/x264.082315'
make[2]: *** [Makefile:315: x86_64/x264] Error 2
make[2]: Leaving directory '/home/me/Downloads/cinelerra-6/quicktime'
make[1]: *** [build/Makefile.cinelerra:38: all] Error 2
make[1]: Leaving directory '/home/me/Downloads/cinelerra-6'
make: *** [Makefile:2: all] Error 2

Related

Bugs: #161

Discussion

  • Mat Nieuwenhoven

    Hi Andrey, please try Cinelerra 7 with patches applied . That will compile fine for me on Mint 18.3 and Mint 17.3 . Patch 51 contains in its discussion a compressed script that will apply patches 41-51 in one go to the original Cinelerra 7 source.

     

    Last edit: Mat Nieuwenhoven 2018-09-14
  • Marcus Correia

    Marcus Correia - 2018-11-09

    The problem here doesn't have anything to do with those patches. You need to rename PixelFormat to AVPixelFormat. After applying Mat's patches and changing the enum's name, let's go:

    • Now there will be a invalid conversion from 'char' to 'char*' error in thirdparty/speech_tools/siod/siod.cc at lines 491 and 501 , easily fixable by replacing the single quotes by double quotes.
    • Linker may complain about not finding libtermcap. If it does for you, symlink libnurses.so to libtermcap.so.
    • For some reason you need to run make again so it can build cinelerra (the first run was for the dependencies)
    • filejpeg.C, filemov.C and filepng.C complain about string functions, include <string.h> in them. Make.
    • Run make again to build the main cinelerra binary
    • Ld complains that it can't find a reference to putbit's in the toolame lib. Add extern to the putbits prototype in thirdparty/toolame-02l/bitstream.h according to this. Make. Nothing changes.
    • You go to the toolame folder and run make there. cc1 complains: CPU you selected does not support x86-64 instruction set
    • You think about the meaning of life and the universe
    • You want to stop trying to compile cinelerra
    • Change ARCH in toolame's Makefile to native. Now you make clean, then make. Wait a few minutes...
    • It... built!! But SIGSEGV when running it. Oh well... Maybe changing -march didn't even do anything since it actually builds from build/Makefile.toolame.

    I remember being able to run a binary release some time ago. Tried today and it shows an empty window, no errors on the console. Is it even still maintained?

     
  • Mat Nieuwenhoven

    Hi Marcus,
    You don't write what your environment is, which version of Ubuntu or Mint. At this time, Cinelerra will not compile on Mint 19. If you're using Mint 18.3 or 17.3 or the equivalent Ubuntu versions, then something appears to be wrong on your machine.

    I will not post Cinelerra patches unless I can build it here with the patches applied on Mint 17.3 and 18.3, and run the excutables and do a few simple tests. I've not been able to work on it for 2 months (computer problems), but will resume.
    I know of two unlisted bugs that I have yet to post, but neither of them is what you describe.
    I never need to run make twice, only when I do "make clean" (bug 167).

    Mat

     

    Last edit: Mat Nieuwenhoven 2018-11-09
  • Marcus Correia

    Marcus Correia - 2018-11-09

    Hi Mat, it's good to see you're still around. Indeed, this is most likely an incompatibility with my system - I use a rolling release distro, Solus, with GCC 8.2. What seems strange regarding this bug specifically is that it uses an enum called PixelFormat, which was deprecated in ffmpeg/libav 6 years ago, but the bundled ffmpeg 3.3 in the quicktime folder does have AVPixelFormat. I'm guessing the <libavutil/pixfmt.h> include has always pointed to the system libavutil, and if you were able to build it fine it means you have an older version of it?

    Anyway, it was a simple fix, now I'll try to understand what causes it to crash, and that would be a separate bug report if it's not something I messed up.

     
    • Mat Nieuwenhoven

      Hi Marcus,

      In the beginning of December 2018 I have switched from working on/with the original Cinelerra (HV version) to
      Cinelerra-GG, after 4 months on the original Cinelerra . For several reasons: it has its distribution sorted out (9
      current platforms, monthly updates), it is way ahead in features, stability and support, and the main programmer is
      very responsive (I still have to hear a reaction from Adam via SourceForge or mail). If you're still interested in a
      non-linear editor for Linux, I suggest you look at the Wikipedia entry for Cinelerra which lists all 4 variants. Maybe it
      wil cause you to use Cinelerra-GG. It would certainly welcome new users/testers. It also has an excellent and
      active bug tracker so you can see what the development activity is (see the bottom of the cinelerra-gg.org page,
      under "support" is "get help" which allows an anonymous view of all issues there.

      Regards, Mat

       
  • Mat Nieuwenhoven

    Hi Marcus,
    I'm not the official maintainer, that is one of the original authors Adam Williams. I'm fairly sure he monitors here, but have not heard from him. I'm just doing this for fun.
    I think your problem is twofold:
    You're using GCC 8. That is also in Mint 19, and I also had compile errors. Because I still have known fixed for errors on Mint 18 and 17, I have not looked at Mint 19 yet (thus GCC 8).
    Could it be you have OpenCL active on your machine? I have not yet installed it, is on the TODO list (is a bit complicated with CPU Ryzen 3 2200G).
    To look at crashes, I found debugger gede very good. It is a simple but handy GUI for gdb. See http://gede.acidron.com/ .
    Mat

     
    • Mat Nieuwenhoven

      Hello Marcus,

      You might want to look at cinelerra-gg, from cinelerra-gg.org . This is under very active development (monthly
      releases for 9 distributions), and has an excellent bug tracker. Due to absolutely no response of any kind from
      Adam, I am switching to the GG version. I reported two bugs there, both were fixed within weeks and in the latest
      release.

      Mat

      On Fri, 09 Nov 2018 13:54:31 -0000 Mat Nieuwenhoven wrote:

      Hi Marcus,
      I'm not the official maintainer, that is one of the original authors Adam Williams. I'm fairly sure he monitors here,
      but have not heard from him. I'm just
      doing this for fun.
      I think your problem is twofold:
      You're using GCC 8. That is also in Mint 19, and I also had compile errors. Because I still have known fixed for
      errors on Mint 18 and 17, I have not
      looked at Mint 19 yet (thus GCC 8).
      Could it be you have OpenCL active on your machine? I have not yet installed it, is on the TODO list (is a bit
      complicated with CPU Ryzen 3 2200G).
      To look at crashes, I found debugger gede very good. It is a simple but handy GUI for gdb. See
      http://gede.acidron.com/ .
      Mat


      ** [bugs:#161] cinelerra-6 compilation error**

      Status: open
      Group:
      Created: Wed Oct 04, 2017 07:54 PM UTC by Andrey
      Last Updated: Fri Nov 09, 2018 01:06 PM UTC
      Owner: nobody

      ./configure
      make

      . . .
      ar xN 1 ../../thirdparty/x264.082315/libx264.a predict.o cabac.o macroblock.o set.o
      make[3]: Entering directory '/home/me/Downloads/cinelerra-6/quicktime/thirdparty/x264.082315'
      cat common/opencl/x264-cl.h common/opencl/motionsearch.cl common/opencl/subpel.cl
      common/opencl/intra.cl common/opencl/bidir.cl
      common/opencl/weightp.cl common/opencl/downscale.cl | ./tools/cltostr.sh common/oclobj.h
      dependency file generation...
      gcc -Wno-maybe-uninitialized -Wshadow -O3 -ffast-math -m64 -Wall -I. -I. -std=gnu99
      -mpreferred-stack-boundary=5
      -fomit-frame-pointer -fno-tree-vectorize -c -o x264.o x264.c
      x264.c: In function 'print_csp_names':
      x264.c:445:15: error: variable 'i' has initializer but incomplete type
      for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
      ^
      x264.c:445:27: error: storage size of 'i' isn't known
      for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
      ^
      x264.c:445:5: error: 'enum PixelFormat' declared in 'for' loop initial declaration
      for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
      ^
      x264.c:445:27: warning: unused variable 'i' [-Wunused-variable]
      for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
      ^
      make[3]: *** [<builtin>: x264.o]</builtin> Error 1
      make[3]: Leaving directory '/home/me/Downloads/cinelerra-6/quicktime/thirdparty/x264.082315'
      make[2]: *** [Makefile:315: x86_64/x264] Error 2
      make[2]: Leaving directory '/home/me/Downloads/cinelerra-6/quicktime'
      make[1]: *** [build/Makefile.cinelerra:38: all] Error 2
      make[1]: Leaving directory '/home/me/Downloads/cinelerra-6'
      make: *** [Makefile:2: all] Error 2


      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/heroines/bugs/161/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       

      Related

      Bugs: #161

  • Mat Nieuwenhoven

    Hi Marcus,
    My system is finally so far that I can do proper Mint 19 compiles too. It uses GCC 7.3.0 (by default anyway).
    The build on this fails, but not because of what you describe. In fact, I don't get a lot of your errors. For instance, thirdparty/toolame-02l/bitstream.h was patched by my patch 41, with a number of other files there. And I didn't use your fix, it gave other problems.
    And filemov.c etc I have still at the original versions from 2017 or so. So I don't quite see how you got those errors.
    And indeed toolame is build from the makefile in /build.
    Are you building for an X86_64 architecture?
    My GCC 7.3.0 build stops on things like

     /usr/bin/ld: libx264.a(quant-a.o): relocation R_X86_64_32 against hidden symbol `x264_pb_01' can not be used when making a PIE object
    

    I don't yet know why this goes OK in MInt 18.3 and 17.3 . We'll see.
    Mat

     

Log in to post a comment.

MongoDB Logo MongoDB