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: chrom...@freebsd.org
          Reporter: jbe...@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.
_______________________________________________
freebsd-chromium@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-chromium
To unsubscribe, send any mail to "freebsd-chromium-unsubscr...@freebsd.org"

Reply via email to