This isn't a static library problem and it can't be fixed by the cluster admins, it's a glibc design problem. There are a set of functions (those that use the services configured with nsswitch.conf, which includes host name resolution and user information resolution) that are implemented through a set of modules which are dlopened. There are four or five solutions to the problem, none good, including:
- Don't use functions which cause the warning - Don't use glibc - Don't try to statically link - Create a dynamically linked "proxy app" for those functions - Make sure that glibc is installed on the compute machines, so that the runtime libraries are available, and ignore the warnings (things will work correctly in this mode) Personally, I like option 3. There's really no reason to statically link glibc into your executable. It should already be staged on the compute node if the machine admin knows what he's doing. Brian On 5/1/12 8:20 AM, "Ralph Castain" <r...@open-mpi.org> wrote: >I looked and the answer is "no". I could add one and push it upstream, >but the problem is really due to someone not installing one or more >static libraries. It looks like we are only finding the shared library >versions of a couple of libs. I'm going to explore a little more and >possibly request that someone fix it on the cluster. > > >On May 1, 2012, at 7:29 AM, Jeff Squyres wrote: > >> Is there a libevent configure switch we can use to disable those unused >>libevent functions? >> >> On Apr 30, 2012, at 11:49 PM, Hjelm, Nathan T wrote: >> >>> When building statically on Cielito I see the following warnings: >>> /scratch/hjelmn/xe6/openmpi-gcc/trunk/lib/libmpi.a(session_dir.o): In >>>function `orte_session_dir_get_name': >>> session_dir.c:(.text+0x204): warning: Using 'getpwuid' in statically >>>linked applications requires at runtime the shared libraries from the >>>glibc version used for linking >>> /scratch/hjelmn/xe6/openmpi-gcc/trunk/lib/libmpi.a(evutil.o): In >>>function `test_for_getaddrinfo_hacks': >>> evutil.c:(.text+0x7a): warning: Using 'getaddrinfo' in statically >>>linked applications requires at runtime the shared libraries from the >>>glibc version used for linking >>> /scratch/hjelmn/xe6/openmpi-gcc/trunk/lib/libmpi.a(evutil.o): In >>>function `evutil_unparse_protoname': >>> evutil.c:(.text+0x7a): warning: Using 'getprotobynumber' in statically >>>linked applications requires at runtime the shared libraries from the >>>glibc version used for linking >>> /scratch/hjelmn/xe6/openmpi-gcc/trunk/lib/libmpi.a(if.o): In function >>>`opal_ifaddrtoname': >>> if.c:(.text+0x37c): warning: Using 'gethostbyname' in statically >>>linked applications requires at runtime the shared libraries from the >>>glibc version used for linking >>> >>> >>> Two of those warnings are coming from libevent functions we do not use >>>(and probably never will). The other two may be a little trickier to >>>fix. >>> >>> -Nathan >>> >>> Excuse the terribly reply format. OWA sucks. >>> ________________________________________ >>> From: devel-boun...@open-mpi.org [devel-boun...@open-mpi.org] on >>>behalf of Ralph Castain [r...@open-mpi.org] >>> Sent: Monday, April 30, 2012 2:55 PM >>> To: Open MPI Developers >>> Subject: Re: [OMPI devel] libevent socket code >>> >>> Can you send me a copy of the warnings, or tell me which machine at >>>LANL is generating them? I'm working on libevent now (found a bug they >>>are helping with) and can take a look at it. >>> >>> >>> On Apr 25, 2012, at 11:05 AM, Nathan Hjelm wrote: >>> >>>> Let me take a look. The code in question is in evutil.c and >>>>bufferevent_sock.c . If there is no option we might be able to get >>>>away with just removing these files from the Makefile.am. >>>> >>>> -Nathan >>>> >>>> On Wed, 25 Apr 2012, Jeff Squyres wrote: >>>> >>>>> On Apr 25, 2012, at 12:50 PM, Ralph Castain wrote: >>>>> >>>>>> Can't it be done with configuring --without-libevent-sockets or >>>>>>some such thing? I really hate munging the code directly as it >>>>>>creates lots of support issues and makes it harder to upgrade. >>>>> >>>>> If there's a libevent configure option we should be using, we can >>>>>probably set that to be enabled by default. Let me know. >>>>> >>>>> -- >>>>> Jeff Squyres >>>>> jsquy...@cisco.com >>>>> For corporate legal information go to: >>>>>http://www.cisco.com/web/about/doing_business/legal/cri/ >>>>> >>>>> >>>>> _______________________________________________ >>>>> devel mailing list >>>>> de...@open-mpi.org >>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>> >>>> _______________________________________________ >>>> devel mailing list >>>> de...@open-mpi.org >>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >> >> >> -- >> Jeff Squyres >> jsquy...@cisco.com >> For corporate legal information go to: >>http://www.cisco.com/web/about/doing_business/legal/cri/ >> >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/devel > > >_______________________________________________ >devel mailing list >de...@open-mpi.org >http://www.open-mpi.org/mailman/listinfo.cgi/devel > > -- Brian W. Barrett Dept. 1423: Scalable System Software Sandia National Laboratories