[mpich-discuss] Option '-iface' broken when MPICH is configured with '--enable-strict'

Balaji, Pavan balaji at anl.gov
Thu Feb 6 05:57:41 CST 2014


Thank you.  I+IBk-ve created a ticket for it.


On 2/4/14, 3:52 PM, +ACI-Jan Bierbaum+ACI- +ADw-jan.bierbaum+AEA-tudos.org+AD4- wrote:

+AD4-Hi+ACE-
+AD4-
+AD4-Although I'm not sure whether this should be considered a bug or just an
+AD4-annoyance, I thought it would be a good idea to bring it up here because
+AD4-it took me quiet some time to figure out the underlying problem.
+AD4-
+AD4-For those not interested in the details: My suggestion is to disable
+AD4-'-iface' completely when MPICH is configured with '--enable-strict'.
+AD4-When the option is used in such a situation, some descriptive error
+AD4-message should be displayed.
+AD4-
+AD4-
+AD4-Now, for the full story: I routinely pass the '--enable-strict' option
+AD4-to configure. According to 'configure --help' this option is supposed to
+AD4AIg-Turn on strict compilation testing+ACI- which sounds like a good thing when
+AD4-you are working with unfamiliar code.
+AD4-
+AD4-Recently I also started to play around with the '-iface' option of
+AD4-mpiexec and to my surprise MPICH just produced a rather useless error
+AD4-message:
+AD4-
+AD4- +AD4- Fatal error in MPI+AF8-Init: Other MPI error+ACI-
+AD4-
+AD4-A debug build of MPICH 3.0.4 was more informative:
+AD4-
+AD4APg- Fatal error in MPI+AF8-Init: Other MPI error, error stack:
+AD4APg- MPIR+AF8-Init+AF8-thread(433)..............:
+AD4APg- MPID+AF8-Init(176).....................: channel initialization failed
+AD4APg- MPIDI+AF8-CH3+AF8-Init(70).................:
+AD4APg- MPID+AF8-nem+AF8-init(286).................:
+AD4APg- MPID+AF8-nem+AF8-tcp+AF8-init(108).............:
+AD4APg- MPID+AF8-nem+AF8-tcp+AF8-get+AF8-business+AF8-card(354):
+AD4APg- MPID+AF8-nem+AF8-tcp+AF8-init(246).............: The network interface, +ACI-eth0+ACI-,
+AD4APg-specified in MPICH+AF8-NETWORK+AF8-IFACE was not found.
+AD4-
+AD4-To make a long story short, '--enable-strict' apparently passes '-ansi'
+AD4-to the compiler. The compiler then defines the internal macro
+AD4-'+AF8AXw-STRICT+AF8-ANSI+AF8AXw-'. On my machine with gcc (Debian 4.7.2-5) 4.7.2 this
+AD4-will eventually cause 'net/if.h' to hide the definition of 'struct
+AD4-ifreq' and 'struct ifconf'.
+AD4-
+AD4-'configure' detects that these structures are missing and creates an
+AD4-MPICH build that uses an empty, always-failing version of
+AD4-'MPIDI+AF8-Get+AF8-IP+AF8-for+AF8-iface'. This failure, in turn, results in the
+AD4-aforementioned rather useless error message.
+AD4-
+AD4-IMHO there should either be some mechanism to enable strict code
+AD4-checking without passing the '-ansi' option or '-iface' should be
+AD4-disabled cleanly when '--enable-strict' is used. At least some
+AD4-explanatory error message would be nice +ADs--)
+AD4-
+AD4-
+AD4-Regards, Jan
+AD4AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBf-
+AD4-discuss mailing list     discuss+AEA-mpich.org
+AD4-To manage subscription options or unsubscribe:
+AD4-https://lists.mpich.org/mailman/listinfo/discuss




More information about the discuss mailing list