Unable to compile MIPS nanojit backend

RESOLVED FIXED in flash10.1

Status

Core Graveyard
Nanojit
P3
normal
RESOLVED FIXED
8 years ago
4 years ago

People

(Reporter: Brent Baker, Assigned: Chris Dearman)

Tracking

unspecified
flash10.1
Other
Linux
Dependency tree / graph
Bug Flags:
flashplayer-qrb +
flashplayer-triage +

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: fixed-in-nanojit, fixed-in-tamarin-redux)

Attachments

(1 attachment)

(Reporter)

Description

8 years ago
This failure is due to changes made in bug# 542326, comment# 27

Looks like MIPS also needs a little help here, adding Chris Dearman

nanojit/NativeMIPS.cpp:582: error: no 'void nanojit::Assembler::asm_qjoin(nanojit::LIns*)' member function declared in class 'nanojit::Assembler'
nanojit/NativeMIPS.cpp:659: error: no 'void nanojit::Assembler::asm_q2i(nanojit::LIns*)' member function declared in class 'nanojit::Assembler'
nanojit/NativeMIPS.cpp:664: error: no 'void nanojit::Assembler::asm_promote(nanojit::LIns*)' member function declared in class 'nanojit::Assembler'
nanojit/NativeMIPS.cpp:737: error: no 'void nanojit::Assembler::asm_qhi(nanojit::LIns*)' member function declared in class 'nanojit::Assembler'
nanojit/NativeMIPS.cpp:746: error: no 'void nanojit::Assembler::asm_qlo(nanojit::LIns*)' member function declared in class 'nanojit::Assembler'
nanojit/NativeMIPS.cpp: In member function 'void nanojit::Assembler::asm_arith(nanojit::LIns*)':
nanojit/NativeMIPS.cpp:1079: error: 'LIR_div' was not declared in this scope
nanojit/NativeMIPS.cpp:1080: error: 'LIR_mod' was not declared in this scope
nanojit/NativeMIPS.cpp: In member function 'void nanojit::Assembler::asm_store64(nanojit::LOpcode, nanojit::LIns*, int, nanojit::LIns*)':
nanojit/NativeMIPS.cpp:1118: error: 'LIR_ldq' was not declared in this scope
nanojit/NativeMIPS.cpp:1118: error: 'LIR_ldqc' wasnot declared in this scope
nanojit/NativeMIPS.cpp: In member function 'nanojit::RegisterMask nanojit::Assembler::hint(nanojit::LIns*)':
nanojit/NativeMIPS.cpp:1858: error: 'LIR_callh' was not declared in this scope

Updated

8 years ago
Assignee: nobody → chris
Flags: flashplayer-qrb+
Priority: -- → P3
Target Milestone: --- → flash10.1

Updated

8 years ago
Status: NEW → ASSIGNED

Updated

8 years ago
Blocks: 524129
(Assignee)

Comment 1

8 years ago
Created attachment 437408 [details] [diff] [review]
Fix MIPS build errors

Fix compilation errors introduced by conditional definition of LIR_qjoin etc
Reimplemented overflow handling in LIR_addxov,LIR_subxov and LIR_mulxov
(Reporter)

Comment 2

8 years ago
I applied the patch to tamarin-redux rev 4338 and was able to cross compile on x86 linux using gnu mips toolchain version 4.3.3 (Sourcery G++ Lite 4.3-154)

>$ ../configure.py --enable-shell --target=mips-linux
>$ make
>$ file shell/avmshell
shell/avmshell: ELF 32-bit LSB executable, MIPS, MIPS64 version 1, for GNU/Linux 2.6.12, dynamically linked (uses shared libs), not stripped

Problem that I am now having is that when I try and run the generated shell on a MIPS box I get the following error:

# uname -a
Linux asteammpis1 2.6.18-7.1 #3 SMP Mon Dec 14 17:59:30 PST 2009 7405b0-smp unknown
# ./avmshell
bash: ./avmshell: No such file or directory
(Reporter)

Updated

8 years ago
Flags: flashplayer-triage+
(Assignee)

Comment 3

8 years ago
> >$ ../configure.py --enable-shell --target=mips-linux
> >$ make
> >$ file shell/avmshell
> shell/avmshell: ELF 32-bit LSB executable, MIPS, MIPS64 version 1, for
> GNU/Linux 2.6.12, dynamically linked (uses shared libs), not stripped
> 
> Problem that I am now having is that when I try and run the generated shell on
> a MIPS box I get the following error:
> 
> # uname -a
> Linux asteammpis1 2.6.18-7.1 #3 SMP Mon Dec 14 17:59:30 PST 2009 7405b0-smp
> unknown
> # ./avmshell
> bash: ./avmshell: No such file or directory

The only way I can make this error happen on an executable binary is if there is some problem with the dynamic loader. Every other things I tried (wrong endianess etc) generated a different error.

Could you send me a copy of the avmshell binary so I could take a look at it?

Thanks
(Reporter)

Comment 4

8 years ago
compiled shell sent via email.

I have double checked the binary on another MIPS box and I get the same error, granted the machines were setup at the same time and are probably identical.

I also checked that the coping around of the binary did not mess it up by running /file/ against the binary on my windows machine with the following results:

$ file /c/temp/avmshell_mips
/c/temp/avmshell_mips: ELF 32-bit LSB executable, MIPS, MIPS64 version 1, for GN
U/Linux 2.6.12, dynamically linked (uses shared libs), not stripped

So it appears that the file is ok.

Updated

8 years ago
Blocks: 558813
(Reporter)

Comment 5

8 years ago
I am able to compile and run the shell with the supplied patch using the compilers provided by the MIPS box supplier.

The shell runs a majority of the acceptance suite, however there are still a large number of failures. These failures are tracked via blocking bug #558813

I am not clear if this patch should land on its own or should be modified in order to address the blocking bug 558813
(Reporter)

Comment 6

8 years ago
Comment on attachment 437408 [details] [diff] [review]
Fix MIPS build errors

Patches look good, ran an acceptance pass with release and debug shell. There are a couple of date handling failures that I will log separately (ecma3/Date/e15_9_5_(28|29|32|34)_1). Can we please get these patches (attachment #440267 [details] [diff] [review] and attachment #437408 [details] [diff] [review]) landed into nanojit and tamarin-redux asap. I really want to have this enabled in the tamarin build system so that we can ensure that it continues to work. Tracking adding MIPS to the build system via bug# 524129
Attachment #437408 - Flags: review?(edwsmith)

Updated

8 years ago
Attachment #437408 - Flags: review?(edwsmith) → review+

Comment 7

8 years ago
http://hg.mozilla.org/mozilla-central/rev/13dd8f8bfb12
Status: ASSIGNED → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → FIXED
Component: Nanojit → Nanojit
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.