mirror of
https://github.com/jimeh/build-emacs-for-macos.git
synced 2026-02-19 06:06:40 +00:00
fix(native_comp): add option to enable/disable relinking *.eln files
Relinking the /usr/local/lib/gcc/10/libgcc_s.1.dylib shared library within bundled *.eln files is still causing issues with code signing, so I'm adding an option to toggle *.eln file re-linking on/off, with it on by default.
This commit is contained in:
@@ -107,7 +107,7 @@ class Build
|
||||
handle_native_lisp(app)
|
||||
add_cli_helper(app)
|
||||
|
||||
LibEmbedder.new(app, brew_dir, extra_libs).embed
|
||||
LibEmbedder.new(app, brew_dir, extra_libs, optsion[:relink_eln]).embed
|
||||
GccLibEmbedder.new(app, gcc_info).embed if options[:native_comp]
|
||||
|
||||
archive_build(build_dir) if options[:archive]
|
||||
@@ -157,11 +157,22 @@ class Build
|
||||
end
|
||||
|
||||
def extra_libs
|
||||
@extra_libs ||= [
|
||||
return @extra_libs if @extra_libs
|
||||
|
||||
libs = [
|
||||
File.join(brew_dir, 'opt/expat/lib/libexpat.1.dylib'),
|
||||
File.join(brew_dir, 'opt/libiconv/lib/libiconv.2.dylib'),
|
||||
File.join(brew_dir, 'opt/zlib/lib/libz.1.dylib')
|
||||
]
|
||||
|
||||
if options[:native_comp]
|
||||
libgcc_s = File.join(
|
||||
brew_dir, 'lib', 'gcc', gcc_info.major_version, 'libgcc_s.1.dylib'
|
||||
)
|
||||
libs << libgcc_s if File.exist?(libgcc_s)
|
||||
end
|
||||
|
||||
@extra_libs = libs
|
||||
end
|
||||
|
||||
def download_tarball(sha)
|
||||
@@ -755,7 +766,7 @@ class LibEmbedder < AbstractEmbedder
|
||||
attr_reader :lib_source
|
||||
attr_reader :extra_libs
|
||||
|
||||
def initialize(app, lib_source, extra_libs = [])
|
||||
def initialize(app, lib_source, extra_libs = [], embed_eln_files = true)
|
||||
super(app)
|
||||
|
||||
@lib_source = lib_source
|
||||
@@ -777,7 +788,7 @@ class LibEmbedder < AbstractEmbedder
|
||||
rel_path = Pathname.new(lib_dir).relative_path_from(
|
||||
Pathname.new(File.dirname(binary))
|
||||
).to_s
|
||||
eln_files.each { |f| copy_libs(f, rel_path) }
|
||||
eln_files.each { |f| copy_libs(f, rel_path) } if embed_eln_files
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1086,6 +1097,12 @@ if __FILE__ == $PROGRAM_NAME
|
||||
cli_options[:native_full_aot] = v
|
||||
end
|
||||
|
||||
opts.on('--[no-]relink-eln-files',
|
||||
'Enable/disable re-linking shared libraries in bundled *.eln ' \
|
||||
'files (default: enabled)') do |v|
|
||||
cli_options[:relink_eln] = v
|
||||
end
|
||||
|
||||
opts.on('--[no-]rsvg',
|
||||
'Enable/disable SVG image support via librsvg ' \
|
||||
'(default: enabled)') do |v|
|
||||
|
||||
Reference in New Issue
Block a user