mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 23:05:04 +01:00
Set executable stack flag when linking
This is required on some modern hardneded Linux systems to allow to dlopen executable objects (load plugins). https://discourse.ardour.org/t/tls-1295-lea-so-linux-vers-doesnt-work/111778/20?u=x42
This commit is contained in:
parent
1c0882ba56
commit
ec5b06e63d
6 changed files with 42 additions and 12 deletions
|
|
@ -678,6 +678,7 @@ def build(bld):
|
|||
obj.source += [ 'bundle_env_mingw.cc' ]
|
||||
obj.source += [ 'windows_icon.rc' ]
|
||||
else:
|
||||
obj.linkflags += ' -zexecstack'
|
||||
obj.source += [ 'bundle_env_linux.cc' ]
|
||||
obj.use += [ 'X11' ]
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ def build(bld):
|
|||
obj.source = hardour_sources
|
||||
obj.target = 'hardour-' + bld.env['VERSION']
|
||||
obj.includes = ['.']
|
||||
obj.linkflags= ''
|
||||
obj.use = [ 'libpbd',
|
||||
'libardour',
|
||||
'libardour_cp',
|
||||
|
|
@ -51,11 +52,13 @@ def build(bld):
|
|||
if sys.platform == 'darwin':
|
||||
obj.uselib += ' AUDIOUNITS OSX'
|
||||
obj.use += ' libappleutility'
|
||||
elif bld.env['build_target'] == 'mingw':
|
||||
if bld.env['DEBUG'] == False:
|
||||
obj.linkflags += ' -mwindows'
|
||||
else:
|
||||
obj.linkflags += ' -zexecstack'
|
||||
|
||||
obj.includes += ['../libs']
|
||||
|
||||
if bld.env['build_target'] == 'mingw':
|
||||
if bld.env['DEBUG'] == False:
|
||||
obj.linkflags = ['-mwindows']
|
||||
|
||||
if bld.is_defined('NEED_INTL'):
|
||||
obj.linkflags = ' -lintl'
|
||||
obj.linkflags += ' -lintl'
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ def build(bld):
|
|||
obj.source = 'vst3-scanner.cc'
|
||||
obj.target = 'ardour-vst3-scanner'
|
||||
obj.includes = [ '../pbd/', '../ardour/', '../vst3/', '..' ]
|
||||
obj.linkflags = ''
|
||||
obj.defines = [
|
||||
'VST3_SCANNER_APP',
|
||||
'VERSIONSTRING="' + bld.env['VERSION'] + '"',
|
||||
|
|
@ -31,11 +32,14 @@ def build(bld):
|
|||
|
||||
if bld.is_defined('HAVE_USB'):
|
||||
obj.uselib += ' USB'
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
obj.uselib += ' OSX'
|
||||
if bld.env['build_target'] == 'mingw':
|
||||
obj.uselib += ' GDI32'
|
||||
obj.linkflags = ['-mwindows']
|
||||
obj.linkflags += ' -mwindows'
|
||||
else:
|
||||
obj.linkflags += ' -zexecstack'
|
||||
|
||||
if re.search ("bsd", sys.platform) != None:
|
||||
obj.defines.append('_POSIX_C_SOURCE=200809L')
|
||||
|
|
@ -47,10 +51,10 @@ def build(bld):
|
|||
obj = bld (features = 'cxx c cxxprogram')
|
||||
obj.source = ( 'vst2-scanner.cc' )
|
||||
obj.target = 'ardour-vst-scanner'
|
||||
obj.linkflags= ''
|
||||
if bld.is_defined('WINDOWS_VST_SUPPORT'):
|
||||
bld (features = 'c', name='vstwin', source='vstwin.c', uselib = 'GIOMM', includes = [ '../pbd/', '../ardour/', '.' ])
|
||||
obj.uselib = ['GIOMM', 'DL', 'GDI32', 'ARCHIVE', 'CURL', 'XML']
|
||||
obj.linkflags = ['-mwindows']
|
||||
obj.use = [ 'libpbd', 'libtemporal', 'libevoral', 'vstwin' ]
|
||||
else:
|
||||
obj.uselib = ['GIOMM', 'DL', 'OSX', 'ARCHIVE', 'CURL', 'XML' ]
|
||||
|
|
@ -59,6 +63,13 @@ def build(bld):
|
|||
if bld.is_defined('HAVE_USB'):
|
||||
obj.uselib += ['USB']
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
pass
|
||||
elif bld.env['build_target'] == 'mingw':
|
||||
obj.linkflags += ' -mwindows'
|
||||
else:
|
||||
obj.linkflags += ' -zexecstack'
|
||||
|
||||
obj.includes = [ '../pbd/', '../ardour/', '.' ]
|
||||
obj.defines = [
|
||||
'_POSIX_SOURCE',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env python
|
||||
import os
|
||||
import sys
|
||||
|
||||
def options(opt):
|
||||
pass
|
||||
|
|
@ -10,6 +11,7 @@ def configure(conf):
|
|||
def build(bld):
|
||||
if bld.env['build_target'] == 'mingw':
|
||||
return
|
||||
|
||||
obj = bld (features = 'c cprogram')
|
||||
obj.source = 'exec_wrapper.c'
|
||||
obj.target = 'ardour-exec-wrapper'
|
||||
|
|
@ -18,3 +20,8 @@ def build(bld):
|
|||
'_POSIX_SOURCE',
|
||||
'_XOPEN_SOURCE=500',
|
||||
]
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
pass
|
||||
else:
|
||||
obj.linkflags = ' -zexecstack'
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ def build(bld):
|
|||
obj.source = 'luasession.cc'
|
||||
obj.target = 'luasession'
|
||||
obj.includes = ['../libs']
|
||||
obj.linkflags = ''
|
||||
obj.use = ['liblua',
|
||||
'libpbd',
|
||||
'libardour',
|
||||
|
|
@ -66,12 +67,13 @@ def build(bld):
|
|||
if sys.platform == 'darwin':
|
||||
obj.uselib += ' AUDIOUNITS OSX'
|
||||
obj.use += ' libappleutility'
|
||||
|
||||
if bld.env['build_target'] == 'mingw':
|
||||
obj.linkflags = ['-mwindows']
|
||||
elif bld.env['build_target'] == 'mingw':
|
||||
obj.linkflags += ' -mwindows'
|
||||
else:
|
||||
obj.linkflags += ' -zexecstack'
|
||||
|
||||
if bld.is_defined('NEED_INTL'):
|
||||
obj.linkflags = ' -lintl'
|
||||
obj.linkflags += ' -lintl'
|
||||
|
||||
if bld.env['build_target'] == 'mingw':
|
||||
obj.install_path = bld.env['BINDIR']
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ def build_ardour_util(bld, util):
|
|||
obj.source = ['common.cc', util + '.cc' ]
|
||||
obj.target = pgmprefix + '-' + util
|
||||
obj.includes = ['.']
|
||||
obj.linkflags= ''
|
||||
obj.use = [ 'libpbd',
|
||||
'libardour',
|
||||
'libardour_cp',
|
||||
|
|
@ -56,13 +57,18 @@ def build_ardour_util(bld, util):
|
|||
if sys.platform == 'darwin':
|
||||
obj.uselib += ' AUDIOUNITS OSX'
|
||||
obj.use += ' libappleutility'
|
||||
elif bld.env['build_target'] == 'mingw':
|
||||
obj.linkflags += ' -mwindows'
|
||||
else:
|
||||
obj.linkflags += ' -zexecstack'
|
||||
|
||||
obj.includes += ['../libs']
|
||||
|
||||
if bld.env['build_target'] == 'mingw':
|
||||
obj.install_path = bld.env['BINDIR']
|
||||
|
||||
if bld.is_defined('NEED_INTL'):
|
||||
obj.linkflags = ' -lintl'
|
||||
obj.linkflags += ' -lintl'
|
||||
|
||||
def build(bld):
|
||||
# session-utils depend on the dummy backend
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue