[Bug 193187] New: www/chromium: fails to build when ffmpeg-2.3.3 installed or -I/usr/local/include poisoning
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Aug 31 01:36:45 UTC 2014
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193187
Bug ID: 193187
Summary: www/chromium: fails to build when ffmpeg-2.3.3
installed or -I/usr/local/include poisoning
Product: Ports Tree
Version: Latest
Hardware: Any
OS: Any
Status: Needs Triage
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: chromium at FreeBSD.org
Reporter: jbeich at vfemail.net
Created attachment 146582
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=146582&action=edit
mark default ports include path as -isystem
Locally updating multimedia/ffmpeg to 2.3.3 causes one more build failure.
../../media/ffmpeg/ffmpeg_common.cc:21:1: error: static_assert failed
"decoder_buffer_padding_size_does_not_fit_ffmpeg_requirement"
COMPILE_ASSERT(DecoderBuffer::kPaddingSize >= FF_INPUT_BUFFER_PADDING_SIZE,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../base/macros.h:160:35: note: expanded from macro 'COMPILE_ASSERT'
#define COMPILE_ASSERT(expr, msg) static_assert(expr, #msg)
^ ~~~~
1 error generated.
$ fgrep define\ FF_INPUT_BUFFER_PADDING_SIZE
../../third_party/ffmpeg/libavcodec/avcodec.h
#define FF_INPUT_BUFFER_PADDING_SIZE 16
$ fgrep define\ FF_INPUT_BUFFER_PADDING_SIZE
/usr/local/include/libavcodec/avcodec.h
#define FF_INPUT_BUFFER_PADDING_SIZE 32
with minimized test case like this
$ mkdir -p bundled/libavcodec system/libavcodec
$ touch bundled/libavcodec/avcodec.h system/libavcodec/avcodec.h
$ echo '#include <libavcodec/avcodec.h>' | cc -E - -I system -I bundled |
fgrep avcodec.h
# 1 "system/libavcodec/avcodec.h" 1
which can be fixed by pushing include path down the stack using either -isystem
or -idirafter
$ echo '#include <libavcodec/avcodec.h>' | cc -E - -I system -I bundled
-isystem system | fgrep avcodec.h
# 1 "bundled/libavcodec/avcodec.h" 1
"-I" order issue stems from inconsistent defaults. Almost any dependency
poisons the build with -I/usr/local/include. And upstream often hardcodes the
path.
- having /usr/local/bin in PATH is OK
- having /usr/local/man in MANPATH is OK
- having /usr/local/info in INFOPATH is OK
- having /usr/local/etc/mail.rc in MAILRC is OK
- having /usr/local/bin/xauth in ssh(1) is OK
- having /usr/local/etc/rc.d in rc.conf is OK
- having /usr/local/etc/devd in devd.conf is OK
- having /usr/local/etc/libmap.d in libmap.conf is OK
...
- but /usr/local/include in CPATH is NOT
- but /usr/local/lib in LIBRARY_PATH is NOT
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-chromium
mailing list