UNIXROOT on OS/2 is used to specify a drive where unix FHS is
installed. If M4 is not executed on a drive where it exists without
UNIXROOT support, modules cannot be located. Because '/' is a root of
a current drive.

* m4/path.c (UNIXROOT): Define it on OS/2 or empty string on others.
(m4__include_init): Prepend UNIXROOT to PKGLIBDIR.
---
 m4/path.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/m4/path.c b/m4/path.c
index bc8b376..10cc098 100644
--- a/m4/path.c
+++ b/m4/path.c
@@ -378,6 +378,12 @@ m4_load_filename (m4 *context, const m4_call_info *caller,
 }
 
 
+#if OS2
+#  define UNIXROOT "/@unixroot"
+#else
+#  define UNIXROOT ""
+#endif
+
 void
 m4__include_init (m4 *context)
 {
@@ -393,7 +399,7 @@ m4__include_init (m4 *context)
       search_path_add (info, "", false);
 
     /* Non-core modules installation directory. */
-    search_path_add (info, PKGLIBDIR, false);
+    search_path_add (info, UNIXROOT PKGLIBDIR, false);
   }
 
 #ifdef DEBUG_INCL
-- 
1.8.5.2


_______________________________________________
M4-patches mailing list
M4-patches@gnu.org
https://lists.gnu.org/mailman/listinfo/m4-patches

Reply via email to