bloomberg / bloomberg/bde

Compile issue due to missing /bigobj

Open
#312 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.