
andreas.koenig.7os6VVqR at franz
May 1, 2012, 1:03 AM
Views: 180
Permalink
|
|
Multiarch support from Debian breaks all my old perls
|
|
I have observed it on Debian sid and have not looked at other OSes. I used to build my perls with gcc 4.4.5 and since Debian upgraded to gcc 4.6.3 and multiarch I encounter dynamic loading problems. The pattern is that a perl program tries to use dynamic loading to load a system "so" library but does not find it anymore. This happens because meanwhile some system update has put the library into directories like /lib/x86_64-linux-gnu/ or /usr/lib/x86_64-linux-gnu/ or so. The old perl does not know about and does not look into the new-fangled directories and the dynamic loading fails. The old perl that was built before multiarch support had something like this: % .../bin/perl -V:libpth libpth='/usr/local/lib /lib/../lib /usr/lib/../lib /lib /usr/lib /lib64 /usr/lib64'; The perls I build now with gcc 4.6.3 have: % .../bin/perl -V:libpth libpth='/usr/local/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib'; The only workaround I found so far is to edit the Config.pm of the old perl and add the new installation directories there. This works remarkably well but I'm not sure about details like best ordering. I wonder if somebody has other solutions short of removing all old perls from my disk and recompiling everything? -- andreas
|