Cygwin version used to compile NEURON?

Post Reply
neuromau
Posts: 97
Joined: Mon Apr 20, 2009 7:02 pm

Cygwin version used to compile NEURON?

Post 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.
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Cygwin version used to compile NEURON?

Post 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.
neuromau
Posts: 97
Joined: Mon Apr 20, 2009 7:02 pm

Re: Cygwin version used to compile NEURON?

Post by neuromau »

Great, I installed this new version and it fixed the problem. Thank you!
neuromau
Posts: 97
Joined: Mon Apr 20, 2009 7:02 pm

Re: Cygwin version used to compile NEURON?

Post 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.
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Cygwin version used to compile NEURON?

Post 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)
neuromau
Posts: 97
Joined: Mon Apr 20, 2009 7:02 pm

Re: Cygwin version used to compile NEURON?

Post 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!
mmvpgs
Posts: 3
Joined: Thu Apr 18, 2013 9:20 am

Re: Cygwin version used to compile NEURON?

Post 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
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Cygwin version used to compile NEURON?

Post by hines »

It has become the standard distribution.
Try:
http://www.neuron.yale.edu/ftp/neuron/v ... -setup.exe
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Cygwin version used to compile NEURON?

Post 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
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Cygwin version used to compile NEURON?

Post 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?
mmvpgs
Posts: 3
Joined: Thu Apr 18, 2013 9:20 am

Re: Cygwin version used to compile NEURON?

Post 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.
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Cygwin version used to compile NEURON?

Post by hines »

Do you get that error if you double click the neurondemo and type
PWManager[0].hide(0)
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Cygwin version used to compile NEURON?

Post by hines »

I have not been able to reproduce the problem with windows 8.1
Post Reply