I am desperately trying to compile ROOT with both Pythia6 and Pythia8 support included.
I installed and compiled both Pythia versions without issues and added the --with-pythia6-libdir, --with-pythia8-incdir and --with-pythia8-libdir options with the according paths in the configure step.
Yet, no combinations of Pythia versions and ROOT versions seems to work for me.
It works fine for only Pythia6 using ROOT 5.34/30 and --disable-pythia8 in configure!?
Depending on the ROOT version I use, the errors during ROOT compilation on the Pythia8 part vary.
For Pythia 6:
Take this tar file file: https://root.cern.ch/download/pythia6.tar.gz and replace the pythia6416.f with the version you prefer (I just tried with pythia-6.4.28.f), and then run the makePythia6 script which corresponds to your architecture
For Pythia 8: you can use any version of Pythia 8 with ROOT 6, but with ROOT 5, you have to use Pythia 8.1 at most
If you don’t manage to get it working, please post the error message you get
The problem with Pythia 8.2 and ROOT 5 that I am aware is that CINT is not able to digest the header file dlfcn.h. See https://sft.its.cern.ch/jira/browse/ROOT-6862. Since we are not going to improve CINT to do it, you can avoid the problem by patching your version of Pythia8 and protect the inclusion of the dlfcn.h with #ifdefMAKECINT … #endif.
Hi,
Since our cluster has been moved from CENTOS7 to AlmaLinux 9, I had to recompile my Pythia6 stuff.
The recipe that you gave here works well under CENTOS7, but under AlmaLinux 9 I get the following error messages from the last command (i.e. building the shared lib).
I guess it has to do with some compiler option. Does anyone have a clue ?
/usr/bin/ld: pythia6_common_address.o:(.bss+0x61aa0): multiple definition of pydat1_'; pythia6428.o:(.data+0x280c0): first defined here /usr/bin/ld: pythia6_common_address.o:(.bss+0x62d60): multiple definition of pydat2_‘; pythia6428.o:(.data+0x29380): first defined here
/usr/bin/ld: pythia6_common_address.o:(.bss+0x6ca20): multiple definition of pydat3_'; pythia6428.o:(.data+0x33040): first defined here /usr/bin/ld: pythia6_common_address.o:(.bss+0xb46a0): multiple definition of pydat4_’; pythia6428.o:(.data+0x7acc0): first defined here
/usr/bin/ld: pythia6_common_address.o:(.bss+0xb8520): multiple definition of pydatr_'; pythia6428.o:(.data+0x7eb40): first defined here /usr/bin/ld: pythia6_common_address.o:(.bss+0xb8860): multiple definition of pysubs_‘; pythia6428.o:(.data+0x9ece0): first defined here
/usr/bin/ld: pythia6_common_address.o:(.bss+0xb9900): multiple definition of pypars_'; pythia6428.o:(.data+0x9d560): first defined here /usr/bin/ld: pythia6_common_address.o:(.bss+0xbabc0): multiple definition of pyint1_’; pythia6428.o:(.bss+0x20): first defined here
/usr/bin/ld: pythia6_common_address.o:(.bss+0xbbe80): multiple definition of pyint2_'; pythia6428.o:(.data+0x7ee80): first defined here /usr/bin/ld: pythia6_common_address.o:(.bss+0xd66c0): multiple definition of pyint4_‘; pythia6428.o:(.data+0x94380): first defined here
/usr/bin/ld: pythia6_common_address.o:(.bss+0xe0340): multiple definition of pyint6_'; pythia6428.o:(.data+0x99980): first defined here /usr/bin/ld: pythia6_common_address.o:(.bss+0xe3a20): multiple definition of pyint7_’; pythia6428.o:(.bss+0x12e0): first defined here
/usr/bin/ld: pythia6_common_address.o:(.bss+0xe4d20): multiple definition of pymssm_'; pythia6428.o:(.data+0x9d0a0): first defined here /usr/bin/ld: pythia6_common_address.o:(.bss+0xe5640): multiple definition of pybins_'; pythia6428.o:(.data+0x0): first defined here
collect2: error: ld returned 1 exit status
Okido, problem solved !!!
I turned out that in pythia6_common_address.c these blocks were NOT declared
as extern like for instance
extern int pyjets[2+54000+2254000];
By declaring them as extern everything works fine again.