Subject: bug#8621: build-aux/compile: avoid race condition failure

From: Eric Blake <[email-masked]>
Date: Thu, 05 May 2011 13:27:53 -0600

On 05/05/2011 01:06 PM, Peter Rosin wrote:
> Den 2011-05-05 16:53 skrev Jim Meyering:
>> Is there any reason not to make the compile script
>> accommodate (in a race-free manner) situations like
>> the one described in http://debbugs.gnu.org/8616 ?
> 
> Yes, I can think of a couple.  When the compile script
> is used to wrap MSVC (aka cl.exe), I think the generated
> debug info will point to the actual source file, and if
> the source file used to build the executable is gone when
> it's time to debug it will be a less than stellar
> experience. I imagine this problem to exist for other
> toolchains as well? It's also currently not very easy to
> override LN_S and MSVC does not understand the symlinks
> generated by Cygwin, so symlinking is not a favorite (at
> least not for the case where Cygwin is used to drive a
> MSVC build).

Is that true even in the face of #line directives?  That is, instead of
linking the file, could you create a temporary file that has appropriate
directives prepended to the content of the original file so that debug
information tracks back to the original file name but where the
compilation to -o is still independent of the original file?

-- 
Eric Blake   [email-masked]    +1-801-349-2682
Libvirt virtualization library http://libvirt.org