Hi! Although I'm not sure whether this should be considered a bug or just an annoyance, I thought it would be a good idea to bring it up here because it took me quiet some time to figure out the underlying problem. For those not interested in the details: My suggestion is to disable '-iface' completely when MPICH is configured with '--enable-strict'. When the option is used in such a situation, some descriptive error message should be displayed. Now, for the full story: I routinely pass the '--enable-strict' option to configure. According to 'configure --help' this option is supposed to "Turn on strict compilation testing" which sounds like a good thing when you are working with unfamiliar code. Recently I also started to play around with the '-iface' option of mpiexec and to my surprise MPICH just produced a rather useless error message:
Fatal error in MPI_Init: Other MPI error"
A debug build of MPICH 3.0.4 was more informative:
Fatal error in MPI_Init: Other MPI error, error stack: MPIR_Init_thread(433)..............: MPID_Init(176).....................: channel initialization failed MPIDI_CH3_Init(70).................: MPID_nem_init(286).................: MPID_nem_tcp_init(108).............: MPID_nem_tcp_get_business_card(354): MPID_nem_tcp_init(246).............: The network interface, "eth0", specified in MPICH_NETWORK_IFACE was not found.
To make a long story short, '--enable-strict' apparently passes '-ansi' to the compiler. The compiler then defines the internal macro '__STRICT_ANSI__'. On my machine with gcc (Debian 4.7.2-5) 4.7.2 this will eventually cause 'net/if.h' to hide the definition of 'struct ifreq' and 'struct ifconf'. 'configure' detects that these structures are missing and creates an MPICH build that uses an empty, always-failing version of 'MPIDI_Get_IP_for_iface'. This failure, in turn, results in the aforementioned rather useless error message. IMHO there should either be some mechanism to enable strict code checking without passing the '-ansi' option or '-iface' should be disabled cleanly when '--enable-strict' is used. At least some explanatory error message would be nice ;-) Regards, Jan