Compile issue due to missing /bigobj
- Dominant language
- C++
- Stars
- 1.8k
- Forks
- 342
- PR merge metrics
- No merged PRs in 30d
Description
I tried to update the vcpkg port of this project: https://github.com/microsoft/vcpkg/pull/48865
The MSVC CI failed with:
```
[1043/1585] C:\PROGRA~1\MICROS~1\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe /TP -DBDE_BUILD_TARGET_CPP17 -DBDE_BUILD_TARGET_DBG -DNOGDI -DNOMINMAX -DVC_EXTRALEAN -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlar -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsl+bslhdrs -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsla -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsls -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslfmt -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslalg -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslma -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslmf -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslscm -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsltf -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslh -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslstl -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslstp -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsldoc -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslfwd -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslim -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslmt -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslx -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\thirdparty\bbryu\.. -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\thirdparty\inteldfp\LIBRARY\src -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\thirdparty\pcre2\src -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlat -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlb -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlde -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlf -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlscm -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlsb -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdldfp -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlt -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlc -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlma /nologo /DWIN32 /D_WINDOWS /utf-8 /GR /EHsc /MP /MDd /Z7 /Ob0 /Od /RTC1 -std:c++17 -MDd /showIncludes /Fogroups\bdl\CMakeFiles\bdlar-iface.dir\bdlar\bdlar_symbolicconverter.cpp.obj /Fdgroups\bdl\CMakeFiles\bdlar-iface.dir\ /FS -c D:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlar\bdlar_symbolicconverter.cpp
FAILED: [code=1] groups/bdl/CMakeFiles/bdlar-iface.dir/bdlar/bdlar_symbolicconverter.cpp.obj
C:\PROGRA~1\MICROS~1\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe /TP -DBDE_BUILD_TARGET_CPP17 -DBDE_BUILD_TARGET_DBG -DNOGDI -DNOMINMAX -DVC_EXTRALEAN -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlar -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsl+bslhdrs -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsla -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsls -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslfmt -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslalg -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslma -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslmf -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslscm -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsltf -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslh -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslstl -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslstp -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bsldoc -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslfwd -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslim -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslmt -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bsl\bslx -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\thirdparty\bbryu\.. -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\thirdparty\inteldfp\LIBRARY\src -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\thirdparty\pcre2\src -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlat -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlb -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlde -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlf -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlscm -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlsb -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdldfp -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlt -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlc -ID:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlma /nologo /DWIN32 /D_WINDOWS /utf-8 /GR /EHsc /MP /MDd /Z7 /Ob0 /Od /RTC1 -std:c++17 -MDd /showIncludes /Fogroups\bdl\CMakeFiles\bdlar-iface.dir\bdlar\bdlar_symbolicconverter.cpp.obj /Fdgroups\bdl\CMakeFiles\bdlar-iface.dir\ /FS -c D:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlar\bdlar_symbolicconverter.cpp
D:\b\bde\src\4.32.0.0-a4dc9e3f79.clean\groups\bdl\bdlar\bdlar_symbolicconverter.cpp : fatal error C1128: number of sections exceeded object file format limit: compile with /bigobj
```
I tried adding
```cmake
target_compile_options(bdlar PUBLIC /bigobj)
```
here:
https://github.com/bloomberg/bde/blob/894420312500a632bed12038951da804cc6de051/groups/bdl/CMakeLists.txt#L26-L30
but this didn't helped. As the CMake code contains many helper methods, instead of plain CMake, maybe you have an idea...
Contributor guide
Research direction
Start with groups/bdl/CMakeLists.txt and the bdlar target, then inspect the CMake helper methods involved in applying target compile options. Reproduce the MSVC build failure for groups/bdl/bdlar/bdlar_symbolicconverter.cpp and verify that the resulting build completes without C1128.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100