Error: selected processor does not support `vmrs r9,FPSCR' in ARM mode
Categories
(Core :: JavaScript: WebAssembly, defect, P5)
Tracking
()
People
(Reporter: yugiohjcj, Assigned: lth)
References
Details
Attachments
(4 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0
Steps to reproduce:
I ran the script firefox-20200715.sh (see the attached script) to build Firefox.
Configuration:
- machine: Raspberry Pi 4 Model B 8 GB (architecture: ARMv8-A, CPU: ARM Cortex-A72 BCM2711)
- operating system: Slackware ARM 14.2 (soft-float, armv7l-unknown-linux-gnueabi)
- kernel: Linux rpi4 5.7.7-rpi4 #1 SMP Fri Jul 10 11:40:37 CEST 2020 armv7l BCM2711 GNU/Linux
- rustc 1.44.1 (installed with rustup, arm-unknown-linux-gnueabi)
- cargo 1.44.1 (88ba85757 2020-06-11, installed with rustup, arm-unknown-linux-gnueabi)
- gcc 8.2.0 (armv7l-unknown-linux-gnueabi)
Actual results:
I got the following errors (see the attached file firefox-20200715.txt for the output cut because too long for the terminal buffer and firefox-20200715-last_log.json for the log file) :
229:26.10 {standard input}:42842: Error: selected processor does not support `vmrs r9,FPSCR' in ARM mode
229:26.10 {standard input}:42849: Error: selected processor does not support `vmsr FPSCR,r3' in ARM mode
229:26.11 {standard input}:42961: Error: selected processor does not support `vmsr FPSCR,r9' in ARM mode
Expected results:
No errors.
Comment 4•4 years ago
|
||
Hi,
I do not have right environment set up in order to reproduce this issue but I will set the component for it and maybe one of our developers will be able to reproduce it on their end.
Thanks for the report.
Best regards,
Clara.
Updated•4 years ago
|
Assignee | ||
Comment 5•4 years ago
|
||
This appears to be a gcc problem that people run into when configuring with certain floating point combinations, I see for example this: https://stackoverflow.com/questions/41131432/cross-compiling-error-selected-processor-does-not-support-fmrx-r3-fpexc-in
The suggestion there is to try a different -mfpu + -mfloat-abi combination.
I seem to remember that -float-abi=hardfp is really the preferred configuration on Linux, but I don't remember where I remember that from. I'd be curious to hear if that helps you any.
In the gcc documentation, we can see that there are three possible values for the "-mfloat-abi" option:
- "soft"
- "softfp"
- "hard"
My operating system Slackware ARM 14.2 is Soft Float.
So, "soft" or "softfp" will work but "hard" will not work as you can see here with a simple "hello world" program written in C language:
$ gcc -mfloat-abi=soft main.c
$ ./a.out
hello world
$ gcc -mfloat-abi=softfp main.c
$ ./a.out
hello world
$ gcc -mfloat-abi=hard main.c
cc1: error: -mfloat-abi=hard: selected processor lacks an FPU
All the programs on my operating system are Soft Float.
They are usually built with a gcc Soft Float compiler and linked to a glibc Soft Float library.
So, I need to build Firefox for a Soft Float operating system.
Consequently, your suggestion to use "-mfloat-abi=hard" will not help unfortunately.
Assignee | ||
Comment 7•4 years ago
|
||
I can believe that. At the same time, your hardware does have an FPU, so the gcc error here is probably indicative of the -mfpu switch not being sensible. I interpreted the error you reported originally to also be a gcc error and also to be indicative of the -mfpu selection being questionable in the context.
Assignee | ||
Comment 8•4 years ago
|
||
(The problem might go away if I ever get around to fixing bug 1587757.)
Assignee | ||
Comment 9•3 years ago
|
||
I doubt I will be able to test this, but with the fix for bug 1587757 imminent I believe the problem is about to go away, as the patch for that bug effectively implements the fix in comment 1.
Assignee | ||
Comment 10•3 years ago
|
||
This should now be fixed, after bug 1587757 was fixed.
Description
•