<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56995>56995</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            AIX linker errors after switch to C++17
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            build-problem,
            platform:aix
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          tru
      </td>
    </tr>
</table>

<pre>
    As noted by @jakeegan here: https://reviews.llvm.org/D130689#3705579

AIX bot fails to link after we changed standard to C++17 with this error:

```
152.827 [4302/10/270] Linking CXX executable bin/llvm-tblgen
FAILED: bin/llvm-tblgen 
: && /opt/IBM/openxlC/17.1.0/bin/ibm-clang++_r  -mcmodel=large -fPIC -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -Wl,-bnoipath  utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmWriterEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmWriterInst.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/Attributes.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CallingConvEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeEmitterGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenHwModes.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenInstruction.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenMapTable.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenRegisters.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenSchedule.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenTarget.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcher.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DecoderEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DFAEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DirectiveEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DisassemblerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DXILEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/ExegesisEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/FastISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/GICombinerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/GlobalISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InfoByHwMode.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InstrInfoEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InstrDocsEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/IntrinsicEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptParserEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptRSTEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/PredicateExpander.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CompressInstEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/RegisterBankEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/RegisterInfoEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SDNodeProperties.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SearchableTableEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SubtargetEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/TableGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/Types.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/VarLenCodeEmitterGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86DisassemblerTables.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86MnemonicTables.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86ModRMFilters.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86RecognizableInstr.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/WebAssemblyDisassemblerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CTagsEmitter.cpp.o  -o bin/llvm-tblgen  -Wl,-blibpath:"\$ORIGIN/../lib:/opt/IBM/xlmass/10.1.0/lib:/usr/lib:/lib"  lib/libLLVMSupport.a  lib/libLLVMTableGen.a  -lpthreads  lib/libLLVMTableGenGlobalISel.a  lib/libLLVMTableGen.a  lib/libLLVMSupport.a  -lrt  -lld  -lpthreads  -lm  /usr/lib/libcurses.a  lib/libLLVMDemangle.a && :
ld: 0711-317 ERROR: Undefined symbol: ._ZdlPvSt11align_val_t
ld: 0711-317 ERROR: Undefined symbol: ._ZnwmSt11align_val_t
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
.orig: error: linker command failed with exit code 8 (use -v to see invocation)
```

link to bot: https://lab.llvm.org/buildbot/#/builders/214/builds/2707/steps/5/logs/stdio

Would be good with some help trying to figure this one out.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytWFlz4ygQ_jXyCyWVLPl88IPjI-uqeCaVZCapfUkh0ZKZINAC8jG_fhvJzjhz7FZZrjiSaJqPvoCmE8UOk6khUllgJDkQrxd-o28AOZVkAxq8eEo21pYGP7xoiT8NWw47EwixLQKlcyTNu3E4GI29KI6HYb8_HHvh3AunzXO6eiGJsiSjXBhiFRFcvhGaWdBkByTdUJnj3MZSyahmjmPmRTf46w7JjtsNsRtuCGittBPiDNobhMdf3ez2o2AUDYnXv-nFYYSCdUN8RMPQ68_JHU7LZU5mLy8E9pBWliYCSMIl8jhlfJuIHGSDtZyu7hZzp_0vDOQ4OfZ50QB_-Fqq0uJzdbOuv0HuxczNPwy6gZOhAeFJ4acC9W30e9WE-EVaKAbCi-eC6hyIn92vZsR_rvU9vbGXUQu-5QWc0SqZV2gyYD7donVpwgW3B1_CDpmoEI51bzXFt1R-JSuDrCXVtABnff95pzmiGqvRMAbbKTXW_6eibmTBjUGyn3EQzOeSW04F_w4aGUtgVFqeNsBCIZt7OIRGtfHIT1VRUuvXAvgGCo69vCgFT7n1M5TObrSq8o0bpLYYasw36O504zPIaCVsAy4V7FMorW8PJdQk6W-5tiikz2xtIjQf6uP_psdUeQ6oksPXnLnxjbIonUSa4Uo2qgqgzNG5ZCAttXVHxjjNpTKoqcERwmFmWSVT14061W_j-KilZ-3PMfHnn-aLmy-3iC68aOYnUnE0x4aQyuI6wGB4cuF3Cy4uZmtccksuwHyMtIBxjZSpKdYUDQN6UXCLngvSsgzUZUjPzuXXA1pJYy9HseiMpLJgLoaYYSCh32bozrY6zXAdHjGQvxUMMs6nt_fUYckWyjVQf-3W-NEaxrlKV3WMtoVa07Ie0xbnAXJu0EatdXvE1cGq9gI9uT348oBGp68eQbSNxCPMlRb9R7Q2of0R6XPZ2lBHpMthIEW_tbfQcnoFiHuavoF1J2RrMK7dWbKF9kCGGjx7kb-9UC-YEbXEWOwBz2Nu2uIsMU-5xkK7Xc1UgblZe-vcCpVQcQ2ZVjJTN4dmz28Bgnu9Q2ovDQLNVdraZSvpEi_D07ZAuO1cAeKeatPe6wj08PjUFuUec1-eYn6_2Jd4CWqDZKBi6k7twCW57ROiotRgjIuBtlink_6GyrdrYV0jvh_nn3Cd3Wu8s2nLWyRZj0A13mWRvR7TWq4qsXUucjWgJVBbaXBGuxjsxHk5AF7iLrfxV6rvQF4pT38ZDc6Px3rg5aIh2uLr4iXC_waprd8QcKkEuxrYWkKhJE_b64kH08MaOVrl7YjzgMlbLvl3N6Y-Zi4Ge4Zk2vjxcM2MZ_ZE859MT3z1m4LQ-yVf8MRd8utaWeT1Z17U-_ywul19wgFB4EbxpCmkndeL9qJAmT1XrjqWi97ZKqPPm-4jigip3651d_d1_ViVpdI2oD_R3xcrdviitBsNlJk_MP3IX_4T508T-0Jb9xTs41y-KAj5oEf9TCs8fc0vgHMoqMzxFkffK2ungp9grt4WDrtdP-4OyeLh4fODo3zB8zLDBI4RcygSJRwteP2bifvto-12qeC5fN1S8WovwpG74n9hen3yxQCxGyAYAYqygpbElYoSqf6pOFiCznb1JKuIws2YS1IoDYTjTqyLutQUNKiB0jx3wKdiZ10rBU1SVaBlWF1DRRHrqijsuSXu-kNGaK1RhSL4WzeHAYe9VWkN7UXj3xZLj3q4WiyOSZT9tdIraHJe5U0qLphjdJ3xiYCbAH5G3d6JUDeH4RBfeEiXrtl3YCo3NYlxdS7Bs6owaBIguVJHzYwqgGxAlMTqgyvZooAZz_HwakrBSgJRlQ06MOkO-uNxPBpFow6bxGwcj2nHcitg4srOR-vV1jTHknNTY_xQZe5UWkw-qp6jHFUSoN2PS_204kutvuHdDJvcmKreOPqD8bjf2UySwZhFMWNxkqXMiZTFwNI-CpiMo6gXdtCeIMzE6-O0UW0rB4eLq3C7RTRDN0aloNaFBUpC-b7eReYdPonCKApH-DcIh2E_SHrjYRQPoiSLWZiNB14vxKXDxbu7OnpSi5tUaPVeKDBf-lGx7-Bug_EMUIuC-LSyG6UnVledWqtJrdK_SnY1pg">