diff --git a/src/engine/jam.cpp b/src/engine/jam.cpp index c419f1fa1..76acdb6f7 100644 --- a/src/engine/jam.cpp +++ b/src/engine/jam.cpp @@ -747,7 +747,7 @@ char * executable_path( char const * argv0 ) sysctl( mib, 4, buf, &size, NULL, 0 ); return ( !size || size == sizeof( buf ) ) ? NULL : strndup( buf, size ); } -#elif defined(__linux__) || defined(__CYGWIN__) +#elif defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) # include char * executable_path( char const * argv0 ) { diff --git a/src/engine/jam.h b/src/engine/jam.h index 25e5736fd..f9f139582 100644 --- a/src/engine/jam.h +++ b/src/engine/jam.h @@ -189,6 +189,10 @@ #define OSMINOR "OS=DGUX" #define OS_DGUX #endif +#ifdef __GNU__ + #define OSMINOR "OS=HURD" + #define OS_HURD +#endif #ifdef __hpux #define OSMINOR "OS=HPUX" #define OS_HPUX diff --git a/src/engine/sysinfo.cpp b/src/engine/sysinfo.cpp index c3257e71e..fa2e3c163 100644 --- a/src/engine/sysinfo.cpp +++ b/src/engine/sysinfo.cpp @@ -18,7 +18,7 @@ #include #endif -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(__GLIBC__) // Need to define this in case it's not as that's the only way to get the // sched_* APIs. #ifndef _GNU_SOURCE diff --git a/src/tools/builtin.py b/src/tools/builtin.py index 9eeaaf697..ecec2c9e3 100644 --- a/src/tools/builtin.py +++ b/src/tools/builtin.py @@ -82,9 +82,9 @@ def variant (name, parents_or_properties, explicit_properties = []): feature.compose ("" + name, explicit_properties.all()) __os_names = """ - amiga aix appletv bsd cygwin darwin dos emx freebsd hpux iphone linux netbsd - openbsd osf qnx qnxnto sgi solaris sun sunos svr4 sysv ultrix unix unixware - vms windows + amiga aix appletv bsd cygwin darwin dos emx freebsd hpux hurd iphone linux + netbsd openbsd osf qnx qnxnto sgi solaris sun sunos svr4 sysv ultrix unix + unixware vms windows """.split() # Translates from bjam current OS to the os tags used in host-os and target-os,