Page 1 of 1

Cygwin version used to compile NEURON?

Posted: Wed Nov 20, 2013 7:49 pm
by neuromau
Hello, there is an issue with older versions of Cygwin and Windows 8.1. They have fixed it in their latest Cygwin version. I received the error after updating my computer to Windows 8.1, until I updated my Cygwin as well. Now I no longer receive the error except when I open NEURON using Cygwin. I do not receive this error when I use Cygwin in any other way. The error states:
find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer.
The Cygwin mailing list says that they have addressed this error in their new version http://cygwin.com/ml/cygwin/2013-05/msg00145.html. Since I only see this error when calling nrniv from Cygwin, is it possible that the compiled NEURON for Windows 32 may be using an older Cygwin version? Or perhaps they have not implemented the fix in the 32-bit version, since it may be a 64-bit problem? I can ask them to implement the fix, but I wanted to make sure that it's not a matter of NEURON having been compiled with a slightly older Cygwin. The latest 64-bit Cygwin is from 2013-08-31 20:37 (CYGWIN_NT-6.2 1.7.25(0.270/5/3)), so I'm assuming there would be a new 32-bit Cygwin at that time as well.

Re: Cygwin version used to compile NEURON?

Posted: Thu Nov 21, 2013 8:49 am
by hines
I've updated my cygwin32 to the latest version and rebuilt the 7.3 setup.exe. Please try
http://www.neuron.yale.edu/ftp/neuron/v ... -setup.exe
If that fixes the problem for Windows 8, I'll replace the standard distribution with this version.

Re: Cygwin version used to compile NEURON?

Posted: Thu Nov 21, 2013 5:50 pm
by neuromau
Great, I installed this new version and it fixed the problem. Thank you!

Re: Cygwin version used to compile NEURON?

Posted: Thu Nov 21, 2013 11:43 pm
by neuromau
I ran into trouble using mknrndll with the new version. If I just compile a c++ program separately from NEURON in my stand-alone Cygwin installation using g++, it works fine. However, if I try to use mknrndll (either in the mintty bash or the separate mknrndll tool), I get this error:

Code: Select all

bash-4.1$ mknrndll
gcc -DDLL_EXPORT -DPIC -I/cygdrive/c/nrn73/src/scopmath -I/cygdrive/c/nrn73/src/nrnoc -I/cygdrive/c/nrn73/src/oc -I/cygdrive/c/nrn73/lib -I/cygdrive/c/nrn73/gccinc -I/cygdrive/c/nrn73/gcc3inc -L/cygdrive/c/nrn73/gcclib -c mod_func.c
gcc -I/cygdrive/c/nrn73/lib -I/cygdrive/c/nrn73/gccinc -I/cygdrive/c/nrn73/gcc3inc -L/cygdrive/c/nrn73/gcclib -shared -o nrnmech.dll mod_func.o ANsyn.o ExpGABAab.o Gfluct2.o MyExp2Sid.o MyExp2Sidnw.o STDPE2Sid.o buff_Ca.o burststim2.o cad.o ch_CavL.o ch_CavLZ.o ch_CavLaradi.o ch_CavLdist.o ch_CavLlow.o ch_CavN.o ch_CavNZ.o ch_CavNmig.o ch_CavR.o ch_CavT.o ch_CavTaradi.o ch_H.o ch_HCN.o ch_HCNp.o ch_Holm.o ch_KCaS.o ch_KCaSlow.o ch_Kdrfast.o ch_Kdrfastngf.o ch_Kdrp.o ch_Kdrslow.o ch_KvA.o ch_KvAdist.o ch_KvAdistp.o ch_KvAngf.o ch_KvAolm.o ch_KvAprox.o ch_KvAproxp.o ch_KvCaB.o ch_KvM.o ch_KvOld.o ch_Kvaxon.o ch_Kvdend.o ch_Kvhh.o ch_Kvsoma.o ch_Nav.o ch_NavOld.o ch_NavPVBC.o ch_Navaxon.o ch_Navaxonp.o ch_Navdend.o ch_Navhh.o ch_Navngf.o ch_Navp.o ch_Navpsoma.o ch_Navsoma.o ch_leak.o ch_leakhh.o exp2sid.o fastconn.o hyperde3.o iconc_Ca.o iconc_CaZ.o inhsyn.o leakold.o mynetstim.o nmdasid.o ppsyn.o repeatconn.o sgate.o \
  -L/cygdrive/c/nrn73/bin -lnrniv -lpthread
