Closed Bug 768325 Opened 13 years ago Closed 12 years ago

Need to be able to access libxul functions from gkmedia on windows for webrtc

Categories

(Firefox Build System :: General, defect)

All
Windows 7
defect
Not set
major

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 699646

People

(Reporter: jesup, Unassigned)

Details

Attachments

(3 files, 4 obsolete files)

We need to be able to access XPCOM/network/etc functions in liubxul from gkmedia on Windows, which is not currently possible. Suggestions from glandium and ted (ehsan was in agreement after the fact): 1) Try linking gkmedia as a static library with libxul with full PGO (now that we're on 64-bit windows builders) and see what the max memory usage is (with webrtc and signaling enabled, which would mean (currently) alder/default) 2) Try linking gkmedia as a static non-PGO library with xul and measure memory use. (I.e. add -Gy- by defining NO_PROFILE_GUIDED_OPTIMIZE=1) 3) Try moving media/webrtc/signaling (and probably ekr's transport code) to xul, leaving the rest of webrtc in gkmedia as current, and add a ton of C++ symbols to symbols.def.in (or find some more automatic way to do so). This is a bit of a maintenance nightmare due to having to track API changes and likely to be fragile (and may involve quite a few hacks along the way). I'll attach an IRC log with a bunch of details First step is to measure the memory use for cases #1 and #2. My initial try build using glandium's simple patch died with a bunch of unknown symbols (could be symbols.def.in biting us; I didn't debug - try build was triggered late Wednesday night/thurs morning EDT IIRC)
Blocks: 699646
Comment on attachment 636733 [details] [diff] [review] Merge gkmedia in with XUL on windows Review of attachment 636733 [details] [diff] [review]: ----------------------------------------------------------------- ::: toolkit/library/Makefile.in @@ +547,5 @@ > +ifdef MOZ_WEBRTC > +EXTRA_DSO_LDOPTS += \ > + -LIBPATH:"$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)" \ > + $(NULL) > +OS_LIBS += $(call EXPAND_LIBNAME,secur32 crypt32 iphlpapi strmiids dmoguids wmcodecdspuuid amstrmid msdmo wininet) You're missing this: ifdef MOZ_CUBEB OS_LIBS += $(call EXPAND_LIBNAME, winmm) endif Note that if this works, you'll want to remove the parts you commented out, and also all EXTRA_DSO_LDOPTS and OS_LIBS in layout/media/Makefile.in.
Actually, if we go this way, we can just get rid of layout/media/Makefile.in and move things back in toolkit/library/Makefile.in.
https://tbpl.mozilla.org/?tree=Try&rev=0b3cc46f7b5d re: MOZ_CUBEB - right. I was mostly trying to get it to work and get the rough PGO memory reading; this isn't a review-ready patch.
(In reply to Randell Jesup [:jesup] from comment #4) > https://tbpl.mozilla.org/?tree=Try&rev=0b3cc46f7b5d > > re: MOZ_CUBEB - right. I was mostly trying to get it to work and get the > rough PGO memory reading; this isn't a review-ready patch. I know, I'm just saying, because MOZ_CUBEB is enabled by default.
https://tbpl.mozilla.org/?tree=Try&rev=1bb694191ec7 Win x32: linker max vsize: 3830517760 check: 19965/0 Win x64: linker max vsize: 3811520512 check: 19980/0 This would give us somewhere less than 464,xxx,xxx bytes (442MB), depending on how much of the 4GB address space is actually usable.
Patch used in try (basically) -- against alder/default
Attachment #636733 - Attachment is obsolete: true
Attachment #637160 - Attachment is obsolete: true
(In reply to Randell Jesup [:jesup] from comment #7) > https://tbpl.mozilla.org/?tree=Try&rev=1bb694191ec7 > > Win x32: > linker max vsize: 3830517760 > check: 19965/0 > > Win x64: > linker max vsize: 3811520512 > check: 19980/0 > > This would give us somewhere less than 464,xxx,xxx bytes (442MB), depending > on how much of the 4GB address space is actually usable. How much is the linker max vsize with the same code, but with gkmedias separated?
That doesn't seem like it gives us a lot of breathing room, especially considering that we have no recourse when we hit the 4GB limit.
(In reply to Ted Mielczarek [:ted] from comment #10) > That doesn't seem like it gives us a lot of breathing room, especially > considering that we have no recourse when we hit the 4GB limit. Let's see how it goes with webrtc not PGOed.
For reference, a recent Win x32 PGO build on m-c: linker max vsize: 3166093312 check: 23285/0 Increase for including all of gkmedia and media/webrtc (which includes ~750K lines of code, plus an additional ~500K lines of code on alder that mostly will not land on m-c!) is ~670MB
Attachment #637360 - Attachment is obsolete: true
Attachment #637657 - Attachment is obsolete: true
Just going to fix this over in bug 699646.
No longer blocks: 699646, 729541
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: