<div dir="ltr">It turns out that Cori-KNL does have git, it is just not loaded by default.<div><br></div><div>It still does not work, but the error looks different.</div><div><br></div><div><div>*******************************************************************************</div><div>         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for details):</div><div>-------------------------------------------------------------------------------</div><div>Could not initialize sc submodule needed by p4est</div><div>*******************************************************************************</div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 16, 2017 at 10:20 PM, Tobin Isaac <span dir="ltr"><<a href="mailto:tisaac@uchicago.edu" target="_blank">tisaac@uchicago.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
On Thu, Feb 16, 2017 at 05:48:57PM -0600, Barry Smith wrote:<br>
><br>
> > On Feb 16, 2017, at 5:01 PM, Tobin Isaac <<a href="mailto:tisaac@uchicago.edu">tisaac@uchicago.edu</a>> wrote:<br>
> ><br>
> > The bootstrap script predates/supercedes  autoreconf to get the necessary m4 scripts and write configure.  The tarballs have the m4 scripts and configure, so they should be treated as standard gnu configure && make && make install scripts.  I think that's what I accomplished in p4est.py.  I'm on my phone, when I'm at a computer I'll look at this thread's history to see if I can figure out what's going on.<br>
><br>
>    You are confusing two errors. One is the issue you mention above, we don't care about that. The only error we care about is that p4est ./configure needs to run a compiled program to gather some information about the machine. On systems with cross-compiling this doesn't work since after ./configure compiles the program it cannot run it because it is not compatible with the hardware. So the question is: is there an easy way to hack the p4est configure so that we can provide the needed information directly and not have ./configure try to run an executable?<br>
<br>
</span>Okay, I get it now.  There should be `config.log` in<br>
externalpackags/git.p4est that would let me know what particular check<br>
it was working on when cross-compilation errors cropped up, and I<br>
could try to help come up with a solution.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
>    Barry<br>
><br>
> Note that this problem is common for many autoconf based build systems, its solution depends on the details of how the particular system is using using executables to gather information.<br>
><br>
> ><br>
> > On February 16, 2017 4:34:35 PM CST, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
> >><br>
> >> The best long term fix is to find out what things p4est needs to<br>
> >> determine by a running a program and providing them some other way.<br>
> >><br>
> >> Toby<br>
> >><br>
> >>  So what things is p4est trying to determine by running a program?<br>
> >><br>
> >> Barry<br>
> >><br>
> >><br>
> >><br>
> >>> On Feb 16, 2017, at 3:25 PM, Satish Balay <<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>> wrote:<br>
> >>><br>
> >>> I don't understand autoconf well enough for cross compiling. Some<br>
> >>> packages appear to require this - but others don't.<br>
> >>><br>
> >>><br>
> >> <a href="https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Hosts-and-Cross_002dCompilation.html" rel="noreferrer" target="_blank">https://www.gnu.org/software/<wbr>autoconf/manual/autoconf-2.69/<wbr>html_node/Hosts-and-Cross_<wbr>002dCompilation.html</a><br>
> >>><br>
> >>> So one would run 'config.guess' script on the compute node - and use<br>
> >> this value on the compile node with configure?<br>
> >>><br>
> >>> I don't know how we could automate that..<br>
> >>><br>
> >>> Satish<br>
> >>><br>
> >>> On Wed, 15 Feb 2017, Mark Adams wrote:<br>
> >>><br>
> >>>> OK, that did not work. It says something about --host now.<br>
> >>>><br>
> >>>> On Wed, Feb 15, 2017 at 5:06 PM, Mark Adams <<a href="mailto:mfadams@lbl.gov">mfadams@lbl.gov</a>> wrote:<br>
> >>>><br>
> >>>>> I think this will work because I have git when I configure on a<br>
> >> login node<br>
> >>>>> (Haswell). I build KNL by submitting a batch script (it takes to<br>
> >> long to<br>
> >>>>> fit in 30 minutes of an interactive session). That fails because<br>
> >> git is not<br>
> >>>>> available (can I just load the module ...) on a KNL compute node.<br>
> >> It is<br>
> >>>>> reconfiguring now, I'll let you know if it fails.<br>
> >>>>> Thanks,<br>
> >>>>><br>
> >>>>> On Wed, Feb 15, 2017 at 4:59 PM, Satish Balay <<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>><br>
> >> wrote:<br>
> >>>>><br>
> >>>>>> Sorry - this won't work - as p4est appears to require git<br>
> >> [submodules?]..<br>
> >>>>>><br>
> >>>>>>>>>>>>>>>>>> p4est.py <<<<<<<<<<<<<<br>
> >>>>>> def updateGitDir(self):<br>
> >>>>>>   config.package.GNUPackage.<wbr>updateGitDir(self)<br>
> >>>>>>   Dir = self.getDir()<br>
> >>>>>>   try:<br>
> >>>>>>     libsc = self.libsc<br>
> >>>>>>   except AttributeError:<br>
> >>>>>>     try:<br>
> >>>>>>       self.executeShellCommand([<wbr>self.sourceControl.git,<br>
> >> 'submodule',<br>
> >>>>>> 'update', '--init'], cwd=Dir, log=self.log)<br>
> >>>>>>       import os<br>
> >>>>>>       if os.path.isfile(os.path.join(<wbr>Dir,'sc','README')):<br>
> >>>>>>         self.libsc = os.path.join(Dir,'sc')<br>
> >>>>>>       else:<br>
> >>>>>>         raise RuntimeError<br>
> >>>>>>     except RuntimeError:<br>
> >>>>>>       raise RuntimeError('Could not initialize sc submodule<br>
> >> needed by<br>
> >>>>>> p4est')<br>
> >>>>>>   return<br>
> >>>>>> <<<<<<<br>
> >>>>>><br>
> >>>>>> Satish<br>
> >>>>>><br>
> >>>>>> On Wed, 15 Feb 2017, Satish Balay wrote:<br>
> >>>>>><br>
> >>>>>>> batch won't help here. its git vs tarball - and p4est curently<br>
> >> doesn't<br>
> >>>>>> have a taball.<br>
> >>>>>>><br>
> >>>>>>> The following should give you a tarball - if you don't have git.<br>
> >>>>>>><br>
> >>>>>>> diff --git a/config/BuildSystem/config/<wbr>packages/p4est.py<br>
> >>>>>> b/config/BuildSystem/config/<wbr>packages/p4est.py<br>
> >>>>>>> index 4735ff4..1f9507c 100644<br>
> >>>>>>> --- a/config/BuildSystem/config/<wbr>packages/p4est.py<br>
> >>>>>>> +++ b/config/BuildSystem/config/<wbr>packages/p4est.py<br>
> >>>>>>> @@ -4,7 +4,7 @@ class Configure(config.package.<wbr>GNUPackage):<br>
> >>>>>>>  def __init__(self, framework):<br>
> >>>>>>>    config.package.GNUPackage.__<wbr>init__(self, framework)<br>
> >>>>>>>    self.gitcommit         = 'v2.0'<br>
> >>>>>>> -    self.download          = ['git://<a href="https://github.com/cbu" rel="noreferrer" target="_blank">https://github.com/cbu</a><br>
> >>>>>> rstedde/p4est']<br>
> >>>>>>> +    self.download          = ['git://<a href="https://github.com/cbu" rel="noreferrer" target="_blank">https://github.com/cbu</a><br>
> >>>>>> rstedde/p4est','<a href="https://github.com/cburstedde/p4est/archive/" rel="noreferrer" target="_blank">https://<wbr>github.com/cburstedde/p4est/<wbr>archive/</a><br>
> >>>>>> '+self.gitcommit+'.tar.gz']<br>
> >>>>>>>    self.functions         = ['p4est_init']<br>
> >>>>>>>    self.includes          = ['p4est_bits.h']<br>
> >>>>>>>    self.liblist           = [['libp4est.a', 'libsc.a']]<br>
> >>>>>>><br>
> >>>>>>> I  can push this to master.<br>
> >>>>>>><br>
> >>>>>>> Satish<br>
> >>>>>>><br>
> >>>>>>> On Wed, 15 Feb 2017, Mark Adams wrote:<br>
> >>>>>>><br>
> >>>>>>>> Oh, this is because git does not work on KNL. Maybe I should do<br>
> >>>>>>>> with-batch=1,<br>
> >>>>>>>><br>
> >>>>>>>><br>
> >>>>>>>> On Wed, Feb 15, 2017 at 4:36 PM, Mark Adams <<a href="mailto:mfadams@lbl.gov">mfadams@lbl.gov</a>><br>
> >> wrote:<br>
> >>>>>>>><br>
> >>>>>>>>> I get this error on the KNL partition at NERSC.  P4est works on<br>
> >> the<br>
> >>>>>>>>> Haswell partition and other downloads seem to work on the KNL<br>
> >>>>>> partition.<br>
> >>>>>>>>> Any ideas?<br>
> >>>>>>>>><br>
> >>>>>>>><br>
> >>>>>>><br>
> >>>>>>><br>
> >>>>>><br>
> >>>>>><br>
> >>>>><br>
> >>>><br>
> >>><br>
><br>
</div></div></blockquote></div><br></div>