Perl bytecode

Perl script contains compiled bytecode and outputs this error: Invalid bytecode for this architecture: wrong architecture (want i686-linux, you have i386-linux-thread-multi). How to fix it? What Linux distro has i686 Perl (>=5.8) package built without threads?

Many thanks!

1 Reply

Your best bet is to get the version of the script/package that has the uncompiled architecture-dependent PerlXS/C code and compile the package directly on your system. This is fairly common with arch-dependent Perl packages. If you get the uncompiled package it's usually just a matter of 'perl Makefile.pl; make; make test; make install'.

The alternative is to recompile your Perl to match what the package is looking for, but that's major overkill unless you cannot get the uncompiled version of the package and you absolutely have to have that package. (And you'll likely break other stuff in the process.)

As far as which distros come prepackaged with that exact build of Perl I can't say. I can say that Fedora 13 has i386-linux-thread-multi and Ubuntu 10.10 has i686-linux-gnu-thread-multi (both 32-bit builds of course).

Cheers.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct