Bug#1120617: openmpi: FTBFS on hurd-amd64 since PATH_MAX is not defined

Drew Parsons <[email protected]>
Newsgroups gmane.linux.debian.ports.hurd
Message-ID <176303320178.348842.9887039258200324211.reportbug__14288.494554215$1763033368$gmane$org@sandy>
Source: openmpi
Followup-For: Bug #1120617
X-Debbugs-Cc: [email protected]
User: [email protected]
Usertags: hurd-amd64
Control: tags -1 ftbfs

Linux sets PATH_MAX to 4096 in /usr/include/linux/limits.h
(included in sys/param.h)

We already have a debian patch for hurd, so easy to update it to add
3rd-party/romio341/mpl/src/str/mpl_str.c.

Updated build_hurd patch attached (patched against salsa debian/latest)
build_hurd (text/plain, 3.1 KB)
Description: Fix build problems on hurd-i386
 This patch allows Open MPI to build on Debian GNU/HURD.
 .
 Also, the memory:linux MCA component is disabled, since its use of POSIX API
 in malloc hooks called very early at startup causes troubles.
 .
 Also changes by Samuel Thibault <[email protected]>
 See bugs.debian.org/846965
Author: Pino Toscano <[email protected]>
Forwarded: partially
Last-Update: 2018-10-24

Index: openmpi/ompi/include/ompi_config.h
===================================================================
--- openmpi.orig/ompi/include/ompi_config.h	2025-11-13 12:15:05.326539024 +0100
+++ openmpi/ompi/include/ompi_config.h	2025-11-13 12:15:05.320309280 +0100
@@ -28,6 +28,10 @@
 
 #include "opal_config.h"
 
+#ifndef PATH_MAX /* Hurd */
+#define PATH_MAX 65535
+#endif
+
 #define OMPI_IDENT_STRING OPAL_IDENT_STRING
 
 /***********************************************************************
Index: openmpi/opal/mca/base/mca_base_var.c
===================================================================
--- openmpi.orig/opal/mca/base/mca_base_var.c	2025-11-13 12:15:05.326539024 +0100
+++ openmpi/opal/mca/base/mca_base_var.c	2025-11-13 12:15:05.321442824 +0100
@@ -61,6 +61,14 @@
 #include "opal/util/printf.h"
 #include "opal/util/show_help.h"
 
+#ifndef MAXPATHLEN /* Hurd */
+#define MAXPATHLEN 65535
+#endif
+
+#ifndef PATH_MAX  /* Hurd */
+#define PATH_MAX 65535
+#endif
+
 /*
  * local variables
  */
Index: openmpi/ompi/mca/fbtl/posix/fbtl_posix_preadv.c
===================================================================
--- openmpi.orig/ompi/mca/fbtl/posix/fbtl_posix_preadv.c	2025-11-13 12:15:05.326539024 +0100
+++ openmpi/ompi/mca/fbtl/posix/fbtl_posix_preadv.c	2025-11-13 12:15:05.322394375 +0100
@@ -39,6 +39,10 @@
 static ssize_t mca_fbtl_posix_preadv_single (ompio_file_t *fh, struct flock *lock, int *lock_counter);
 
 
+#ifndef IOV_MAX
+#define IOV_MAX 1024
+#endif
+
 ssize_t mca_fbtl_posix_preadv (ompio_file_t *fh )
 {
     ssize_t bytes_read=0;
Index: openmpi/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c
===================================================================
--- openmpi.orig/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c	2025-11-13 12:15:05.326539024 +0100
+++ openmpi/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c	2025-11-13 12:15:05.323135878 +0100
@@ -37,6 +37,10 @@
 static ssize_t mca_fbtl_posix_pwritev_generic (ompio_file_t *fh, struct flock *lock, int *lock_counter );
 static ssize_t mca_fbtl_posix_pwritev_single (ompio_file_t *fh, struct flock *lock, int *lock_counter );
 
+#ifndef IOV_MAX
+#define IOV_MAX 1024
+#endif
+
 ssize_t  mca_fbtl_posix_pwritev(ompio_file_t *fh )
 {
     ssize_t bytes_written=0;
Index: openmpi/3rd-party/romio341/mpl/src/str/mpl_str.c
===================================================================
--- openmpi.orig/3rd-party/romio341/mpl/src/str/mpl_str.c	2025-11-13 12:14:42.194014704 +0100
+++ openmpi/3rd-party/romio341/mpl/src/str/mpl_str.c	2025-11-13 12:15:53.193653561 +0100
@@ -18,6 +18,11 @@
 #include <sys/param.h>
 #endif
 
+/* Non-linux systems like hurd might not define PATH_MAX in param.h */
+#ifndef PATH_MAX
+#define PATH_MAX        4096
+#endif
+
 #ifdef MPL_HAVE_TIME_H
 #include <time.h>
 #endif
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.