Re: [EXTERNAL] [xyce-users] Build error with Xyce 6.1 using Cygwin

62 views
Skip to first unread message

XYCE NO-OUO

unread,
May 12, 2014, 1:32:54 PM5/12/14
to
On 5/7/14 10:37 PM, "Jason Jacobs" <> wrote:

>Hello Xyce community,
>
>
>I've run into an error while building Xyce with Cygwin on Windows 7.  So
>far I've followed the build guide, as well as the YouTube video Tom Russo
>linked in a previous post.  The Trilinos build went smoothly once I
>sorted out some Cygwin file permission
>issues.
[...]

Jacob:
You've found a problem in Xyce 6.1 that apparently squeaked through all of
our QA testing.  The Cygwin build is not something we actually test
internally.  (Our internal Windows builds are not done using the Cygwin
gcc compiler, and our 6.1 builds worked fine.)


>
>/cygdrive/p/src/Xyce-6.1/src/LinearAlgebraServicesPKG/src/N_LAS_IfpackPrec
>ond.C: In member
> function 'virtual bool N_LAS_IfpackPrecond::setOptions(const N_U
>
>/cygdrive/p/src/Xyce-6.1/src/LinearAlgebraServicesPKG/src/N_LAS_IfpackPrec
>ond.C:158:3: error:
> 'list' was not declared in this scope
> list<N_UTL_Param>::const_iterator it_tpL = OB.getParams().begin();

This error is caused by the omission in the N_LAS_IfpackPrecond.C file of
the "std::" namespace before use of the list template.

I checked, and there are two lines in this file that have this error.
Simply add "std::" before the first "list" in the line, and it'll compile.

I also checked, and this error has already been fixed on our development
branch.  It must have bitten one of our developers already, but not in
time to make it to the 6.1 release.

This sort of error crept in between 6.0 and 6.1 when we moved away from a
very old habit of including "using namespace std" in every file and
updated to Trilinos 11.6.  With this change, we had to use the std::
namespace explicitly everywhere where a member of the std namespace was
used.  In most cases we caught the error, but apparently there was
something else in all our builds that managed to let "list" be found in
the std namespace in this file even without the namespace qualifier.


We're sorry for the oversight.  If you encounter any other compilation
errors like this, please post about it.

This issue will not be present in the next release.



Jason Jacobs

unread,
May 8, 2014, 11:14:42 AM5/8/14
to xyce-...@googlegroups.com, xy...@sandia.gov

I checked, and there are two lines in this file that have this error.
Simply add "std::" before the first "list" in the line, and it'll compile.


Thanks.  I was hoping it was something as simple as this.  I added the namespace resolution code to the list variable (and a few others), and my compilation was successful.  

I've also run the regression suite.  I'm getting 35 or so failures.  Is this expected?

Cheers,

Jason

XYCE NO-OUO

unread,
May 12, 2014, 1:32:39 PM5/12/14
to
On 5/8/14 9:14 AM, "Jason Jacobs" <> wrote:

>
>
>I checked, and there are two lines in this file that have this error.
>Simply add "std::" before the first "list" in the line, and it'll
>compile.
>
>
>
>
>
>Thanks.  I was hoping it was something as simple as this.  I added the
>namespace resolution code to the list variable (and a few others), and my
>compilation was successful.

Glad to hear it.  I was just building Trilinos 11.6 and Xyce under Cygwin
to check if there were any other hidden landmines in other files.

I'll post a patch file on the web site and to this list when I've gotten
the thing completely hammered out.

I should note that Xyce 6.1 compiled Just Fine on Cygwin with the older
version of Trilinos that worked with Xyce 6.0.1 (Trilinos 11.2.4) --- that
version of Trilinos was peppered with various "using" statements that made
some of these mistakes invisible.

>
>I've also run the regression suite.  I'm getting 35 or so failures.  Is
>this expected?

No, that is not normal at all.  With 6.0.1 there were 0 failures, and with
our own (non Cygwin) Windows builds there are none.  There shouldn't be as
many as 35.

I'll get back later this afternoon with the results of my own Xyce
6.1/Cygwin/Win7 testing.


XYCE NO-OUO

unread,
May 8, 2014, 12:11:31 PM5/8/14
to xyce-...@googlegroups.com
On 5/8/14 9:20 AM, "XYCE" <XY...@sandia.gov> wrote:

>I'll get back later this afternoon with the results of my own Xyce
>6.1/Cygwin/Win7 testing.

Well, this is puzzling.

I just finished building Trilinos 11.6.1 and Xyce 6.1 on Cygwin using
unmodified source code from both, and found NO build errors whatsoever
(even though the "std::list" is incorrect in N_LAS_IfpackPrecond.C in the
Xyce 6.1 source). I needed to modify nothing. This is using Cygwin
64-bit, installed according to the steps shown in the video. I did check
whether I was up-to-date with my Cygwin packages, and they look OK.

So now I have have to guess that perhaps you're using trilinos 11.8 (which
was released AFTER Xyce 6.1, and with which we have not tested Xyce yet).
This seems like the most likely reason for the differences in our
experience.

Xyce 6.1 is untested with Trilinos 11.8, and clearly there may be some
issues that we will have to work out with whatever version of Trilinos is
current when we do our next release. Trilinos has very frequent releases
(much more often than Xyce does), and it is often the case that new
versions of Trilinos introduce new and exciting issues for Xyce. This is
why we specify specific versions of Trilinos in our building instructions
--- we can't claim that all future versions of Trilinos will continue to
work with any given version of Xyce, and we can only test Xyce with what
is available at the time of our release.

I just checked the Trilinos web site, and it appears that the web site we
have advertised (trilinos.sandia.gov) no longer has links to allow
downloads of previous releases, which is unfortunate since we need you to
use Trilinos 11.6.1 and they're now at 11.8.1. All of the links to prior
releases (11.4 and older) are redirecting to 11.8, and they don't even
have an 11.6 link anymore.

Fortunately, the NEW Trilinos web site (http://trilinos.org
<http://trilinos.org/>) DOES have a
way of letting you download the 11.4 and 11.6 releases of trilinos (but
nothing older). Please go to trilinos.org, select the "Download" menu,
and choose "Download 11.6" from the "Previous Releases". Build that, and
you will find that Xyce 6.1 compiles with no modification, and should run
the test suite without any failures.

We will update our building guide web pages to point at this new Trilinos
web site instead of the sandia.gov web site, and make sure to emphasize
which version should be downloaded. We'll also get in touch with the
Trilinos team and see if they can fix the broken links to older releases
on the trilinos.sandia.gov site.









Jason Jacobs

unread,
May 8, 2014, 2:05:29 PM5/8/14
to xyce-...@googlegroups.com, xy...@sandia.gov


On Thursday, May 8, 2014 9:11:31 AM UTC-7, XYCE NO-OUO wrote:

So now I have have to guess that perhaps you're using trilinos 11.8 (which
was released AFTER Xyce 6.1, and with which we have not tested Xyce yet).
This seems like the most likely reason for the differences in our
experience.

Yes, that is the case.  I'm using trilinos 11.8.1, which I downloaded minutes before trying to build.  I'll grab a copy of version 11.6 and try building Xyce again.

Thanks,

Jason 
Reply all
Reply to author
Forward
0 new messages