<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>152720</bug_id>
          
          <creation_ts>2016-01-04 17:31:45 -0800</creation_ts>
          <short_desc>[GTK][OSX] JavaScriptCore fails to build on older versions of OS X due to CF_AVAILABLE usage</short_desc>
          <delta_ts>2016-05-11 16:54:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=126433</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=157574</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>126492</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Huddleston Sequoia">jeremyhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philip.chimento</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1152588</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Huddleston Sequoia">jeremyhu</who>
    <bug_when>2016-01-04 17:31:45 -0800</bug_when>
    <thetext>Building webkit-gtk 2.11.2 on the MacPorts Mavericks buildbot failed due CF_AVAILABLE macro usage.  These macros should only be used by the OS X system frameworks and not local builds.  

/opt/local/var/macports/build/_opt_mports_dports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.11.2/Source/JavaScriptCore/API/JSContextRef.h:144:71: error: expected &apos;=&apos; after &apos;__NSi_10_10&apos;
JS_EXPORT JSStringRef JSGlobalContextCopyName(JSGlobalContextRef ctx) CF_AVAILABLE(10_10, 8_0);
                                                                      ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:95:81: note: expanded from macro &apos;CF_AVAILABLE&apos;
#define CF_AVAILABLE(_mac, _ios) __attribute__((availability(macosx,__NSi_##_mac)))
                                                                                ^
---

Elsewhere, I see these warnings, which seem to attempt to do that:

/opt/local/var/macports/build/_opt_mports_dports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.11.2/Source/JavaScriptCore/API/WebKitAvailability.h:68:9: warning: &apos;CF_AVAILABLE&apos; macro redefined
#define CF_AVAILABLE(_mac, _ios)
        ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:95:9: note: previous definition is here
#define CF_AVAILABLE(_mac, _ios) __attribute__((availability(macosx,__NSi_##_mac)))
        ^

---

Thus, it looks like WebKitAvailability.h needs to be included in JSContextRef.h before that CF_AVAILABLE usage.

Also, please add an #undef before the #define in WebKitAvailability.h to silence that warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155606</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Huddleston Sequoia">jeremyhu</who>
    <bug_when>2016-01-14 15:10:27 -0800</bug_when>
    <thetext>Actually, the issue seems to be that WebKitAvailability.h is guarded by:

#if defined(__APPLE__) &amp;&amp; !defined(BUILDING_GTK__)

And thus has no effect when building webkit-gtk for some reason.  Why was that done?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155610</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Huddleston Sequoia">jeremyhu</who>
    <bug_when>2016-01-14 15:23:35 -0800</bug_when>
    <thetext>This regression was caused by:

commit e47eb45c6bcb88b853858eb0a3aaecbbdcc3aa38
Author: mcatanzaro@igalia.com &lt;mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc&gt;
Date:   Mon Oct 12 17:59:45 2015 +0000

    webkit-gtk 2.3.3 fails to build on OS X - Conflicting type &quot;Fixed&quot;
    https://bugs.webkit.org/show_bug.cgi?id=126433
    
    Patch by Philip Chimento &lt;philip.chimento@gmail.com&gt; on 2015-10-12
    Reviewed by Philippe Normand
    
    Don&apos;t include CoreFoundation.h when building the GTK port.
    
    * Source/JavaScriptCore/API/WebKitAvailability.h: Add !defined(BUILDING_GTK__) to defined(__APPLE__).
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@190862 268f45cc-cd09-0410-ab3c-d52691b4dbfc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155613</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Huddleston Sequoia">jeremyhu</who>
    <bug_when>2016-01-14 15:29:37 -0800</bug_when>
    <thetext>Odd, that change looks fine to my eyes, and we should be getting:

#define CF_AVAILABLE(_mac, _ios)

out of WebKitAvailability.h.  Something isn&apos;t adding up.  I need to take a closer look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155666</commentid>
    <comment_count>4</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2016-01-14 19:48:30 -0800</bug_when>
    <thetext>The idea was that we wouldn&apos;t include CoreFoundation.h even if it was available, when building WebKitGTK, because some types included from CF conflicted with other types in WebKitGTK. I don&apos;t quite understand what&apos;s going wrong with that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155673</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Huddleston Sequoia">jeremyhu</who>
    <bug_when>2016-01-14 20:52:41 -0800</bug_when>
    <thetext>Based on the other build warnings (redefinition of the macro), CF is getting included elsewhere as well.  In some cases, the ordering works out, but in this case, it doesn&apos;t.

