Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

conda CI failure Mid February 2022 on Windows: cannot open input file 'glut.lib' with cmake 3.22 #1032

Closed
traversaro opened this issue Feb 15, 2022 · 13 comments

Comments

@traversaro
Copy link
Member

As usual, a CI outage quickly hides other problems that may emerge. As soon as we added a workaround for #1020 in #1026, all the Windows Conda CI builds started with fail with error:

2022-02-14T21:37:34.2592278Z D:\a\robotology-superbuild\robotology-superbuild\src\ICUB\src\tools\iCubGui\src\bvhnoderoot.h(53,1): warning C4305: 'argument': truncation from 'double' to 'GLfloat' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:34.2608306Z D:\a\robotology-superbuild\robotology-superbuild\src\ICUB\src\tools\iCubGui\src\bvh.h(147,1): warning C4305: 'initializing': truncation from 'double' to 'GLfloat' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:34.2611102Z D:\a\robotology-superbuild\robotology-superbuild\src\ICUB\src\tools\iCubGui\src\bvh.h(148,1): warning C4305: 'initializing': truncation from 'double' to 'GLfloat' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:34.2615673Z D:\a\robotology-superbuild\robotology-superbuild\src\ICUB\src\tools\iCubGui\src\bvh.h(149,1): warning C4305: 'initializing': truncation from 'double' to 'GLfloat' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:35.1301414Z     Generating Code...
2022-02-14T21:37:38.1367825Z LINK : warning LNK4044: unrecognized option '/LC:/Miniconda3/envs/test/Library/lib'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1369220Z LINK : warning LNK4044: unrecognized option '/lglut'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1370530Z LINK : warning LNK4044: unrecognized option '/lopengl32'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1371705Z LINK : warning LNK4044: unrecognized option '/lwinmm'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1372843Z LINK : warning LNK4044: unrecognized option '/lgdi32'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1374618Z LINK : warning LNK4044: unrecognized option '/lm'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.2235806Z LINK : fatal error LNK1181: cannot open input file 'glut.lib' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
@traversaro
Copy link
Member Author

The last successful Windows conda CI builds are from 5 days ago: https://github.com/robotology/robotology-superbuild/actions/runs/1821507285 . In that case the freeglut version was already 3.2.2, so the recent update of freeglut (conda-forge/freeglut-feedstock#30) does not seem related to the failure.

@traversaro
Copy link
Member Author

This may be a side effect of #1022, that indeeed we merged without waiting for CI.

@traversaro
Copy link
Member Author

traversaro commented Feb 15, 2022

Diff working vs not-working job:

--- <unnamed>
+++ <unnamed>
@@ -1,6 +1,6 @@
 + ace                            7.0.6  h0e60522_0           conda-forge/win-64        2 MB
 + asio                          1.14.1  h0e60522_1           conda-forge/win-64      327 KB
-+ assimp                         5.2.0  hc2aa0de_1           conda-forge/win-64        2 MB
++ assimp                         5.2.1  hc2aa0de_0           conda-forge/win-64        2 MB
 + blosc                         1.21.0  h0e60522_0           conda-forge/win-64      688 KB
 + boost                         1.74.0  py310hc781a3c_5      conda-forge/win-64      571 KB
 + boost-cpp                     1.74.0  h9f4b32c_7           conda-forge/win-64       16 MB
@@ -28,7 +28,7 @@
 + freetype                      2.10.4  h546665d_1           conda-forge/win-64      489 KB
 + freexl                         1.0.6  ha8e266a_0           conda-forge/win-64       58 KB
 + fribidi                       1.0.10  h8d14728_0           conda-forge/win-64       63 KB
-+ gazebo                       11.10.1  h09eef8c_3           conda-forge/win-64       62 MB
++ gazebo                       11.10.1  h81dfa91_4           conda-forge/win-64       62 MB
 + geos                          3.10.1  h39d44d4_1           conda-forge/win-64        1 MB
 + geotiff                        1.7.0  hc8731e1_5           conda-forge/win-64      136 KB
 + getopt-win32                     0.1  h8ffe710_0           conda-forge/win-64       19 KB
