Bug 105341 - [Mac] Remove Platform.h macros from JavaScriptCore Private Headers
Summary: [Mac] Remove Platform.h macros from JavaScriptCore Private Headers
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 108749
Blocks:
  Show dependency treegraph
 
Reported: 2012-12-18 13:51 PST by Joseph Pecoraro
Modified: 2013-02-02 05:01 PST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joseph Pecoraro 2012-12-18 13:51:35 PST
JavaScriptCore's public headers are free of Platform.h/Compiler.h macros, but it has numerous uses in its private headers. This should be cleaned up and "PrivateHeaders" added to the check for macros build phase.

    shell> TARGET_BUILD_DIR="$build/Release" PROJECT_NAME="JavaScriptCore" SHALLOW_BUNDLE="NO" ./Tools/Scripts/check-for-inappropriate-macros-in-external-headers PrivateHeaders
    ERROR: 'JavaScriptCore.framework/Versions/A/PrivateHeaders/AbstractMacroAssembler.h:36' included forbidden macro 'ENABLE' => '#if ENABLE(ASSEMBLER)'
    ERROR: 'JavaScriptCore.framework/Versions/A/PrivateHeaders/AbstractMacroAssembler.h:39' included forbidden macro 'PLATFORM' => '#if PLATFORM(QT)'
    ERROR: 'JavaScriptCore.framework/Versions/A/PrivateHeaders/AbstractMacroAssembler.h:40' included forbidden macro 'ENABLE' => '#define ENABLE_JIT_CONSTANT_BLINDING 0'
    ERROR: 'JavaScriptCore.framework/Versions/A/PrivateHeaders/AbstractMacroAssembler.h:43' included forbidden macro 'ENABLE' => '#ifndef ENABLE_JIT_CONSTANT_BLINDING'
    ...

If there are certain files where we will allow macros, the check-for-inappropriate-macros script can take individual files that we want to keep checking.
Comment 1 David Kilzer (:ddkilzer) 2012-12-21 14:52:27 PST
(In reply to comment #0)
>     ERROR: 'JavaScriptCore.framework/Versions/A/PrivateHeaders/AbstractMacroAssembler.h:36' included forbidden macro 'ENABLE' => '#if ENABLE(ASSEMBLER)'
>     ERROR: 'JavaScriptCore.framework/Versions/A/PrivateHeaders/AbstractMacroAssembler.h:39' included forbidden macro 'PLATFORM' => '#if PLATFORM(QT)'

These appear to be real issues.

>     ERROR: 'JavaScriptCore.framework/Versions/A/PrivateHeaders/AbstractMacroAssembler.h:40' included forbidden macro 'ENABLE' => '#define ENABLE_JIT_CONSTANT_BLINDING 0'
>     ERROR: 'JavaScriptCore.framework/Versions/A/PrivateHeaders/AbstractMacroAssembler.h:43' included forbidden macro 'ENABLE' => '#ifndef ENABLE_JIT_CONSTANT_BLINDING'

These appear to be correct mitigation of the ENABLE() macros which the script shouldn't flagged as errors.