I think a better approach might be to include it and then redefine the macro.  Gonna give that a test tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155779</commentid>
    <comment_count>6</comment_count>
      <attachid>269059</attachid>
    <who name="Jeremy Huddleston Sequoia">jeremyhu</who>
    <bug_when>2016-01-15 08:43:53 -0800</bug_when>
    <thetext>Created attachment 269059
patch

Yep, that did the trick.  Patch attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156137</commentid>
    <comment_count>7</comment_count>
      <attachid>269158</attachid>
    <who name="Jeremy Huddleston Sequoia">jeremyhu</who>
    <bug_when>2016-01-15 23:21:20 -0800</bug_when>
    <thetext>Created attachment 269158
Updated patch with ChangeLog entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156326</commentid>
    <comment_count>8</comment_count>
      <attachid>269158</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-17 14:25:13 -0800</bug_when>
    <thetext>Comment on attachment 269158
Updated patch with ChangeLog entry

Clearing flags on attachment: 269158

Committed r195184: &lt;http://trac.webkit.org/changeset/195184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156327</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-17 14:25:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269059</attachid>
            <date>2016-01-15 08:43:53 -0800</date>
            <delta_ts>2016-01-15 23:21:37 -0800</delta_ts>
            <desc>patch</desc>
            <filename>PR-152720.patch</filename>
            <type>text/plain</type>
            <size>1149</size>
            <attacher name="Jeremy Huddleston Sequoia">jeremyhu</attacher>
            
              <data encoding="base64">RnJvbSA4Y2M5NjE5NzQ4ODdlNGI2ZTUxZmViMjFlMGZkYTBiZmNiYTQ0MDk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJlbXkgSHVkZGxlc3RvbiBTZXF1b2lhIDxqZXJlbXlodUBh
cHBsZS5jb20+CkRhdGU6IFRodSwgMTQgSmFuIDIwMTYgMjM6Mjg6MDMgLTA4MDAKU3ViamVjdDog
W1BBVENIXSBFbnN1cmUgQ0ZfQVZBSUxBQkxFIGlzIHVuZGVmaW5lZAoKaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjcyMAoKU2lnbmVkLW9mZi1ieTogSmVyZW15IEh1
ZGRsZXN0b24gU2VxdW9pYSA8amVyZW15aHVAYXBwbGUuY29tPgotLS0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5LmggfCA3ICsrKysrKy0KIDEgZmlsZSBjaGFu
Z2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL1dlYktpdEF2YWlsYWJpbGl0eS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAppbmRleCAyOGIzYWY0Li5hOWJiMjc2IDEw
MDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaApAQCAtMjYs
NyArMjYsNyBAQAogI2lmbmRlZiBfX1dlYktpdEF2YWlsYWJpbGl0eV9fCiAjZGVmaW5lIF9fV2Vi
S2l0QXZhaWxhYmlsaXR5X18KIAotI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiAhZGVmaW5lZChC
VUlMRElOR19HVEtfXykKKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykKIAogI2luY2x1ZGUgPEF2YWls
YWJpbGl0eU1hY3Jvcy5oPgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9u
Lmg+CkBAIC02NCw2ICs2NCwxMSBAQAogCiAjZW5kaWYgLyogX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8PSAxMDExMDAgKi8KIAorI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCisj
dW5kZWYgQ0ZfQVZBSUxBQkxFCisjZGVmaW5lIENGX0FWQUlMQUJMRShfbWFjLCBfaW9zKQorI2Vu
ZGlmCisKICNlbHNlCiAjZGVmaW5lIENGX0FWQUlMQUJMRShfbWFjLCBfaW9zKQogI2VuZGlmCi0t
IAoyLjcuMAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269158</attachid>
            <date>2016-01-15 23:21:20 -0800</date>
            <delta_ts>2016-01-17 14:25:13 -0800</delta_ts>
            <desc>Updated patch with ChangeLog entry</desc>
            <filename>0001-Ensure-that-CF_AVAILABLE-is-undefined-when-building-.patch</filename>
            <type>text/plain</type>
            <size>2439</size>
            <attacher name="Jeremy Huddleston Sequoia">jeremyhu</attacher>
            
              <data encoding="base64">RnJvbSBjNjg1OTMyOTkzOGRmYzJmNTgzNWM0OTIzMGE3YTI3MWFiYWI5ZWRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJlbXkgSHVkZGxlc3RvbiBTZXF1b2lhIDxqZXJlbXlodUBh