@@ -59,7 +59,7 @@
 + libcblas                       3.9.0  13_win64_mkl         conda-forge/win-64        5 MB
 + libclang                      11.1.0  default_h5c34c98_1   conda-forge/win-64       21 MB
 + libcurl                       7.81.0  h789b8ee_0           conda-forge/win-64      302 KB
-+ libdeflate                       1.8  h8ffe710_0           conda-forge/win-64       61 KB
++ libdeflate                      1.10  h8ffe710_0           conda-forge/win-64       69 KB
 + libgd                          2.3.3  h8bb91b0_0           conda-forge/win-64      459 KB
 + libgdal                        3.4.0  h453e081_11          conda-forge/win-64       10 MB
 + libignition-cmake2            2.10.0  h0e60522_0           conda-forge/win-64      181 KB
@@ -77,7 +77,7 @@
 + libnetcdf                      4.8.1  nompi_h1cc8e9d_101   conda-forge/win-64      677 KB
 + libode                        0.16.2  h8a704f9_9           conda-forge/win-64      379 KB
 + libopenblas                   0.3.18  pthreads_hc469a61_0  conda-forge/win-64        6 MB
-+ libopencv                      4.5.5  py31h6a2c607_0       conda-forge/win-64       48 MB
++ libopencv                      4.5.5  py31h6a2c607_1       conda-forge/win-64       48 MB
 + libpng                        1.6.37  h1d00b33_2           conda-forge/win-64      724 KB
 + libpq                           13.5  hfcc5ef8_1           conda-forge/win-64        4 MB
 + libprotobuf                   3.19.4  h7755175_0           conda-forge/win-64        2 MB
@@ -87,7 +87,7 @@
 + libsodium                     1.0.18  h8d14728_1           conda-forge/win-64      697 KB
 + libspatialite                  5.0.1  hf126459_12          conda-forge/win-64       11 MB
 + libssh2                       1.10.0  h680486a_2           conda-forge/win-64      227 KB
-+ libtiff                        4.3.0  hd413186_2           conda-forge/win-64        1 MB
++ libtiff                        4.3.0  hc4061b1_3           conda-forge/win-64        1 MB
 + libusb                        1.0.25  h8ffe710_100         conda-forge/win-64      111 KB
 + libwebp                        1.2.2  h57928b3_0           conda-forge/win-64       11 KB
 + libwebp-base                   1.2.2  h8ffe710_1           conda-forge/win-64      393 KB
@@ -104,7 +104,7 @@
 + ogre                         1.10.12  hadbb816_7           conda-forge/win-64      113 MB
 + openal-soft                   1.21.1  h2d74725_0           conda-forge/win-64      603 KB
 + openblas                      0.3.18  pthreads_h543f93c_0  conda-forge/win-64      201 KB
-+ opencv                         4.5.5  py31h5588dad_0       conda-forge/win-64       22 KB
++ opencv                         4.5.5  py31h5588dad_1       conda-forge/win-64       22 KB
 + openexr                        2.5.5  hab3b255_0           conda-forge/win-64        3 MB
 + openjpeg                       2.4.0  hb211442_1           conda-forge/win-64      238 KB
 + openssl                       1.1.1l  h8ffe710_0           conda-forge/win-64        6 MB
@@ -118,7 +118,7 @@
 + proj                           8.2.0  h1cfcee9_0           conda-forge/win-64        3 MB
 + pthread-stubs                    0.4  hcd874cb_1001        conda-forge/win-64        6 KB
 + pugixml                       1.11.4  h0e60522_0           conda-forge/win-64      211 KB
-+ py-opencv                      4.5.5  py31hbbfc1a7_0       conda-forge/win-64       24 KB
++ py-opencv                      4.5.5  py31hbbfc1a7_1       conda-forge/win-64       24 KB
 + python                        3.10.2  h9a09f29_3_cpython   conda-forge/win-64       16 MB
 + python_abi                      3.10  2_cp310              conda-forge/win-64        4 KB
 + qt                            5.12.9  h5909a2a_4           conda-forge/win-64      106 MB
