<?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>254286</bug_id>
          
          <creation_ts>2023-03-22 14:13:37 -0700</creation_ts>
          <short_desc>usage of initial-exec prevents dlopen of the libwebkit shared object outside of GLIBC on linux</short_desc>
          <delta_ts>2023-09-06 14:49: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>WebKitGTK</component>
          <version>Other</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=240392</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>alice</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1943175</commentid>
    <comment_count>0</comment_count>
      <attachid>465547</attachid>
    <who name="">alice</who>
    <bug_when>2023-03-22 14:13:37 -0700</bug_when>
    <thetext>Created attachment 465547
a fix for this issue

usage of initial-exec prevents valid dlopen of the library later. this works on glibc, because glibc reserves some memory for initial-exec variables in dlopen&apos;d objects.

on other libcs, this doesn&apos;t work. for instance:

$ cat main.c 
#include &lt;dlfcn.h&gt;
#include &lt;stdio.h&gt;

int main() {
  void *h = dlopen(&quot;libwebkit2gtk-4.0.so.37&quot;, 0);

  if(!h) {
    fprintf(stderr, &quot;%s\n&quot;, dlerror());
    return 1;
  }

  return 0;
}
$ gcc main.c 
$ ./a.out 
Error relocating /usr/lib/libwebkit2gtk-4.0.so.37: lroundf: initial-exec TLS resolves to dynamic definition in /usr/lib/libwebkit2gtk-4.0.so.37
$ ldd --version
musl libc (x86_64)
Version 1.2.3
Dynamic Program Loader
Usage: /lib/ld-musl-x86_64.so.1 [options] [--] pathname

utilising initial-exec only when __GLIBC__ is defined fixes this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1943481</commentid>
    <comment_count>1</comment_count>
    <who name="">alice</who>
    <bug_when>2023-03-23 13:43:18 -0700</bug_when>
    <thetext>the patch of course has a typo in it- it&apos;s #endif not #fi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1975923</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2023-09-06 14:45:20 -0700</bug_when>
    <thetext>Closing since TLS_MODEL_INITIAL_EXEC is no longer used anywhere in WebKit. The entire file that you patched was deleted at some point between then and now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1975929</commentid>
    <comment_count>3</comment_count>
    <who name="">alice</who>
    <bug_when>2023-09-06 14:49:03 -0700</bug_when>
    <thetext>looks to have been https://github.com/WebKit/WebKit/commit/b30a03a4c8a229deacb72a6e4fa46f6469df634f, seems fine to me. thanks for following up :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465547</attachid>
            <date>2023-03-22 14:13:37 -0700</date>
            <delta_ts>2023-03-22 14:13:37 -0700</delta_ts>
            <desc>a fix for this issue</desc>
            <filename>0001-ANGLE-use-initial-exec-only-on-glibc.patch</filename>
            <type>text/plain</type>
            <size>1881</size>
            <attacher>alice</attacher>
            
              <data encoding="base64">RnJvbSA2NzYyZjQ0YTQxYTcwOWY4MjQ0NGQ5YWVjOGUyODBmMGJiM2Q5ZDlhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBwc3lrb3NlIDxhbGljZUBheWF5YS5kZXY+CkRhdGU6IFdlZCwg
MjIgTWFyIDIwMjMgMjA6NTU6MzkgKzAwMDAKU3ViamVjdDogW1BBVENIXSBbQU5HTEVdIHVzZSBp
bml0aWFsLWV4ZWMgb25seSBvbiBnbGliYwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgp1
c2FnZSBvZiBpbml0aWFsLWV4ZWMgY2F1c2VzIHRoZSB3aG9sZSBzaGFyZWQgb2JqZWN0IHRvIGdh
aW4KdGhlIFNUQVRJQ19UTFMgZmxhZzoKCiAkIHJlYWRlbGYgLWQgL3Vzci9saWIvbGlid2Via2l0
Mmd0ay00LjAuc28uMzcKIC4uLgogKEZMQUdTKSBCSU5EX05PVyBTVEFUSUNfVExTCiAuLi4KCnRo
aXMgcHJldmVudHMgdmFsaWQgZGxvcGVuKDMpIHVzYWdlIG9uIHRoZSByZXN1bHRpbmcgc2hhcmVk
IG9iamVjdC4KZ2xpYmMgcmVzZXJ2ZXMgc29tZSBpbml0aWFsLWV4ZWMgbWVtb3J5IGZvciB0aGVz
ZSB2YXJpYWJsZXMgdG8gbGV0IGl0CndvcmsgYW55d2F5LSBidXQgb3RoZXIgbGlicyBzdWNoIGFz
IG11c2wgZG8gbm90LgoKdGhpcyBwcmV2ZW50cyB1c2FnZSBvZiBsaWJ3ZWJraXQgdmlhIGRsb3Bl
bigpLgoKc2ltcGx5IG5vdCBzZXR0aW5nIGluaXRpYWwtZXhlYyBmaXhlcyB0aGlzIGNhc2Ugb3V0
c2lkZSBvZiBnbGliYy4KCmZvciBjb250ZXh0LCBzZWU6CgpodHRwczovL2dpdGxhYi5mcmVlZGVz
a3RvcC5vcmcvbWVzYS9tZXNhLy0vY29tbWl0Lzg1NzBhMmEyODA1ODdhMWU0M2FjMTFhZDQ2YWQ2
MmRmZGQ2YzdiMzkKaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL21lc2EvbWVzYS8tL2lz
c3Vlcy85NjYKLS0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZ2JtL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEVMaW51eC5jcHAgICB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z
KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ2JtL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVMaW51eC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nYm0vR3JhcGhpY3NDb250ZXh0R0xBTkdMRUxpbnV4LmNw
cAppbmRleCBmODYyN2QyYzg5ZGIuLjRkZGE4YmM1MGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2JtL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVMaW51eC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2JtL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEVMaW51eC5jcHAKQEAgLTEwOCw3ICsxMDgsMTEgQEAgUmVmUHRyPFBpeGVsQnVm
ZmVyPiBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZWFkQ29tcG9zaXRlZFJlc3VsdHMoKQogCiBi
b29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6Om1ha2VDb250ZXh0Q3VycmVudCgpCiB7Ci0gICAg
c3RhdGljIHRocmVhZF9sb2NhbCBUTFNfTU9ERUxfSU5JVElBTF9FWEVDIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEUqIHNfY3VycmVudENvbnRleHQgeyBudWxscHRyIH07CisgICAgI2lmZGVmIF9fR0xJ
QkNfXworICAgICAgICBzdGF0aWMgdGhyZWFkX2xvY2FsIFRMU19NT0RFTF9JTklUSUFMX0VYRUMg
R3JhcGhpY3NDb250ZXh0R0xBTkdMRSogc19jdXJyZW50Q29udGV4dCB7IG51bGxwdHIgfTsKKyAg
ICAjZWxzZQorICAgICAgICBzdGF0aWMgdGhyZWFkX2xvY2FsIEdyYXBoaWNzQ29udGV4dEdMQU5H
TEUqIHNfY3VycmVudENvbnRleHQgeyBudWxscHRyIH07CisgICAgI2ZpCiAKICAgICBpZiAoc19j
dXJyZW50Q29udGV4dCA9PSB0aGlzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLS0gCjIuNDAuMAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>