Opened 7 years ago

Closed 6 years ago

#54333 closed defect (fixed)

ffmpeg-devel @20170615_0 does not build on Mac OS X 10.6.8, Snow Leopard, because of missing vda_framework pthreads

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.4.1
Keywords: snowleopard Cc: jeremyhu@…, ballapete (Peter "Pete" Dyballa), dliessi (Davide Liessi)
Port: ffmpeg-devel

Description

Hello!

Already configure complains:

ERROR: vda requested, but not all dependencies are satisfied: vda_framework pthreads

This comes from the configure option --enable-vda. /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_multimedia_ffmpeg-devel/ffmpeg-devel/work/FFmpeg-9b667f609c509e84ae6ef496edcfb6c8b83c4a38/ffbuild/config.log reports:

/usr/bin/llvm-gcc-4.2 -I/opt/local/include -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I$(SRC_PATH)/compat/dispatch_semaphore -DPIC -pipe -Os -DHAVE_LRINTF -I/opt/local/include -arch x86_64 -std=c99 -fomit-frame-pointer -fPIC -pthread -I/opt/local/include/p11-kit-1 -I/opt/local/include/freetype2 -I/opt/local/include/fribidi -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/freetype2 -I/opt/local/include/freetype2 -I/opt/local/include/freetype2 -I/opt/local/include/fribidi -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/opus -I/opt/local/include/opus -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -mllvm -stack-alignment=16 -c -o /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_multimedia_ffmpeg-devel/ffmpeg-devel/work/.tmp/ffconf.LSDejVFs/test.o /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_multimedia_ffmpeg-devel/ffmpeg-devel/work/.tmp/ffconf.LSDejVFs/test.c
ERROR: vda requested, but not all dependencies are satisfied: vda_framework pthreads

Attachments (1)

