
On 04/28/2010 07:00 AM, Daniel Veillard wrote:
ACK.
Given Jim's ACK, and my discussion below, I've pushed 1/2 as-is. I'll wait for further comments and a v2 of my 2/2 patch before pushing it.
BTW since we have auto* experts around, I tend to use the CDPATH environment variable to make navigation within my tree easier, but has a tendency to break some of the auto* target, because as a result the cd command outputs the target directory instead of being silent. This used to break for example "make dist" in subtle ways.
Yeah, that can be an issue. If you like CDPATH (and I do; I use it regularly), I recommend: - do _not_ export it to the environment. Set it as a shell-local variable in .bashrc, and not an environment variable, so that child shells spawned by make don't see it set - consider explicitly putting . in CDPATH, since some shells like older zsh did not follow POSIX rules of implicitly trying . after exhausting CDPATH Meanwhile, there's a couple things to remember about when CDPATH will interfere with cd. 'cd name' and even 'cd name/sub' must produce output if CDPATH assisted in the resolution, but 'cd /abs-name' and 'cd ./anchored-name' must be silent because CDPATH cannot participate in the resolution. So if you are sure name is absolute, you can use 'cd $(name)' without worries; if you are sure it is relative, you can use 'cd ./$(name)' without worries, and if you are unsure, then yes, you have to unset CDPATH first. Please do point out any particular places where we might be using cd on a name that might be relative. The autotools have had bugs in the past, but are hopefully clean right now; but the problem is that you often get uses of cd outside of stuff provided by the autotools. But for my patch, "cd $(srcdir)" is reasonably safe, because even if it is relative, it will normally be anchored ('.' for builddir=srcdir, or some form of '../name' if you build in a subdir or sibling dir, which is the only two forms of VPATH builds that I use). The only case where it would not be anchored is if someone builds in the parent dir, but that is a very unusual build setup. If you are paranoid, though, I could change that to "cd '$(abs_srcdir)'" to avoid the issue even for someone building in the parent dir. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org