Re: [PATCH 00/41] multipath-tools: comply with C library reserved names

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
 
> 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





[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux