[petsc-users] compile PETSc on win using clang

Satish Balay balay at mcs.anl.gov
Wed Jan 25 00:17:01 CST 2023


Where does one download this install of clang from?

I see one at
https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.6 i.e
https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/LLVM-15.0.6-win64.exe
- but it looks a bit different that what you have.

There is also clang available via cygwin, and PETSc can be build with it. [but that's a bit different than win-clang]

However to build with clang that you have [and the above from llvm] - it might need significant work from someone who understand the windows issues.

One way cold be to improve win32fe to support win-clang [but that's not easy - win32fe code base is a very old - and hardly modified in past many years]

Alternative could be to get petsc configure working with win-python - and use it with win-clang [deal with issues like /tmp and such paths without cygwin]. Again could be a major project.

[and then fortran, MPI?]

So no easy solution here to get this working.

Satish


On Wed, 25 Jan 2023, Guo, Sam wrote:

> Sorry, I don't know too much about clang. Our code is compiled on win using clang and that's why I want to compile PETSc using clang as well.
> 
> -----Original Message-----
> From: Satish Balay <balay at mcs.anl.gov> 
> Sent: Tuesday, January 24, 2023 7:37 PM
> To: Guo, Sam (DI SW STS SDDEV MECH PHY FEA FW) <sam.guo at siemens.com>
> Cc: petsc-users <petsc-users at mcs.anl.gov>
> Subject: Re: [petsc-users] compile PETSc on win using clang
> 
> Here is my prior message:
> 
> >>>>>>
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.wikihow.com%2FInstall-Clang-on-Windows&data=05%7C01%7Csam.guo%40siemens.com%7C2dcacf01ab3848588c5908dafe856a17%7C38ae3bcd95794fd4addab42e1495d55a%7C1%7C0%7C638102146240080885%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=pUZfgzke8JGODkOLNR1101lrdINswnqqg2kM%2FOAN2kU%3D&reserved=0
> 
> Is the clang you have from visual studio - as described above?
> 
> We don't have experience with using this variant of clang.
> 
> If its compatible with 'cl' - and supports the same command interface as 'cl' then the following might work [assuming clang.exe is the compiler binary installed - and available in PATH]:
> 
> '--with-cc=win32fe cl --use clang'
> <<<<
> 
> However I see:
> 
> >>>
> /home/xian/dev/compilers/win64/clang11.1.0/bin/
> <<<
> 
> Clearly its not the above compiler [with the above constraints] - so the above instructions won't work.
> 
> How do you get this compiler? 
> 
> Any particular reason you need to build PETSc with this compiler?
> 
> Satish
> 
> 
> On Wed, 25 Jan 2023, Guo, Sam wrote:
> 
> > I've added the path to clang to PATH but configuration still failed. configure.log is attached. Thanks a lot for your help.
> > ________________________________
> > From: Satish Balay <balay at mcs.anl.gov>
> > Sent: Tuesday, January 24, 2023 5:36 PM
> > To: Guo, Sam (DI SW STS SDDEV MECH PHY FEA FW) <sam.guo at siemens.com>
> > Cc: petsc-users <petsc-users at mcs.anl.gov>
> > Subject: Re: [petsc-users] compile PETSc on win using clang
> > 
> > Do you have clang in your PATH? Is the binary named clang for something else?
> > 
> > 
> > >>>>>>>
> >               Defined make macro "CC" to "/home/xian/dev/star/petsc/lib/petsc/bin/win32fe/win32fe cl --use clang"
> > Executing: /home/xian/dev/star/petsc/lib/petsc/bin/win32fe/win32fe cl 
> > --use clang -c -o /tmp/petsc-t4q6osvc/config.setCompilers/conftest.o 
> > -I/tmp/petsc-t4q6osvc/config.setCompilers -O2 -MD -wd4996  
> > /tmp/petsc-t4q6osvc/config.setCompilers/conftest.c
> > Possible ERROR while running compiler: exit code 15
> > Source:
> > #include "confdefs.h"
> > #include "conffix.h"
> > 
> > int main() {
> > ;
> >   return 0;
> > }
> > 
> >           Error testing C compiler: Cannot compile C with /home/xian/dev/star/petsc/lib/petsc/bin/win32fe/win32fe cl --use clang.
> > 
> > <<<<<<
> > 
> > You can try this test below manually - with the --verbose option. [I 
> > don't have clang - so using 'cl' here]
> > 
> > >>>>>>
> > balay at ps5 ~/petsc/src/benchmarks
> > $ ~/petsc/lib/petsc/bin/win32fe/win32fe cl --use cl --verbose sizeof.c
> > 
> > Using tool: cl
> > Win32 Development Tool Front End, version 1.11.4 Fri, Sep 10, 2021  
> > 6:33:40 PM Attempting to create file: C:\cygwin64\tmp\wfe2972.tmp cl 
> > Microsoft (R) C/C++ Optimizing Compiler Version 19.30.30709 for x64 
> > del C:\cygwin64\tmp\wfe2972.tmp Attempting to create file: 
> > C:\cygwin64\tmp\wfe2983.tmp cl sizeof.c -link Microsoft (R) C/C++ 
> > Optimizing Compiler Version 19.30.30709 for x64 Copyright (C) 
> > Microsoft Corporation.  All rights reserved.
> > 
> > sizeof.c
> > Microsoft (R) Incremental Linker Version 14.30.30709.0 Copyright (C) 
> > Microsoft Corporation.  All rights reserved.
> > 
> > /out:sizeof.exe
> > sizeof.obj
> > del C:\cygwin64\tmp\wfe2983.tmp
> > 
> > balay at ps5 ~/petsc/src/benchmarks
> > $ ~/petsc/lib/petsc/bin/win32fe/win32fe cl --use dummy-binary 
> > --verbose sizeof.c
> > 
> > Using tool: dummy-binary
> > Win32 Development Tool Front End, version 1.11.4 Fri, Sep 10, 2021  
> > 6:33:40 PM Attempting to create file: C:\cygwin64\tmp\wfe6AD0.tmp 
> > dummy-binary win32feutils::CreateProcess failed.
> > dummy-binary
> > The system cannot find the file specified.
> > 
> > del C:\cygwin64\tmp\wfe6AD0.tmp
> > 
> > balay at ps5 ~/petsc/src/benchmarks
> > $
> > 
> > <<<<<<<
> > 
> > Satish
> > 
> > 
> > 
> > On Wed, 25 Jan 2023, Guo, Sam wrote:
> > 
> > > configure.log with -with-cc="win32fe cl --use clang"
> > > ________________________________
> > > From: Satish Balay <balay at mcs.anl.gov>
> > > Sent: Tuesday, January 24, 2023 5:15 PM
> > > To: Guo, Sam (DI SW STS SDDEV MECH PHY FEA FW) <sam.guo at siemens.com>
> > > Cc: Barry Smith <bsmith at petsc.dev>; petsc-users 
> > > <petsc-users at mcs.anl.gov>
> > > Subject: Re: [petsc-users] compile PETSc on win using clang
> > >
> > > Configure Options: --configModules=PETSc.Configure 
> > > --optionsModule=config.compilerOptions --with-cc="win32fe cl" --use 
> > > win32fe clang --with-fc=0
> > >  --with-debugging=0 -CFLAGS="-O2 -MD -wd4996" -CXXFLAGS="-O2 -MD 
> > > -wd4996" --with-mpi=0 --with-clean=1 --force --with-scalar-type=real  --ignore-cygwin-link -CFLAGS="-O2 -MD -wd4996" -CXXFLAGS="-O2 -MD -wd4996"
> > >
> > > It should be --with-cc="win32fe cl --use clang"
> > >
> > > But then - this mode is untested with configure - so there could be other issues.
> > >
> > > Also - do you need c++? If not - use --with-cxx=0. This can avoid 
> > > the error below. [for clang++ - you might need --with-cxx="win32fe 
> > > cl --use clang++" - again untested - so might not work..]
> > >
> > > Satish
> > >
> > >
> > > On Tue, 24 Jan 2023, Guo, Sam wrote:
> > >
> > > > Attached please find configure.log.
> > > >
> > > > error messgae:
> > > > C:\home\xian\dev\star\petsc\src\sys\objects\device\INTERF~1\device
> > > > .cxx(486): error C2065: 'PETSC_DEVICE_CASE': undeclared identifier
> > > >
> > > > ________________________________
> > > > From: Satish Balay <balay at mcs.anl.gov>
> > > > Sent: Tuesday, January 24, 2023 2:00 PM
> > > > To: Barry Smith <bsmith at petsc.dev>
> > > > Cc: Guo, Sam (DI SW STS SDDEV MECH PHY FEA FW) 
> > > > <sam.guo at siemens.com>; petsc-users at mcs.anl.gov 
> > > > <petsc-users at mcs.anl.gov>
> > > > Subject: Re: [petsc-users] compile PETSc on win using clang
> > > >
> > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2F
> > > > www.wikihow.com%2FInstall-Clang-on-Windows&data=05%7C01%7Csam.guo%
> > > > 40siemens.com%7C2dcacf01ab3848588c5908dafe856a17%7C38ae3bcd95794fd
> > > > 4addab42e1495d55a%7C1%7C0%7C638102146240080885%7CUnknown%7CTWFpbGZ
> > > > sb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6M
> > > > n0%3D%7C3000%7C%7C%7C&sdata=pUZfgzke8JGODkOLNR1101lrdINswnqqg2kM%2
> > > > FOAN2kU%3D&reserved=0
> > > >
> > > > Is the clang you have from visual studio - as described above?
> > > >
> > > > We don't have experience with using this variant of clang.
> > > >
> > > > If its compatible with 'cl' - and supports the same command interface as 'cl' then the following might work [assuming clang.exe is the compiler binary installed - and available in PATH]:
> > > >
> > > > '--with-cc=win32fe cl --use clang'
> > > >
> > > > Satish
> > > >
> > > >
> > > > On Tue, 24 Jan 2023, Barry Smith wrote:
> > > >
> > > > >
> > > > >    Are you using clang as a replacement for the
> > > > >
> > > > >    *  "Unix-like" Cygwin GNU compilers compilers or
> > > > >
> > > > >    *  MinGW GNU compilers that are compatible with the Microsoft compilers?
> > > > >
> > > > >   If the former, follow the instructions for using the Cygwin GNU compilers, if the latter follow the directions for the MinGW compilers.
> > > > >
> > > > >   Send the configure.log and make.log if things go wrong and we'll help you out.
> > > > >
> > > > >   Barry
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > > On Jan 24, 2023, at 4:01 PM, Guo, Sam <sam.guo at siemens.com> wrote:
> > > > > >
> > > > > > Hi PETSc dev team,
> > > > > >    I try to compile PETSc on win using clang. I am wondering if you could give me some hint. (I’ve already made intel compiler work on win using win32fe icl).
> > > > > >
> > > > > > Thanks,
> > > > > > Sam Guo
> > > > >
> > > > >
> > > >
> > >
> > 
> 


More information about the petsc-users mailing list