cHBsZS5jb20+CkRhdGU6IEZyaSwgMTUgSmFuIDIwMTYgMjM6MTk6NDQgLTA4MDAKU3ViamVjdDog
W1BBVENIXSBFbnN1cmUgdGhhdCBDRl9BVkFJTEFCTEUgaXMgdW5kZWZpbmVkIHdoZW4gYnVpbGRp
bmcKIHdlYmtpdC1ndGsKCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTI3MjAKClRoaXMgY2hhbmdlIGVuc3VyZXMgdGhhdCBDRl9BVkFJTEFCTEUgaXMgY29ycmVjdGx5
IGEgbm8tb3AgdG8KYWRkcmVzcyBidWlsZCBmYWlsdXJlIHRoYXQgd2FzIG9ic2VydmVkIHdoZW4g
YnVpbGRpbmcgb24gb2xkZXIKdmVyc2lvbnMgb2YgT1NYLiAgUHJldmlvdXNseSwgQ0ZfQVZBSUxB
QkxFIG1heSBoYXZlIGJlZW4gdW5leHBlY3RlZGx5CnJlLWRlZmluZWQgdG8gdGhlIHN5c3RlbSBo
ZWFkZXIgdmFsdWUgYmFzZWQgb24gaW5jbHVkZS1vcmRlci4KClJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgoKU2lnbmVkLW9mZi1ieTogSmVyZW15IEh1ZGRsZXN0b24gU2VxdW9pYSA8amVyZW15
aHVAYXBwbGUuY29tPgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2ViS2l0QXZhaWxh
YmlsaXR5LmggfCAgNyArKysrKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDIxIGlu
c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL1dlYktpdEF2YWlsYWJpbGl0eS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9XZWJLaXRBdmFpbGFiaWxpdHkuaAppbmRleCAyOGIzYWY0Li5mODc4YmVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL1dlYktpdEF2YWlsYWJpbGl0eS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5LmgKQEAgLTI2LDcgKzI2
LDcgQEAKICNpZm5kZWYgX19XZWJLaXRBdmFpbGFiaWxpdHlfXwogI2RlZmluZSBfX1dlYktpdEF2
YWlsYWJpbGl0eV9fCiAKLSNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgIWRlZmluZWQoQlVJTERJ
TkdfR1RLX18pCisjaWYgZGVmaW5lZChfX0FQUExFX18pCiAKICNpbmNsdWRlIDxBdmFpbGFiaWxp
dHlNYWNyb3MuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgpA
QCAtNjQsNiArNjQsMTEgQEAKIAogI2VuZGlmIC8qIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPD0gMTAxMTAwICovCiAKKyNpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQorI3VuZGVm
IENGX0FWQUlMQUJMRQorI2RlZmluZSBDRl9BVkFJTEFCTEUoX21hYywgX2lvcykKKyNlbmRpZgor
CiAjZWxzZQogI2RlZmluZSBDRl9BVkFJTEFCTEUoX21hYywgX2lvcykKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTI2NTBmMi4uYjIxMWIzMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDEtMTUgIEplcmVteSBIdWRkbGVzdG9uIFNl
cXVvaWEgIDxqZXJlbXlodUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIHRoYXQgQ0ZfQVZB
SUxBQkxFIGlzIHVuZGVmaW5lZCB3aGVuIGJ1aWxkaW5nIHdlYmtpdC1ndGsKKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNzIwCisKKyAgICAgICAg
VGhpcyBjaGFuZ2UgZW5zdXJlcyB0aGF0IENGX0FWQUlMQUJMRSBpcyBjb3JyZWN0bHkgYSBuby1v
cCB0bworICAgICAgICBhZGRyZXNzIGJ1aWxkIGZhaWx1cmUgdGhhdCB3YXMgb2JzZXJ2ZWQgd2hl
biBidWlsZGluZyBvbiBvbGRlcgorICAgICAgICB2ZXJzaW9ucyBvZiBPU1guICBQcmV2aW91c2x5
LCBDRl9BVkFJTEFCTEUgbWF5IGhhdmUgYmVlbiB1bmV4cGVjdGVkbHkKKyAgICAgICAgcmUtZGVm
aW5lZCB0byB0aGUgc3lzdGVtIGhlYWRlciB2YWx1ZSBiYXNlZCBvbiBpbmNsdWRlLW9yZGVyLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL1dl
YktpdEF2YWlsYWJpbGl0eS5oOgorCiAyMDE2LTAxLTE1ICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIExlZ2FsaXplIE1lbW9yeSBPZmZzZXRz
IGZvciBBUk02NCBiZWZvcmUgbG93ZXJpbmcgdG8gQWlyCi0tIAoyLjcuMAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>