[llvm-dev] clang emit Duplicate file entry on windows

via llvm-dev llvm-dev at lists.llvm.org
Mon Mar 29 11:41:43 PDT 2021


Is this https://bugs.llvm.org/show_bug.cgi?id=44170
which had a tentative patch at https://reviews.llvm.org/D71508 ?
The original complaint wasn't for Windows, but the lack of
filepath canonicalization seems like a common symptom.
--paulr

> -----Original Message-----
> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of kamlesh
> kumar via llvm-dev
> Sent: Monday, March 29, 2021 1:08 PM
> To: Sanjoy Das via llvm-dev <llvm-dev at lists.llvm.org>
> Subject: [llvm-dev] clang emit Duplicate file entry on windows
> 
> Hi Devs,
> clang Emitting duplicate file entry when the input file given like this
> case-1:
> $./clang++ -g -c -o test.o
> /c/Users/HI/Documents/windworkspace/llvm-dev-build/bin/tests/test.cc
> -std=c++17
> 
> $./llvm-dwarfdump -debug-line test.o
>          -----
> file_names[ 52]:
>            name: "test.cc"
>       dir_index: 3
>        mod_time: 0x00000000
>          length: 0x00000000
> file_names[ 53]:
>            name: "test.cc"
>       dir_index: 3
>        mod_time: 0x00000000
>          length: 0x00000000
>               --------
> case-2:
> But when input file given like this It emit only one file entry
> $ ./clang C:\\Users\\HI\\Documents\\windworkspace\\llvm-dev-
> build\\bin\\tests\\test.cc
> -c -g -o test.o -std=c++17
> $./llvm-dwarfdump -debug-line test.o
>       ----
> file_names[ 52]:
>            name: "test.cc"
>       dir_index: 3
>        mod_time: 0x00000000
>          length: 0x00000000
>            ----
> duplicate entry in case-1 creates a problem while planting
> breakpoint(debugger says unresolved breakpoint, using a proprietary
> debugger).
> But case2 works fine because it has a single file entry.
>  This problem can be observed with the relative path too.
> Like to know expert's thoughts on this weird behavior only observed on
> windows?
> 
> Test(test.cc used above in command line is)
> $ cat tests/test.cc
> #include <iostream>
> #include <filesystem>
> namespace fs = std::filesystem;
> int main()
> {
>     std::cout << "Current path is " << fs::current_path() << '\n'; // (1)
>     fs::current_path(fs::temp_directory_path()); // (3)
>     std::cout << "Current path is " << fs::current_path() << '\n';
> }
> 
> note: Above observation from mingw64 x86_64 msys2, latest clang(13.0)
> i.e.
> $ ./clang -v
> clang version 13.0.0
> Target: x86_64-w64-windows-gnu
> Thread model: posix
> InstalledDir: C:\Users\HI\Documents\windworkspace\llvm-dev-build\bin
> clang was built by
> $ gcc -v
> 
> Using built-in specs.
> COLLECT_GCC=C:\msys64\mingw64\bin\gcc.exe
> COLLECT_LTO_WRAPPER=C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/10.2.0/lto-wrapper.exe
> Target: x86_64-w64-mingw32
> Configured with: ../gcc-10.2.0/configure --prefix=/mingw64
> --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32
> --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
> --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include
> --libexecdir=/mingw64/lib --enable-bootstrap --with-arch=x86-64
> --with-tune=generic
> --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++,jit
> --enable-shared --enable-static --enable-libatomic
> --enable-threads=posix --enable-graphite --enable-fully-dynamic-string
> --enable-libstdcxx-filesystem-ts=yes --enable-libstdcxx-time=yes
> --disable-libstdcxx-pch --disable-libstdcxx-debug
> --disable-isl-version-check --enable-lto --enable-libgomp
> --disable-multilib --enable-checking=release --disable-rpath
> --disable-win32-registry --disable-nls --disable-werror
> --disable-symvers --disable-plugin --with-libiconv --with-system-zlib
> --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64
> --with-isl=/mingw64 --with-pkgversion='Rev9, Built by MSYS2 project'
> --with-bugurl=https://urldefense.com/v3/__https://github.com/msys2/MINGW-
> packages/issues__;!!JmoZiZGBv3RvKRSx!sNo9vzG3u8UzUc-
> TX__WUTwYUqhGVov3xqMG_hkrdO4ltWmnS0BmX-fl_sYk8bvdxA$
> --with-gnu-as --with-gnu-ld --with-boot-ldflags='-pipe
> -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high
> -Wl,--disable-dynamicbase -static-libstdc++ -static-libgcc'
> 'LDFLAGS_FOR_TARGET=-pipe
> -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high'
> --enable-linker-plugin-flags='LDFLAGS=-static-libstdc++\
> -static-libgcc\ -pipe\
> -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high\
> -Wl,--stack,12582912'
> Thread model: posix
> Supported LTO compression algorithms: zlib zstd
> gcc version 10.2.0 (Rev9, Built by MSYS2 project)
> ./kamlesh
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://urldefense.com/v3/__https://lists.llvm.org/cgi-
> bin/mailman/listinfo/llvm-dev__;!!JmoZiZGBv3RvKRSx!sNo9vzG3u8UzUc-
> TX__WUTwYUqhGVov3xqMG_hkrdO4ltWmnS0BmX-fl_sZECZ7d3Q$


More information about the llvm-dev mailing list