[Lldb-commits] [lldb] r246294 - Avoid usage of F_DUPFD_CLOEXEC where not available (e.g. kfreebsd*)
Sylvestre Ledru via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 28 05:24:08 PDT 2015
Author: sylvestre
Date: Fri Aug 28 07:24:07 2015
New Revision: 246294
URL: http://llvm.org/viewvc/llvm-project?rev=246294&view=rev
Log:
Avoid usage of F_DUPFD_CLOEXEC where not available (e.g. kfreebsd*)
Summary:
kfreebsd doesn't have F_DUPFD_CLOEXEC, so use it conditionally.
Author: Emilio Pozuelo Monfort <pochu at debian.org>
Author: Petr Salinger <Petr.Salinger at seznam.cz>
Author: Gianfranco Costamagna
Reviewers: emaste
Subscribers: emaste
Differential Revision: http://reviews.llvm.org/D12429
Modified:
lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp?rev=246294&r1=246293&r2=246294&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp (original)
+++ lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp Fri Aug 28 07:24:07 2015
@@ -462,11 +462,25 @@ ProcessFreeBSD::DoLaunch (Module *module
int terminal = m_monitor->GetTerminalFD();
if (terminal >= 0) {
// The reader thread will close the file descriptor when done, so we pass it a copy.
+#ifdef F_DUPFD_CLOEXEC
int stdio = fcntl(terminal, F_DUPFD_CLOEXEC, 0);
if (stdio == -1) {
error.SetErrorToErrno();
return error;
}
+#else
+ // Special case when F_DUPFD_CLOEXEC does not exist (Debian kFreeBSD)
+ int stdio = fcntl(terminal, F_DUPFD, 0);
+ if (stdio == -1) {
+ error.SetErrorToErrno();
+ return error;
+ }
+ stdio = fcntl(terminal, F_SETFD, FD_CLOEXEC);
+ if (stdio == -1) {
+ error.SetErrorToErrno();
+ return error;
+ }
+#endif
SetSTDIOFileDescriptor(stdio);
}
More information about the lldb-commits
mailing list