Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[flang] Handle missing LOGIN_NAME_MAX definition in runtime (llvm#77775)
18af032 broke the Solaris build: ``` /vol/llvm/src/llvm-project/dist/flang/runtime/extensions.cpp:60:24: error: use of undeclared identifier 'LOGIN_NAME_MAX' 60 | const int nameMaxLen{LOGIN_NAME_MAX + 1}; | ^ /vol/llvm/src/llvm-project/dist/flang/runtime/extensions.cpp:61:12: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension] 61 | char str[nameMaxLen]; | ^~~~~~~~~~ /vol/llvm/src/llvm-project/dist/flang/runtime/extensions.cpp:61:12: note: initializer of 'nameMaxLen' is unknown /vol/llvm/src/llvm-project/dist/flang/runtime/extensions.cpp:60:13: note: declared here 60 | const int nameMaxLen{LOGIN_NAME_MAX + 1}; | ^ ``` `flang/unittests/Runtime/CommandTest.cpp` has the same issue. As documented in Solaris 11.4 `limits.h(3HEAD)`, `LOGIN_NAME_MAX` can be undefined. To determine the value, `sysconf(3C)` needs to be used instead. Beside that portable method, Solaris also provides a non-standard `LOGNAME_MAX` which could be used, but I've preferred the standard route instead which would support other targets with the same issue. Tested on `amd64-pc-solaris2.11` and `x86_64-pc-linux-gnu`.
- Loading branch information