From: Benjamin Marzinski <bmarzins@redhat.com>
To: Martin Wilck <martin.wilck@suse.com>
Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>,
dm-devel@lists.linux.dev
Subject: Re: [PATCH 00/41] multipath-tools: comply with C library reserved names
Date: Fri, 9 Aug 2024 14:14:24 -0400 [thread overview]
Message-ID: <ZrZcgEz8dHRvyXk-@redhat.com> (raw)
In-Reply-To: <20240808152620.93965-1-mwilck@suse.com>
On Thu, Aug 08, 2024 at 05:25:39PM +0200, Martin Wilck wrote:
> The first 2 patches are minor, independent fixes.
>
> The rest of the set renames identifiers that possibly conflict with reserved
> names of the C library, and should have no influence on the functionality
> of the code.
>
> According to the glibc docs, user code must not redefine any type, function,
> variable, or macro names that are part of the ISO C standard [1]. Moreover,
> identifiers must not start with "__" (double underscore) or underscore and
> capital letter, and names starting with underscore are forbidden for globally
> visible symbols.
>
> This patch series tries to make the multipath-tools code comply with these
> requirements, at least to some extent. I haven't bothered renaming local
> or static variables, or variables like "__x" in macro bodies, for example.
> The starting point for the series was the request not to export strlcat
> and strlcpy any more [2].
>
> In most cases, I have simply replaced __xyz() or _xyz() by xyz__() (two
> underscores to make them better visible). In some cases, when xyz() was not
> defined, I've simply renamed _xyz() to xyz(). There are exceptions to these
> rules.
Despite some small misgivings about renaming symbols (which quite
possibly aren't being used by anyone) in our user-facing libraries,
libpmathpersist and libmpathcmd, for the set:
Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
> The set also fixes some typos where __attribute__ was misspelled.
>
> [1] https://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html
> [2] https://github.com/opensvc/multipath-tools/issues/91
>
> Martin Wilck (41):
> multipath-tools tests: make alias.test succeed with increased
> verbosity
> libmpathutil: avoid extra memory allocation in print_strbuf()
> libmpathutil: rename strlcat and strlcpy
> libmpathutil.version: remove strlcpy and strlcat, and LIBMULTIPATH
> section
> libmpathutil: fix __attribute typo in log_pthread.c
> libmultipath: devmapper.c: rename __DR_UNUSED__, and fix __attribute
> typo
> multipathd: fix __attribute typo
> multipath-tools: use common convention for "header file included"
> macros
> libmpathcmd: rename __mpath_connect() to mpath_connect__()
> libmpathutil: rename _MAX_CMD_LEN
> libmpathutil: rename __append_strbuf_str() and __get_strbuf_buf()
> libmpathutil: rename _log_bitfield_overflow()
> libmpathutil: rename _install_keyword() to install_keyword__()
> libmultipath: rename _NVME_LIB_C
> libmultipath: checkers.h: fix __CHECKER_FIRST_MSG in comment
> libmultipath: rename identifiers with leading underscores in
> devmapper.h
> libmultipath: rename identifiers with leading underscores in
> discovery.h
> libmultipath: rename __snprint_config()
> libmultipath: rename __unlock()
> libmultipath: rename __sysfs_attr_get_value()
> libmultipath: rename __snprint_foreign_topology()
> libmultipath: rename macros with double underscores in propsel.c
> libmultipath: rename enum values with double underscores in structs.h
> libmultipath: rename macros starting with underscore
> libmultipath: rename __internal_config variable
> libmultipath: rename _dm_flush_map() to dm_flush_map__()
> libmultipath: foreign: rename _check() to check__()
> libmultipath: rename _cleanup_foreign()
> libmultipath: rename _init_config()
> libmultipath: rename symbols starting with underscore in print.h
> libmultipath: remove dead code in pgpolicies.h
> libmultipath: remove struct and union names in cciss.h
> libmpathpersist: rename functions with double leading underscore
> libdmmp: rename macros starting with _DMMP
> libdmmp: rename enum values and variables starting with _DMMP_
> libdmmp: rename non-static functions starting with underscore
> multipathd: rename symbols with double leading underscore
> multipath-tools tests: rename functions with double underscores
> kpartx: rename macros with leading underscores
> libmpathutil: rename struct _vector to vector_s
> libmultipath: don't define __user
>
> create-config.mk | 4 +-
> kpartx/byteorder.h | 6 +-
> kpartx/crc32.h | 6 +-
> kpartx/dasd.h | 6 +-
> kpartx/devmapper.c | 20 +++---
> kpartx/devmapper.h | 6 +-
> kpartx/dos.h | 2 +-
> kpartx/efi.h | 6 +-
> kpartx/gpt.h | 4 +-
> kpartx/kpartx.h | 6 +-
> kpartx/lopart.h | 3 +
> kpartx/mac.h | 4 +-
> kpartx/xstrncpy.h | 3 +
> libdmmp/libdmmp.c | 72 +++++++++----------
> libdmmp/libdmmp/libdmmp.h | 6 +-
> libdmmp/libdmmp_misc.c | 10 +--
> libdmmp/libdmmp_mp.c | 12 ++--
> libdmmp/libdmmp_path.c | 22 +++---
> libdmmp/libdmmp_pg.c | 40 +++++------
> libdmmp/libdmmp_private.h | 32 ++++-----
> libmpathcmd/libmpathcmd.version | 4 +-
> libmpathcmd/mpath_cmd.c | 4 +-
> libmpathcmd/mpath_cmd.h | 8 +--
> libmpathpersist/libmpathpersist.version | 6 +-
> libmpathpersist/mpath_persist.c | 22 +++---
> libmpathpersist/mpath_persist.h | 45 ++++++------
> libmpathpersist/mpath_persist_int.h | 6 +-
> libmpathpersist/mpath_pr_ioctl.h | 5 ++
> libmpathpersist/mpathpr.h | 4 +-
> libmpathutil/debug.h | 6 +-
> libmpathutil/globals.h | 4 +-
> libmpathutil/libmpathutil.version | 90 ++++++++++--------------
> libmpathutil/log.h | 6 +-
> libmpathutil/log_pthread.c | 2 +-
> libmpathutil/log_pthread.h | 6 +-
> libmpathutil/msort.h | 4 +-
> libmpathutil/parser.c | 6 +-
> libmpathutil/parser.h | 32 ++++-----
> libmpathutil/strbuf.c | 29 +++++---
> libmpathutil/strbuf.h | 10 +--
> libmpathutil/time-util.h | 6 +-
> libmpathutil/util.c | 6 +-
> libmpathutil/util.h | 25 ++++---
> libmpathutil/uxsock.h | 7 +-
> libmpathutil/vector.c | 2 +-
> libmpathutil/vector.h | 10 +--
> libmpathvalid/mpath_valid.h | 6 +-
> libmultipath/alias.c | 4 +-
> libmultipath/alias.h | 6 +-
> libmultipath/blacklist.c | 14 ++--
> libmultipath/blacklist.h | 14 ++--
> libmultipath/checkers.h | 8 +--
> libmultipath/checkers/cciss.h | 22 +++---
> libmultipath/checkers/directio.c | 8 +--
> libmultipath/checkers/directio.h | 6 +-
> libmultipath/checkers/emc_clariion.c | 20 +++---
> libmultipath/checkers/emc_clariion.h | 6 +-
> libmultipath/checkers/hp_sw.h | 6 +-
> libmultipath/checkers/rdac.c | 20 +++---
> libmultipath/checkers/rdac.h | 6 +-
> libmultipath/checkers/readsector0.h | 6 +-
> libmultipath/checkers/tur.c | 10 +--
> libmultipath/checkers/tur.h | 6 +-
> libmultipath/config.c | 30 ++++----
> libmultipath/config.h | 10 +--
> libmultipath/configure.c | 2 +-
> libmultipath/configure.h | 6 +-
> libmultipath/defaults.h | 7 +-
> libmultipath/devmapper.c | 28 ++++----
> libmultipath/devmapper.h | 27 +++----
> libmultipath/dict.c | 4 +-
> libmultipath/dict.h | 9 +--
> libmultipath/discovery.c | 18 ++---
> libmultipath/discovery.h | 38 +++++-----
> libmultipath/dm-generic.c | 8 +--
> libmultipath/dm-generic.h | 6 +-
> libmultipath/dmparser.c | 2 +-
> libmultipath/dmparser.h | 7 +-
> libmultipath/file.h | 6 +-
> libmultipath/foreign.c | 36 +++++-----
> libmultipath/foreign.h | 19 ++---
> libmultipath/foreign/nvme.c | 50 ++++++-------
> libmultipath/generic.h | 14 ++--
> libmultipath/hwtable.h | 6 +-
> libmultipath/io_err_stat.c | 4 +-
> libmultipath/io_err_stat.h | 6 +-
> libmultipath/libmultipath.version | 20 +++---
> libmultipath/libsg.h | 6 +-
> libmultipath/list.h | 6 +-
> libmultipath/lock.c | 4 +-
> libmultipath/lock.h | 8 +--
> libmultipath/nvme-lib.c | 2 +-
> libmultipath/nvme-lib.h | 8 +--
> libmultipath/nvme/argconfig.h | 4 +-
> libmultipath/nvme/json.h | 4 +-
> libmultipath/nvme/linux/nvme.h | 6 +-
> libmultipath/nvme/linux/nvme_ioctl.h | 6 +-
> libmultipath/nvme/nvme-ioctl.h | 6 +-
> libmultipath/nvme/nvme.h | 6 +-
> libmultipath/nvme/plugin.h | 4 +-
> libmultipath/pgpolicies.h | 10 +--
> libmultipath/print.c | 68 +++++++++---------
> libmultipath/print.h | 34 ++++-----
> libmultipath/prio.h | 6 +-
> libmultipath/prioritizers/alua.h | 4 +-
> libmultipath/prioritizers/alua_rtpg.c | 1 -
> libmultipath/prioritizers/alua_rtpg.h | 6 +-
> libmultipath/prioritizers/alua_spc3.h | 6 +-
> libmultipath/prioritizers/weightedpath.h | 4 +-
> libmultipath/prkey.h | 6 +-
> libmultipath/propsel.c | 10 +--
> libmultipath/propsel.h | 3 +
> libmultipath/sg_include.h | 4 +-
> libmultipath/structs.c | 12 ++--
> libmultipath/structs.h | 22 +++---
> libmultipath/structs_vec.c | 2 +-
> libmultipath/structs_vec.h | 8 +--
> libmultipath/switchgroup.h | 5 ++
> libmultipath/sysfs.c | 6 +-
> libmultipath/sysfs.h | 4 +-
> libmultipath/uevent.h | 6 +-
> libmultipath/unaligned.h | 6 +-
> libmultipath/valid.c | 14 ++--
> libmultipath/valid.h | 6 +-
> libmultipath/version.h | 6 +-
> libmultipath/wwids.h | 6 +-
> mpathpersist/main.c | 6 +-
> mpathpersist/main.h | 4 ++
> multipathd/cli.c | 6 +-
> multipathd/cli.h | 16 ++---
> multipathd/cli_handlers.c | 8 +--
> multipathd/cli_handlers.h | 4 +-
> multipathd/dmevents.c | 2 +-
> multipathd/dmevents.h | 6 +-
> multipathd/fpin.h | 4 +-
> multipathd/init_unwinder.h | 4 +-
> multipathd/main.c | 36 +++++-----
> multipathd/main.h | 6 +-
> multipathd/pidfile.h | 4 ++
> multipathd/uxclnt.h | 5 ++
> multipathd/uxlsnr.c | 6 +-
> multipathd/uxlsnr.h | 4 +-
> multipathd/waiter.c | 2 +-
> multipathd/waiter.h | 6 +-
> tests/alias.c | 64 +++++++++++------
> tests/mpathvalid.c | 2 +-
> tests/strbuf.c | 80 +++++++++++++++++++--
> tests/sysfs.c | 20 +++---
> tests/test-lib.c | 4 +-
> tests/test-lib.h | 20 +++---
> tests/test-log.h | 4 +-
> tests/valid.c | 16 ++---
> tests/wrap64.h | 4 +-
> 153 files changed, 981 insertions(+), 853 deletions(-)
>
> --
> 2.46.0
next prev parent reply other threads:[~2024-08-09 18:14 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-08 15:25 [PATCH 00/41] multipath-tools: comply with C library reserved names Martin Wilck
2024-08-08 15:25 ` [PATCH 01/41] multipath-tools tests: make alias.test succeed with increased verbosity Martin Wilck
2024-08-08 15:25 ` [PATCH 02/41] libmpathutil: avoid extra memory allocation in print_strbuf() Martin Wilck
2024-08-08 15:25 ` [PATCH 03/41] libmpathutil: rename strlcat and strlcpy Martin Wilck
2024-08-08 15:25 ` [PATCH 04/41] libmpathutil.version: remove strlcpy and strlcat, and LIBMULTIPATH section Martin Wilck
2024-08-08 15:25 ` [PATCH 05/41] libmpathutil: fix __attribute typo in log_pthread.c Martin Wilck
2024-08-08 15:25 ` [PATCH 06/41] libmultipath: devmapper.c: rename __DR_UNUSED__, and fix __attribute typo Martin Wilck
2024-08-08 15:25 ` [PATCH 07/41] multipathd: " Martin Wilck
2024-08-08 15:25 ` [PATCH 08/41] multipath-tools: use common convention for "header file included" macros Martin Wilck
2024-08-08 15:25 ` [PATCH 09/41] libmpathcmd: rename __mpath_connect() to mpath_connect__() Martin Wilck
2024-08-08 15:25 ` [PATCH 10/41] libmpathutil: rename _MAX_CMD_LEN Martin Wilck
2024-08-08 15:25 ` [PATCH 11/41] libmpathutil: rename __append_strbuf_str() and __get_strbuf_buf() Martin Wilck
2024-08-08 15:25 ` [PATCH 12/41] libmpathutil: rename _log_bitfield_overflow() Martin Wilck
2024-08-08 15:25 ` [PATCH 13/41] libmpathutil: rename _install_keyword() to install_keyword__() Martin Wilck
2024-08-08 15:25 ` [PATCH 14/41] libmultipath: rename _NVME_LIB_C Martin Wilck
2024-08-08 15:25 ` [PATCH 15/41] libmultipath: checkers.h: fix __CHECKER_FIRST_MSG in comment Martin Wilck
2024-08-08 15:25 ` [PATCH 16/41] libmultipath: rename identifiers with leading underscores in devmapper.h Martin Wilck
2024-08-08 15:25 ` [PATCH 17/41] libmultipath: rename identifiers with leading underscores in discovery.h Martin Wilck
2024-08-08 15:25 ` [PATCH 18/41] libmultipath: rename __snprint_config() Martin Wilck
2024-08-08 15:25 ` [PATCH 19/41] libmultipath: rename __unlock() Martin Wilck
2024-08-08 15:25 ` [PATCH 20/41] libmultipath: rename __sysfs_attr_get_value() Martin Wilck
2024-08-08 15:26 ` [PATCH 21/41] libmultipath: rename __snprint_foreign_topology() Martin Wilck
2024-08-08 15:26 ` [PATCH 22/41] libmultipath: rename macros with double underscores in propsel.c Martin Wilck
2024-08-08 15:26 ` [PATCH 23/41] libmultipath: rename enum values with double underscores in structs.h Martin Wilck
2024-08-08 15:26 ` [PATCH 24/41] libmultipath: rename macros starting with underscore Martin Wilck
2024-08-08 15:26 ` [PATCH 25/41] libmultipath: rename __internal_config variable Martin Wilck
2024-08-08 15:26 ` [PATCH 26/41] libmultipath: rename _dm_flush_map() to dm_flush_map__() Martin Wilck
2024-08-08 15:26 ` [PATCH 27/41] libmultipath: foreign: rename _check() to check__() Martin Wilck
2024-08-08 15:26 ` [PATCH 28/41] libmultipath: rename _cleanup_foreign() Martin Wilck
2024-08-08 15:26 ` [PATCH 29/41] libmultipath: rename _init_config() Martin Wilck
2024-08-08 15:26 ` [PATCH 30/41] libmultipath: rename symbols starting with underscore in print.h Martin Wilck
2024-08-08 15:26 ` [PATCH 31/41] libmultipath: remove dead code in pgpolicies.h Martin Wilck
2024-08-08 15:26 ` [PATCH 32/41] libmultipath: remove struct and union names in cciss.h Martin Wilck
2024-08-08 15:26 ` [PATCH 33/41] libmpathpersist: rename functions with double leading underscore Martin Wilck
2024-08-08 15:26 ` [PATCH 34/41] libdmmp: rename macros starting with _DMMP Martin Wilck
2024-08-08 15:26 ` [PATCH 35/41] libdmmp: rename enum values and variables starting with _DMMP_ Martin Wilck
2024-08-08 15:26 ` [PATCH 36/41] libdmmp: rename non-static functions starting with underscore Martin Wilck
2024-08-08 15:26 ` [PATCH 37/41] multipathd: rename symbols with double leading underscore Martin Wilck
2024-08-08 15:26 ` [PATCH 38/41] multipath-tools tests: rename functions with double underscores Martin Wilck
2024-08-08 15:26 ` [PATCH 39/41] kpartx: rename macros with leading underscores Martin Wilck
2024-08-08 15:26 ` [PATCH 40/41] libmpathutil: rename struct _vector to vector_s Martin Wilck
2024-08-08 15:26 ` [PATCH 41/41] libmultipath: don't define __user Martin Wilck
2024-08-09 18:14 ` Benjamin Marzinski [this message]
2024-08-12 16:44 ` [PATCH 00/41] multipath-tools: comply with C library reserved names Martin Wilck
2024-08-12 22:06 ` Benjamin Marzinski
2024-08-13 9:43 ` Martin Wilck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZrZcgEz8dHRvyXk-@redhat.com \
--to=bmarzins@redhat.com \
--cc=christophe.varoqui@opensvc.com \
--cc=dm-devel@lists.linux.dev \
--cc=martin.wilck@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.