Opened 8 years ago

Closed 8 years ago

#51823 closed defect (fixed)

ffmpeg @3.1.1_0 fails building on 10.5.8 PPC

Reported by: udbraumann Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia)
Port: ffmpeg, ffmpeg-devel

Description

While upgrading ffmpeg from 3.0.2_0 to 3.1.1_0 I am running into the following trouble:

...
:info:build /usr/bin/gcc-4.2 -I. -I./ -I/opt/local/include -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DZLIB_CONST -DHAVE_AV_CONFIG_H -pipe -Os -DHAVE_LRINTF -I/opt/local/include -arch ppc   -std=c99 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread -I/opt/local/include -I/opt/local/include/p11-kit-1 -I/opt/local/include -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include/fribidi -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include/fribidi -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include -I/opt/local/include/opus -I/opt/local/include/schroedinger-1.0 -I/opt/local/include/orc-0.4 -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -D_GNU_SOURCE=1 -D_THREAD_SAFE -I/opt/local/include/SDL -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -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 -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=return-type -Wformat  -pipe -Os -arch ppc     -c -o libavfilter/vf_coreimage.o libavfilter/vf_coreimage.m
:info:build libavfilter/vf_coreimage.m: In function ‘config_output’:
:info:build libavfilter/vf_coreimage.m:75: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m: In function ‘list_filters’:
:info:build libavfilter/vf_coreimage.m:103: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m:109: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m: In function ‘apply_filter’:
:info:build libavfilter/vf_coreimage.m:195: error: ‘__bridge’ undeclared (first use in this function)
:info:build libavfilter/vf_coreimage.m:195: error: (Each undeclared identifier is reported only once
:info:build libavfilter/vf_coreimage.m:195: error: for each function it appears in.)
:info:build libavfilter/vf_coreimage.m:195: error: expected ‘)’ before ‘CIImage’
:info:build libavfilter/vf_coreimage.m:195: error: expected ‘]’ before ‘->’ token
:info:build libavfilter/vf_coreimage.m:205: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m:206: error: expected ‘)’ before ‘CIImage’
:info:build libavfilter/vf_coreimage.m:206: error: expected ‘,’ or ‘;’ before ‘ctx’
:info:build libavfilter/vf_coreimage.m:213: error: expected ‘)’ before ‘CIImage’
:info:build libavfilter/vf_coreimage.m:213: error: expected ‘]’ before ‘->’ token
:info:build libavfilter/vf_coreimage.m:214: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m:225: error: expected ‘)’ before ‘CIFilter’
:info:build libavfilter/vf_coreimage.m:225: error: expected ‘;’ before ‘ctx’
:info:build libavfilter/vf_coreimage.m:251: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m:260: error: expected ‘)’ before ‘CIContext’
:info:build libavfilter/vf_coreimage.m:260: error: expected ‘]’ before ‘->’ token
:info:build libavfilter/vf_coreimage.m:260: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m:272: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m:292: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m:191: warning: unused variable ‘data’
:info:build libavfilter/vf_coreimage.m:186: warning: unused variable ‘frame_size’
:info:build libavfilter/vf_coreimage.m: In function ‘init’:
:info:build libavfilter/vf_coreimage.m:526: warning: implicit declaration of function ‘CFBridgingRetain’
:info:build libavfilter/vf_coreimage.m:526: warning: assignment makes pointer from integer without a cast
:info:build libavfilter/vf_coreimage.m:540: warning: ISO C90 forbids mixed declarations and code
:info:build libavfilter/vf_coreimage.m:549: warning: implicit declaration of function ‘CGLGetCurrentContext’
:info:build libavfilter/vf_coreimage.m:552: warning: ‘CIContext’ may not respond to ‘+contextWithCGLContext:pixelFormat:colorSpace:options:’
:info:build libavfilter/vf_coreimage.m:552: warning: (Messages without a matching method signature
:info:build libavfilter/vf_coreimage.m:552: warning: will be assumed to return ‘id’ and accept
:info:build libavfilter/vf_coreimage.m:552: warning: ‘...’ as arguments.)
:info:build libavfilter/vf_coreimage.m:552: warning: assignment makes pointer from integer without a cast
:info:build libavfilter/vf_coreimage.m:560: warning: assignment makes pointer from integer without a cast
:info:build common.mak:66: recipe for target 'libavfilter/vf_coreimage.o' failed
...

Some help would be appreciated.

Attachments (1)

main.log.gz (15.2 KB) - added by udbraumann 8 years ago.

Download all attachments as: .zip

Change History (6)

Changed 8 years ago by udbraumann

Attachment: main.log.gz added

comment:1 Changed 8 years ago by dbevans (David B. Evans)

Cc: devans@… removed
Owner: changed from macports-tickets@… to devans@…
Port: ffmpeg-devel added
Status: newassigned

Your compiler is too old.

gcc-4.2 is rebelling here at the use of the keyword

__bridge

which is part of a bridged cast used with Automatic Reference Counting (ARC) in current objective C/C++. I believe this was introduced somewhere around Apple clang 4.0, LLVM 3.1 or so (Xcode 4 in OS X 10.6). This code does, in fact, build on the 10.6 buildbot but apparently not on 10.5 and earlier.

This is filter code using CoreImage so the simplest thing to do here is to disable the corresponding filters. To do this add the following lines after the configure.args section of the Portfile

configure.args-append    --disable-filter=coreimage \
                         --disable-filter=coreimagesrc

If this works for you, I'll incorporate the appropriate changes on this end. As usual, I'm not able to test on 10.5 so I need your help.

Thanks.

comment:2 Changed 8 years ago by dbevans (David B. Evans)

I've confirmed that disabling coreimage and coreimagesrc filters suppresses the build of libavfilter/vf_coreimage.m. Patch committed (r150068) to both ffmpeg and ffmpeg-devel that disables these filters on 10.5 and earlier. Again please let me know if this fixes your problem or if there are other issues left to address.

comment:3 in reply to:  2 ; Changed 8 years ago by udbraumann

Replying to devans@…:

... Again please let me know if this fixes your problem or if there are other issues left to address.

Thanks, building works again now on 10.5.8 PPC. As I see you have implemented the fix using an OS version check, so if I would like to use gcc5 the libavfilter functionality would remain turned off?

comment:4 in reply to:  3 Changed 8 years ago by dbevans (David B. Evans)

Replying to braumann@…:

Replying to devans@…:

... Again please let me know if this fixes your problem or if there are other issues left to address.

Thanks, building works again now on 10.5.8 PPC. As I see you have implemented the fix using an OS version check, so if I would like to use gcc5 the libavfilter functionality would remain turned off?

Yes, these two filters would remain disabled. Not sure what would happen otherwise.

comment:5 Changed 8 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: assignedclosed

Closing as fixed.

Note: See TracTickets for help on using tickets.