On 09/20/2013 11:33 AM, serge wrote: > > hello > > There is a difference in the way "search path" is handle between > m4-1.4.2 and m4-1.4.14. > > - With m4-1.4.2 each m4 file that is include will be search by > default in the current path and each path include by -I option. > > - With m4-1.14 only the first m4 file will be search in current and > path include by -I option, all other m4 file will be search in the path > match by the first include m4 file.
Thanks for the report; however, I cannot reproduce it with only trivial files, whether by command line usage or by inclusion via include: $ m4 --version | head -n1 m4 (GNU M4) 1.4.16 $ mkdir a b $ echo hi > b/f $ echo bye > b/g $ strace -e trace=open m4 -I a -I b f g open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 open("f", O_RDONLY) = -1 ENOENT (No such file or directory) open("a/f", O_RDONLY) = -1 ENOENT (No such file or directory) open("b/f", O_RDONLY) = 3 hi open("g", O_RDONLY) = -1 ENOENT (No such file or directory) open("a/g", O_RDONLY) = -1 ENOENT (No such file or directory) open("b/g", O_RDONLY) = 3 bye +++ exited with 0 +++ $ echo 'include(./f)include(./g)dnl' | strace -e trace=open m4 -I a -I b open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 open("./f", O_RDONLY) = -1 ENOENT (No such file or directory) open("a/./f", O_RDONLY) = -1 ENOENT (No such file or directory) open("b/./f", O_RDONLY) = 3 hi open("./g", O_RDONLY) = -1 ENOENT (No such file or directory) open("a/./g", O_RDONLY) = -1 ENOENT (No such file or directory) open("b/./g", O_RDONLY) = 3 bye +++ exited with 0 +++ > DEBIAN-SQUEEZE:strace -e trace=open m4 -DconfOLEANE_OS=linux -I../ > -I/usr/share/sendmail-dev/cf/ m4/cf.m4 cluster/mx-daemon.mc > > cluster/mx-daemon.cf > open("m4/cf.m4", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("../m4/cf.m4", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("/usr/share/sendmail-dev/cf/m4/cf.m4", O_RDONLY) = 3 > > open("/usr/share/sendmail-dev/cf/feature/oleane-name.m4", O_RDONLY) = -1 > ENOENT (No such file or directory) I further note that 'feature/oleane-name.m4' is not specified on the command line, but that you didn't list the contents of m4/cf.m4; if there is any caching, it is most likely happening in the m4 code embedded in m4/cf.m4 has changed between the two machines you are testing on, rather than a bug in m4 itself. I'm going to have to assume this is not an m4 bug if you cannot provide more details to convince me otherwise. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature