xemacs: Tipo de CPU inválido no executável


1

ESTÁ BEM. Então eu trabalhei em torno desse erro:

/sw/bin/xemacs: Bad CPU type in executable.

mas eu não entendo porque o que eu fiz funcionou e estou curioso. Tudo o que fiz foi substituir / sw com o que deveria ter sido uma cópia idêntica.

Um pouco de fundo ... Eu tenho essa cópia do xemacs desde 2000. Eu adoro isso e está tudo configurado corretamente. Construir xemacs a partir do zero era algo que eu costumava fazer quando, mas sempre foi uma dor que eu limpei / sw (provavelmente instalado originalmente usando o Fink) e o copiei de um computador para outro desde sempre. Eu fiz isso recentemente em janeiro de 2014 no meu novo iMac rodando Mavericks e tudo funciona bem. Ainda mais recentemente, atualizei de 10,7 para 10,9 no meu MacBook Pro em casa. Acabei de instalar o xquartz e quando fui executar minha cópia de xemacs, recebi o erro de CPU incorreto.

Eu não conseguia entender por que eu estava tendo problemas já que meu novo iMac no trabalho não funcionava. Depois de lutar por um tempo, eu tentei simplesmente tarring & amp; copiando / sw do iMac do trabalho para meu laptop mais antigo e, de repente, funcionou!

Mas / sw deve ser idêntico em todos os casos aqui. Ambos se originaram da mesma cópia do / sw que estou usando desde ~ 2000. Por que uma nova cópia do / sw faria alguma diferença? Aqui estão algumas pastas da linha de comando:

% /sw/bin/xemacs &
/sw/bin/xemacs: Bad CPU type in executable.
% sudo mv /sw /sw-old
% sudo mv /Users/robleach/Downloads/sw /
% /sw/bin/xemacs &
%

Laptop em casa:

% uname -a
Darwin #### 13.3.0 Darwin Kernel Version 13.3.0: Tue Jun  3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64 x86_64

Trabalhe no iMac:

% uname -a
Darwin #### 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64

A atualização de 10,7 para 10,9 se aproximou do que estava em / sw? Por que a nova cópia idêntica deu certo? Pelo que eu li sobre esse erro, parece que o xemacs não deveria nem mesmo funcionar desde 10.7 - mas funciona! Eu uso todo o tempo no trabalho.


Você pode executar 'arquivo' em ambos os executáveis?
Alex

/ sw / bin / xemacs: Executável do Mach-O i386 / sw-old / bin / xemacs: Executável do Mach-pp ppc Sim, eles são diferentes! Mas eu não entendo como eles se tornaram diferentes. Ambos são do mesmo tarball que eu tenho há mais de uma década ... Eu compilei essa coisa antes da Intel Macs existir. Talvez eu esteja apenas perdendo a cabeça e fiz uma nova instalação em algum momento, quando tentei usar um intel mac e esqueci ...
hepcat72

Respostas:


0

A execução do arquivo nos dois executáveis ​​mostrará como o executável real foi compilado:

file /sw/bin/emacs

Isso lhe dirá por que você está tendo problemas ao executar o arquivo entre diferentes sistemas.

Obviamente, com tipos de CPU incompatíveis, você enfrentará o erro que está recebendo.

Rosetta estava disponível para 10.6, mas não a partir de 10.7. Você poderia usá-lo de alguma forma em uma máquina mais antiga?


Foi definitivamente rodando em uma máquina mais antiga. Embora eu não me lembre explicitamente de fazê-lo, devo ter recompilado em algum momento depois de obter um intel mac. Eu não faço muito código no meu laptop, então esta foi provavelmente a primeira vez que tentei usá-lo desde a instalação da minha cópia antiga do / sw nele.
hepcat72
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.