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