<div dir="ltr"><div dir="ltr">Hi David, Hi Fang-rui, <div><br></div><div><div>Just to remind, when I add <font face="monospace">-save-temps</font> flag, linking works, but without this option it fails with: </div><div><br></div><div><font face="monospace">clang-8: error: unable to make temporary file: No such file or directory<br>clang-8: error: unable to make temporary file: No such file or directory<br>clang-8: error: unable to make temporary file: No such file or directory</font><br></div><div></div><div><br></div><div>Here is the output with flags -save-temps, -###: </div><div> <br></div><div><font face="monospace"> "/usr/bin/clang-8" "-cc1" "-triple" "x86_64-unknown-windows-cygnus" "-S" "-save-temps=cwd" "-disable-free" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "my_files\\my_file1.bc" "-mrelocation-model" "pic" "-pic-level" "2" "-mthread-model" "posix" "-fmath-errno" "-masm-verbose" "-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" "-dwarf-column-info" "-debugger-tuning=gdb" "-momit-leaf-frame-pointer" "-v" "-resource-dir" "/usr/lib/clang/8.0.1" "-fdebug-compilation-dir" "/cygdrive/c/my_projects/prj1/Debug" "-ferror-limit" "19" "-fmessage-length" "0" "-fobjc-runtime=gcc" "-fseh-exceptions" "-fdiagnostics-show-option" "-o" "my_files\\my_file1.s" "-x" "ir" "my_files\\my_file1.bc" "-faddrsig"</font><br></div><div><br></div><div>Here is the output without -save-temps, just -###:</div><div><br></div><div> <font face="monospace">"/usr/bin/clang-8" "-cc1" "-triple" "x86_64-unknown-windows-cygnus" "-emit-obj" "-mrelax-all" "-disable-free" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "my_files\\my_file1.bc" "-mrelocation-model" "pic" "-pic-level" "2" "-mthread-model" "posix" "-fmath-errno" "-masm-verbose" "-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" "-dwarf-column-info" "-debugger-tuning=gdb" "-momit-leaf-frame-pointer" "-v" "-resource-dir" "/usr/lib/clang/8.0.1" "-fdebug-compilation-dir" "/cygdrive/c/my_projects/prj1/Debug" "-ferror-limit" "19" "-fmessage-length" "0" "-fobjc-runtime=gcc" "-fseh-exceptions" "-fdiagnostics-show-option" "-o" "" "-x" "ir" "my_files\\my_file1.bc" "-faddrsig"</font><br> <br></div><div>So the <font face="monospace">"-o" "my_files\\my_file1.s"</font>  vs  <font face="monospace">"-o" ""</font> seems to be the difference. Is there an explanation? </div><div><br></div><div>Also, some more output with the output with flags -save-temps, -###:</div><div><br></div><div><font face="monospace">"/usr/bin/ld" "-m" "i386pep" "--wrap" "_Znwm" "--wrap" "_Znam" "--wrap" "_ZnwmRKSt9nothrow_t" "--wrap" "_ZnamRKSt9nothrow_t" "--wrap" "_ZdlPv" "--wrap" "_ZdaPv" "--wrap" "_ZdlPvRKSt9nothrow_t" "--wrap" "_ZdaPvKSt9nothrow_t" "-Bdynamic" "--tsaware" "-o" "myexecutable" "/usr/lib/crt0.o" "/usr/lib/gcc/x86_64-pc-cygwin/10/crtbegin.o" "-LC:/mylibraries" "-L/usr/lib/gcc/x86_64-pc-cygwin/10" "-L/usr/x86_64-pc-cygwin/lib" "-L/usr/lib" "-L/usr/lib/w32api" "my_files\\my_file1.o" "my_files\\my_file2.o" "

my_files\\my_file3.o" "-lnaturedsp" "-lgcc_s" "-gcc" "-lcygwin" "-ladvapi32" "-lshell32" "-luser32" "-lkernel32" "/usr/lib/default-manifest.o" "/usr/lib/gcc/x86_64-pc-cygwin/10/crtend.o"<br></font></div><div><br></div><div>and with only -###: </div><div><br><font face="monospace"> "/usr/bin/ld" "-m" "i386pep" "--wrap" "_Znwm" "--wrap" "_Znam" "--wrap" "_ZnwmRKSt9nothrow_t" "--wrap" "_ZnamRKSt9nothrow_t" "--wrap" "_ZdlPv" "--wrap" "_ZdaPv" "--wrap" "_ZdlPvRKSt9nothrow_t" "--wrap" "_ZdaPvKSt9nothrow_t" "-Bdynamic" "--tsaware" "-o" "myexecutable" "/usr/lib/crt0.o" "/usr/lib/gcc/x86_64-pc-cygwin/10/crtbegin.o" "-LC:/mylibraries" "-L/usr/lib/gcc/x86_64-pc-cygwin/10" "-L/usr/x86_64-pc-cygwin/lib" "-L/usr/lib" "-L/usr/lib/w32api" "" "" "" "-lnaturedsp" "-lgcc_s" "-lgcc" "-lcygwin" "-ladvapi32" "-lshell32" "-luser32" "-lkernel32" "/usr/lib/default-manifest.o" "/usr/lib/gcc/x86_64-pc-cygwin/10/crtend.o"<br></font></div><div><br></div><div>So, again 