@@ -126,7 +126,7 @@
 + ruby                           2.7.2  h1d9c0f5_8           conda-forge/win-64       13 MB
 + sdl                           1.2.15  h13ae965_1           conda-forge/win-64      247 KB
 + sdl2                          2.0.18  h0e60522_0           conda-forge/win-64        3 MB
-+ setuptools                    60.8.1  py310h5588dad_0      conda-forge/win-64        1 MB
++ setuptools                    60.9.0  py310h5588dad_0      conda-forge/win-64        1 MB
 + simbody                          3.7  hade3207_3           conda-forge/win-64       37 MB
 + spdlog                         1.9.2  h2d74725_1           conda-forge/win-64      298 KB
 + sqlite                        3.37.0  h8ffe710_0           conda-forge/win-64        1 MB

@traversaro
Copy link
Member Author

traversaro commented Feb 15, 2022

Diff in set output:

--- <unnamed>
+++ <unnamed>
@@ -40,7 +40,7 @@
 MonAgentClientLocation=C:\Packages\Plugins\Microsoft.Azure.Geneva.GenevaMonitoring\2.33.0.3\Monitoring\Agent
 LOGONSERVER=\\fv-az177-880
 PROCESSOR_ARCHITECTURE=AMD64
-RUNNER_TRACKING_ID=github_82d673aa-0a6d-4176-8b32-e025b94b8f31
+RUNNER_TRACKING_ID=github_6fe28194-6559-44c5-8da8-4a6be2e44252
 DOTNET_MULTILEVEL_LOOKUP=0
 M2=C:\ProgramData\chocolatey\lib\maven\apache-maven-3.8.4\bin
 GITHUB_REPOSITORY_OWNER=robotology
@@ -89,15 +89,15 @@
 CONDA=C:\Miniconda3
 MSYSTEM_PREFIX=/mingw64
 IEWebDriver=C:\SeleniumWebDrivers\IEDriver
-GITHUB_ENV=D:\a\_temp\_runner_file_commands\set_env_52bcab49-1e55-4ec8-a2b0-891646f40c0b
+GITHUB_ENV=D:\a\_temp\_runner_file_commands\set_env_7eb91df1-74e2-4398-aaf5-f7b9bebc1755
 PGDATA=C:\Program Files\PostgreSQL\14\data
 PHPROOT=c:\tools\php
 GOROOT_1_17_X64=C:\hostedtoolcache\windows\go\1.17.6\x64
 RUNNER_WORKSPACE=D:\a\robotology-superbuild
 GITHUB_REF=refs/heads/master
-GITHUB_SHA=4f5a7ee54aea12f88e9177dd1b24d71819aa9978
+GITHUB_SHA=a6938c929cceb455163c17c513a9f66645b49607
 _CE_CONDA=
-GITHUB_RUN_ID=1821507285
+GITHUB_RUN_ID=1842728628
 PROCESSOR_REVISION=5504
 TMPDIR=/tmp
 RUNNER_ARCH=X64
@@ -121,10 +121,10 @@
 TERM=xterm-256color
 VCPKG_INSTALLATION_ROOT=C:\vcpkg
 GCM_INTERACTIVE=Never
-GITHUB_PATH=D:\a\_temp\_runner_file_commands\add_path_52bcab49-1e55-4ec8-a2b0-891646f40c0b
+GITHUB_PATH=D:\a\_temp\_runner_file_commands\add_path_7eb91df1-74e2-4398-aaf5-f7b9bebc1755
 GITHUB_JOB=conda-build
 WINDIR=C:\Windows
-RUNNER_NAME=GitHub Actions 5
+RUNNER_NAME=GitHub Actions 32
 PGUSER=postgres
 COBERTURA_HOME=C:\cobertura-2.1.1
 PERFLOG_LOCATION_SETTING=RUNNER_PERFLOG