gcc: fatal error: -fuse-linker-plugin, but cyglto_plugin.dll not found
compilation terminated.
/cygdrive/c/nrn73/lib/mknrndll.mak:71: recipe for target 'nrnmech.dll' failed
make: *** [nrnmech.dll] Error 1
Note that cyglto_plugin.dll is located at C:\cygwin64\usr\libexec\gcc\x86_64-pc-cygwin\4.8.2\cyglto_plugin.dll .

I had been looking at this link: http://stackoverflow.com/questions/1967 ... ugin-error, but I'm not sure if it is helpful for me, since I can compile and run the example code posted in the question that the original asker couldn't run.

Re: Cygwin version used to compile NEURON?

Posted: Fri Nov 22, 2013 9:35 am
by hines
That was a difficult one since the usual fix of copying the missing dll into c:/nrn73/bin did not work and many experiments in copying parts of the gcc suite to various locations ended in failure.
Anyway, edit c:/nrn73/lib/mknrndll.mak and change line 7 from
EXTRA_FLAGS = $(EXTRA_CYGWIN)
to
EXTRA_FLAGS = -fno-use-linker-plugin $(EXTRA_CYGWIN)

Re: Cygwin version used to compile NEURON?

Posted: Fri Nov 22, 2013 3:05 pm
by neuromau
Michael, thanks for your quick help with this! I appreciate your work as always. It's such a relief to have a working NEURON again!

Re: Cygwin version used to compile NEURON?

Posted: Tue May 06, 2014 10:44 am
by mmvpgs
hines wrote:I've updated my cygwin32 to the latest version and rebuilt the 7.3 setup.exe. Please try
http://www.neuron.yale.edu/ftp/neuron/v ... -setup.exe
If that fixes the problem for Windows 8, I'll replace the standard distribution with this version.
This link is not available anymore. I'm having the same error with the fast_cwd pointer. I'm using a 64bit windows 8.1 version. Is it possible to turn it available again?
Thank you

Re: Cygwin version used to compile NEURON?

Posted: Tue May 06, 2014 11:32 am
by hines
It has become the standard distribution.
Try:
http://www.neuron.yale.edu/ftp/neuron/v ... -setup.exe

Re: Cygwin version used to compile NEURON?

Posted: Tue May 06, 2014 11:33 am
by hines
oops. I see you meant the cygwin32 version, not the cygwin64 version. try
http://www.neuron.yale.edu/ftp/neuron/v ... -setup.exe

Re: Cygwin version used to compile NEURON?

Posted: Tue May 06, 2014 11:44 am
by hines
hines wrote:I've updated my cygwin32 ...
I'm using a 64bit windows 8.1 version.
One more 'oops'.
Do you want to use the 64 bit cygwin version or the 32 bit version on your 64 bit machine?
I believe I applied the minor fix mentioned in
http://www.neuron.yale.edu/hg/neuron/nr ... 0b0bd99233
only to the 32 bit cygwin version. I did not experience the problem with the 64 bit version. Are you having trouble with the 64 bit version? If so can it be fixed as above with the -fno-use-linker-plugin arg in mknrndll.mak?

Re: Cygwin version used to compile NEURON?

Posted: Wed May 07, 2014 5:52 am
by mmvpgs
Thank you,

I've installed the 64bit version and the error disapeared. It was my fault because I was installing a 32bit version. However I was having another error that I thought it was in line with the previous error. I have a line in my code with:

Code: Select all

 PWManager[0].hide(1) 
that was working ok in windows 7 or ubuntu and with the 32bit version of neuron 7.3, but started to give the following error in windows 8:

nrniv: Object ID doesn't exist: PWManager[0]

Do you have any idea why?
Thanks in advance.

Re: Cygwin version used to compile NEURON?

Posted: Wed May 07, 2014 7:03 am
by hines
Do you get that error if you double click the neurondemo and type
PWManager[0].hide(0)

Re: Cygwin version used to compile NEURON?

Posted: Wed May 07, 2014 5:31 pm
by hines
I have not been able to reproduce the problem with windows 8.1