<font face="monospace">"my_files\\my_file1.o" "my_files\\my_file2.o" "

my_files\\my_file3.o"</font> is lost and substituted with empty strings <font face="monospace"> "" "" ""</font>. </div><div><br></div><div><br></div><div>Does this info help resolve my problem? </div><div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Danijel <div></div></div></div></div></div></div></div></div></div></div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 13, 2020 at 8:27 PM David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Oh, sorry, I didn't read the question in detail about how -save-temps<br>
was making things work when they otherwise were not.<br>
<br>
If you run clang with -### it'll show the command lines it's using,<br>
which should show you where it's trying to write the files so you can<br>
change that/make them writable. I'm not sure which variable is used to<br>
influence clang's temporary directory choice, though.<br>
<br>
On Thu, Aug 13, 2020 at 11:22 AM Danijel DOMAZET<br>
<<a href="mailto:p-danijel.domazet@devialet.com" target="_blank">p-danijel.domazet@devialet.com</a>> wrote:<br>
><br>
> Thanks Fang-rui.<br>
> I still haven't been able to fix the issue, I still use --save-temps, and that makes linking very slow.<br>
> Why does this error go away when I set --save-temps, any idea??<br>
><br>
><br>
><br>
> On Thu, Aug 13, 2020 at 7:16 PM Fāng-ruì Sòng <<a href="mailto:maskray@google.com" target="_blank">maskray@google.com</a>> wrote:<br>
>><br>
>> On Thu, Aug 13, 2020 at 8:59 AM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br>
>> ><br>
>> > On Thu, Aug 13, 2020 at 2:59 AM Danijel DOMAZET<br>
>> > <<a href="mailto:p-danijel.domazet@devialet.com" target="_blank">p-danijel.domazet@devialet.com</a>> wrote:<br>
>> > ><br>
>> > > Thanks David.<br>
>> > > Why do you think this could be about current dir?<br>
>> > > Isn't it about TMP (or TEMP or TMPDIR) environment variables?<br>
>><br>
>> Neither the driver option -save-temps nor the linker option<br>
>> --save-temps (driver option -Wl,--save-temps) respects<br>
>> TMP/TEMP/TMPDIR.<br>
>> The temporary files are saved relative to the current working<br>
>> directory, which can be changed via -working-directory=<br>
>><br>
>> > Because I ran it locally, and observed that that's where the files<br>
>> > were written to.<br>
>> ><br>
>> > ><br>
>> > > Thanks,<br>
>> > > Danijel Domazet<br>
>> > ><br>
>> > ><br>
>> > > On Thu, Aug 13, 2020 at 12:11 AM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br>
>> > >><br>
>> > >> Looks like it writes the files to the current directory - do you have<br>
>> > >> permission to access the current directory?<br>
>> > >><br>
>> > >> On Wed, Aug 12, 2020 at 6:28 AM Danijel DOMAZET via cfe-users<br>
>> > >> <<a href="mailto:cfe-users@lists.llvm.org" target="_blank">cfe-users@lists.llvm.org</a>> wrote:<br>
>> > >> ><br>
>> > >> > Hi clang users,<br>
>> > >> > I am using Windows10 + Cygwin + Eclipse +  LLVM toolchain to build a C/C++<br>
>> > >> > project.<br>
>> > >> ><br>
>> > >> > The files compile fine, but linking with `clang++` fails with multiple<br>
>> > >> > `error: unable to make temporary file: No such file or directory`.<br>
>> > >> ><br>
>> > >> >     clang++ -o test "source1.bc" "source2.bc" "source3.bc"<br>
>> > >> >     clang-8: error: unable to make temporary file: No such file or directory<br>
>> > >> >     clang-8: error: unable to make temporary file: No such file or directory<br>
>> > >> >     clang-8: error: unable to make temporary file: No such file or directory<br>
>> > >> ><br>
>> > >> > Linker generates one error per each object file.<br>
>> > >> ><br>
>> > >> > However, when I add the `-save-temps` option to linker, it works OK.<br>
>> > >> ><br>
>> > >> > I am launching Eclipse.exe from within Cygwin. I have tried to set TMP,<br>
>> > >> > TEMP to /temp, /temp/, /cygdrive/c/temp, etc, but nothing worked.<br>
>> > >> ><br>
>> > >> > What could be the problem?<br>
>> > >> ><br>
>> > >> > Thanks,<br>
>> > >> > Danijel Domazet<br>
>> > >> ><br>
>> > >> ><br>
>> > >> ><br>
>> > >> > - Confidential -<br>
>> > >> > _______________________________________________<br>
>> > >> > cfe-users mailing list<br>
>> > >> > <a href="mailto:cfe-users@lists.llvm.org" target="_blank">cfe-users@lists.llvm.org</a><br>
>> > >> > <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users</a><br>
>> > ><br>
>> > ><br>
>> > > - Confidential -<br>
>><br>
>><br>
>><br>
>> --<br>
>> 宋方睿<br>
><br>
><br>
> - Confidential -<br>
</blockquote></div></div>

<br>
<div style="font-family:Arial,Helvetica,sans-serif;font-size:1.3em"><span style="font-size:medium">- Confidential -</span></div>