Hi Nick I have greatly simplified the changes so that configure.in only adds two lines to it, each of which is a call to a separate AC function. So the changes are now quite contained. I'll put them in the tracker later this week (I'm currently on travel).
I can insert the actual copyright text. You are indeed free to use the code (we checked to ensure our licenses are compatible) - just need to include the copyright. As for changing the tests to run-time: I think it's a little bit of pro/con. The advantage is as you state - cross-compile is always an issue. The disadvantage is in startup time for a process as running a bunch of tests doesn't come for free. What I have done in the port is retain some of both options. You can configure out functionality, and you can set run-time options to select/deselect various modes. So I don't consume time running tests at run-time, but do allow a user to specify "I want to run with these modes", and gracefully fail-out if they aren't available. Note that configuration tests are -not- run in cross-compile mode - if you configure an option "in" when cross-compiling, libevent is built with that support (it does not run a test to see if it works). Not quite what you describe, but like I said - in our world, process startup time is important (we get beat up about every second), and in our experience, it is rare that someone configuring a cross-compile version doesn't know what methods are going to be supported on the backend. As for the embedded vs non-embedded configuration: I chose to add an "--enable-embedded" configuration option to your configure.in that ensures symbols are hidden and does whatever else might be suitable for such environments. HTH Ralph On Mon, Sep 13, 2010 at 8:24 PM, Nick Mathewson <ni...@freehaven.net> wrote: > On Tue, Sep 7, 2010 at 2:31 PM, Ralph Castain <r...@open-mpi.org> wrote: > > Hi folks > > Continuing the discussion re pushing some of Open MPI's experiences > > upstream, I have attached our opal_setup_libevent.m4 script for building > > libevent as part of OMPI. Note that the comments describe several > scenarios > > where the existing libevent tests aren't quite adequate for detecting > when > > various functionality should be "on" vs "off". These have been rather > > thoroughly tested by the respective developers, so we offer them to you > for > > consideration. > > I also have added a set of options to your configure.in and associated > files > > that might prove useful. Nothing profound - they just allow users to > > "deselect" certain support options (e.g., DNS, http). I've attached a > diff > > (options.diff) that shows the changes, though I suspect you'll want to > clean > > them up. > > HTH > > Ralph > > Thanks, Ralph! > > It would be great if you can upload these to the patch tracker at > sourceforge [1] ; I would hate to lose track of them between now and > when we fork 2.1.x. > > Re licensing: The opal_setup_libevent.m4 file has a huge pile of > copyright statements on it, but no actual license. FWICT, that means > I am have permission to use it. Could you slap one on? It's also > pretty clearly made (in parts) by changes to Libevent's configure.in > (many of the lines are identical), but it looks like when the preamble > got chopped off, Dug Song's credit for the original version got > chopped off too. > > Once that's cleared up, it would be cool to start picking this apart > to figure out which parts are improvements or new features and which > parts are just porting Libevent's configure.in to be embedded. > Anything that constitutes a bug in 2.0.x should get fixed now (if > feasible). Anything else can wait for 2.1. > > Oh, and a random code strategy thought: it seems to me that testing at > compile-time for poll and epoll and kqueue behavior is subtly > suboptimal. Consider a program built to use one linux kernel where > epoll works that's run with another where epoll doesn't work. That's > pretty much a poster case for a run-time check. (Yes, I know that > libevent already does some compile-time checks for backend > correctness, but I'm not sure that they're actually the right thing to > do.) In 2.1.x, we should see if we can make more of these checks > happen at startup time (as feasible). This should also improve > correctness in the cross-compilation case, where you can't do a > compile-time check that involves running code. > > So, to summarize: > * Thanks! > * Patch tracker [1]. > * License. > * Let's figure out what's a bugfix. > * I think we should migrate to doing fewer "does this backend work" > checks at compile-time. > > [1] https://sourceforge.net/tracker/?group_id=50884&atid=461324 > > peace and thanks again, > -- > Nick > *********************************************************************** > To unsubscribe, send an e-mail to majord...@freehaven.net with > unsubscribe libevent-users in the body. >