@@ -143,13 +143,13 @@
 POWERSHELL_UPDATECHECK=Off
 ALLUSERSPROFILE=C:\ProgramData
 TEMP=/tmp
-GITHUB_EVENT_NAME=schedule
+GITHUB_EVENT_NAME=push
 MAVEN_OPTS=-Xms256m
 JAVA_HOME_17_X64=C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\17.0.2-8\x64
 DriverData=C:\Windows\System32\Drivers\DriverData
 MSYSTEM=MINGW64
 MINGW_PREFIX=/mingw64
-GITHUB_RUN_NUMBER=2698
+GITHUB_RUN_NUMBER=2721
 SBT_HOME=C:\Program Files (x86)\sbt\
 RUNNER_PERFLOG=C:\actions\perflog
 GITHUB_WORKFLOW=C++ CI Workflow

@traversaro
Copy link
Member Author

I did the diff of the wrong packages installed, excluding the cmake version. The big version is that the working build was using cmake 3.21, while the non working cmake 3.22, so this could be a CMake regression. The only related issue seems to be microsoft/vcpkg#2587, but probably it is not directly related.

@traversaro traversaro changed the title conda CI failure Mid February 2022 on Windows: cannot open input file 'glut.lib' conda CI failure Mid February 2022 on Windows: cannot open input file 'glut.lib' with cmake 3.22 Feb 15, 2022
@traversaro
Copy link
Member Author

I reproduced the problem locally.

@traversaro
Copy link
Member Author

traversaro commented Feb 15, 2022

I am quite sure the issue is a CMake regression. I have two conda environment, one in which the build is working (robdebugoldcmake) and one in which it is failing (robdebug), and the only diff is the cmake version:

--- <unnamed>
+++ <unnamed>
@@ -1,4 +1,5 @@
-# packages in environment at C:\Users\STraversaro\AppData\Local\mambaforge\envs\robdebugoldcmake:
+
+# packages in environment at C:\Users\STraversaro\AppData\Local\mambaforge\envs\robdebug:
 #
 # Name                    Version                   Build  Channel
 ace                       7.0.6                h0e60522_0    conda-forge
@@ -14,7 +15,7 @@
 cfitsio                   4.0.0                hd67004f_0    conda-forge
 clang_variant             1.0                     default    conda-forge
 clangdev                  5.0.0             h5aa907a_1012    conda-forge
-cmake                     3.21.3               h39d44d4_0    conda-forge
+cmake                     3.22.2               h39d44d4_0    conda-forge
 compilers                 1.3.0                h57928b3_0    conda-forge
 console_bridge            1.0.1                h5362a0b_0    conda-forge
 cppzmq                    4.8.1                h4324990_0    conda-forge

@traversaro
Copy link
Member Author

traversaro commented Feb 15, 2022

The issue is related to the GLUT::GLUT imported target used in https://github.com/robotology/icub-main/blob/601af527248f16c73e3d353bf9bdac0fa47b3d9c/src/tools/iCubGui/src/CMakeLists.txt#L70 .

With CMake 3.21 it is:

GLUT::GLUT BINARY_DIR = C:/src/robotology-superbuild/buildoldcmake/src/ICUB
GLUT::GLUT DEBUG_POSTFIX = d
GLUT::GLUT IMPORTED = TRUE
GLUT::GLUT IMPORTED_CONFIGURATIONS = RELEASE
GLUT::GLUT IMPORTED_GLOBAL = FALSE
GLUT::GLUT INTERFACE_INCLUDE_DIRECTORIES = C:/Users/STraversaro/AppData/Local/mambaforge/envs/robdebugoldcmake/Library/include
GLUT::GLUT NAME = GLUT::GLUT
GLUT::GLUT SOURCE_DIR = C:/src/robotology-superbuild/src/ICUB
GLUT::GLUT TYPE = UNKNOWN_LIBRARY
GLUT::GLUT IMPORTED_LOCATION_RELEASE = C:/Users/STraversaro/AppData/Local/mambaforge/envs/robdebugoldcmake/Library/lib/glut.lib

