-- 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 filename
(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