Running precompiled ROOT 6 with cygwin (setup problem)

Hello,

Some weeks ago, I compiled ROOT-6 on my freshly installed MINT-17 without any problem.

I am not actually good enough to notice the differences in this new version, but I am eagerly waiting for its windows version too (on W8).

Yesterday I logged in the site and saw a cygwin precompiled version (maybe missed it before) and decided to try it.

Before continuing know/remember that this post uses precompiled version and has nothing to do with source compiling.

I downloaded latest cywgin installer and tried to find missing components myself to run ROOT-6.

Here is what I could do until this post:
[ul]
select package xorg-server
select package libXpm4
select package libXext6
set DISPLAY (export DISPLAY=:0.0)
[/ul]

Although it gives error at the end, this list seems essential to run ROOT so far.

Now the problem is this:
[ul]
PopupLogo, XOpenDisplay failed
Fatal in TROOT::InitInterpreter: cannot load library Exec format error
[/ul]

Until here I had clues about what to install but here I am stuck in the code.
I later tried to install “clang” package but didnt affect anything.

Hope someone can give direction on how to proceed.

YILMAZ

Hi,

It looks like this has nothing to do with ROOT. You have to make sure to have properly installed X11, start a X session, then start a xterm, from which you can start ROOT.
(sorry, but I can’t tell exactly the full list of things you have to install from the cygwin packages…)

Cheers, Bertrand.

Thanks for the reply, it partially solved half of the problem (X11).

I added these to my procedure, so if I succeed then will be a good documentation :slight_smile:
[ul]

  • select package xinit (provides scripts)
  • omit display set step
  • use “startxwin” and then “thisroot.sh” the the rest. (mintty gives flexible window)
    [/ul]

Being little stranger to cygwin, I didnt know I had to start x-server first. It partially solved first line (logo) of the problem. Partially, because it now shows logo but do not continue and hide logo since the other error still exist.

Is that you who compiled this cygwin version of ROOT-6? or else do you know him/her?

I want to try my chance so can you dump this code to a file and attach here? Of course if there is nothing special/secret to your own works!
[ul]“cygcheck --check-setup --dump-only”[/ul]

YILMAZ

Yes, I did build it. Here is how to build it (mostly the same than on Linux):

wget ftp://root.cern.ch/root/root_v6.00.02.source.tar.gz tar -zxvf root_v6.00.02.source.tar.gz cd root ./configure win32gcc --all make -j4 (or make -j8 if you have a 8 cores machine…)
[color=#FF0000]EDIT[/color]: And the setup dump file is attached.

Cheers, Bertrand.
setup.txt (8.82 KB)

Thanks for the tip. this “–all” flag is new for me, I will try right away. I had tried “–with-clang” flag and it failed to compile. Then just did plain make, it first compiled clan/cling system, but then it failed somewhere else.

I will look for more clues on your cygwin dump file on whatelse one should install to run your compiled package, and also try my luck for minimal packages to compile from sources.

Hopefully in a week (if I dont forget) I will share my results.

Regards,
YILMAZ

Hello again Bertrand,

Unfortunately I dont have any good news about my trials:
[ul]

  • I installed every package seen on your list; still getting “InitInterpreter” error
  • I tried to compile from source with “–all” flag, in your way;
    [list] I dont know if you had this problem. In math.h, on “return std::trunc(x.data());”, getting this error:“trunc is not a member of std”, and stops compilation. I cant say if it continues to compile when this is fixed.[/ul]
    [/list:u]

I think you have some other programs and/or settings you forgot other than cygwin. for older version, someone has to use visual studio besides cygwin. does the compilation step require VS for ROOT-6?

Hi,

[quote=“yilmaz_durmaz”]I think you have some other programs and/or settings you forgot other than cygwin. for older version, someone has to use visual studio besides cygwin. does the compilation step require VS for ROOT-6?[/quote]No, ROOT 6 is NOT supported at all on Windows with Visual Studio (only on cygwin/gcc)
Could you post the result of configure (i.e. config.status and config.log)

Cheers, Bertrand.

those two files are attached.

There were two main problems I encountered:
[ul]

I also achieved to finish compilation with two tricks and have root working with some features not available. And also the name of executable is a little scrambled ie. “root_exe.exe”[ul]

  • In Math.h, I copied the second condition also as the first condition, thus making C++11 codition useless. Then this library compiles.
  • I disabled X11 using “./configure win32gcc --disable-x11 --all” , then TGlyph problem is solved in expense of X11
    [/ul]

Not complete but at least I get a working compilation of ROOT-6 (already tried an analysis code too).

I hope you can find the problem that differs your compilation and my installation from these files.
YILMAZ

config.status.txt (15 Bytes)
config.log.txt (216 KB)

OK, thanks, I’ll try to guess what could be wrong on your setup, but in the meanwhile, if you disable x11, you will not have any GUI at all (i.e. you will run ROOT in batch mode). Is it really what you want?
Note that you can also download a binary of ROOT 6.00.02 for cygwin at this location: ftp://root.cern.ch/root/root_v6.00.02.w … 4.8.tar.gz
(and this proves that ROOT can be built on cygwin without any problem…) :wink:

Cheers, Bertrand.

Hi Bertrand,

Today I have good news, but first I have to apologize on forgetting you could be busy and misleading you about the content I was doing.

I opened this post, because I had problems running your cygwin-compiled binaries.

Today I deleted every file I downloaded and started clean; only then I could find my mistake and also completed basic list of required packages to run your compiled version.

I will be happy if you use below information (modify as you please) in ROOT’s download page and/or as a README file in your distribution.


To run cygwin precompiled version, below basic steps are required (clean install/setup):
[ul]
1- Installing Cygwin:
[list]

  • have Cygwin installer from https://cygwin.com/ and start installation as described in the page
  • in package selection window, select these packages (dependencies will be selected automatically), and continue installing;
    [list]-- xorg-server, xinit, gcc-g++, libXpm4, libXext6, [/ul]
    [/list:u]

2- Starting X11 for graphics
[ul]

  • open up cygwin terminal, using “startxwin” start multiwindow X11 server
  • either continue with opened xterm window,
    – or set DISPLAY on any other terminal; i.e "export DISPLAY=:0.0"
    be sure you get xserver icon in notification area while you are working with graphics
    [/ul]

3- Setting ROOT
[ul]

  • download/copy cygwin-compiled version of ROOT-6 to your preferred location.
  • in cygwin terminal, go to the location of the file and extract it by using “tar” utility provided by cygwin.(IMPORTANT: dont use any Windows archive utility since they will possibly broke symbolic links inside the archive.)
  • set environment (at least using “source RootDir/bin/thisroot.sh”) and have fun.
    [/ul]
    [/list:u]

by the way, as the third step says, I am using Total Commander for file operations, and this was the cause of the error that prevents ROOT from running. Cygwin’s tar utility remakes all symbolic links(libraries) in cygwin’s way.

There is only one warning left, but it seems we can ignore for now (maybe about your compiling libraries are old):
[ul]Warning in cling::CIFactory::createCI():
C++ ABI mismatch, compiled with GLIBCXX v20131016 running with v20140522
[/ul]

Thank you for your support,

My regards,
YILMAZ

NOTE: For my problems about compiling ROOT-6 from source on cygwin, I will open a new topic in a few days. I will edit this post to add a link to it in case one wants to follow.

Hi,

I have a new Windows 7 computer, and am trying to figure out a way to install ROOT, preferably under Cygwin. I downloaded and am running Cygwin64; if the problems would go away, I could also try cywin32. I tried the following:

  1. downloading root_v6.04.14.source.tar.gz and untarring it. I then tried to compile it in 64 bits with ./configure win64gcc. This failed with an error message:
    Checking for linker (LD)… no LD compile $(ROOT_SRCDIR)/build/unix/wingcc_ld.sh found
    I also tried running ./cinfigure win64gcc -all, but the -all option was not recognized.

  2. With the same untarred-v6.04.14, I tried compiling it in 32 bits with ./configure win32gcc -all, which succeeded, followed by make. Make gave an error message in root-6.04.14/core/metautils/src/SelectionRules.cxx
    In file included from include/TString.h:36.0 … "In Function ‘Long64_t TMath::Abs(Long64_t)’;
    include/TMathBase.h:121:10: erorr: ‘llabs’ is not a member of ‘std’.

It then goes on with a suggested alternatives,
In file included from /usr/include/wchar.h:4.0
from /usr/lib/gcc/x86_64-pc-cygwin/4.9.3/include/c++/cwchar:44
from /usr/lib/gcc/x86_64-pc-cygwin/4.9.3/include/c++/bits/posttypes.h:40
etc.

This was followed by a similar complaint about 'copysign’not being a member of std.

  1. I also tried downloading the binary file as suggested below.
    ftp://root.cern.ch/root/root_v6.00.02.w … 4.8.tar.gz

After untarring, when I try to run root.exe from a Cygwin command line, nothing happens. If I try to run it in a windows window, I get an error box 'root.exe - System Error which says 'The program can’t start because cygwin1.dll is missing from your computer. Try reinstalling the program to fix this problem. I have a feeling that I am missing some installation step, but I’m not sure what.

Any hints about how to get one of these options working would be greatly appreciated. I am somewhat of a novice to this, so would most appreciate very clear, specific instructions.

Thanks.

Spencer