Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

All my perl programs just started dying with "Illegal instruction". I upgraded some gnome packages with Ximian on RH8, and I have done my best to find what dependencies were screwed up, but I can't find any. With strace I see it load all its libraries and it looks fine up to the first attempt to read the perl script, which returns the illegal instruction. In gdb, I get
Program received signal SIGILL, Illegal instruction.
Switching to Thread 8192 (LWP 20089)
0x0804b3c0 in ?? ()
(gdb) bt
#0  0x0804b3c0 in ?? ()
#1  0x400b92cc in Perl_pop_scope () from /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
etc...
How can I find the problem?

Replies are listed 'Best First'.
Re: perl broke
by hardburn (Abbot) on Dec 22, 2003 at 17:51 UTC

    Try reinstalling perl from your vendor's packages or recompile it yourself.

    ----
    I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
    -- Schemer

    : () { :|:& };:

    Note: All code is untested, unless otherwise stated

Re: perl broke
by blue_cowdawg (Monsignor) on Dec 22, 2003 at 17:52 UTC

    When you did the install of the Ximian modules did you "upgrade" Perl as well? I know from personal experience that the upgrades sometimes hose an already installed instance of Perl.

    Offhand I'd say one of the dynamic libraries that Perl depends on (/usr/lib/lib*thread* for instance) has been mucked with by Ximian's Red Carpet installer.

    You might consider d/l'ing the Perl source and re-installing Perl.


    Peter L. Berghold -- Unix Professional
    Peter at Berghold dot Net
       Dog trainer, dog agility exhibitor, brewer of fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and a good Belgian ale in your chalice.
Re: perl broke
by Anonymous Monk on Dec 22, 2003 at 19:33 UTC
    ok. that fixed it. The answer was staring me in the face when I did a "rpm -q --verify perl" it returned:
    
    ..5.....   /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
    S.5....T   /usr/lib/perl5/5.8.0/i386-linux-thread-multi/Digest/MD5.pm
    S.5....T   /usr/lib/perl5/5.8.0/i386-linux-thread-multi/auto/Digest/MD5/MD5.so
    Note: 5      MD5 sum
          S      File size
          L      Symlink
          T      Mtime
          D      Device
          U      User
          G      Group
          M      Mode 
    (The Note is for me. ) MD5 sums had changed but I attributed it to some CPAN upgrade. In fact, somehow libcore.so had become corrupted.

    Thanks,
    Kyle
A reply falls below the community's threshold of quality. You may see it by logging in.