Looking at the detailed compile line in the "make" output that you sent, I 
don't see anything too unusual (e.g., in -I or other preprocessor directives).

You might want to look around your machine and see if there's an alternate 
signal.h that is somehow getting found and included.

If that doesn't yield anything interesting, then perhaps copy the "/usr/bin/gcc 
..." command for compiling signal.c from your make.out file, and add in a -E so 
that you can see the preprocessor output.  Then you can probably track down 
exactly which signal.h is being used.  For example, this is the command I see 
in your make.out (with line breaks added for readability):


/usr/bin/gcc -DHAVE_CONFIG_H -I. \

-I../../../../../../opal/mca/event/libevent2022/libevent \

-I../../../../../../opal/mca/event/libevent2022/libevent/compat \

-I../../../../../../opal/mca/event/libevent2022/libevent/include \

-I./include -I/home/zmumba/LIBS/src/openmpi-4.1.4 \

-I/home/zmumba/LIBS/src/openmpi-4.1.4/build \

-I/home/zmumba/LIBS/src/openmpi-4.1.4/opal/include \

-I/home/zmumba/LIBS/src/openmpi-4.1.4/build/opal/mca/hwloc/hwloc201/hwloc/include
 \

-I/home/zmumba/LIBS/src/openmpi-4.1.4/opal/mca/hwloc/hwloc201/hwloc/include \

-DNDEBUG -Drandom=opal_random -O -fPIC -D_XOPEN_SOURCE=500 -Wall \

-fno-strict-aliasing -pthread -MT signal.lo -MD -MP -MF \

.deps/signal.Tpo -c \

../../../../../../opal/mca/event/libevent2022/libevent/signal.c -fPIC \

-DPIC -o .libs/signal.o


If you remove the -o .libs/signal.o and instead put in a -E, you can redirect 
that and see the source code that came out of the preprocessor, and do a little 
backwards digging to figure out which signal.h was used:


/usr/bin/gcc -DHAVE_CONFIG_H -I. \

-I../../../../../../opal/mca/event/libevent2022/libevent \

-I../../../../../../opal/mca/event/libevent2022/libevent/compat \

-I../../../../../../opal/mca/event/libevent2022/libevent/include \

-I./include -I/home/zmumba/LIBS/src/openmpi-4.1.4 \

-I/home/zmumba/LIBS/src/openmpi-4.1.4/build \

-I/home/zmumba/LIBS/src/openmpi-4.1.4/opal/include \

-I/home/zmumba/LIBS/src/openmpi-4.1.4/build/opal/mca/hwloc/hwloc201/hwloc/include
 \

-I/home/zmumba/LIBS/src/openmpi-4.1.4/opal/mca/hwloc/hwloc201/hwloc/include \

-DNDEBUG -Drandom=opal_random -O -fPIC -D_XOPEN_SOURCE=500 -Wall \

-fno-strict-aliasing -pthread -MT signal.lo -MD -MP -MF \

.deps/signal.Tpo -c \

../../../../../../opal/mca/event/libevent2022/libevent/signal.c -fPIC \

-DPIC -E > signal-preprocessed.c

--
Jeff Squyres
jsquy...@cisco.com
________________________________
From: Zilore Mumba <zmu...@gmail.com>
Sent: Wednesday, September 28, 2022 1:50 AM
To: Jeff Squyres (jsquyres) <jsquy...@cisco.com>
Cc: users@lists.open-mpi.org <users@lists.open-mpi.org>
Subject: Re: [OMPI users] openmpi compile failure

Thanks once again for that insight Jeff. Indeed it is my configuration. When I 
run the code snippet you sent I get exactly the result you have " NSIG is 65".
So I have to ensure my configure is pointing to the right libraries.

On Wed, Sep 28, 2022 at 2:02 AM Jeff Squyres (jsquyres) 
<jsquy...@cisco.com<mailto:jsquy...@cisco.com>> wrote:
I'm not sure why that would happen; it does sound like some kind of 
misconfiguration on your system.

If I compile this trivial application on Ubuntu 18.04:


#include <signal.h>

#include <stdio.h>


int main() {

    printf("NSIG is %d\n", NSIG);

    return 0;

}

Like this:


$ gcc foo.c -o foo && ./foo

NSIG is 65

You can see that NSIG is definitely defined for me.

It's likely that until the above trivial program can compile properly, Open MPI 
won't compile properly, either.

--
Jeff Squyres
jsquy...@cisco.com<mailto:jsquy...@cisco.com>
________________________________
From: Zilore Mumba <zmu...@gmail.com<mailto:zmu...@gmail.com>>
Sent: Tuesday, September 27, 2022 2:51 PM
To: Jeff Squyres (jsquyres) <jsquy...@cisco.com<mailto:jsquy...@cisco.com>>
Cc: users@lists.open-mpi.org<mailto:users@lists.open-mpi.org> 
<users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>>
Subject: Re: [OMPI users] openmpi compile failure

Thanks Jeff,
I have tried with openmpi-4.1.4, but I still get the same error. The main error 
being
../../../../../../opal/mca/event/libevent2022/libevent/signal.c:135:14: error: 
‘NSIG’ undeclared (first use in this function); did you mean ‘_NSIG’?
  int ncaught[NSIG];
              ^~~~
              _NSIG
But I notice that inthe file "/usr/include/x86_64-linux-gnu/asm/signal.h" there 
is some definition of NSIG
#define NSIG        32
typedef unsigned long sigset_t;
....
....
/* These should not be considered constants from userland.  */
#define SIGRTMIN    32
#define SIGRTMAX    _NSIG

So I am wondering if it is my system which is not picking up the correct 
version of signal.h
I have a attached a new zipped file ompi-output-tar.bz2, which is also on 
dropbox, link https://www.dropbox.com/s/ps49xqximjnn8oy/ompi-output.tar.bz2?dl=0


On Tue, Sep 27, 2022 at 2:19 PM Jeff Squyres (jsquyres) 
<jsquy...@cisco.com<mailto:jsquy...@cisco.com>> wrote:
Can you re-try with the latest Open MPI v4.1.x release (v4.1.4)?  There have 
been many bug fixes since v4.1.0.

--
Jeff Squyres
jsquy...@cisco.com<mailto:jsquy...@cisco.com>

________________________________
From: users 
<users-boun...@lists.open-mpi.org<mailto:users-boun...@lists.open-mpi.org>> on 
behalf of Zilore Mumba via users 
<users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>>
Sent: Tuesday, September 27, 2022 5:10 AM
To: users@lists.open-mpi.org<mailto:users@lists.open-mpi.org> 
<users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>>
Cc: Zilore Mumba <zmu...@gmail.com<mailto:zmu...@gmail.com>>
Subject: Re: [OMPI users] openmpi compile failure

I am seeking help compiling openmpi. My compilation and installation output is 
in dropbox at the link below
https://www.dropbox.com/s/1a9tv5lnwicnhds/ompi-output.tar.bz2?dl=0
Help will be appreciated.

Reply via email to