Comments (14)
Hello,
was FairRoot compiled with DDS enabled?
If it was, then DDS is included as a dependency of FairRoot (FairMQ to be specific).
Was DDS found in your AliceO2 CMake run? If not, try providing a path to it like this:
cmake -DDDS_PATH="/home/username/DDS/0.11.27.g79f48d4/" ..
(with a proper path)
It could also be that we are missing a check for the dependency in the example's CMakeLists.txt.
Can you please try to add the following lines in Examples/flp2epn/CMakeLists.txt
after line 55:
if(DDS_FOUND)
set(DEPENDENCIES
${DEPENDENCIES}
${DDS_INTERCOM_LIBRARY_SHARED}
${DDS_PROTOCOL_LIBRARY_SHARED}
${DDS_USER_DEFAULTS_LIBRARY_SHARED}
)
endif()
If this solves the issue then I will update it in the dev branch.
from aliceo2.
I've tried to reproduce this on my machines.
When FairRoot is built without DDS, any configuration of AliceO2 on OSX/Linux compiles and runs.
When FairRoot is built with DDS, DDS is included as dependency of FairMQ. In this case on both Linux/OSX everything compiles. On Linux everything (executables using FairMQ) also runs properly. But on the OSX machine, the executables that depend on FairMQ fail by not finding the DDS library. Investigating with ldd/otool I can see that the Linux build includes DDS as a dependency only when it is actually used, but the OSX build includes DDS for all executables/libraries that use FairMQ.
Applying the above CMake modifications solves the runtime problem, but is probably not the best solution because it lists/includes unused dependencies (actually dependencies of a dependency) ... need to investigate why this is happening and how change it.
That said, I still cannot reproduce any compilation errors as the ones you described.
from aliceo2.
Hello Alexey,
the AliceO2 CMake actually finds DDS:
-- Looking for DDS ... found
/Users/auras/alialfa/ExternalPackages/DDS/lib/libdds_intercom_lib.dylib;/Users/auras/alialfa/ExternalPackages/DDS/lib/libdds_protocol_lib.dylib;/Users/auras/alialfa/ExternalPackages/DDS/lib/libdds-user-defaults.dylib
After editing the Examples/flp2epn/CMakeLists.txt file, I still have
this error when making AliceO2:
[ 27%] Built target flpSyncSampler
[ 27%] Linking CXX shared library ../lib/libCCDB.so
ld: file not found: @rpath/libdds_intercom_lib.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
make[2]: *** [lib/libCCDB.0.0.0.so] Error 1
make[1]: *** [CCDB/CMakeFiles/CCDB.dir/all] Error 2
make: *** [all] Error 2
Best regards,
Antonio
On 21/07/16 11:34, Alexey Rybalchenko wrote:
Hello,
was FairRoot compiled with DDS enabled?
If it was, then DDS is included as a dependency of FairRoot (FairMQ to
be specific).
Was DDS found in your AliceO2 CMake run? If not, try providing a path
to it like this:
|cmake -DDDS_PATH="/home/username/DDS/0.11.27.g79f48d4/" ..| (with a
proper path)It could also be that we are missing a check for the dependency in the
example's CMakeLists.txt.
Can you please try to add the following lines in
|Examples/flp2epn/CMakeLists.txt| after line 55:if(DDS_FOUND)
set(DEPENDENCIES
${DEPENDENCIES}
${DDS_INTERCOM_LIBRARY_SHARED}
${DDS_PROTOCOL_LIBRARY_SHARED}
${DDS_USER_DEFAULTS_LIBRARY_SHARED}
)
endif()If this solves the issue then I will update it in the dev branch.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#131 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATny0gHFpGc-P66PgERd15dCcmpJBuncks5qXz0_gaJpZM4JRkKd.
Antonio Uras
Institut de Physique Nucléaire de Lyon
http://cern.ch/auras
from aliceo2.
I'll try to build FairRoot without DDS: how shall I modify the cmake command in order to do it?
Thanks,
Antonio
from aliceo2.
Hello Antonio,
the libCCDB is hitting the same problem.
Please try the following:
After you run AliceO2 CMake, add the DDS lib location to you DYLD path like this:
export DYLD_LIBRARY_PATH=/Users/username/DDS/1.1.53.gff56723/lib/:$DYLD_LIBRARY_PATH
(replace username and DDS version according to what you have).
from aliceo2.
Thanks Alexey,
as suggested, after the Alice O2 CMake I added
/Users/auras/alialfa/ExternalPackages/DDS/lib (the directory containing
the libdds_intercom_lib.dylib library) to DYLD_LIBRARY_PATH, but when
performing the make of Alice O2 I still have:
[ 27%] Linking CXX shared library ../lib/libCCDB.so
ld: file not found: @rpath/libdds_intercom_lib.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
make[2]: *** [lib/libCCDB.0.0.0.so] Error 1
make[1]: *** [CCDB/CMakeFiles/CCDB.dir/all] Error 2
make: *** [all] Error 2
Any hint?
Thanks, cheers
Antonio
On 29/07/16 10:47, Alexey Rybalchenko wrote:
Hello Antonio,
the libCCDB is hitting the same problem.
Please try the following:
After you run AliceO2 CMake, add the DDS lib location to you DYLD path
like this:export DYLD_LIBRARY_PATH=/Users/username/DDS/1.1.53.gff56723/lib/:$DYLD_LIBRARY_PATH
(replace username and DDS version according to what you have).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#131 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATny0iwz7k_N9BkEMNDuEWCNzVGD8hexks5qab4_gaJpZM4JRkKd.
Antonio Uras
Institut de Physique Nucléaire de Lyon
http://cern.ch/auras
from aliceo2.
Without being able to reproduce this it is hard to say what goes wrong, although it does sound like a linker configuration problem...
Could you mention which compiler you are using (output of clang --version
)?
For now, to get your compilation done, you can do either of these three things:
- Apply the same CMake fix that helped you get flp2epn example compiling to the other parts that use FairMQ - if I am not forgetting any, it should be
CCDB/CMakeLists.txt
,o2cdb/CMakeLists.txt
,Utilities/QA/CMakeLists.txt
. Put theif(DDS_FOUND)...
block after theset(DEPENDENCIES...)
command. - Compile FairRoot without DDS. For this, just rename the libdds_intercom_lib.dylib that you have to something else, like libdds_intercom_lib_BACKUP.dylib. And then, recompile FairRoot and AliceO2.
- Try to use the new aliBuild approach to build the entire project.
I will update this issue when I can reproduce/fix this.
from aliceo2.
Thanks Alexey. The output of clang --version is:
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin14.5.0
Thread model: posix
Concerning the three options you suggest... unfortunately, none of them
seems to work with me:
-
The first option couldn't be applied since in the CMakeLists.txt
files I don't find any block starting with "if(DDS_FOUND)". Is it normal? -
The second option gives me the following error when recompiling FairRoot:
[ 36%] Built target fairmq_logger
make[2]: *** No rule to make target
/Users/auras/alialfa/ExternalPackages/DDS/lib/libdds_intercom_lib.dylib', needed by
lib/libFairMQ.16.06.00.so'. Stop.
make[1]: *** [fairmq/CMakeFiles/FairMQ.dir/all] Error 2
make: *** [all] Error 2
- The third option is the one I'm following in parallel (in an
independent directory tree, to avoid conflicts) with the support of
Giulio Eulisse and Dario Berzano: unfortunately, this method fails
already in compiling FairRoot due a problem in the library
libsodium.18.dylib.
Any (more) hint?
Thanks, cheers
Antonio
On 04/08/16 13:12, Alexey Rybalchenko wrote:
Without being able to reproduce this it is hard to say what goes
wrong, although it does sound like a linker configuration problem...
Could you mention which compiler you are using (output of |clang
--version|)?For now, to get your compilation done, you can do either of these
three things:
- Apply the same CMake fix that helpep you get flp2epn example
compiling to the other parts that use FairMQ - if I am not
forgetting any, it should be |CCDB/CMakeLists.txt|,
|o2cdb/CMakeLists.txt|, |Utilities/QA/CMakeLists.txt|. Put the
|if(DDS_FOUND)...| block after the |set(DEPENDENCIES...)| command.- Compile FairRoot without DDS. For this, just rename the
libdds_intercom_lib.dylib that you have to something else, like
libdds_intercom_lib_BACKUP.dylib. nd then, recompile FairRoot and
AliceO2.- Try to use the new aliBuild approach to build the entire project.
I will update this issue when I can reproduce/fix this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#131 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATny0klMYBetLY5VQ2Ca51dmBzaG_7Qnks5qcckmgaJpZM4JRkKd.
Antonio Uras
Institut de Physique Nucléaire de Lyon
http://cern.ch/auras
from aliceo2.
-
That is correct, the if(DDS_FOUND) block is the one you are adding, see my first reply in this thread.
-
Sounds like you need to clean the build directory, CMake still thinks that DDS is found from the previous time it ran (so it is still trying to build those with the DDS dependency).
Hope these help :)
from aliceo2.
Sorry, I forgot that I had to create the if(DDS_FOUND) block :) Now the
AliceO2 compiling goes fine, thanks a lot!!
Cheers,
Antonio
On 04/08/16 16:36, Alexey Rybalchenko wrote:
That is correct, the if(DDS_FOUND) block is the one you are adding,
see my first reply in this thread.Sounds like you need to clean the build directory, CMake still
thinks that DDS is found from the previous time it ran (so it is still
trying to build those with the DDS dependency).Hope these help :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#131 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATny0vH90S4IeOtBGrovjHrZ1KzF8V_Lks5qcfj_gaJpZM4JRkKd.
Antonio Uras
Institut de Physique Nucléaire de Lyon
http://cern.ch/auras
from aliceo2.
Dear experts,
I'm re-installing the whole FairSoft + AliceO2 package and I'm again in trouble with the same problem discussed in this thread. All went fine with the FairSoft installation, but when compiling AliceO2 I find:
auras@lyoalice07:~/alialfa/AliceO2/build_o2$ make
-- Looking for Root...
-- Looking for Root... - Found /Users/auras/alialfa/external/bin/root
-- Looking for Root... - Found version is 6.06/02
-- Looking for PYTHIA8 ...
-- Looking for PYTHIA8... - found /Users/auras/alialfa/external/lib
-- Looking for Pythia6...
-- Looking for Pythia6... - found /Users/auras/alialfa/external/lib
-- Looking for GEANT3...
-- Looking for GEANT3... - found /Users/auras/alialfa/external/lib64/libgeant321.dylib
-- Looking for GEANT4...
-- Looking for GEANT4... - found /Users/auras/alialfa/external/lib
-- Looking for GEANT4 DATA files...
-- Found G4EMLOW data
-- Found PhotonEvaporation data
-- Found G4NDL data
-- Found G4NEUTRONXS data
G4PIIDATA: /Users/auras/alialfa/external/share/Geant4-10.2.1/data/G4PII1.3
-- Found G4PII data
-- Found RadioactiveDecay data
-- Found RealSurface data
-- Found G4SAID data
-- Found G4ENSDFSTATE data
-- Looking for GEANT4VMC...
-- Looking for GEANT4VMC... - found /Users/auras/alialfa/external/lib
-- Looking for VGM...
-- Looking for VGM... - found /Users/auras/alialfa/external/lib
-- Looking for CLHEP...
-- Looking for CLHEP... - found /Users/auras/alialfa/external/lib
-- Looking for CERNLIB...
-- Looking for HepMC ...
-- Looking for HepMC... - found /Users/auras/alialfa/external/lib
-- Looking for IWYU...
-- Looking for IWYU... - Not found
-- Looking for DDS...
-- Looking for DDS ... found /Users/auras/alialfa/external/DDS/lib/libdds_intercom_lib.dylib;/Users/auras/alialfa/external/DDS/lib/libdds_protocol_lib.dylib;/Users/auras/alialfa/external/DDS/lib/libdds-user-defaults.dylib
-- Boost version: 1.60.0
-- Found the following Boost libraries:
-- thread
-- system
-- timer
-- program_options
-- random
-- filesystem
-- chrono
-- exception
-- regex
-- serialization
-- log
-- log_setup
-- unit_test_framework
-- date_time
-- atomic
-- Looking for ZeroMQ...
-- Looking for ZeroMQ... - found /Users/auras/alialfa/external/lib64/libzmq.a;/Users/auras/alialfa/external/lib64/libzmq.dylib 4.1.3
-- Setting FairRoot environment…
-- FairRoot ... - found /Users/auras/alialfa/external/FairRoot
-- FairRoot Library directory : /Users/auras/alialfa/external/FairRoot/lib
-- FairRoot Include path… : /Users/auras/alialfa/external/FairRoot/include
-- FairRoot Cmake Modules : /Users/auras/alialfa/external/FairRoot/share/fairbase/cmake
-- FairRoot ... - found /Users/auras/alialfa/external/FairRoot
-- Looking for FairMQ functionality in FairRoot ...
-- Looking for FairMQ functionality in FairRoot: yes
-- Set BuildType DEBUG
-- fairsoft-config found
-- C compiler used for FairSoft installation: /usr/bin/gcc
-- C compiler used now: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- CXX compiler used for FairSoft installation: /usr/bin/g++
-- CXX compiler used now: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- The compiler during the compilation of FairSoft is different from the current one.
-- The error was silenced by the usage of -DUSE_DIFFERENT_COMPILER=TRUE
--- Found a Mac OS X System 10.10
--- Found GNU compiler collection
Fortran libraries found in /usr/local/gfortran/lib/gcc/x86_64-apple-darwin14/4.9.1/../../..
--- Build Type: Debug
--- Compiler Flags: -std=c++11 -std=c++11 -stdlib=libc++
-- Generate test testExampleModule1
running /bin/chmod u+x /Users/auras/alialfa/AliceO2/build_o2/macro/run_sim.sh 2>&1
running /bin/chmod u+x /Users/auras/alialfa/AliceO2/build_o2/macro/run_digi.sh 2>&1
running /bin/chmod u+x /Users/auras/alialfa/AliceO2/build_o2/macro/run_clusterer.sh 2>&1
running /bin/chmod u+x /Users/auras/alialfa/AliceO2/build_o2/macro/load_all_libs.sh 2>&1
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/auras/alialfa/AliceO2/build_o2
-- Found Git: /usr/bin/git (found version "2.5.4 (Apple Git-61)")
fatal: No names found, cannot describe anything.
-- FairRoot Version - from - Mon Oct 3 18:26:34 2016 +0200
[ 0%] Built target svnheader
[ 1%] Linking CXX shared library ../../lib/libSimulationDataFormat.dylib
ld: file not found: @rpath/libdds_intercom_lib.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/libSimulationDataFormat.dylib] Error 1
make[1]: *** [DataFormats/simulation/CMakeFiles/SimulationDataFormat.dir/all] Error 2
make: *** [all] Error 2
I tried to apply the same recipe as before (adding the if(DDS_FOUND) block to the CMakeLists.txt files) but it seems it doesn't work anymore. By the way, have the CMakeLists.txt files been modified w.r.t. what I found in July? For instance, I don't find at all the o2cdb/CMakeLists.txt file...
Thanks, cheers
Antonio
from aliceo2.
Dear Antonio,
indeed there have been some changes in the build system and now dependencies are handled via a "bucket" system.
I am working on a way to completely solve the linking issue that you are seeing.
Until then, please try the following workaround for your build. In the file cmake/O2Dependencies.cmake
add following two lines (marked with comments) here (starts on line 197):
o2_define_bucket(
NAME
fairroot_base_bucket
DEPENDENCIES
root_base_bucket
Base FairMQ FairTools ${Boost_LOG_LIBRARY} fairmq_logger Base
common_boost_bucket
${Boost_THREAD_LIBRARY} pthread
${OPTIONAL_DDS_LIBRARIES} # <-------- this line
INCLUDE_DIRECTORIES
${FAIRROOT_INCLUDE_DIR}
${OPTIONAL_DDS_INCLUDE_DIR} # <-------- and this line
)
from aliceo2.
Hi Alexey,
Has the issue been fixed in the meanwhile?
Thanks, cheers
Antonio
from aliceo2.
Hi Antonio,
yes, it is now fixed. Please try the newest dev branches of FairRoot/AliceO2.
With the new version, the control & config via DDS is handled by a plugin mechanism, thus the FairMQ and user devices don't need direct dependency on DDS (unless they use it for something other than what the plugin provides).
from aliceo2.
Related Issues (20)
- Wrong heading levels in the generated data model documentation HOT 9
- Reporting a vulnerability
- Reporting a vulnerability
- Should be `kRainBow` not `kRainbow` (notice camel-case)
- Also include `+#include <FairRootManager.h>` HOT 2
- `fLoaderName` is an object, not pointer to object
- Replace `writer.Flush()` with `stream.Flush()`
- Set C++ standard to at least 20 - HOT 1
- Bug fix in skimmed data (dca for combined tracks) + extension adding number of shared clusters monitoring
- Usage of the TPC & ITS Standalone Track Parameters (and Track Time0) Together with the Combined Track for Fake Tagging and Track Reassociation HOT 9
- GitHub actions are using unavailable `hub` commands HOT 1
- AliTPCCommonDef.h not found when compiling on macOS HOT 4
- TODOs after move to C++17 HOT 3
- ReadoutCard python path issue
- TPC Digits/Clusters t/z shift beyond max possible HOT 13
- no template named 'variant' in namespace 'std' HOT 47
- Failed to build lhapdf HOT 1
- aliDoctor and packages from ubuntu 18.04
- alibuild failed in alidock (cmodules/timer.h) HOT 3
- uint64_t : (unsigned long) vs (unsigned long long) ? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aliceo2.