I wouln't consider sourced variables being overritten by the sourcing platform file a problem. I can update the platform file documentation to make sure this behavior is clear. Can you point me at the right faq page?
-Nathan On Mon, Jul 09, 2012 at 08:36:41PM -0700, Ralph Castain wrote: > Okay, it took me awhile to grok thru all this, and I now understand how it is > working. You do have a question, though, with duplicated entries. At the > moment, we ignore any entry that is duplicated on the configure cmd line - > i.e., if you set something in a platform file, and then attempt to also set > it on the cmd line, we ignore the cmd line (without warning). In this case, > an entry in the first file that is duplicated in the second file gets > overwritten, also without warning. > > Dunno if that's an issue or not, but something to be aware of. > > > On Jul 9, 2012, at 4:52 PM, Ralph Castain wrote: > > > I keep scratching my head over this, and I just cannot figure out how this > > is going to do what you think. We "source" the platform file solely to > > execute any envar settings that are in it - i.e., to capture the CFLAGS=... > > and other such directives. We then read/parse the platform file to get all > > the configure directives - e.g., enable_debug=yes. Sourcing the platform > > file will set the envars, but won't capture the rest of the directives. > > > > Am I missing something here? It doesn't sound like you've really even tried > > this yet - sure, chaining "source" commands will work, but do you actually > > get the desired configuration?? > > > > Hence my comment about needing to modify the parser so it ALSO follows the > > "source" directive. > > > > On Jul 9, 2012, at 3:58 PM, Nathan Hjelm wrote: > > > >> On Mon, Jul 09, 2012 at 03:31:33PM -0700, Ralph Castain wrote: > >>> So if I understand this right, you would have multiple platform files, > >>> each "sourcing" a common one that contains the base directives? It sounds > >>> to me like you need more than the change below to make that work - you > >>> would need to interpret the platform file itself to read and execute a > >>> "source" directive inside it, wouldn't you? > >> > >> That is exactly what I want to do. The change in the RFC is the only one > >> needed as platform files are sourced by ompi_load_platform.m4. This means > >> platforms can contain arbitrary m4/shell code (including the source > >> directive)! I tried my patch with a one line platform file that sourced an > >> existing platform file and it worked as expected. > >> > >>> It would really help if your change (either comments or the RFC) actually > >>> explained what the heck you are doing so I wouldn't have to waste hours > >>> trying to figure out the impact of this patch :-/ > >>> > >> > >> The RFC does explain what the patch does but I guess I could have > >> elaborated on the implications. > >> > >> Before the patch we source the platform file then cd into the platform > >> directory to find the mca parameters file. If a platform file were to have > >> a source directive then it would have to be relative to the build > >> directory (or absolute). By cding into the platform file's directory > >> before sourcing the platform file and source directives are relative to > >> the platform file's directory (or absolute). There is no impact outside of > >> m4/shell commands within the platform file that read/write/stat files. > >> > >> I will add some additional comments before the commit (if there are no > >> objects of course) elaborating on the change. > >> > >> -Nathan > >> _______________________________________________ > >> 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