mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-13 16:27:39 -04:00
The tests for linker version script support were incorrect in both make and meson build systems. The problem was that the script needs to match the object it's used with, whereas the tests used dummy objects with no matching symbols. Updated both systems to test with proper symbol matching between the test object and version script using a dedicated test.lds file. Generated-by: Claude Code 1.0.65 (claude-sonnet-4@20250514)
64 lines
1.5 KiB
Meson
64 lines
1.5 KiB
Meson
version_script = '-Wl,--version-script=@0@'.format(meson.current_source_dir() / 'version.lds')
|
|
test_code = 'void test_func(){} int main(){}'
|
|
if not cc.links(test_code, args: ['-Wl,--version-script=' + meson.current_source_dir() / 'test.lds'])
|
|
version_script = []
|
|
endif
|
|
|
|
sources = files(
|
|
'fdt.c',
|
|
'fdt_addresses.c',
|
|
'fdt_check.c',
|
|
'fdt_empty_tree.c',
|
|
'fdt_overlay.c',
|
|
'fdt_ro.c',
|
|
'fdt_rw.c',
|
|
'fdt_strerror.c',
|
|
'fdt_sw.c',
|
|
'fdt_wip.c',
|
|
)
|
|
|
|
link_args = []
|
|
if cc.has_link_argument('-Wl,--no-undefined')
|
|
link_args += '-Wl,--no-undefined'
|
|
else
|
|
# -undefined error is the equivalent of --no-undefined for the macOS linker,
|
|
# but -undefined would also be understood as a valid argument for GNU ld!
|
|
link_args += cc.get_supported_link_arguments('-Wl,-undefined,error')
|
|
endif
|
|
|
|
link_args += version_script
|
|
libfdt = library(
|
|
'fdt', sources,
|
|
version: meson.project_version(),
|
|
link_args: link_args,
|
|
link_depends: 'version.lds',
|
|
install: get_option('default_library') != 'static' or not wheel_only,
|
|
)
|
|
|
|
libfdt_inc = include_directories('.')
|
|
|
|
libfdt_dep = declare_dependency(
|
|
include_directories: libfdt_inc,
|
|
link_with: libfdt,
|
|
)
|
|
meson.override_dependency('libfdt', libfdt_dep)
|
|
|
|
if not wheel_only
|
|
install_headers(
|
|
files(
|
|
'fdt.h',
|
|
'libfdt.h',
|
|
'libfdt_env.h',
|
|
)
|
|
)
|
|
|
|
pkgconfig = import('pkgconfig')
|
|
|
|
pkgconfig.generate(
|
|
libraries: libfdt,
|
|
version: meson.project_version(),
|
|
filebase: 'libfdt',
|
|
name: 'libfdt',
|
|
description: 'Flat Device Tree manipulation',
|
|
)
|
|
endif
|