Changeset 227057 in webkit


Ignore:
Timestamp:
Jan 17, 2018 2:06:28 AM (6 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
https://bugs.webkit.org/show_bug.cgi?id=179914

Reviewed by Žan Doberšek.

Source/WebKit:

Add symbols detected by check-for-global-bss-symbols-in-webkigtk-libs to the version script.

  • webkitglib-symbols.map:

Tools:

Add two scripts to be run by dist-check step when releasing. One is to detect symbols duplicated in
libjavascriptcoregtk and libwebkit2gtk that should be included to the version script. The other one is to ensure
all symbols listed in the script are present in the library.

  • Scripts/check-for-global-bss-symbols-in-webkigtk-libs: Added.

(bss_symbols):

  • Scripts/check-for-invalid-symbols-in-version-script: Added.

(script_symbols):

  • Scripts/make-dist:

(Distcheck.build):
(Distcheck):
(Distcheck.check_symbols):
(Distcheck.check):

Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r227052 r227057  
     12018-01-17  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
     4        https://bugs.webkit.org/show_bug.cgi?id=179914
     5
     6        Reviewed by Žan Doberšek.
     7
     8        Add symbols detected by check-for-global-bss-symbols-in-webkigtk-libs to the version script.
     9
     10        * webkitglib-symbols.map:
     11
    1122018-01-17  Youenn Fablet  <youenn@apple.com>
    213
  • trunk/Source/WebKit/webkitglib-symbols.map

    r226633 r227057  
    77  StorageProcessMainUnix;
    88  extern "C++" {
     9    "bmalloc::PerProcess<bmalloc::IsoTLSDeallocatorEntry<bmalloc::IsoConfig<40u> > >::s_memory";
     10    "bmalloc::PerProcess<bmalloc::IsoTLSDeallocatorEntry<bmalloc::IsoConfig<40u> > >::s_mutex";
     11    "bmalloc::PerProcess<bmalloc::IsoTLSDeallocatorEntry<bmalloc::IsoConfig<40u> > >::s_object";
     12    "bmalloc::PerProcess<bmalloc::Scavenger>::s_memory";
     13    "bmalloc::PerProcess<bmalloc::Scavenger>::s_mutex";
     14    "bmalloc::PerProcess<bmalloc::Scavenger>::s_object";
     15    "bmalloc::vmPageSize()::cached";
     16    "guard variable for bmalloc::PerProcess<bmalloc::IsoTLSDeallocatorEntry<bmalloc::IsoConfig<40u> > >::s_mutex";
     17    "guard variable for bmalloc::PerProcess<bmalloc::IsoTLSDeallocatorEntry<bmalloc::IsoConfig<40u> > >::s_object";
     18    "guard variable for bmalloc::PerProcess<bmalloc::PerHeapKind<bmalloc::Heap> >::s_mutex";
     19    "guard variable for bmalloc::PerProcess<bmalloc::Scavenger>::s_mutex";
     20    "guard variable for bmalloc::PerProcess<bmalloc::Scavenger>::s_object";
    921    "WebKit::WebKitExtensionManager::singleton()";
    1022    "WebKit::WebKitExtensionManager::initialize(WebKit::InjectedBundle*, API::Object*)";
  • trunk/Tools/ChangeLog

    r227056 r227057  
     12018-01-17  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
     4        https://bugs.webkit.org/show_bug.cgi?id=179914
     5
     6        Reviewed by Žan Doberšek.
     7
     8        Add two scripts to be run by dist-check step when releasing. One is to detect symbols duplicated in
     9        libjavascriptcoregtk and libwebkit2gtk that should be included to the version script. The other one is to ensure
     10        all symbols listed in the script are present in the library.
     11
     12        * Scripts/check-for-global-bss-symbols-in-webkigtk-libs: Added.
     13        (bss_symbols):
     14        * Scripts/check-for-invalid-symbols-in-version-script: Added.
     15        (script_symbols):
     16        * Scripts/make-dist:
     17        (Distcheck.build):
     18        (Distcheck):
     19        (Distcheck.check_symbols):
     20        (Distcheck.check):
     21
    1222018-01-17  Carlos Garcia Campos  <cgarcia@igalia.com>
    223
  • trunk/Tools/Scripts/make-dist

    r224410 r227057  
    257257        subprocess.check_call(command, cwd=build_dir)
    258258
     259    def check_symbols(self, build_dir):
     260        check_bss = os.path.join(self.source_root, 'Tools', 'Scripts', 'check-for-global-bss-symbols-in-webkigtk-libs')
     261        libjsc = os.path.join(build_dir, 'lib', 'libjavascriptcoregtk-4.0.so')
     262        libwk = os.path.join(build_dir, 'lib', 'libwebkit2gtk-4.0.so')
     263        subprocess.check_call([check_bss, libjsc, libwk])
     264
     265        check_version_script = os.path.join(self.source_root, 'Tools', 'Scripts', 'check-for-invalid-symbols-in-version-script')
     266        version_script = os.path.join(os.path.dirname(build_dir), 'Source', 'WebKit', 'webkitglib-symbols.map')
     267        subprocess.check_call([check_version_script, version_script, libwk])
     268
    259269    def install(self, build_dir):
    260270        subprocess.check_call(['make', 'install'], cwd=build_dir)
     
    272282        self.configure(dist_dir, build_dir, install_dir, port)
    273283        self.build(build_dir)
     284        if port == 'GTK':
     285            self.check_symbols(build_dir)
    274286        self.install(build_dir)
    275287        self.clean(dist_dir)
Note: See TracChangeset for help on using the changeset viewer.