[webkit-help] JSC: Minimal win32 Build + Some Current Bugs

Brian Barnes ggadwa at charter.net
Wed Jan 25 11:37:57 PST 2012


On 1/25/2012 2:03 PM, Adam Roben wrote:
> On Jan 25, 2012, at 1:44 PM, Brian Barnes wrote:
>
>> I'm working on creating a minimal win32 build, without CFLite and pthreads (without the unicode is next to impossible.)
>>
>> A non-CFLite build works fine, except for: api/JSStringRefCF.cpp
>>
>> This code does not account for the USE(CF) flag.  I made this correction:
>>
>> JSStringRef JSStringCreateWithCFString(CFStringRef string)
>> {
>> 	#if !USE(CF)
>> 		return(NULL);
>> 	#else
>> 		// original code goes here!
>> 	#endif
>> }
>>
>> CFStringRef JSStringCopyCFString(CFAllocatorRef alloc, JSStringRef string)
>> {
>> 	#if !USE(CF)
>> 		return(NULL);
>> 	#else
>> 		// original code goes here!
>> 	#endif
>> }
>>
>> This might not be the best solution, but if you compile without CF you can't expect these functions to be workable.
>
> I'd just wrap this entire file in #if USE(CF)/#endif. There's no reason to compile these functions at all when not using CF.

You can't -- it won't link because those are external library functions. 
  You'd have to come up with something much more complex to fix it if 
you were to remove the entire functions.

Should I put up a bug report for this, too?

>
>> A non-phtread works except for: heap/MachineStackMarker.cpp
>>
>> Way to many corrections here to note.  Half the code in this function properly checks the USE(PTHREAD)/OS(WINDOWS), and the other have does NOT.  This could be REALLY bad as it's might be (didn't check that hard) mixing pthreads and windows threads!  This one probably really needs to be fixed.
>
> Patrick Gansterer has been working on removing the pthreads requirement in that file as part of his work to fix<https://bugs.webkit.org/show_bug.cgi?id=68046>. Check out the bugs that one depends on for some of his work so far.

Great, then I'll ignore that one and watch what happens in that bug report!

>> One last one, just a reminder as I mentioned it before: keywords.table has two extra returns at the end which breaks parser.cpp.
>
> Please file a bug about this at http://webkit.org/new-bug

Will do, tell me about the bug above and I'll put both in at once.

Would you guys/gals be willing to put up a "minimal" configuration in 
the JSC MSVC project?  Once these things are fixed, it's a simple change 
in platform.h to build without CF/CFLite (and the pthreads will be 
automatic.)  It's a one line change, so it's not that big of a deal, 
it's just nice to reduce the required DLL count by 2.  Basically:

#if PLATFORM(WIN) && !OS(WINCE)
#define WTF_USE_CF 0                 <-- make this 0, obviously :)
#define WTF_USE_PTHREADS 0
#endif

[>] Brian


More information about the webkit-help mailing list