On 07/11/17 19:26 +0200, Andris Pavenis wrote:
src/filesystem/ops-common.c uses S_ISSOCK unconditionally without checking that
it is available
As result compile fails for DJGPP when S_ISREG is available but
S_ISSOCK is not. Included patch add configure check for S_ISSOCK
Andris
ChangeLog entry:
2017-11-07 Andris Pavenis<andris.pavenis.iki.fi>
* acinclude.m4 (GLIBCXX_CHECK_S_ISSOCK): Define
* configure.ac: Check presence of S_ISSOCK
* src/filesystem/ops-common.h: Only use S_ISSOCK if defined for target
* config.h.in: Regenerate
* configure: Regenerate
Do we need an autoconf check?
commit 9d7fc666f031731cc5657b54e8dc39c81a28984f
Author: Jonathan Wakely <jwak...@redhat.com>
Date: Tue Nov 7 18:19:10 2017 +0000
Check for S_ISSOCK before use
* src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
S_ISSOCK when defined.
diff --git a/libstdc++-v3/src/filesystem/ops-common.h b/libstdc++-v3/src/filesystem/ops-common.h
index 12c12b08f8c..5b947287d7f 100644
--- a/libstdc++-v3/src/filesystem/ops-common.h
+++ b/libstdc++-v3/src/filesystem/ops-common.h
@@ -113,9 +113,11 @@ _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM
return file_type::fifo;
else if (S_ISLNK(st.st_mode))
return file_type::symlink;
+#ifdef S_ISSOCK
else if (S_ISSOCK(st.st_mode))
return file_type::socket;
#endif
+#endif
return file_type::unknown;
}