With CMake 3.22:

GLUT::GLUT IMPORTED = TRUE
GLUT::GLUT IMPORTED_GLOBAL = FALSE
GLUT::GLUT INTERFACE_COMPILE_OPTIONS = -IC:/Users/STraversaro/AppData/Local/mambaforge/envs/robdebug/Library/include
GLUT::GLUT INTERFACE_INCLUDE_DIRECTORIES = C:/Users/STraversaro/AppData/Local/mambaforge/envs/robdebug/Library/include
GLUT::GLUT INTERFACE_LINK_LIBRARIES = glut;opengl32;winmm;gdi32;m
GLUT::GLUT INTERFACE_LINK_OPTIONS = -LC:/Users/STraversaro/AppData/Local/mambaforge/envs/robdebug/Library/lib;-lglut;-lopengl32;-lwinmm;-lgdi32;-lm
GLUT::GLUT INTERFACE_SYSTEM_INCLUDE_DIRECTORIES = C:/Users/STraversaro/AppData/Local/mambaforge/envs/robdebug/Library/include
GLUT::GLUT NAME = GLUT::GLUT
GLUT::GLUT TYPE = INTERFACE_LIBRARY
GLUT::GLUT IMPORTED_LOCATION_RELEASE = to_print-NOTFOUND

So I guess the issue is somewhere in https://github.com/Kitware/CMake/blob/master/Modules/FindGLUT.cmake .

@traversaro
Copy link
Member Author

This seems to be a regression from https://gitlab.kitware.com/cmake/cmake/-/merge_requests/6251 . Now FindGLUT use pkg-config to populate GLUT::GLUT information, but basically it does it incorrectly on Windows.

@traversaro
Copy link
Member Author

I fixed the CMAke issue with the change https://gitlab.kitware.com/cmake/cmake/-/issues/23229 . However, even after applying this change the compilation fails with this error:

Build FAILED.

"C:\src\robotology-superbuild\build\src\ICUB\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\src\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj" (default target) (53) ->
(Link target) ->
  LINK : warning LNK4044: unrecognized option '/LC:/Users/STraversaro/AppData/Local/mambaforge/envs/robdebug/Library/lib'; ignored [C:\src\robotology-superbuild\b
uild\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj]
  LINK : warning LNK4044: unrecognized option '/lglut'; ignored [C:\src\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj]
  LINK : warning LNK4044: unrecognized option '/lopengl32'; ignored [C:\src\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj]
  LINK : warning LNK4044: unrecognized option '/lwinmm'; ignored [C:\src\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj]
  LINK : warning LNK4044: unrecognized option '/lgdi32'; ignored [C:\src\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj]
  LINK : warning LNK4044: unrecognized option '/lm'; ignored [C:\src\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj]


"C:\src\robotology-superbuild\build\src\ICUB\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\src\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj" (default target) (53) ->
(Link target) ->
  LINK : fatal error LNK1181: cannot open input file 'm.lib' [C:\src\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj]

    6 Warning(s)
    1 Error(s)

The problem here is that freeglut's glut.pc file list m as a library to link, but on Windows no such library exists. However, this is a freeglut issue, not a CMake one.

@traversaro
Copy link
Member Author

The problem here is that freeglut's glut.pc file list m as a library to link, but on Windows no such library exists. However, this is a freeglut issue, not a CMake one.

Upstream fix proposed in freeglut/freeglut#96 and proposed in the conda-forge package in conda-forge/freeglut-feedstock#31 .

@traversaro
Copy link
Member Author

traversaro commented Feb 15, 2022

As we did everything to solve the problem appropriately, in the meantime that the fixes get approved, merged and released, I think we can just pin CMake to 3.21 .

@traversaro
Copy link
Member Author

Workaround added in #1035 . Proper fix merged in CMake in MR https://gitlab.kitware.com/cmake/cmake/-/merge_requests/6985 , it should be released in the next 3.22 patch release and in CMake 3.23 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant