Bug#822175: Support for GNU/Hurd
Package: src:firefox
Version: 45.0.2-1
Severity: wishlist
Tags: patch upstream
X-Debbugs-CC: debian-hurd@lists.debian.org
User: debian-hurd@lists.debian.org
Usertags: hurd
Forwarded: https://bugzilla.mozilla.org/show_bug.cgi?id=1029809
Control: clone -1 -2
Control: reassign -2 src:firefox-esr 45.0.2esr-1
Hi,
Please add support for GNU/Hurd. I have successfully built firefox
45.0.2-1 from source by applying this patch, which I have also forwarded
upstream at the above address. Given its non-invasive nature, merely
adding some #define's and #ifdef's that will only ever be relevant on
GNU/Hurd, it would be good to have this in Debian, even if upstream is
slow or unreceptive.
Regards,
James
commit 5f0ab786312e229c481387b05849b2039675104f
Author: James Clarke <jrtc27@jrtc27.com>
Date: Tue Apr 19 11:39:20 2016 +0100
Add Hurd support
diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
index 65d10cd..943a378 100644
--- a/build/autoconf/icu.m4
+++ b/build/autoconf/icu.m4
@@ -99,7 +99,7 @@ if test -n "$USE_ICU"; then
MOZ_ICU_DBG_SUFFIX=d
fi
;;
- Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD|GNU/kFreeBSD|SunOS|Android)
+ Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD|GNU/kFreeBSD|SunOS|Android|GNU)
ICU_LIB_NAMES="icui18n icuuc icudata"
;;
*)
diff --git a/build/gyp.mozbuild b/build/gyp.mozbuild
index 2ae5ac0..a2c4cf7 100644
--- a/build/gyp.mozbuild
+++ b/build/gyp.mozbuild
@@ -103,6 +103,7 @@ flavors = {
'FreeBSD': 'freebsd',
'NetBSD': 'netbsd',
'OpenBSD': 'openbsd',
+ 'GNU': 'gnu',
}
gyp_vars['OS'] = flavors.get(os)
diff --git a/configure b/configure
index c725e55..fde5151 100755
--- a/configure
+++ b/configure
@@ -30331,7 +30331,7 @@ if test -n "$USE_ICU"; then
MOZ_ICU_DBG_SUFFIX=d
fi
;;
- Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD|GNU/kFreeBSD|SunOS|Android)
+ Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD|GNU/kFreeBSD|SunOS|Android|GNU)
ICU_LIB_NAMES="icui18n icuuc icudata"
;;
*)
diff --git a/dom/plugins/ipc/PluginModuleChild.cpp b/dom/plugins/ipc/PluginModuleChild.cpp
index 68a85d1..66e4445 100644
--- a/dom/plugins/ipc/PluginModuleChild.cpp
+++ b/dom/plugins/ipc/PluginModuleChild.cpp
@@ -308,7 +308,7 @@ PluginModuleChild::InitForChrome(const std::string& aPluginFilename,
// TODO: use PluginPRLibrary here
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD)
mShutdownFunc =
(NP_PLUGINSHUTDOWN) PR_FindFunctionSymbol(mLibrary, "NP_Shutdown");
@@ -1916,7 +1916,7 @@ PluginModuleChild::AnswerNP_GetEntryPoints(NPError* _retval)
AssertPluginThread();
MOZ_ASSERT(mIsChrome);
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD)
return true;
#elif defined(OS_WIN) || defined(OS_MACOSX)
*_retval = mGetEntryPointsFunc(&mFunctions);
@@ -1961,7 +1961,7 @@ PluginModuleChild::DoNP_Initialize(const PluginSettings& aSettings)
#endif
NPError result;
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD)
result = mInitializeFunc(&sBrowserFuncs, &mFunctions);
#elif defined(OS_WIN) || defined(OS_MACOSX)
result = mInitializeFunc(&sBrowserFuncs);
diff --git a/dom/plugins/ipc/PluginModuleChild.h b/dom/plugins/ipc/PluginModuleChild.h
index ffd3555..420fe03 100644
--- a/dom/plugins/ipc/PluginModuleChild.h
+++ b/dom/plugins/ipc/PluginModuleChild.h
@@ -281,7 +281,7 @@ private:
// we get this from the plugin
NP_PLUGINSHUTDOWN mShutdownFunc;
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD)
NP_PLUGINUNIXINIT mInitializeFunc;
#elif defined(OS_WIN) || defined(OS_MACOSX)
NP_PLUGININIT mInitializeFunc;
diff --git a/ipc/chromium/chromium-config.mozbuild b/ipc/chromium/chromium-config.mozbuild
index c6f5de4..796a66d 100644
--- a/ipc/chromium/chromium-config.mozbuild
+++ b/ipc/chromium/chromium-config.mozbuild
@@ -65,5 +65,8 @@ else:
'OS_BSD': 1,
})
+ elif CONFIG['OS_ARCH'] == 'GNU':
+ DEFINES['OS_HURD'] = 1
+
else:
DEFINES['OS_LINUX'] = 1
diff --git a/ipc/chromium/moz.build b/ipc/chromium/moz.build
index 8b8e4cc..6da8683 100644
--- a/ipc/chromium/moz.build
+++ b/ipc/chromium/moz.build
@@ -136,7 +136,7 @@ if os_bsd:
'src/base/process_util_bsd.cc'
]
-if os_linux:
+if os_linux or os_hurd:
SOURCES += [
'src/base/atomicops_internals_x86_gcc.cc',
'src/base/idle_timer_none.cc',
@@ -150,7 +150,7 @@ if os_linux:
DEFINES['ANDROID'] = True
DEFINES['_POSIX_MONOTONIC_CLOCK'] = 0
-if os_bsd or os_linux:
+if os_bsd or os_linux or os_hurd:
if CONFIG['MOZ_WIDGET_GTK']:
SOURCES += [
'src/base/message_pump_glib.cc',
diff --git a/ipc/chromium/src/base/file_util_posix.cc b/ipc/chromium/src/base/file_util_posix.cc
index b716a5d..fbb4e58 100644
--- a/ipc/chromium/src/base/file_util_posix.cc
+++ b/ipc/chromium/src/base/file_util_posix.cc
@@ -277,7 +277,7 @@ bool GetTempDir(FilePath* path) {
}
bool GetShmemTempDir(FilePath* path) {
-#if defined(OS_LINUX) && !defined(ANDROID)
+#if (defined(OS_LINUX) && !defined(ANDROID)) || defined(OS_HURD)
*path = FilePath("/dev/shm");
return true;
#else
diff --git a/ipc/chromium/src/base/message_loop.cc b/ipc/chromium/src/base/message_loop.cc
index 7f72412..ffaa939 100644
--- a/ipc/chromium/src/base/message_loop.cc
+++ b/ipc/chromium/src/base/message_loop.cc
@@ -19,7 +19,7 @@
#if defined(OS_POSIX)
#include "base/message_pump_libevent.h"
#endif
-#if defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD)
#if defined(MOZ_WIDGET_GTK)
#include "base/message_pump_glib.h"
#endif
@@ -145,7 +145,7 @@ MessageLoop::MessageLoop(Type type)
if (type_ == TYPE_UI) {
#if defined(OS_MACOSX)
pump_ = base::MessagePumpMac::Create();
-#elif defined(OS_LINUX) || defined(OS_BSD)
+#elif defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD)
pump_ = new base::MessagePumpForUI();
#endif // OS_LINUX
} else if (type_ == TYPE_IO) {
diff --git a/ipc/chromium/src/base/platform_thread.h b/ipc/chromium/src/base/platform_thread.h
index ed09afd..b17afd7 100644
--- a/ipc/chromium/src/base/platform_thread.h
+++ b/ipc/chromium/src/base/platform_thread.h
@@ -22,7 +22,7 @@ typedef void* PlatformThreadHandle; // HANDLE
#elif defined(OS_POSIX)
#include <pthread.h>
typedef pthread_t PlatformThreadHandle;
-#if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(__GLIBC__)
+#if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_HURD) || defined(__GLIBC__)
#include <unistd.h>
typedef pid_t PlatformThreadId;
#elif defined(OS_BSD)
diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc
index be25069..4fd9ecb 100644
--- a/ipc/chromium/src/base/platform_thread_posix.cc
+++ b/ipc/chromium/src/base/platform_thread_posix.cc
@@ -51,7 +51,7 @@ PlatformThreadId PlatformThread::CurrentId() {
#else
return syscall(__NR_gettid);
#endif
-#elif defined(OS_OPENBSD) || defined(__GLIBC__)
+#elif defined(OS_OPENBSD) || defined(OS_HURD) || defined(__GLIBC__)
return (intptr_t) (pthread_self());
#elif defined(OS_NETBSD)
return _lwp_self();
diff --git a/ipc/chromium/src/base/port.h b/ipc/chromium/src/base/port.h
index 573f5f0..7ce76f4 100644
--- a/ipc/chromium/src/base/port.h
+++ b/ipc/chromium/src/base/port.h
@@ -56,7 +56,7 @@ namespace base {
// Define an OS-neutral wrapper for shared library entry points
#if defined(OS_WIN)
#define API_CALL __stdcall
-#elif defined(OS_LINUX) || defined(OS_MACOSX)
+#elif defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_HURD)
#define API_CALL
#endif
diff --git a/ipc/chromium/src/base/process_util.h b/ipc/chromium/src/base/process_util.h
index a8ce304..f4872a2 100644
--- a/ipc/chromium/src/base/process_util.h
+++ b/ipc/chromium/src/base/process_util.h
@@ -17,7 +17,7 @@
#ifndef STDOUT_FILENO
#define STDOUT_FILENO 1
#endif
-#elif defined(OS_LINUX) || defined(__GLIBC__)
+#elif defined(OS_LINUX) || defined(OS_HURD) || defined(__GLIBC__)
#include <dirent.h>
#include <limits.h>
#include <sys/types.h>
diff --git a/ipc/chromium/src/base/process_util_posix.cc b/ipc/chromium/src/base/process_util_posix.cc
index 088b6ff..8a6b5460 100644
--- a/ipc/chromium/src/base/process_util_posix.cc
+++ b/ipc/chromium/src/base/process_util_posix.cc
@@ -127,6 +127,10 @@ void CloseSuperfluousFds(const base::InjectiveMultimap& saved_mapping) {
static const rlim_t kSystemDefaultMaxFds = 1024;
// at least /dev/fd will exist
static const char kFDDir[] = "/dev/fd";
+#elif defined(OS_HURD)
+ static const rlim_t kSystemDefaultMaxFds = 1024;
+ // Currently always empty, but it exists
+ static const char kFDDir[] = "/dev/fd";
#endif
// Get the maximum number of FDs possible.
@@ -210,7 +214,7 @@ void CloseSuperfluousFds(const base::InjectiveMultimap& saved_mapping) {
void SetAllFDsToCloseOnExec() {
#if defined(OS_LINUX)
const char fd_dir[] = "/proc/self/fd";
-#elif defined(OS_MACOSX) || defined(OS_BSD)
+#elif defined(OS_MACOSX) || defined(OS_BSD) || defined(OS_HURD)
const char fd_dir[] = "/dev/fd";
#endif
ScopedDIR dir_closer(opendir(fd_dir));
diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h
index 7a4938e..45eadf9 100644
--- a/ipc/chromium/src/build/build_config.h
+++ b/ipc/chromium/src/build/build_config.h
@@ -22,6 +22,8 @@
#define OS_MACOSX 1
#elif defined(__linux__)
#define OS_LINUX 1
+#elif defined(__GNU__)
+#define OS_HURD 1
#elif defined(__DragonFly__)
#define OS_DRAGONFLY 1
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
@@ -45,7 +47,7 @@
// For access to standard POSIX features, use OS_POSIX instead of a more
// specific macro.
-#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_HURD) || defined(OS_BSD)
#define OS_POSIX 1
#endif
diff --git a/ipc/chromium/src/chrome/common/transport_dib.h b/ipc/chromium/src/chrome/common/transport_dib.h
index e56685b..6869b39 100644
--- a/ipc/chromium/src/chrome/common/transport_dib.h
+++ b/ipc/chromium/src/chrome/common/transport_dib.h
@@ -7,7 +7,7 @@
#include "base/basictypes.h"
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)
+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_HURD) || defined(OS_BSD)
#include "base/shared_memory.h"
#endif
@@ -62,7 +62,7 @@ class TransportDIB {
uint32_t sequence_num;
};
typedef HandleAndSequenceNum Id;
-#elif defined(OS_MACOSX) || defined(OS_BSD)
+#elif defined(OS_MACOSX) || defined(OS_HURD) || defined(OS_BSD)
typedef base::SharedMemoryHandle Handle;
// On Mac, the inode number of the backing file is used as an id.
typedef base::SharedMemoryId Id;
@@ -104,7 +104,7 @@ class TransportDIB {
private:
TransportDIB();
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)
+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_HURD) || defined(OS_BSD)
explicit TransportDIB(base::SharedMemoryHandle dib);
base::SharedMemory shared_memory_;
#elif defined(OS_LINUX)
diff --git a/ipc/chromium/src/third_party/libeventcommon.mozbuild b/ipc/chromium/src/third_party/libeventcommon.mozbuild
index bb8f41b..ec08358 100644
--- a/ipc/chromium/src/third_party/libeventcommon.mozbuild
+++ b/ipc/chromium/src/third_party/libeventcommon.mozbuild
@@ -8,6 +8,7 @@ os_win = 0
os_posix = 0
os_macosx = 0
os_bsd = 0
+os_hurd = 0
os_linux = 0
if CONFIG['OS_ARCH'] == 'WINNT':
@@ -21,6 +22,8 @@ else:
'NetBSD', 'OpenBSD']:
os_bsd = 1
libevent_include_suffix = 'bsd'
+ elif CONFIG['OS_ARCH'] == 'GNU':
+ os_hurd = 1
else:
os_linux = 1
if CONFIG['OS_TARGET'] == 'Android':
diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
index 1215b65..adbbf60 100644
--- a/ipc/glue/GeckoChildProcessHost.cpp
+++ b/ipc/glue/GeckoChildProcessHost.cpp
@@ -633,7 +633,7 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt
// and passing wstrings from one config to the other is unsafe. So
// we split the logic here.
-#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_HURD) || defined(OS_BSD)
base::environment_map newEnvVars;
ChildPrivileges privs = mPrivileges;
if (privs == base::PRIVILEGES_DEFAULT) {
@@ -647,7 +647,7 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt
MOZ_ASSERT(gGREBinPath);
nsCString path;
NS_CopyUnicodeToNative(nsDependentString(gGREBinPath), path);
-# if defined(OS_LINUX) || defined(OS_BSD)
+# if defined(OS_LINUX) || defined(OS_HURD) || defined(OS_BSD)
# if defined(MOZ_WIDGET_ANDROID)
path += "/lib";
# endif // MOZ_WIDGET_ANDROID
@@ -759,7 +759,7 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt
childArgv.push_back(pidstring);
#if defined(MOZ_CRASHREPORTER)
-# if defined(OS_LINUX) || defined(OS_BSD)
+# if defined(OS_LINUX) || defined(OS_HURD) || defined(OS_BSD)
int childCrashFd, childCrashRemapFd;
if (!CrashReporter::CreateNotificationPipeForChild(
&childCrashFd, &childCrashRemapFd))
@@ -792,7 +792,7 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt
childArgv.push_back(childProcessType);
base::LaunchApp(childArgv, mFileMap,
-#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_HURD) || defined(OS_BSD)
newEnvVars, privs,
#endif
false, &process, arch);
diff --git a/js/src/asmjs/AsmJSSignalHandlers.cpp b/js/src/asmjs/AsmJSSignalHandlers.cpp
index f20a402..3c1b6a9 100644
--- a/js/src/asmjs/AsmJSSignalHandlers.cpp
+++ b/js/src/asmjs/AsmJSSignalHandlers.cpp
@@ -117,10 +117,12 @@ class AutoSetHandlingSignal
# define R13_sig(p) ((p)->sc_r13)
# define R14_sig(p) ((p)->sc_r14)
# define R15_sig(p) ((p)->sc_r15)
-#elif defined(__linux__) || defined(SOLARIS)
+#elif defined(__linux__) || defined(__GNU__) || defined(SOLARIS)
# if defined(__linux__)
# define XMM_sig(p,i) ((p)->uc_mcontext.fpregs->_xmm[i])
# define EIP_sig(p) ((p)->uc_mcontext.gregs[REG_EIP])
+# elif defined(__GNU__)
+# define EIP_sig(p) ((p)->uc_mcontext.gregs[REG_EIP])
# else
# define XMM_sig(p,i) ((p)->uc_mcontext.fpregs.fp_reg_set.fpchip_state.xmm[i])
# define EIP_sig(p) ((p)->uc_mcontext.gregs[REG_PC])
diff --git a/js/src/configure b/js/src/configure
index a957c4b..225f453 100755
--- a/js/src/configure
+++ b/js/src/configure
@@ -15932,7 +15932,7 @@ if test -n "$USE_ICU"; then
MOZ_ICU_DBG_SUFFIX=d
fi
;;
- Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD|GNU/kFreeBSD|SunOS|Android)
+ Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD|GNU/kFreeBSD|SunOS|Android|GNU)
ICU_LIB_NAMES="icui18n icuuc icudata"
;;
*)
diff --git a/media/webrtc/signaling/signaling.gyp b/media/webrtc/signaling/signaling.gyp
index d39daf0..b3989e9 100644
--- a/media/webrtc/signaling/signaling.gyp
+++ b/media/webrtc/signaling/signaling.gyp
@@ -368,6 +368,23 @@
'cflags_mozilla': [
],
}],
+ ['OS=="gnu"', {
+ 'include_dirs': [
+ ],
+ 'defines': [
+ 'OS_HURD',
+ 'WEBRTC_POSIX',
+ 'SIP_OS_HURD',
+ 'HURD',
+ '_GNU_SOURCE',
+ 'GIPS_VER=3510',
+ 'SECLIB_OPENSSL',
+
+ ],
+
+ 'cflags_mozilla': [
+ ],
+ }],
],
},
],
diff --git a/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h b/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h
index 808067e..f43a0ba 100644
--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h
+++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h
@@ -5,7 +5,7 @@
#ifndef _CPR_TYPES_H_
#define _CPR_TYPES_H_
-#if defined SIP_OS_LINUX
+#if defined(SIP_OS_LINUX) || defined(SIP_OS_HURD)
#include "cpr_linux_types.h"
#elif defined SIP_OS_WINDOWS
#include "cpr_win_types.h"
diff --git a/media/webrtc/trunk/build/build_config.h b/media/webrtc/trunk/build/build_config.h
index 55ed38c..d5ef779 100644
--- a/media/webrtc/trunk/build/build_config.h
+++ b/media/webrtc/trunk/build/build_config.h
@@ -37,6 +37,9 @@
#elif defined(_WIN32)
#define OS_WIN 1
#define TOOLKIT_VIEWS 1
+#elif defined(__GNU__)
+#define OS_HURD 1
+#define TOOLKIT_GTK
#elif defined(__DragonFly__)
#define OS_DRAGONFLY 1
#define TOOLKIT_GTK
@@ -70,7 +73,8 @@
// For access to standard POSIXish features, use OS_POSIX instead of a
// more specific macro.
#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || \
- defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL)
+ defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL) || \
+ defined(OS_HURD)
#define OS_POSIX 1
#endif
diff --git a/media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h b/media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h
index 3a595f4..d429e6a 100644
--- a/media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h
+++ b/media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h
@@ -259,6 +259,8 @@
# define GTEST_OS_OPENBSD 1
#elif defined __QNX__
# define GTEST_OS_QNX 1
+#elif defined(__GNU__)
+# define GTEST_OS_HURD 1
#endif // __CYGWIN__
#ifndef GTEST_LANG_CXX11
@@ -450,7 +452,7 @@
// To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0
// to your compiler flags.
# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \
- || GTEST_OS_QNX)
+ || GTEST_OS_QNX || GTEST_OS_HURD)
#endif // GTEST_HAS_PTHREAD
#if GTEST_HAS_PTHREAD
@@ -605,7 +607,7 @@ using ::std::tuple_size;
(GTEST_OS_MAC && !GTEST_OS_IOS) || \
(GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \
GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \
- GTEST_OS_OPENBSD || GTEST_OS_QNX)
+ GTEST_OS_OPENBSD || GTEST_OS_QNX || GTEST_OS_HURD)
# define GTEST_HAS_DEATH_TEST 1
# include <vector> // NOLINT
#endif
diff --git a/security/sandbox/chromium/build/build_config.h b/security/sandbox/chromium/build/build_config.h
index b07660d..e3519ef 100644
--- a/security/sandbox/chromium/build/build_config.h
+++ b/security/sandbox/chromium/build/build_config.h
@@ -46,6 +46,8 @@
// we really are using glibc, not uClibc pretending to be glibc
#define LIBC_GLIBC 1
#endif
+#elif defined(__GNU__)
+#define OS_HURD 1
#elif defined(_WIN32)
#define OS_WIN 1
#define TOOLKIT_VIEWS 1
@@ -75,7 +77,7 @@
// more specific macro.
#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD) || \
defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_ANDROID) || \
- defined(OS_NACL) || defined(OS_QNX)
+ defined(OS_NACL) || defined(OS_QNX) || defined(OS_HURD)
#define OS_POSIX 1
#endif
Reply to: