- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have an existing VS2019 solution that uses ifort 2021.5 (and earlier) to build its Fortran projects with no issues. If I switch the Intel Compiler to IFX, I get this output (for a single file):
------ Build started: Project: simlib, Configuration: Debug|x64 ------
Compiling with Intel® Fortran Compiler 2022.0.0 [Intel(R) 64]...
mme_messages_mod.f90
mme_messages_mod.f90: fatal: can't fopen file: C:/Users/mark.i90
simlib : error PRJ0019: A tool returned an error code
Build log written to "file://C:\Source\repos\engine_bluezone\cs\simlib\Debug.x64\BuildLog.htm"
simlib - 1 error(s), 0 warning(s)
---------------------- Done ----------------------
This seems to be associated with the use of the Fortran preprocessor option (/fpp). If I remove this option then the file compiles. Does anyone have a workaround for this (we have some conditionally compiled code for Linux/Windows and GNU/Intel Fortran)?
I can try to create a small reproducer and upload it to Intel Support if required.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think I have a workaround for this now. If I set %tmp% to c:\tmp then the output from fpp is c:\tmp\<number>.i90. It appears that the ifx driver is confused by values of %tmp% that contain periods.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What does the build log say? That's the more important bit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Good point Steve:
Compiling with Intel® Fortran Compiler 2022.0.0 [Intel(R) 64]... ifx /nologo /debug:full /Od /fpp /Qopenmp /standard-semantics /stand:f18 /Qdiag-disable:7025,7762 /warn:declarations /Qauto /module:"Debug.x64\\" /object:"Debug.x64\\" /Fd"Debug.x64\simlib.pdb" /check:bounds /check:format /check:output_conversion /libs:dll /threads /dbglibs /c /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64" /Qm64 "C:\Source\repos\engine_bluezone\cs\simlib\mme_messages_mod.f90" mme_messages_mod.f90: fatal: can't fopen file: C:/Users/mark.i90 simlib : error PRJ0019: A tool returned an error code simlib - 1 error(s), 0 warning(s) |
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>>can't fopen file: C:/Users/mark.i90
On Windows, C:/Users is the folder where the user directories are stored. This is not the place where user files should be stored.
I suspect a current directory issue.
Try this:
1) Launch a oneAPI x64 build CMD window
2) CD to your work/solution folder ?? C:\Source\repos\engine_bluezone\cs\simlib ?? (wherever the xxx.sln file is located)
3) Enter: devenv YourSolutionHere.sln
4) Then rebuild
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ifort build of same file for comparison:
Compiling with Intel® Fortran Compiler Classic 2021.5.0 [Intel(R) 64]... ifort /nologo /debug:full /Od /Qparallel /fpp /Qopenmp /standard-semantics /stand:f18 /Qdiag-disable:7025,7762 /warn:declarations /Qauto /module:"Debug.x64\\" /object:"Debug.x64\\" /Fd"Debug.x64\simlib.pdb" /check:bounds /check:format /check:output_conversion /libs:dll /threads /dbglibs /c /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64" /Qm64 "C:\Source\repos\engine_bluezone\cs\simlib\mme_messages_mod.f90" simlib - 0 error(s), 0 warning(s)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you want a small reproducer for this:
1) In VS2019, create a new "Main Program Code" project.
2) Set platform to x64.
3) In the project properties, set Preprocessor->Preprocess Source File to Yes (/fpp).
4) Change Intel compiler to IFX (from right click on project).
5) Build:
Compiling with Intel® Fortran Compiler 2022.0.0 [Intel(R) 64]... ifx /nologo /debug:full /Od /fpp /warn:interfaces /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc160.pdb" /traceback /check:bounds /libs:dll /threads /dbglibs /c /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64" /Qm64 "C:\Source\repos\oneAPI_2022_1_1\oneAPI_2022_1_1.f90" oneAPI_2022_1_1.f90: fatal: can't fopen file: C:/Users/mark.i90 oneAPI_2022_1_1 : error PRJ0019: A tool returned an error code oneAPI_2022_1_1 - 1 error(s), 0 warning(s)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I asked for the build log, not the contents of the output window:
"Build log written to "file://C:\Source\repos\engine_bluezone\cs\simlib\Debug.x64\BuildLog.htm""
You'd have to ZIP it and attach the zip.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- @Steve_Lionel A build log is in my post of 01-06-2022 07:33 AM, which was built from my original project, the later post is for the hello world project and just contains the output window contents, as you said. I'll attach a zip file containing the solution folder to this post.
- Opening a oneAPI command prompt and running devenv for the solution as @jimdempseyatthecove suggested makes no difference; it still fails to build when /fpp is selected.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
BuildLog.htm>>oneAPI_2022_1_1.f90: fatal: can't fopen file: C:/Users/mark.i90
The hello test does not have an INCLUDE/#include for mark.i90, which is strange. The filename must be coming from somewhere.
Please check for, and contents of, ifort.cfg to see if there is anything funny with "mark" or "mark.i90".
Does mark.i90 sound familliar?
In a pinch, you can copy fpp.exe from an earlier version of Intel Fortran into your solution folder (or is it project folder) whatever is current directory during build.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The only thing I can think of is that ifx is confused by my user name (mark.lewy), which contains a period. There's not a lot I can do about that, as I am on a corporate domain. I think it is meant to create the preprocessed source in C:\Users\mark.lewy\AppData\Local\Temp, as I have seen .i90 files left there after (presumably) VS crashes.
I assume ifx and ifort use the same fpp.exe, so copying an earlier version wouldn't help. Remember ifort 2021.5 compiles this fine with /fpp.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Also fails from the command line:
C:\Source\repos\oneAPI_2022_1_1>ifx /watch /fpp oneAPI_2022_1_1.f90
Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2022.0.0 Build 20211123
Copyright (C) 1985-2021 Intel Corporation. All rights reserved.
oneAPI_2022_1_1.f90
echo oneAPI_2022_1_1.f90
C:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\bin\fpp \
-D__INTEL_LLVM_COMPILER=20220000 \
-D__INTEL_LLVM_COMPILER_UPDATE=0 \
-D__INTEL_COMPILER=20220000 \
-D__INTEL_COMPILER_UPDATE=0 \
-D_WIN32 \
-D_M_AMD64=100 \
-D_M_X64=100 \
-D_WIN64=1 \
-D_MSC_VER=1927 \
-D_MSC_FULL_VER=192729112 \
-D_MSC_EXTENSIONS \
"-D__MS_VC_INSTALL_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\" \
-D_MT \
-D__INTEL_COMPILER_BUILD_DATE=20211123 \
-I. \
"-IC:\Program Files (x86)\Intel\oneAPI\vpl\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\tbb\latest\env\..\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\mpi\latest\env\..\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\mkl\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\itac\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\ippcp\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\ipp\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\dpcpp-ct\latest\env\..\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\dnnl\latest\env\..\cpu_dpcpp_gpu_dpcpp\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\dev-utilities\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\dal\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\compiler\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\compiler\include\intel64" \
"-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\ATLMFC\include" \
-IC:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\compiler\include\intel64 \
-IC:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\compiler\include \
"-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include" \
"-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" \
-free \
-4Ycpp \
-4Ncvf \
-f_com=yes \
-MX \
oneAPI_2022_1_1.f90 \
C:\Users\mark.i90
oneAPI_2022_1_1.f90: fatal: can't fopen file: C:/Users/mark.i90
del C:\Users\mark.i90
del C:\Users\mark.lewy\AppData\Local\Temp\22762arg2
C:\Source\repos\oneAPI_2022_1_1>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've created Intel Support case 05334696 for this problem.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try:
ifx /watch /fpp /Fi.\ oneAPI_2022_1_1.f90
IOW explicitly state ".\" (current directory) is the directory for fpp preprocessed output.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Steve_Lionel @jimdempseyatthecove Adding /Fi.\ doesn't help:
C:\Source\repos\oneAPI_2022_1_1>ifx /watch /fpp /Fi.\ oneAPI_2022_1_1.f90
Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2022.0.0 Build 20211123
Copyright (C) 1985-2021 Intel Corporation. All rights reserved.
oneAPI_2022_1_1.f90
echo oneAPI_2022_1_1.f90
C:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\bin\fpp \
-D__INTEL_LLVM_COMPILER=20220000 \
-D__INTEL_LLVM_COMPILER_UPDATE=0 \
-D__INTEL_COMPILER=20220000 \
-D__INTEL_COMPILER_UPDATE=0 \
-D_WIN32 \
-D_M_AMD64=100 \
-D_M_X64=100 \
-D_WIN64=1 \
-D_MSC_VER=1927 \
-D_MSC_FULL_VER=192729112 \
-D_MSC_EXTENSIONS \
"-D__MS_VC_INSTALL_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\" \
-D_MT \
-D__INTEL_COMPILER_BUILD_DATE=20211123 \
-I. \
"-IC:\Program Files (x86)\Intel\oneAPI\vpl\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\tbb\latest\env\..\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\mpi\latest\env\..\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\mkl\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\itac\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\ippcp\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\ipp\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\dpcpp-ct\latest\env\..\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\dnnl\latest\env\..\cpu_dpcpp_gpu_dpcpp\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\dev-utilities\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\dal\latest\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\compiler\include" \
"-IC:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\compiler\include\intel64" \
"-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\ATLMFC\include" \
-IC:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\compiler\include\intel64 \
-IC:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\compiler\include \
"-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include" \
"-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" \
"-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" \
-free \
-4Ycpp \
-4Ncvf \
-f_com=yes \
-MX \
oneAPI_2022_1_1.f90 \
C:\Users\mark.i90
oneAPI_2022_1_1.f90: fatal: can't fopen file: C:/Users/mark.i90
del C:\Users\mark.i90
del C:\Users\mark.lewy\AppData\Local\Temp\226122arg2
Apparently, Intel Support cannot reproduce this. I have a lot of other Intel Fortran compilers versions installed as well as oneAPI 2022, so I wonder whether that's the issue: XE2018U3, XE2019U5, XE2020U[124], oneAPI 2021.[1234]. I think I can get rid of most of these, except oneAPI 2021.3, which we are using as our production compiler.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think I have a workaround for this now. If I set %tmp% to c:\tmp then the output from fpp is c:\tmp\<number>.i90. It appears that the ifx driver is confused by values of %tmp% that contain periods.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Mark_Lewy you didn't include the build log, you posted the contents of the build output window, which is not the same. Jim Dempsey extracted the build log from your zip and told us what the actual error was.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
ifx from 2022.1 has the same problem when TMP points to path with periods e.g C:\a.b\tmp
ifx -c -fpp on an arbitrary file fails.
Best regards
Frank
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This issue with ifx is fixed in the next release. Another developer reported it a while back on Linux. I assume it's fixed on Windows, too.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page