2023-08-16 22:26:55 +00:00
|
|
|
1. Sort -L flags to unbreak linking when any other version of Samba is installed.
|
|
|
|
|
|
|
|
2. Use -Wl,-no-undefined as on other platforms.
|
|
|
|
|
|
|
|
Index: buildtools/wafsamba/samba_autoconf.py
|
|
|
|
--- buildtools/wafsamba/samba_autoconf.py.orig
|
|
|
|
+++ buildtools/wafsamba/samba_autoconf.py
|
2023-09-08 05:21:37 +00:00
|
|
|
@@ -936,6 +936,27 @@ def ADD_LDFLAGS(conf, flags, testflags=False):
|
2023-08-16 22:26:55 +00:00
|
|
|
if not 'EXTRA_LDFLAGS' in conf.env:
|
|
|
|
conf.env['EXTRA_LDFLAGS'] = []
|
|
|
|
conf.env['EXTRA_LDFLAGS'].extend(TO_LIST(flags))
|
|
|
|
+
|
|
|
|
+ ''' Make sure things go in order:
|
|
|
|
+ 1. Local -L and -rpath flags
|
|
|
|
+ 2. External -L and -rpath flags
|
|
|
|
+ 3. Others
|
|
|
|
+ '''
|
|
|
|
+ localL = []
|
|
|
|
+ extL = []
|
|
|
|
+ other = []
|
|
|
|
+ for f in conf.env['EXTRA_LDFLAGS']:
|
|
|
|
+ if f.startswith("-L%s" % "/usr/ports"):
|
|
|
|
+ localL.extend( [ f ] )
|
|
|
|
+ elif f.startswith("-L"):
|
|
|
|
+ extL.extend( [ f ] )
|
|
|
|
+ else:
|
|
|
|
+ other.extend( [ f ] )
|
|
|
|
+ conf.env['EXTRA_LDFLAGS'] = []
|
|
|
|
+ conf.env['EXTRA_LDFLAGS'].extend(localL)
|
|
|
|
+ conf.env['EXTRA_LDFLAGS'].extend(extL)
|
|
|
|
+ conf.env['EXTRA_LDFLAGS'].extend(other)
|
|
|
|
+
|
|
|
|
return flags
|
|
|
|
|
|
|
|
|
2023-09-08 05:21:37 +00:00
|
|
|
@@ -1007,7 +1028,7 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(conf):
|
2023-08-16 22:26:55 +00:00
|
|
|
# symbols used for fuzzers are only defined by compiler wrappers.
|
|
|
|
return
|
|
|
|
|
|
|
|
- if not sys.platform.startswith("openbsd"):
|
|
|
|
+ if True:
|
|
|
|
# we don't want any libraries or modules to rely on runtime
|
|
|
|
# resolution of symbols
|
|
|
|
conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True)
|