On Oct 16, 2008, at 1:39 PM, Aleksej Saushev wrote:
[asau.local:04648] opal_ifinit: ioctl(SIOCGIFFLAGS) failed with
errno=6
[snip]
Why don't you use strerror(3) to print errno value explanation?
I don't know; whoever wrote that just chose not to there. Shrug.
From <sys/errno.h>:
#define ENXIO 6 /* Device not configured */
It seems that I have to debug network interface probing,
how should I use *_output subroutines so that they do print?
opal_output(0, "...printf-like stuff here...", ...printf varargs...);
Should always output. Stream 0 is our "unconditional" stream; it goes
to stderr. You'll see opal_output(0) output from mpirun and MPI apps;
we usually close the stderr from orted's by default.
Make sure that you re-build and re-install OMPI properly or your
output won't show up. You can either do a top-level "make
install" (which might be lengthy, depending on the speed of your
system(s), and especially if you're iteratively editing opal/util/
if.c), or you can do the following:
cd top-ompi-src-dir
cd opal
make
make install-am
If you built OMPI with shared libraries, that should be sufficient to
recompile opal/util/if.c, rebuild libopen-pal.so, and re-install it.
Or, if you *really* want to streamline, you can do something like this:
cd top-ompi-src-dir
cd opal
cd util && make && cd .. && make install-am
And then repeat that last step as necessary (this is the kind of thing
I do when I am editing a single .c file in one of OMPI's libs).
--
Jeff Squyres
Cisco Systems