Closed
Bug 1402334
Opened 7 years ago
Closed 7 years ago
Fix use of duplicate symbols in signaling code which prevents us from using unified build
Categories
(Core :: WebRTC, enhancement, P3)
Tracking
()
RESOLVED
FIXED
mozilla58
Tracking | Status | |
---|---|---|
firefox58 | --- | fixed |
People
(Reporter: dminor, Assigned: dminor)
References
Details
Attachments
(5 files, 2 obsolete files)
59 bytes,
text/x-review-board-request
|
jesup
:
review+
|
Details |
59 bytes,
text/x-review-board-request
|
drno
:
review+
|
Details |
59 bytes,
text/x-review-board-request
|
drno
:
review+
|
Details |
1.63 KB,
patch
|
drno
:
review+
|
Details | Diff | Splinter Review |
2.33 KB,
patch
|
jesup
:
review+
|
Details | Diff | Splinter Review |
The culprits are: logTag in peerconnection and sdp and getLogModule in mediapipeline. Fixing this will allow us to build these files using unified build which should speed things up.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 4•7 years ago
|
||
Try job here: https://treeherder.mozilla.org/#/jobs?repo=try&revision=eba2c5aec7036829ab6dfb7069ef95a40883d652
Assignee | ||
Updated•7 years ago
|
Status: NEW → ASSIGNED
Comment 5•7 years ago
|
||
mozreview-review |
Comment on attachment 8914880 [details] Bug 1402334 - Build media-conduit and peerconnection using unified build; https://reviewboard.mozilla.org/r/185800/#review191192 r+, but.... I'd prefer something that used CPP magic to avoid some of this junk static const char pciLogTag "..." #define LOGTAG pciLogTag ... CSFLogDebug(LOGTAG, ....) Even better (though more work) would be to define macros like #define LogDebug(...) CSFLogDebug(LOGTAG, ...) (though that syntax doesn't work, and it may be that defining them to do this is a pain, or requires LOG(("xxxxxx", args)) type of macro)
Attachment #8914880 -
Flags: review?(rjesup) → review+
Comment 6•7 years ago
|
||
mozreview-review |
Comment on attachment 8914881 [details] Bug 1402334 - Add log level test to CSFLog; https://reviewboard.mozilla.org/r/185802/#review191232 ::: media/webrtc/signaling/src/common/browser_logging/CSFLog.h:41 (Diff revision 1) > #endif > ; > > void CSFLogV( CSFLogLevel priority, const char* sourceFile, int sourceLine, const char* tag , const char* format, va_list args); > > +int CSFLogTestLevel(CSFLogLevel priority); Not a big fan of the name. Test made me think of a unit test first. But since it's only exposing the underlying test function I guess it's okay.
Attachment #8914881 -
Flags: review?(drno) → review+
Comment 7•7 years ago
|
||
mozreview-review |
Comment on attachment 8914882 [details] Bug 1402334 - Build mediapipeline using unified build; https://reviewboard.mozilla.org/r/185804/#review191242 ::: media/webrtc/signaling/src/mediapipeline/RtpLogger.cpp (Diff revision 1) > * You can obtain one at http://mozilla.org/MPL/2.0/. */ > > // Original author: nohlmeier@mozilla.com > > #include "RtpLogger.h" > -#include "logging.h" No '#include "CSFLog.h"' needed here? ::: media/webrtc/signaling/src/mediapipeline/moz.build:20 (Diff revision 1) > '/media/webrtc/trunk', > '/netwerk/srtp/src/crypto/include', > '/netwerk/srtp/src/include', > ] > > # Duplicate definition of getLogModule Does this comment still apply?
Attachment #8914882 -
Flags: review?(drno) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 11•7 years ago
|
||
Pushed by dminor@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4eb36d1710ca Build media-conduit and peerconnection using unified build; r=jesup https://hg.mozilla.org/integration/autoland/rev/de7bd38908da Add log level test to CSFLog; r=drno https://hg.mozilla.org/integration/autoland/rev/978b0400ac3b Build mediapipeline using unified build; r=drno
Comment 12•7 years ago
|
||
Backed out for bustage at media/webrtc/signaling/src/media-conduit/AudioConduit.cpp:609: 'logTag' was not declared in this scope: https://hg.mozilla.org/integration/autoland/rev/1d9045285aa9a481f4d115153991178a8485fc53 https://hg.mozilla.org/integration/autoland/rev/0435ae6ad52982e974037f74db0d87e1333f8770 https://hg.mozilla.org/integration/autoland/rev/f2040cc62aba75bc1fef1533474c8b957e44e4dd Push with bustage: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=978b0400ac3b1bdbb074c3a759144caec58ba90c&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=usercancel&filter-resultStatus=runnable Build log: https://treeherder.mozilla.org/logviewer.html#?job_id=134953015&repo=autoland [task 2017-10-04T17:10:23.975Z] 17:10:23 INFO - In file included from /builds/worker/workspace/build/src/media/webrtc/signaling/src/media-conduit/AudioConduit.cpp:5:0, [task 2017-10-04T17:10:23.976Z] 17:10:23 INFO - from /builds/worker/workspace/build/src/obj-firefox/media/webrtc/signaling/src/media-conduit/Unified_cpp_src_media-conduit0.cpp:2: [task 2017-10-04T17:10:23.976Z] 17:10:23 INFO - /builds/worker/workspace/build/src/media/webrtc/signaling/src/media-conduit/AudioConduit.cpp: In member function 'virtual mozilla::MediaConduitErrorCode mozilla::WebrtcAudioConduit::EnableMIDExtension(bool, uint8_t)': [task 2017-10-04T17:10:23.976Z] 17:10:23 INFO - /builds/worker/workspace/build/src/media/webrtc/signaling/src/media-conduit/AudioConduit.cpp:609:15: error: 'logTag' was not declared in this scope [task 2017-10-04T17:10:23.976Z] 17:10:23 INFO - CSFLogDebug(logTag, "%s %d %d ", __FUNCTION__, enabled, id); [task 2017-10-04T17:10:23.976Z] 17:10:23 INFO - ^ [task 2017-10-04T17:10:23.976Z] 17:10:23 INFO - /builds/worker/workspace/build/src/media/webrtc/signaling/src/common/browser_logging/CSFLog.h:24:84: note: in definition of macro 'CSFLogDebug' [task 2017-10-04T17:10:23.977Z] 17:10:23 INFO - #define CSFLogDebug(tag , format, ...) CSFLog(CSF_LOG_DEBUG, __FILE__ , __LINE__ , tag , format , ## __VA_ARGS__ ) [task 2017-10-04T17:10:23.977Z] 17:10:23 INFO - ^~~ [task 2017-10-04T17:10:23.977Z] 17:10:23 INFO - /builds/worker/workspace/build/src/config/rules.mk:1075: recipe for target 'Unified_cpp_src_media-conduit0.o' failed [task 2017-10-04T17:10:23.977Z] 17:10:23 INFO - gmake[5]: *** [Unified_cpp_src_media-conduit0.o] Error 1
Flags: needinfo?(dminor)
Assignee | ||
Comment 13•7 years ago
|
||
Sorry, looks like another use of logTag got added while I was working on this. I'll do a manual rebase and build on top of inbound and try again.
Flags: needinfo?(dminor)
Assignee | ||
Comment 14•7 years ago
|
||
To be safe, I'll wait until tomorrow morning after the autoland repo has been merged back to inbound, as the new use of logTag only seems to be there.
Comment 15•7 years ago
|
||
Pushed by dminor@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/807ccf63a12f Build media-conduit and peerconnection using unified build; r=jesup https://hg.mozilla.org/integration/mozilla-inbound/rev/0712e0bd9e12 Add log level test to CSFLog; r=drno https://hg.mozilla.org/integration/mozilla-inbound/rev/808190cb16d0 Build mediapipeline using unified build; r=drno
Comment 16•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/807ccf63a12f https://hg.mozilla.org/mozilla-central/rev/0712e0bd9e12 https://hg.mozilla.org/mozilla-central/rev/808190cb16d0
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
status-firefox58:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
Comment 17•7 years ago
|
||
Hi Dan I see the build error in my macbook with macos 10.11.6. Should I check my building environment? 0:23.80 In file included from /Users/seanlee/Projects/mozilla/src/gecko/obj-x86_64-apple-darwin15.6.0/media/webrtc/signaling/src/media-conduit/Unified_cpp_src_media-conduit0.cpp:29: 0:23.80 /Users/seanlee/Projects/mozilla/src/gecko/media/webrtc/signaling/src/media-conduit/VideoConduit.cpp:34:10: fatal error: 'webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h' file not found 0:23.80 #include "webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h" 0:23.80 ^ (In reply to Sebastian Hengst [:aryx][:archaeopteryx] (needinfo on intermittent or backout) from comment #16) > https://hg.mozilla.org/mozilla-central/rev/807ccf63a12f I check out to the above commit's parent[1], and the error is gone. [1] https://hg.mozilla.org/mozilla-central/rev/eab45e291bc0
Flags: needinfo?(dminor)
Assignee | ||
Comment 18•7 years ago
|
||
I'm guessing that the switch to unified build has somehow broken this #ifdef: #if defined(MAC_OS_X_VERSION_10_8) && \ (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8) // XXX not available in Mac 10.7 SDK #include "webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h" #endif I'm not sure why that would happen, I'll try to duplicate on my macbook. Sorry for the inconvenience.
Assignee | ||
Comment 19•7 years ago
|
||
Attachment #8918834 -
Flags: review?(drno)
Comment 20•7 years ago
|
||
(In reply to Dan Minor [:dminor] from comment #18) > I'm guessing that the switch to unified build has somehow broken this #ifdef: > #if defined(MAC_OS_X_VERSION_10_8) && \ > (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8) > // XXX not available in Mac 10.7 SDK > #include "webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h" > #endif > > I'm not sure why that would happen, I'll try to duplicate on my macbook. > Sorry for the inconvenience. Note that local builds may be different that automation builds, depending on what SDK you have installed. We *just* switched automation to 10.11 SDK I believe from 10.7 (in the last few weeks).
Comment 21•7 years ago
|
||
Comment on attachment 8918834 [details] [diff] [review] Fix static analysis warning Review of attachment 8918834 [details] [diff] [review]: ----------------------------------------------------------------- Concern about the perf impact (at a micro level) ::: media/webrtc/signaling/src/common/browser_logging/CSFLog.cpp @@ +42,5 @@ > printf("%s\n:",tag); > vprintf(format, args); > #else > > + mozilla::LogLevel level = CSFLogLevelToMozLogLevel(priority); Wouldn't = static_cast<mozilla::LogLevel>(static_cast<unsigned int>(priority)) bypass this without introducing a function? Admittedly a hopefully-inlined function you can hope the compiler makes into an array access -- but it will still have to add branches to *every* use of CSFLog. Or better, get rid of the separate logging levels and typedef CSFLogLevel to mozilla::LogLevel, and #define the CSF_LOG_* entries to LogLevel entries. This would make it dependent on LogLevel/Logging.h --- but it is already at the cpp level, this would just add a dependency at the .h level.
Assignee | ||
Comment 22•7 years ago
|
||
(In reply to Randell Jesup [:jesup] from comment #21) > Comment on attachment 8918834 [details] [diff] [review] > Fix static analysis warning > > Review of attachment 8918834 [details] [diff] [review]: > ----------------------------------------------------------------- > > Concern about the perf impact (at a micro level) > > ::: media/webrtc/signaling/src/common/browser_logging/CSFLog.cpp > @@ +42,5 @@ > > printf("%s\n:",tag); > > vprintf(format, args); > > #else > > > > + mozilla::LogLevel level = CSFLogLevelToMozLogLevel(priority); > > Wouldn't = static_cast<mozilla::LogLevel>(static_cast<unsigned > int>(priority)) bypass this without introducing a function? Admittedly a > hopefully-inlined function you can hope the compiler makes into an array > access -- but it will still have to add branches to *every* use of CSFLog. > > Or better, get rid of the separate logging levels and typedef CSFLogLevel to > mozilla::LogLevel, and #define the CSF_LOG_* entries to LogLevel entries. > This would make it dependent on LogLevel/Logging.h --- but it is already at > the cpp level, this would just add a dependency at the .h level. We include this header from C code, so unfortunately typedefing CSFLogLevel to mozilla::LogLevel won't work. I can try the double cast and see if that is enough to fool the static analysis.
Assignee | ||
Comment 23•7 years ago
|
||
(In reply to Sean Lee [:seanlee][:weilonge] from comment #17) > Hi Dan > > I see the build error in my macbook with macos 10.11.6. Should I check my > building environment? > > 0:23.80 In file included from > /Users/seanlee/Projects/mozilla/src/gecko/obj-x86_64-apple-darwin15.6.0/ > media/webrtc/signaling/src/media-conduit/Unified_cpp_src_media-conduit0.cpp: > 29: > 0:23.80 > /Users/seanlee/Projects/mozilla/src/gecko/media/webrtc/signaling/src/media- > conduit/VideoConduit.cpp:34:10: fatal error: > 'webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h' file not found > 0:23.80 #include > "webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h" > 0:23.80 ^ > > (In reply to Sebastian Hengst [:aryx][:archaeopteryx] (needinfo on > intermittent or backout) from comment #16) > > https://hg.mozilla.org/mozilla-central/rev/807ccf63a12f > I check out to the above commit's parent[1], and the error is gone. > > [1] https://hg.mozilla.org/mozilla-central/rev/eab45e291bc0 Hi Sean, I'm not able to reproduce this problem on my macbook, but I had to go through a large build environment update prior to being able to build. As Randell said, we now require the 10.11 SDK to build in automation, which is probably the update I had to apply on my machine. Maybe try updating your build environment and see if the problem persists? Sorry, Dan
Flags: needinfo?(dminor)
Assignee | ||
Comment 24•7 years ago
|
||
Attachment #8918834 -
Attachment is obsolete: true
Attachment #8918834 -
Flags: review?(drno)
Attachment #8918940 -
Flags: review?(drno)
Comment 25•7 years ago
|
||
I cannot build after landing this too when I use 10.11 SDK. Maybe, before landing this, comment #18 condition isn't built. And if building it, #include "webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h" is always error. (correct path is webrtc/common_video/include/corevideo_frame_buffer.h)
Comment 26•7 years ago
|
||
And VideoFrame class has no nativeHandle member. Maybe, it is frame.video_frame_bufer()->native_handle() instead.
Comment 27•7 years ago
|
||
3 issues - include path (webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h) is invalid. - webrtc namespace is missing - VideoFrame class has no nativeHandle member. I think that this condition's code isn't built unfortunately until using unified build.
Attachment #8919175 -
Flags: review?(rjesup)
Comment 28•7 years ago
|
||
Attachment #8919175 -
Attachment is obsolete: true
Attachment #8919175 -
Flags: review?(rjesup)
Attachment #8919183 -
Flags: review?(rjesup)
Comment 29•7 years ago
|
||
If we use MAC_OS_X_VERSION_10_8, it requires AvailabilityMacros.h.
Assignee | ||
Comment 30•7 years ago
|
||
(In reply to Makoto Kato [:m_kato] from comment #27) > Created attachment 8919175 [details] [diff] [review] > Fix bustage > > 3 issues > - include path (webrtc/sdk/objc/Framework/Classes/corevideo_frame_buffer.h) > is invalid. > - webrtc namespace is missing > - VideoFrame class has no nativeHandle member. > > I think that this condition's code isn't built unfortunately until using > unified build. Thank you for putting together a patch for this.
Comment 31•7 years ago
|
||
Comment on attachment 8919183 [details] [diff] [review] Fix bustage v2 Review of attachment 8919183 [details] [diff] [review]: ----------------------------------------------------------------- r+ with needed ifdefs ::: media/webrtc/signaling/src/media-conduit/VideoConduit.cpp @@ +28,5 @@ > #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h" > #include "webrtc/common_video/include/video_frame_buffer.h" > #include "webrtc/api/video/i420_buffer.h" > + > +#include <AvailabilityMacros.h> Is this really available on Windows and Linux/etc? I think this needs an ifdef XP_MACOSX or some such
Attachment #8919183 -
Flags: review?(rjesup) → review+
Comment hidden (obsolete) |
Comment 33•7 years ago
|
||
(In reply to Randell Jesup [:jesup] from comment #31) > Comment on attachment 8919183 [details] [diff] [review] > > Is this really available on Windows and Linux/etc? I think this needs an > ifdef XP_MACOSX or some such Thanks, I forget it for non-Mac. I add #ifdef WEBRTC_MAC
Comment 34•7 years ago
|
||
Pushed by m_kato@ga2.so-net.ne.jp: https://hg.mozilla.org/integration/mozilla-inbound/rev/f605961878cc Fix bustage for 10.11 SDK. r=jesup
Comment 35•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/f605961878cc
Comment 36•7 years ago
|
||
Comment on attachment 8918940 [details] [diff] [review] Fix static analysis warning Review of attachment 8918940 [details] [diff] [review]: ----------------------------------------------------------------- Not pretty, but should do the job.
Attachment #8918940 -
Flags: review?(drno) → review+
Comment 37•7 years ago
|
||
Pushed by dminor@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/8f7077cf15e4 Fix static analysis warning in CSFLog.cpp; r=drno
Comment 38•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/8f7077cf15e4
You need to log in
before you can comment on or make changes to this bug.
Description
•