Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Factory
nodejs-electron
common.gypi-compiler.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File common.gypi-compiler.patch of Package nodejs-electron
--- src/third_party/electron_node/common.gypi.orig 2024-05-09 09:30:23.202414200 +0000 +++ src/third_party/electron_node/common.gypi 2024-05-10 17:53:01.801592000 +0000 @@ -428,10 +428,15 @@ 'ldflags': [ '-pthread' ], }], [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi"', { - 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ], + # Add some useful flags which need to be specified on all modules anyway. + # `-fpic -fno-semantic-interposition` is the best relocation model for code that will live in a dlopened library + # If a downstream package needs capital `-fPIC` (unlikely) it can still override this (unlike CFLAGS which are injected at the very end) + # `-fvisibility=hidden` is something we're adding to fix downstream overzealous exports. + # The electron headers annotate their visibility correctly, but many third-party code does not which leads to bloated builds. + 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', '-fpic', '-fno-semantic-interposition', '-fvisibility=hidden' ], 'cflags_cc': [ '-fno-rtti', '-fno-exceptions', '-std=gnu++17' ], 'defines': [ '__STDC_FORMAT_MACROS' ], - 'ldflags': [ '-rdynamic' ], + #'ldflags': [ '-rdynamic' ], this is totally bogus — we are building a plugin, not a plugin host 'target_conditions': [ # The 1990s toolchain on SmartOS can't handle thin archives. ['_type=="static_library" and OS=="solaris"', { @@ -608,29 +613,7 @@ '-Wl,--export-dynamic', ], }], - # if node is built as an executable, - # the openssl mechanism for keeping itself "dload"-ed to ensure proper - # atexit cleanup does not apply - ['node_shared_openssl!="true" and node_shared!="true"', { - 'defines': [ - # `OPENSSL_NO_PINSHARED` prevents openssl from dload - # current node executable, - # see https://github.com/nodejs/node/pull/21848 - # or https://github.com/nodejs/node/issues/27925 - 'OPENSSL_NO_PINSHARED' - ], - }], - ['node_shared_openssl!="true"', { - # `OPENSSL_THREADS` is defined via GYP for openSSL for all architectures. - 'defines': [ - 'OPENSSL_THREADS', - ], - }], - ['node_shared_openssl!="true" and openssl_no_asm==1', { - 'defines': [ - 'OPENSSL_NO_ASM', - ], - }], + # Electron does not export its openssl fork (boringssl). Removing these defines which are bogus and can interfere with modules actually using openssl (signal-desktop is known to use it) ['OS == "zos"', { 'defines': [ '_XOPEN_SOURCE_EXTENDED',
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor