Closed Bug 551165 Opened 14 years ago Closed 14 years ago

Unable to compile MIPS nanojit backend

Categories

(Core Graveyard :: Nanojit, defect, P3)

Other
Linux
defect

Tracking

(Not tracked)

RESOLVED FIXED
flash10.1

People

(Reporter: brbaker, Assigned: chris)

References

Details

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

Attachments

(1 file)

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
Assignee: nobody → chris
Flags: flashplayer-qrb+
Priority: -- → P3
Target Milestone: --- → flash10.1
Status: NEW → ASSIGNED
Blocks: 524129
Fix compilation errors introduced by conditional definition of LIR_qjoin etc
Reimplemented overflow handling in LIR_addxov,LIR_subxov and LIR_mulxov
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
Flags: flashplayer-triage+
> >$ ../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
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.
Blocks: 558813
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
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)
Attachment #437408 - Flags: review?(edwsmith) → review+
http://hg.mozilla.org/mozilla-central/rev/13dd8f8bfb12
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: