The following files use macro DOUBLE_SLASH_IS_DISTINCT_ROOT:
  lib/basename-lgpl.c
  lib/basename-lgpl.h
  lib/canonicalize.c
  lib/canonicalize-lgpl.c
  lib/dirname-lgpl.c

The corresponding modules should therefore have a dependency to
'double-slash-root'. Relying on an implicit dependency, e.g.
  canonicalize -> hash-triple -> same -> dirname -> dirname-lgpl -> 
basename-lgpl -> double-slash-root
is dangerous (maintainability problem). Listing the .m4 file
without invoking its macro is redundant.


2020-07-07  Bruno Haible  <[email protected]>

        Clarify dependencies to double-slash-root.
        * modules/canonicalize (Files): Remove m4/double-slash-root.m4.
        (Depends-on): Add double-slash-root.
        * modules/canonicalize-lgpl (Depends-on): Add double-slash-root.
        * modules/dirname-lgpl (Depends-on): Add double-slash-root.

diff --git a/modules/canonicalize b/modules/canonicalize
index 233fba9..a59b9fb 100644
--- a/modules/canonicalize
+++ b/modules/canonicalize
@@ -5,10 +5,10 @@ Files:
 lib/canonicalize.h
 lib/canonicalize.c
 m4/canonicalize.m4
-m4/double-slash-root.m4
 
 Depends-on:
 areadlink-with-size
+double-slash-root
 errno
 extensions
 file-set
diff --git a/modules/canonicalize-lgpl b/modules/canonicalize-lgpl
index 3526422..20ee790 100644
--- a/modules/canonicalize-lgpl
+++ b/modules/canonicalize-lgpl
@@ -10,15 +10,16 @@ Depends-on:
 extensions
 stdlib
 nocrash
-alloca-opt      [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
-errno           [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
-filename        [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
-lstat           [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
-malloca         [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
-memmove         [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
-pathmax         [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
-readlink        [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
-sys_stat        [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+alloca-opt        [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+double-slash-root [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+errno             [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+filename          [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+lstat             [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+malloca           [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+memmove           [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+pathmax           [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+readlink          [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
+sys_stat          [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test 
$REPLACE_CANONICALIZE_FILE_NAME = 1]
 
 configure.ac:
 gl_CANONICALIZE_LGPL
diff --git a/modules/dirname-lgpl b/modules/dirname-lgpl
index b758535..8eb1dd7 100644
--- a/modules/dirname-lgpl
+++ b/modules/dirname-lgpl
@@ -8,6 +8,7 @@ lib/stripslash.c
 
 Depends-on:
 basename-lgpl
+double-slash-root
 filename
 malloc-posix
 stdbool


Reply via email to