Source: boost1.74
Version: 1.74.0-4
Severity: important
Tags: patch upstream fixed-upstream
X-Debbugs-Cc: gl...@debian.org
Control: forwarded -1 https://github.com/boostorg/build/pull/676

Hi,

boost 1.71 currently fails to build on Hurd [1].

The issue is that boost build ("b2") now tries to get its path (i.e.
the full path of the running executable), and the function for this
is not implemented on Hurd; the effect is that launching b2 with a
relative path, like ./b2 as done at different times during the build,
fails.

I recently sent upstream few small improvements for Hurd [2], including
the fix for the aforementioned issue. The series was recently merged
upstream for the future 1.76.0, so I'm attaching here only the part
of it needed to make b2 run properly (the rest is improvements that can
definitely wait for newer boost versions).

[1] 
https://buildd.debian.org/status/fetch.php?pkg=boost1.74&arch=hurd-i386&ver=1.74.0-4&stamp=1607921711&raw=0
[2] https://github.com/boostorg/build/pull/676

Thanks,
-- 
Pino
Author: Pino Toscano <toscano.p...@tiscali.it>
Description: Use /proc/self/exe for executable_path on Hurd
 .
 Use the Linux compatibility procfs translator to get the full path of
 the current executable.
Origin: 
https://github.com/boostorg/build/commit/25879fc24d96c89e817e7950ec92d6e2cb41e1b3
Applied-Upstream: 1.76.0

--- a/tools/build/src/engine/jam.cpp
+++ b/tools/build/src/engine/jam.cpp
@@ -747,7 +747,7 @@ char * executable_path( char const * arg
     sysctl( mib, 4, buf, &size, NULL, 0 );
     return ( !size || size == sizeof( buf ) ) ? NULL : strndup( buf, size );
 }
-#elif defined(__linux__)
+#elif defined(__linux__) || defined(__GNU__)
 # include <unistd.h>
 char * executable_path( char const * argv0 )
 {

Reply via email to