-- Main.davage - 15 Jun 2011
MDA"> SuSE Version Upgrade Help : MDA
BAD PATHWAYS MDA:
- it appears that the previous MDA setups have used version specific pathways to ImageMagick, which can be fixed quite easily once the bugs have been spotted
- one of the biggest problems with the MDA compile at present is the default pathway setup
- if setup using the default software (ImageMagick and g++) via /usr/bin/, then theoretically SuSE version upgrades (along with ImageMagick and g++ upgrades) should not affect MDA operation
MDA (Errors with ImageMagick): ERROR MESSAGE: undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)@GLIBCXX_3.4.14'
- locate the package being included (look through TMakefile files and also notice many of them refer other TMakefile files)
- the magickxx package will give you problems if your pathways are incorrect (lead to an old version of ImageMagick)
- you will find that the version of ImageMagick that tmk is looking for is incorrect and the default may or may not be a very old default
- you need to change the path that the magickxx package uses to include the ImageMagick libraries (custom configuration settings in next section)
- the pathway will most likely have some version-specific pathway such as:
config set LIBPATH $psm_pckg/[::arch_name ""]/ImageMagick-6.5.0/lib
config set INCPATH $psm_pckg_generic/ImageMagick-6.5.0/include/ImageMagick
or
config set INCPATH $psm_pckg_generic/ImageMagick-6.6.6-10/include/ImageMagick
config set LIBPATH $psm_pckg/[::arch_name ""]/ImageMagick-6.6.6-10/lib
- as long as your default pathways are set up properly (as in the previous section) these can be written as follows:
config set INCPATH /usr/include/ImageMagick
config set LIBPATH /usr/lib64
TMK (When compiling MDA):
- there are two places for tmk configuration files
- this is usually where packages are defined (i.e. magickxx)
- site-config/cs.ubc.ca in both locations corresponds to configuration on this system
- both configuration files can be found using: tmk -sysinfo (tmk/user's site config directory)
- default configuration file located in: /cs/public/generic/lib/pkg/tmk-0.9/tmk/config/site
- custom configuration is (naturally) applied after default configuration
- custom configuration can be found in: ~/.tmk/site-config/ (again the file will be called cs.ubc.ca in this case)
gcc/g++:
- sometimes the version of your compiler will mysteriously not be up-to-date
- uses the default compiler (Check the version number: gcc -v or g++ -v)
- this pathway is usually defaulted through your ~/.bash_profile or ~/.cshrc to /usr/bin/
- this can be accomplished by placing /usr/bin/ in .bash_profile at the front of the $PATH variable
- note that this might need to be done at the beginning of the PATH variable on the last export
Remember to run the following whenever you try a possible fix:
- tmk clean (make clean)
- tmk -reconfig (make distclean)
Locating files and packages:
- some useful and/or informative linux commands:
- To find a file: locate filname (e.g. locate Magick++.so)
- To find packages: rpm -qa | grep packagename (e.g. rpm -qa | grep ImageMagick)
- To list contents of a package: rpm -ql packagename (e.g. rpm -ql ImageMagick-6.6.1.0-4.1.1.x86_64)
More:
- ldd /usr/lib/../lib64/libMagick++.so
- rpm -q --whatprovides /usr/lib64/libstdc++.so.6
- rpm -q --provides libstdc++45
32 vs 64 bit:
- another issue is -fPIC from when we migrated to 64bit around last fall
- PIC=position independent code (it is a default for the 32-bit platform, but not for the x86_64 platform)
- this is why we need to add the cxx flag -fPIC
- we can do this by adding a line to the file ...MDA/TMakefile.priv: lappend cxx:FLAGS -fPIC
Topic revision: r1 - 2011-06-15
- davage