<?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>207890</bug_id>
          
          <creation_ts>2020-02-18 08:10:26 -0800</creation_ts>
          <short_desc>[WPE] undefined reference to `JSC::ExecutableBase::hasJITCodeForCall() const&apos;</short_desc>
          <delta_ts>2020-03-01 16:06:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Charlie Turner">cturner</reporter>
          <assigned_to name="Charlie Turner">cturner</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1620143</commentid>
    <comment_count>0</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-02-18 08:10:26 -0800</bug_when>
    <thetext>Hitting this on arm-buildroot-linux-gnueabihf with GCC 9.2.0,

[ 74%] Linking CXX executable ../../../bin/jsc
/home/cht/igalia/buildroot/output/host/lib/gcc/arm-buildroot-linux-gnueabihf/9.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: ../../../lib/../Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f2e18ffc-25.cpp.o: in function `JSC::ExecutableBase::hasJITCodeFor(JSC::CodeSpecializationKind) const&apos;:
/home/cht/igalia/buildroot/output/build/wpewebkit-2.26.4/Source/JavaScriptCore/runtime/ExecutableBase.h:183: undefined reference to `JSC::ExecutableBase::hasJITCodeForCall() const&apos;
/home/cht/igalia/buildroot/output/host/lib/gcc/arm-buildroot-linux-gnueabihf/9.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: /home/cht/igalia/buildroot/output/build/wpewebkit-2.26.4/Source/JavaScriptCore/runtime/ExecutableBase.h:185: undefined reference to `JSC::ExecutableBase::hasJITCodeForConstruct() const&apos;
collect2: error: ld returned 1 exit status

Adding #include &quot;ExecutableBaseInlines.h&quot; to Source/JavaScriptCore/runtime/NativeExecutable.cpp fixes the issue, not sure if that&apos;s the best solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620144</commentid>
    <comment_count>1</comment_count>
      <attachid>391047</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-02-18 08:13:04 -0800</bug_when>
    <thetext>Created attachment 391047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620628</commentid>
    <comment_count>2</comment_count>
      <attachid>391047</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-02-19 04:45:39 -0800</bug_when>
    <thetext>Comment on attachment 391047
Patch

Not sure if this its the best fix.

Source/JavaScriptCore/runtime/ExecutableBase.h declares the function prototype for hasJITCodeForCall() and hasJITCodeForConstruct() but ExecutableBase.cpp doesn&apos;t define the function hasJITCodeForCall() neither hasJITCodeForConstruct()

The functions hasJITCodeForCall() and hasJITCodeForConstruct() seem defined in ScriptExecutable.h

I wonder if a better fix would be to remove from ExecutableBase.h the prototypes of hasJITCodeForCall() and hasJITCodeForConstruct() and include ScriptExecutable.h inside ExecutableBase.h ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620630</commentid>
    <comment_count>3</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-02-19 05:13:37 -0800</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #2)
&gt; Comment on attachment 391047 [details]
&gt; Patch
&gt; 
&gt; Not sure if this its the best fix.
&gt; 
&gt; Source/JavaScriptCore/runtime/ExecutableBase.h declares the function
&gt; prototype for hasJITCodeForCall() and hasJITCodeForConstruct() but
&gt; ExecutableBase.cpp doesn&apos;t define the function hasJITCodeForCall() neither
&gt; hasJITCodeForConstruct()
&gt; 
&gt; The functions hasJITCodeForCall() and hasJITCodeForConstruct() seem defined
&gt; in ScriptExecutable.h

They&apos;re also in ExecutableBaseInlines.h, and I don&apos;t know what purpose this organisation serves. I guess for some sort of ODR-workaround?

&gt; 
&gt; I wonder if a better fix would be to remove from ExecutableBase.h the
&gt; prototypes of hasJITCodeForCall() and hasJITCodeForConstruct() and include
&gt; ScriptExecutable.h inside ExecutableBase.h ?

ScriptExectable is a subclass and the base needs visibility of these symbols, so removing their prototypes doesn&apos;t work correctly. This is a hairy organisation which I think is best left to the discretion of a JSC maintainer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624255</commentid>
    <comment_count>4</comment_count>
      <attachid>391047</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-29 01:27:20 -0800</bug_when>
    <thetext>Comment on attachment 391047
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624422</commentid>
    <comment_count>5</comment_count>
      <attachid>391047</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-01 16:06:40 -0800</bug_when>
    <thetext>Comment on attachment 391047
Patch

Clearing flags on attachment: 391047

Committed r257695: &lt;https://trac.webkit.org/changeset/257695&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624423</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-01 16:06:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391047</attachid>
            <date>2020-02-18 08:13:04 -0800</date>
            <delta_ts>2020-03-01 16:06:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207890-20200218161303.patch</filename>
            <type>text/plain</type>
            <size>1438</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZDc5NzZiMmM5NDRiNDA5OWU1NWViZWU5ZjA5NzBkNWM2MDVhODQ0Li43NWEyN2Q1MDMxNjkwZjBh
ZjkyNmFiZWRiMjdjYTgxN2QyMjhjMTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0wMi0xOCAgQ2hhcmxlcyBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgSlNDOjpFeGVjdXRhYmxlQmFz
ZTo6aGFzSklUQ29kZUZvckNhbGwoKSBjb25zdCcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzg5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuY291bnRlcmVkIG9uIGFybS1idWlsZHJvb3QtbGludXgt
Z251ZWFiaWhmIHdpdGggR0NDIDkuMi4wLgorCisgICAgICAgICogcnVudGltZS9OYXRpdmVFeGVj
dXRhYmxlLmNwcDogSW5jbHVzaW9uIG9mCisgICAgICAgIEV4ZWN1dGFibGVCYXNlSW5saW5lcy5o
IHJlc29sdmVzIHRoZSBpc3N1ZSBmb3IgbWUuCisKIDIwMjAtMDItMTYgIEZ1amlpIEhpcm9ub3Jp
ICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHJlbWFpbmluZyBX
VEZfRVhQT1JUIGFuZCBXVEZfSU1QT1JUIGJ5IHJlcGxhY2luZyB0aGVtIHdpdGggV1RGX0VYUE9S
VF9ERUNMQVJBVElPTiBhbmQgV1RGX0lNUE9SVF9ERUNMQVJBVElPTgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFeGVjdXRhYmxlLmNwcAppbmRleCAxYTQyOWI1
YTNjYWY0ODg0MmM3MjAxZjE3NGI5MjU1ZjgyOWNjNzRjLi45YmJjMDk0N2I5ODQzNmJlYmViMzVk
MWVkODc5MjUwZjRhZDU3M2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFeGVjdXRhYmxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkJh
dGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiRGVidWdnZXIuaCIKKyNpbmNsdWRlICJFeGVjdXRhYmxlQmFzZUlubGluZXMuaCIKICNp
bmNsdWRlICJKSVQuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTExJbnRF
bnRyeXBvaW50LmgiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>