main.log (18.5 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
main.log on Snow Leopard

Download all attachments as: .zip

Change History (11)

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

main.log on Snow Leopard

comment:1 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Trying to build without --enable-vda leads to another failure:

cd /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_llvm-4.0/llvm-4.0/work/build/lib/MC/MCParser && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/LLVMMCParser.dir/link.txt --verbose=ON
/Developer/usr/bin/libtool -static  -o ../../libLLVMMCParser.a          CMakeFiles/LLVMMCParser.dir/AsmLexer.cpp.o CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o CMakeFiles/LLVMMCParser.dir/COFFAsmParser.cpp.o CMakeFiles/LLVMMCParser.dir/DarwinAsmParser.cpp.o CMakeFiles/LLVMMCParser.dir/ELFAsmParser.cpp.o CMakeFiles/LLVMMCParser.dir/MCAsmLexer.cpp.o CMakeFiles/LLVMMCParser.dir/MCAsmParser.cpp.o CMakeFiles/LLVMMCParser.dir/MCAsmParserExtension.cpp.o CMakeFiles/LLVMMCParser.dir/MCTargetAsmParser.cpp.o 
/Developer/usr/bin/libtool: object: CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o /Developer/usr/bin/libtool: object: CMakeFiles/LLVMMCParser.dir/AsmLexer.cpp.o malformed object (unknown load command 2)
malformed object (unknown load command 2)
/Developer/usr/bin/libtool: object: CMakeFiles/LLVMMCDisassembler.dir/MCExternalSymbolizer.cpp.o malformed object (unknown load command 2)
make[2]: *** [lib/libLLVMDemangle.a] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_llvm-4.0/llvm-4.0/work/build'
make[1]: *** [lib/Demangle/CMakeFiles/LLVMDemangle.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

comment:2 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Interestingly this executable works. And main.log is removed.

comment:3 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

This must be a bug in port:

make[2]: *** [lib/libLLVMSupport.a] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_llvm-4.0/llvm-4.0/work/build'
make[1]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/all] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_llvm-4.0/llvm-4.0/work/build'
make: *** [all] Error 2
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_llvm-4.0/llvm-4.0/work/build'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_llvm-4.0/llvm-4.0/work/build" && /usr/bin/make -j8 -w all VERBOSE=ON 
Exit code: 2
Error: Failed to build llvm-4.0: command execution failed
DEBUG: Error code: CHILDSTATUS 92596 2
DEBUG: Backtrace: command execution failed
    while executing
"system {*}$notty {*}$nice $fullcmdstring"
    invoked from within
"command_exec build"
    (procedure "portbuild::build_main" line 8)
    invoked from within
"$procedure $targetname"
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_lang_llvm-4.0/llvm-4.0/main.log for details.
Error: Problem while installing llvm-4.0
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
--->  Some of the ports you installed have notes:
  ffmpeg-devel has the following notes:
    *******
    ******* This build of ffmpeg-devel includes nonfree code as follows:
    *******
    *******     libfdk-aac
    *******
    ******* The following libraries and binaries may not be redistributed:
    *******
    *******     ffmpeg
    *******     libavcodec
    *******     libavdevice
    *******     libavfilter
    *******     libavformat
    *******     libavutil
    *******
    ******* To remove this restriction remove the variant +nonfree
    *******

Compilation exited abnormally with code 1 at Sat Jun 17 22:56:12

Abnormal exit and main.log removed?

comment:4 Changed 7 years ago by Schamschula (Marius Schamschula)

Cc: devans@… removed
Owner: set to dbevans
Status: newassigned

comment:5 in reply to:  1 ; Changed 7 years ago by kencu (Ken)

Replying to ballapete:

/Developer/usr/bin/libtool: object: CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o /Developer/usr/bin/libtool: object: CMakeFiles/LLVMMCParser.dir/AsmLexer.cpp.o malformed object (unknown load command 2) malformed object (unknown load command 2) /Developer/usr/bin/libtool: object: CMakeFiles/LLVMMCDisassembler.dir/MCExternalSymbolizer.cpp.o malformed object (unknown load command 2)

There are probably several different things happening here. We'll leave the ffmpeg-devel thing alone for a moment.

The malformed object error is most likely this minor issue 54129 on SnowLeopard which is fixed quite easily with the minor edit I outlined here <https://trac.macports.org/ticket/54129#comment:7> . I'd make a PR for this -- I probably should I guess - but I usually leave the guts of clang and llvm to Jeremy. In the meantime, if you make that little edit in the Portfile, you should be able to build llvm-4.0.

Don't forget, clang-4.0 is broken on Snow Leopard unless you implement this 54135 fix, which I guess I should also make a PR for. So either use that fix, or stick with clang-3.9 or clang-3.8.

If all that seems like a PITA, you can just check out my SnowLeopardPorts repo <https://github.com/kencu/SnowLeopardPorts> and these fixes are all done in there.


On to ffmpeg-devel. I don't know what to say, exactly. I just built it. Not much in the way of modern software will build with llvm-gcc-4.2 any more, so my first guess is that you need to set a newer compiler My default compiler on SnowLeopard is presently set to clang-3.9, which as we've discussed before overrides any settings in the Portfile. I'd suggest you (and anyone else out there on Earth still using Snow Leopard) consider doing something similar. Life is too short to see which port is the next one to require c++11.

$ port -v installed ffmpeg-devel
The following ports are currently installed:
  ffmpeg-devel @20170615_0+gpl2+gpl3+nonfree (active) platform='darwin 10' archs='x86_64' date='2017-06-17T18:45:36-0700'

Last edited 7 years ago by kencu (Ken) (previous) (diff)

comment:6 in reply to:  5 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to kencu:

Why do I have to manipulate the building mechanism? Isn't port meant to adapt the packages to the system it is building them on? Is port not able to perform? Then it either should be repaired or something else used instead of it.

comment:7 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Cc: ballapete added

comment:8 Changed 7 years ago by kencu (Ken)

I sense your frustration, but you must realize that 10.6 is long long past official support by MacPorts, and those of us who still use 10.6 with MacPorts more or less have an obligation to help find ways to keep it going rather than express too much frustration with it when the very very latest devel version of a port written a decade after the system was retired requires a newer compiler than the default.

Personally I don't think it's a lot to ask to have you add one single line of code to your macports.conf to set a current compiler as the default, but it's up to you.

Last edited 7 years ago by kencu (Ken) (previous) (diff)

comment:9 Changed 7 years ago by dliessi (Davide Liessi)

Cc: dliessi added

comment:10 Changed 6 years ago by kencu (Ken)

Resolution: fixed
Status: assignedclosed

latest commit builds fine, both ffmpeg and ffmpeg-devel, and with new features enabled.

Note: See TracTickets for help on using tickets.