ROOT Installation from Source on Cygwin

I’m installing ROOT from source (root_v310.01.source.tar.gz) on CYGWIN/x11 … and I’m having problems with the build.

After ./configure win32gcc works correctly, make generates this output…

Makefile:307: (some .d file): No such file or directory
Makefile:307: thread/src/G__Thread.d: No such file or directory
build/unix/depend.sh thread/src/G__Thread.d “-pipe -Wall -Woverladed-virtual -D_DLL -Iinclude -I/usr/X11R6/include -D_REENTRANT” thread/src/G__Thread.cxx > thread/src/G__Thread.d
make: *** [thread/src/G__Thread.d] Error 1

What’s wrong?

Hi Joshen,

it’s known, see the prev thread on the same topic. Philippe was able to reproduce this as well, and it seems this only happens after updating to cygwin-gcc 3.3.1.

Philippe and I are trying to find out what’s wrong, to be able to submit a bug report to wherever the problem is (it might also be the cygwin .dll). So right now the only workaround is to use an older version of gcc (the previous one worked fine). If that doesn’t help please try the previous cygwin.dll version.

Someone will post something once the problem is solved.

Axel.

Help! I’ve tried reinstalling both gcc v. 3-2.2 and cygwin 1-5.4.1 onto cygwin with cygwin’s setup program, and i find the same error message,

build/unix/depend.sh thread/src/TThread.d “-pipe -Wall -Woverloaded-virtual -D_DLL -Iinclude -I/usr/X11R6/include -D_REENTRANT” thread/src/TThread.cxx > thread/src/TThread.d
make: *** [thread/src/TThread.d] Error 1

Sorry. First rule of solving problems is reading the error messages. I didn’t do that. Forget my previous postings - they’re correct, but probably irrelevant for your issue.

Your build has a problem generating a dependency file. I don’t know what the problem is (there is no error output from depend.sh), but looking at thread/src/G__Thread.d might help you understand what’s wrong.

If you don’t care to understand the reason: usually, when there are problems with the dependency files .d or the dictionary files G__, a make clean (or make clean-thread) helps.

Again: excuses for my assumption that there can only be one build problem out there, and for wasting your time (well, not wasted, you’d have had the other problem later on :-).

Axel.

Hi Axel,

I’ve finally setup the full cygwin including the gcc compiler so I can test your win32gcc. However, with the latest cygwin I get:

Generating dictionary hbook/src/G__Hbook.cxx…
utils/src/rootcint_tmp.exe -f hbook/src/G__Hbook.cxx -c hbook/inc/THbookBranch.h
hbook/inc/THbookFile.h hbook/inc/THbookKey.h hbook/inc/THbookTree.h hbook/inc/L
inkDef.h
Error: unrecognized language construct FILE:base/inc/TStorage.h LINE:77
Error: Function BIT(0) is not defined in current scope FILE:base/inc/TObject.h
LINE:60
Possible candidates are…
filename line:size busy function type and name
Error: Function BIT(3) is not defined in current scope FILE:base/inc/TObject.h
LINE:61
Possible candidates are…
filename line:size busy function type and name
Error: Function BIT(3) is not defined in current scope FILE:base/inc/TObject.h
LINE:62
Possible candidates are…
filename line:size busy function type and name
Error: Function BIT(4) is not defined in current scope FILE:base/inc/TObject.h

this is with a fresh cygwin from two days ago. gcc is 3.3.1.

Is this a compiler issue or am I doing something more basic wrong?

Cheers, Fons.

Hi Fons,

This is compiler issue. fgetpos does not work with a file created by tmpfile in the current release of cygwin ;(

Philippe.

Has this been reported and confirmed by the cygwin team?

Cheers, Fons.

Hi,

it’s acknowledged to be a cygwin bug [cygwin.com]. The only solution I can think of is to not use the new 64bit versions of cygwin until this is fixed. But you can’t just downgrade your .dll - most of the other packages rely on the cygwin file interfaces to be 64bit.

It should be resolved in the next cygwin-dll version (>1.5.5-1), so watch http://www.cygwin.com.

Axel.

Hi,

still no new cygwin version, so here’s a work-around: get a snapshot from cygwin (the cygwin-inst-*.tar.bz2 file is what you need), and run

cd / tar --backup -xjf /wherever-you-have-saved-it/cygwin-inst-*.tar.bz2 cd $ROOTSYS gmake distclean && gmake

That worked for me. And it shouldn’t introduce conflicts when updating to the next cygwin version once it’s available, so just try it.

Axel.

Hello,

I am also trying to compile root win32gcc.
I have followed your method using cygwin snapshot :
it compiles fine but root doesn’t work very well.
It seems that I get the same problem reported
by hzhou (new topic : root3.10.01 compiled with cygwin/win2000 doesn’t work).

Any idea ?

Hi,

to keep everyone updated: there are currently two independent issues with software win32gcc depends on. One of them is cygwin itself. You will have to update to a current cygwin snapshot (see above) to resolve an issue showing as BIT(n) being unknown when building root.

The other issue is a cygwin-gcc 3.3.1 problem with inlined constructors (see gcc bug report 13463). Simply install gcc 3.2 instead of 3.3.1 (select version 3.2 using the cygwin installer). This problem shows up as a c++ exception when running root, and pressing tab on cint’s command line.

Cheers, Axel.

New gcc bug report number 13654.

cvs’s ROOT win32gcc should finally compile and run without problems, even with gcc 3.3.1. One still needs a cygwin snapshot, though, as long as cygwin 1.5.5-1 is the latest release version.
Axel.