Fix build problems on hurd-i386

Forwarded: partially
Last-Update: 2018-10-24

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 <sthibault@debian.org>
See bugs.debian.org/846965

Gbp-Pq: Name build_hurd
This commit is contained in:
Pino Toscano 2022-11-01 14:46:00 +08:00 committed by luoyaoming
parent d71bc17f04
commit 1f4eaade12
7 changed files with 44 additions and 1 deletions

View File

@ -28,6 +28,10 @@
#include "opal_config.h"
#ifndef PATH_MAX /* Hurd */
#define PATH_MAX 65535
#endif
#define OMPI_IDENT_STRING OPAL_IDENT_STRING
/***********************************************************************

View File

@ -32,6 +32,10 @@
static ssize_t mca_fbtl_posix_preadv_datasieving (ompio_file_t *fh);
static ssize_t mca_fbtl_posix_preadv_generic (ompio_file_t *fh);
#ifndef IOV_MAX
#define IOV_MAX 1024
#endif
ssize_t mca_fbtl_posix_preadv (ompio_file_t *fh )
{
ssize_t bytes_read=0, ret_code=0;

View File

@ -33,6 +33,10 @@
static ssize_t mca_fbtl_posix_pwritev_datasieving (ompio_file_t *fh );
static ssize_t mca_fbtl_posix_pwritev_generic (ompio_file_t *fh );
#ifndef IOV_MAX
#define IOV_MAX 1024
#endif
ssize_t mca_fbtl_posix_pwritev(ompio_file_t *fh )
{
ssize_t bytes_written=0, ret_code=0;

View File

@ -51,6 +51,14 @@
#include "opal/util/opal_environ.h"
#include "opal/runtime/opal.h"
#ifndef MAXPATHLEN /* Hurd */
#define MAXPATHLEN 65535
#endif
#ifndef PATH_MAX /* Hurd */
#define PATH_MAX 65535
#endif
/*
* local variables
*/

View File

@ -588,8 +588,12 @@ int opal_util_register_stackhandlers (void)
/* Setup the signals to catch */
memset(&act, 0, sizeof(act));
#ifdef SA_SIGINFO
act.sa_sigaction = show_stackframe;
act.sa_flags = SA_SIGINFO;
#else
act.sa_handler = show_stackframe_handler;
#endif
#ifdef SA_ONESHOT
act.sa_flags |= SA_ONESHOT;
#else

View File

@ -26,6 +26,13 @@
#include "opal_config.h"
#ifndef PATH_MAX /* Hurd */
#define PATH_MAX 65535
#endif
#ifndef MAXPATHLEN
#define MAXPATHLEN 65535
#endif
#define ORTE_IDENT_STRING OPAL_IDENT_STRING
# if OPAL_C_HAVE_VISIBILITY

View File

@ -856,7 +856,11 @@ static int setup_path(orte_app_context_t *app, char **wdir)
* again not match getcwd! This is beyond our control - we are only
* ensuring they start out matching.
*/
#if !defined(MAXPATHLEN) && defined(__GLIBC__)
basedir = get_current_dir_name();
#else
getcwd(dir, sizeof(dir));
#endif
*wdir = strdup(dir);
opal_setenv("PWD", dir, true, &app->env);
/* update the initial wdir value too */
@ -1065,7 +1069,11 @@ void orte_odls_base_default_launch_local(int fd, short sd, void *cbdata)
orte_app_context_t *app;
orte_proc_t *child=NULL;
int rc=ORTE_SUCCESS;
char basedir[MAXPATHLEN];
#if !defined(MAXPATHLEN) && defined(__GLIBC__)
char *basedir=NULL;
#else
char basedir[MAXPATHLEN];
#endif
int j, idx;
int total_num_local_procs = 0;
orte_odls_launch_local_t *caddy = (orte_odls_launch_local_t*)cbdata;
@ -2061,7 +2069,11 @@ int orte_odls_base_default_restart_proc(orte_proc_t *child,
* bouncing around as we execute this app, but we will always return
* to this place as our default directory
*/
#if !defined(MAXPATHLEN) && defined(__GLIBC__)
basedir = get_current_dir_name();
#else
getcwd(basedir, sizeof(basedir));
#endif
/* find this child's jobdat */
if (NULL == (jobdat = orte_get_job_data_object(child->name.jobid))) {