Modify

Opened 21 months ago

Last modified 21 months ago

#22293 new defect

nodejs throws SIGILL (Illegal Instruction) on AR9331 (big endian)

Reported by: etherwave Owned by: developers
Priority: normal Milestone:
Component: packages Version: Chaos Calmer 15.05
Keywords: nodejs Cc:

Description

nodejs throws SIGILL (Illegal Instruction) on AR9331 . I think it's an endian issue.

I get SIGILL on 2 different AR9331 machines ("Onion Omega" running CC 15.05.1 & Carmabola2 running Bleeding edge).

It runs on a "Linkit 7688" (Mediatek, little endian).

I'm trying to getting it working compiling the source, with various endian flags, but still getting SIGILL.

Attachments (0)

Change History (2)

comment:1 Changed 21 months ago by etherwave

FYI, I found that is not an endian issue, to run node.js , I need to make a kernel w/ CONFIG_MIPS_FPU_EMULATOR=y (this web page confirms this : http://www.egrep.jp/wiki/index.php/OpenWrt_for_Arduino_Yun_cheat_sheet ).

comment:2 Changed 21 months ago by etherwave

As discussed in this web page : https://github.com/nodejs/node/issues/4818 , I ran "make kernel_menuconfig" and selected the "Enable FPU emulation". Built it and node.js worked (I used the node.js v4.3.1 from Onion : http://repo.onion.io/omega/packages/nodejs_v4.3.1-1_ar71xx.ipk ).

However, in linux-3.18.29/arch/mips/math-emu/cp1emu.c , I found this comment :

Note if you know that you won't have an FPU, then you'll get much better performance by compiling with -msoft-float!

So a better fix is to compile node.js with -msoft-float .

Add Comment

Modify Ticket

Action
as new .
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.