[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Incorrect PathName for $exported_symbols on Cygwin
From: |
Ralf Wildenhues |
Subject: |
Re: Incorrect PathName for $exported_symbols on Cygwin |
Date: |
Wed, 29 Dec 2004 10:01:52 +0100 |
User-agent: |
Mutt/1.4.1i |
Hi Reid,
* Reid Spencer wrote on Fri, Dec 24, 2004 at 01:39:52AM CET:
> Version: ltmain.sh (GNU libtool) 1.5.10 (1.1220.2.130 2004/09/19 12:13:49)
> config.guess: i686-pc-cygwin
>
> In building LLVM (http://llvm.cs.uiuc.edu/) on Cygwin, I noticed a
> problem with the following symptom from libtool (line 4332):
>
> eval:
> /proj/work/llvm/build/Debug/bin/.libs//proj/work/llvm/build/Debug/bin/lli.exe.exp:No
> such file or directory
*snip*
>
> The problem is that when we invoke libtool, we pass the entire path to
> libtool to be built, not just the filename. The libtool script is is
> using $output_objdir/$output.exp to formulate the name of a temporary
> file for the exported symbols. However, the script does not ensure that
> all intermediate directories are created. Instead of creating them, I
> figured the file should be named $output_objdir/$outputname.exp instead.
> The following patch makes that change.
You got the patch reversed (and that had me quite confused for a while).
Could you please provide a small recipe to reproduce this? I'd like to
see exactly what you do (also to see whether we have to prevent possible
name clashes resulting from your change).
Thanks,
Ralf
> --- ltmain.sh 2004-12-23 16:09:53.000000000 -0800
> +++ /proj/install/share/libtool/ltmain.sh 2004-10-12 17:05:17.000000000
> -0700
> @@ -4325,16 +4325,16 @@
> $run eval '$mv "$nlist"T "$nlist"'
> fi
>
> # Prepare the list of exported symbols
> if test -z "$export_symbols"; then
> - export_symbols="$output_objdir/$outputname.exp"
> + export_symbols="$output_objdir/$output.exp"
> $run $rm $export_symbols
> $run eval "${SED} -n -e '/^: @address@hidden/d' -e 's/^.*
> \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
> else
> - $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e
> 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
> - $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" >
> "$nlist"T'
> + $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e
> 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
> + $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" >
> "$nlist"T'
> $run eval 'mv "$nlist"T "$nlist"'
> fi
> fi
>
> for arg in $dlprefiles; do