Skip to content

Commit 1a67a59

Browse files
author
Martin Belanger
committed
nvmf: fix generator emitting setters for read-only members in .ld files
generate_ld() always emitted both getter and setter entries regardless of the member's is_const flag, unlike generate_hdr() and generate_src() which both gate the setter on not is_const. As a result, accessors.ld exported setter symbols that had no __public definition in accessors.c. Also introduce LD_BANNER (a compact copyright block without the ASCII art) for generated .ld files, since the "Generated Code" art is only useful in .h/.c files that editors open regularly. Regenerate accessors.ld to remove the spurious setter entries and update the banner. Signed-off-by: Martin Belanger <[email protected]>
1 parent 6ff8d62 commit 1a67a59

2 files changed

Lines changed: 15 additions & 6 deletions

File tree

libnvme/src/accessors.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ LIBNVME_ACCESSORS_3 {
6161
libnvme_ctrl_get_cntrltype;
6262
libnvme_ctrl_get_cntlid;
6363
libnvme_ctrl_get_dctype;
64+
libnvme_ctrl_get_phy_slot;
6465
libnvme_ctrl_get_host_traddr;
6566
libnvme_ctrl_get_host_iface;
6667
libnvme_ctrl_get_discovery_ctrl;
@@ -71,7 +72,6 @@ LIBNVME_ACCESSORS_3 {
7172
libnvme_ctrl_set_discovered;
7273
libnvme_ctrl_get_persistent;
7374
libnvme_ctrl_set_persistent;
74-
libnvme_ctrl_get_phy_slot;
7575
libnvme_subsystem_get_name;
7676
libnvme_subsystem_get_sysfs_dir;
7777
libnvme_subsystem_get_subsysnqn;

libnvme/tools/generator/generate-accessors.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,16 @@
7474
" */"
7575
)
7676

77+
LD_BANNER = (
78+
"/**\n"
79+
" * This file is part of libnvme.\n"
80+
" *\n"
81+
" * Copyright (c) 2025, Dell Technologies Inc. or its subsidiaries.\n"
82+
" * Authors: Martin Belanger <[email protected]>\n"
83+
" *\n"
84+
" */"
85+
)
86+
7787
# ---------------------------------------------------------------------------
7888
# Regular expressions
7989
# ---------------------------------------------------------------------------
@@ -500,10 +510,9 @@ def generate_src(f, prefix, struct_name, members):
500510
def generate_ld(f, prefix, struct_name, members):
501511
"""Write linker version-script entries for all members of one struct."""
502512
for member in members:
503-
f.write(
504-
f'\t\t{_get_name(prefix, struct_name, member.name)};\n'
505-
f'\t\t{_set_name(prefix, struct_name, member.name)};\n'
506-
)
513+
f.write(f'\t\t{_get_name(prefix, struct_name, member.name)};\n')
514+
if not member.is_const:
515+
f.write(f'\t\t{_set_name(prefix, struct_name, member.name)};\n')
507516

508517

509518
# ---------------------------------------------------------------------------
@@ -656,7 +665,7 @@ def main():
656665
f.write(
657666
f'{SPDX_LD}\n'
658667
f'\n'
659-
f'{BANNER}\n'
668+
f'{LD_BANNER}\n'
660669
f'\n'
661670
f'LIBNVME_ACCESSORS_3 {{\n'
662671
f'\tglobal:\n'

0 commit comments

Comments
 (0)