glibc has two versions of strerror_r, a standards compliant one and a GNU
authorDan Gohman <gohman@apple.com>
Mon, 15 Jun 2009 18:05:46 +0000 (18:05 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 15 Jun 2009 18:05:46 +0000 (18:05 +0000)
commit070c42f3111f6b69686405a583926e2cdb88379f
tree4f93ae793b479c8a01c618aabae4f5225f8a0ac0
parent2185f9e1eb1dbb155744a76049a272b1238c54e7
glibc has two versions of strerror_r, a standards compliant one and a GNU
specific one. The GNU one is chosen when _GNU_SOURCE is defined. g++ always
defines _GNU_SOURCE on linux platforms because glibc's headers won't compile
in C++ mode without it. The GNU strerror_r doesn't always modify the buffer
which causes empty error messages on linux.

This patch changes MakeErrMsg to use the return value of strerror_r to get
the string instead of assuming the buffer will be modified, on GLIBC.

Patch by Benjamin Kramer!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73396 91177308-0d34-0410-b5e6-96231b3b80d8
lib/System/Unix/Unix.h