<?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>228876</bug_id>
          
          <creation_ts>2021-08-06 14:33:20 -0700</creation_ts>
          <short_desc>Fix ODR violations in JSC</short_desc>
          <delta_ts>2021-11-11 11:31:31 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229867</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1782570</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-06 14:33:20 -0700</bug_when>
    <thetext>When built with LTO enabled, GCC will warn about violations of C++&apos;s one-definition rule. JSC currently has two violations. The first is JSC::SpeciesConstructResult, which has two different declarations:

runtime/ArrayPrototype.cpp:enum class SpeciesConstructResult {
runtime/JSArrayBufferPrototype.cpp:enum class SpeciesConstructResult : uint8_t {

There are usually several different ways to fix any particular ODR violation, starting with renaming one or the other use. I decided to add : uint8_t to the version in ArrayPrototype.cpp to make the declarations match. I could alternatively have placed them in anonymous namespaces to restrict them to file scope.

The next problem is JSC::SignalContext. We have two different versions of this struct, one in VMTraps.cpp and the other in SigillCrashAnalyzer.cpp. In this case, I decided the simplest approach would be to change the one in VMTraps.cpp from JSC::SignalContext to JSC::VMTraps::SignalContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782571</commentid>
    <comment_count>1</comment_count>
      <attachid>435090</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-06 14:36:54 -0700</bug_when>
    <thetext>Created attachment 435090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782735</commentid>
    <comment_count>2</comment_count>
      <attachid>435090</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-07 15:13:23 -0700</bug_when>
    <thetext>Comment on attachment 435090
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782736</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-07 15:40:32 -0700</bug_when>
    <thetext>Committed r280761 (240346@main): &lt;https://commits.webkit.org/240346@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435090.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782737</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-07 15:41:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/81658888&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435090</attachid>
            <date>2021-08-06 14:36:54 -0700</date>
            <delta_ts>2021-08-07 15:40:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228876-20210806163653.patch</filename>
            <type>text/plain</type>
            <size>3858</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NmIyMWUzNTE4MDM3NDFiYTkzZmIyYzEzYWNjZTliNWNhMDdlZGNmLi5kODU0MjhhN2I2Y2M1MTVk
MzU0MjFmMzUwYjMyZmQ4NGY4MjUzMWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0wOC0wNiAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdu
b21lLm9yZz4KKworICAgICAgICBGaXggT0RSIHZpb2xhdGlvbnMgaW4gSlNDCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg4NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGJ1aWx0IHdpdGggTFRP
IGVuYWJsZWQsIEdDQyB3aWxsIHdhcm4gYWJvdXQgdmlvbGF0aW9ucyBvZiBDKysncyBvbmUtZGVm
aW5pdGlvbiBydWxlLgorICAgICAgICBKU0MgY3VycmVudGx5IGhhcyB0d28gdmlvbGF0aW9ucy4g
VGhlIGZpcnN0IGlzIEpTQzo6U3BlY2llc0NvbnN0cnVjdFJlc3VsdCwgd2hpY2ggaGFzIHR3bwor
ICAgICAgICBkaWZmZXJlbnQgZGVjbGFyYXRpb25zLCBvbmUgaW4gQXJyYXlQcm90b3R5cGUuY3Bw
IGFuZCB0aGUgb3RoZXIgaW4KKyAgICAgICAgSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAuIEkg
ZGVjaWRlZCB0byBjaGFuZ2UgdGhlIHZlcnNpb24gaW4gQXJyYXlQcm90b3R5cGUuY3BwIHRvIG1h
a2UKKyAgICAgICAgdGhlIGRlY2xhcmF0aW9ucyBtYXRjaC4KKworICAgICAgICBUaGUgbmV4dCBw
cm9ibGVtIGlzIEpTQzo6U2lnbmFsQ29udGV4dC4gV2UgaGF2ZSB0d28gZGlmZmVyZW50IHZlcnNp
b25zIG9mIHRoaXMgc3RydWN0LCBvbmUKKyAgICAgICAgaW4gVk1UcmFwcy5jcHAgYW5kIHRoZSBv
dGhlciBpbiBTaWdpbGxDcmFzaEFuYWx5emVyLmNwcC4gSW4gdGhpcyBjYXNlLCBJIGRlY2lkZWQg
dG8gY2hhbmdlCisgICAgICAgIHRoZSBvbmUgaW4gVk1UcmFwcy5jcHAgZnJvbSBKU0M6OlNpZ25h
bENvbnRleHQgdG8gSlNDOjpWTVRyYXBzOjpTaWduYWxDb250ZXh0LgorCisgICAgICAgICogcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBCcmVha3BvaW50cyk6CisgICAg
ICAgICogcnVudGltZS9WTVRyYXBzLmg6CisKIDIwMjEtMDgtMDUgIE1pa2hhaWwgUi4gR2FkZWxo
YSAgPG1pa2hhaWxAaWdhbGlhLmNvbT4KIAogICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSB3aGVu
IGNoZWNraW5nIGFycmF5IGluIERGRyAoMzIgYml0cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCBiM2U0MzllMmRkNGJlNzkyNzBi
NWQxNWRjNDE0YmI2MDMyNmY2NGQwLi5iNTI1YzViMTMwZTdmMGI2MGM3YjgzYmQyMjZhZmNhOGE1
MjA0YmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBz
cGVjaWVzV2F0Y2hwb2ludElzVmFsaWQoVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKICAg
ICAgICAgJiYgZ2xvYmFsT2JqZWN0LT5hcnJheVNwZWNpZXNXYXRjaHBvaW50U2V0KCkuc3RhdGVP
bkpTVGhyZWFkKCkgPT0gSXNXYXRjaGVkOwogfQogCi1lbnVtIGNsYXNzIFNwZWNpZXNDb25zdHJ1
Y3RSZXN1bHQgeworZW51bSBjbGFzcyBTcGVjaWVzQ29uc3RydWN0UmVzdWx0IDogdWludDhfdCB7
CiAgICAgRmFzdFBhdGgsCiAgICAgRXhjZXB0aW9uLAogICAgIENyZWF0ZWRPYmplY3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggOWZlZGM1MWE2ZDZjZTEx
YWNjOGFlODc0YWVlNWFhMTgyMzRiZmJkYS4uNGNkMTk1MzY3NmRjYzdkYWMwNjJjM2VkYTMyMDBj
NzFkM2NhNDUyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1U
cmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAK
QEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICNpZiBFTkFCTEUoU0lHTkFMX0JB
U0VEX1ZNX1RSQVBTKQogCi1zdHJ1Y3QgU2lnbmFsQ29udGV4dCB7CitzdHJ1Y3QgVk1UcmFwczo6
U2lnbmFsQ29udGV4dCB7CiBwcml2YXRlOgogICAgIFNpZ25hbENvbnRleHQoUGxhdGZvcm1SZWdp
c3RlcnMmIHJlZ2lzdGVycywgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPFBsYXRmb3JtUmVnaXN0ZXJz
UENQdHJUYWc+IHRyYXBQQykKICAgICAgICAgOiByZWdpc3RlcnMocmVnaXN0ZXJzKQpAQCAtODQs
OCArODQsOCBAQCBzdGF0aWMgYm9vbCBpc1NhbmVGcmFtZShDYWxsRnJhbWUqIGZyYW1lLCBDYWxs
RnJhbWUqIGNhbGxlZUZyYW1lLCBFbnRyeUZyYW1lKiBlbgogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgcmV0dXJuIHN0YWNrQm91bmRzLmNvbnRhaW5zKGZyYW1lKTsKIH0KLSAgICAKLXZvaWQg
Vk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBCcmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0
LCBTdGFja0JvdW5kcyBzdGFja0JvdW5kcykKKwordm9pZCBWTVRyYXBzOjp0cnlJbnN0YWxsVHJh
cEJyZWFrcG9pbnRzKFZNVHJhcHM6OlNpZ25hbENvbnRleHQmIGNvbnRleHQsIFN0YWNrQm91bmRz
IHN0YWNrQm91bmRzKQogewogICAgIC8vIFRoaXMgbXVzdCBiZSB0aGUgaW5pdGlhbCBzaWduYWwg
dG8gZ2V0IHRoZSBtdXRhdG9yIHRocmVhZCdzIGF0dGVudGlvbi4KICAgICAvLyBMZXQncyBnZXQg
dGhlIHRocmVhZCB0byBicmVhayBhdCBpbnZhbGlkYXRpb24gcG9pbnRzIGlmIG5lZWRlZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaAppbmRleCAwYWY1OWJjOTVjMTZmOTJk
MzRlNTRhNjIyYjI0MmI4N2M1ODRmZDY1Li44YTdmMjgwMjNjN2QxYjM3NjdmMGU3OTEwMDZiOGQw
MjBhNjU3NmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCkBAIC0y
MjEsNyArMjIxLDEwIEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGZpcmVU
cmFwKEV2ZW50KTsKICAgICB2b2lkIGhhbmRsZVRyYXBzKEJpdEZpZWxkIG1hc2sgPSBBc3luY0V2
ZW50cyk7CiAKLSAgICB2b2lkIHRyeUluc3RhbGxUcmFwQnJlYWtwb2ludHMoc3RydWN0IFNpZ25h
bENvbnRleHQmLCBTdGFja0JvdW5kcyk7CisjaWYgRU5BQkxFKFNJR05BTF9CQVNFRF9WTV9UUkFQ
UykKKyAgICBzdHJ1Y3QgU2lnbmFsQ29udGV4dDsKKyAgICB2b2lkIHRyeUluc3RhbGxUcmFwQnJl
YWtwb2ludHMoc3RydWN0IFZNVHJhcHM6OlNpZ25hbENvbnRleHQmLCBTdGFja0JvdW5kcyk7Cisj
ZW5kaWYKIAogcHJpdmF0ZToKICAgICBWTSYgdm0oKSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>