[webkit-help] "build-webkit --system-malloc" on cygwin

Russ Schnapp rls.webkit at schnapp.org
Mon May 10 10:30:11 PDT 2010


FOREWORD: This is just to relate my experience, in case someone else 
encounters a similar problem.  I'm not confident that what I'm reporting 
here is a bug in the Apple Windows port -- it's possible that the 
problem I had was somehow peculiar to my application or how I integrated 
WebKit therewith.

============

I'm incorporating WebKit into my client's Windows application, primarily 
in order to render SVG images, but also for some limited HTML rendering.

I had relatively little difficulty building the Apple Windows port under 
Cygwin -- though one or two things did throw me for a loop (e.g., the 
"COM" implementation sans IDispatch, which tends to be extremely useful 
for control by scripting languages and simplifies creation of C++ 
wrapper classes).

My last big roadblock was a memory allocation problem. I eventually 
figured out that, somehow, some memory resources were being allocated 
from the "fastmalloc" system in WebKit, but were being passed to the 
runtime library's delete function, which of course, doesn't recognize 
them.  It appears that my client's application was somehow seeing the 
fastmalloc stuff and inadvertently using it in some places, but not 
others, and not consistently.

I eventually decided to turn off fastmalloc when building WebKit, so 
everyone would be using the runtime library allocator.  I looked through 
WebKit/WebKitTools/Scripts/build-webkit, and found the --system-malloc 
switch, which purports to turn off fastmalloc by defining 
USE_SYSTEM_MALLOC for compilation.

Unfortunately, it appears that this switch silently fails on cygwin. In 
fact, it's not clear to me that any of the various option switches 
(other than --debug and --clean) actually do anything when building 
under cygwin.

Eventually, I had to manually edit
   WebKit/WebKitLibraries/win/tools/vsprops/common.vsprops
...appending ";USE_SYSTEM_MALLOC" on line 12 (VCCLCompilerTool's 
PreprocessorDefinitions).

I then rebuilt WebKit, and all was well.


More information about the webkit-help mailing list