c++: Fix (some) solaris breakage
authorNathan Sidwell <nathan@acm.org>
Wed, 16 Dec 2020 13:10:16 +0000 (05:10 -0800)
committerNathan Sidwell <nathan@acm.org>
Wed, 16 Dec 2020 13:18:39 +0000 (05:18 -0800)
Solaris' sys/socket uses the poisoned bcopy identifier, so we must
preemptively copy a bit of cody's inclusion logic to get it earlier.

gcc/cp/
* mapper-client.cc: Include sys/socket.h before system.h.

gcc/cp/mapper-client.cc

index acec591296a62b07ea413e2c5eb71e24d6519722..2ad770b3d78d1cd2beb62554151a3732d858a635 100644 (file)
@@ -19,6 +19,11 @@ along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
+#if defined (__unix__)
+// Solaris11's socket header used bcopy, which we poison.  cody.hh
+// will include it later under the above check
+#include <sys/socket.h>
+#endif
 #include "system.h"
 
 #include "line-map.h"
@@ -28,6 +33,10 @@ along with GCC; see the file COPYING3.  If not see
 
 #include "../../c++tools/resolver.h"
 
+#if !HOST_HAS_O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
 module_client::module_client (pex_obj *p, int fd_from, int fd_to)
   : Client (fd_from, fd_to), pex (p)
 {