-
Notifications
You must be signed in to change notification settings - Fork 436
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
O2 not compiling in Mac OS X #131
Comments
Hello, was FairRoot compiled with DDS enabled? It could also be that we are missing a check for the dependency in the example's CMakeLists.txt. 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. |
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. |
Hello Alexey, the AliceO2 CMake actually finds DDS:
After editing the Examples/flp2epn/CMakeLists.txt file, I still have [ 27%] Built target flpSyncSampler Best regards, On 21/07/16 11:34, Alexey Rybalchenko wrote:
Antonio Uras |
I'll try to build FairRoot without DDS: how shall I modify the cmake command in order to do it? Thanks, |
Hello Antonio, the libCCDB is hitting the same problem. 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). |
Thanks Alexey, as suggested, after the Alice O2 CMake I added [ 27%] Linking CXX shared library ../lib/libCCDB.so Any hint? Thanks, cheers On 29/07/16 10:47, Alexey Rybalchenko wrote:
Antonio Uras |
Without being able to reproduce this it is hard to say what goes wrong, although it does sound like a linker configuration problem... For now, to get your compilation done, you can do either of these three things:
I will update this issue when I can reproduce/fix this. |
Thanks Alexey. The output of clang --version is: Apple LLVM version 7.0.2 (clang-700.1.81) Concerning the three options you suggest... unfortunately, none of them
[ 36%] Built target fairmq_logger
Any (more) hint? Thanks, cheers On 04/08/16 13:12, Alexey Rybalchenko wrote:
Antonio Uras |
Hope these help :) |
Sorry, I forgot that I had to create the if(DDS_FOUND) block :) Now the Cheers, On 04/08/16 16:36, Alexey Rybalchenko wrote:
Antonio Uras |
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 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 |
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 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
) |
Hi Alexey, Has the issue been fixed in the meanwhile? Thanks, cheers |
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). |
* Small fix in the CosTheta range * Adding code to read CCDB Co-authored-by: Luca Micheletti <lmichele@alicecerno2.cern.ch> Co-authored-by: Ionut Cristian Arsene <Ionut.Cristian.Arsene@cern.ch>
Dear experts,
I'm trying to install ALICE O2 on Mac OS X 10.10 following what you suggest in the README.md (with some minor adaptations). After installing FairRoot and the external packages, the compilation of O2 fails with the error:
[ 14%] Linking CXX shared library ../../lib/libFLP2EPNex.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/libFLP2EPNex.0.0.0.so] Error 1
make[1]: *** [Examples/flp2epn/CMakeFiles/FLP2EPNex.dir/all] Error 2
make: *** [all] Error 2
Please note that the libdds_intercom_lib.dylib library is available under /DDS/lib but apparently it is not found during the compilation.
Any hint?
Thanks, Antonio
The text was updated successfully, but these errors were encountered: