Skip to contentSkip to conversation

package/jamvm: fix build on MIPS

PATCH New Yann E. MORIN 3 participants 7 messages May 13, 2018 – May 28, 2018

lore
Share & tools
lore
#0 lore raw

cover package/jamvm: fix build on MIPS

Hello All!

This series restricts on what MIPS variants jamvm may build.

Regards,
Yann E. MORIN.

The following changes since commit e7f72298a6c88b42a996962027f4f83a07713f26

DEVELOPERS: Add myself to support/kconfig/ (2018-05-12 09:01:40 +0200)

are available in the git repository at:

git://git.buildroot.org/~ymorin/git/buildroot.git

for you to fetch changes up to 048871f6b7e29e9d485e8ba33e2bf374eac24bc4

package/jamvm: restrict on what MIPS procs are allowed (2018-05-13 12:32:35 +0200)

----------------------------------------------------------------
Yann E. MORIN (2):
package/jamvm: move arch dependency to a symbol package/jamvm: restrict on what MIPS procs are allowed

 package/jamvm/Config.in | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH 1/2 package/jamvm: move arch dependency to a symbol

---
 package/jamvm/Config.in | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
package/jamvm/Config.in +10 -5
index 57e1a8e6f4..51d5da03b8 100644
@@ -1,10 +1,16 @@
+config BR2_PACKAGE_JAMVM_ARCH_SUPPORTS
+	bool
+	default y if BR2_arm || BR2_armeb
+	default y if BR2_i386 || BR2_x86_64
+	default y if BR2_mips || BR2_mipsel
+	default y if BR2_powerpc
+
 config BR2_PACKAGE_JAMVM
 	bool "jamvm"
+	depends on BR2_PACKAGE_JAMVM_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_CLASSPATH_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on !BR2_STATIC_LIBS
-	depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64 \
-		|| BR2_mips || BR2_mipsel || BR2_powerpc
-	depends on BR2_PACKAGE_CLASSPATH_ARCH_SUPPORTS
 	select BR2_PACKAGE_ZLIB
 	select BR2_PACKAGE_CLASSPATH
 	help
@@ -14,7 +20,6 @@ config BR2_PACKAGE_JAMVM
 	  http://jamvm.sf.net
 
 comment "jamvm needs a toolchain w/ threads, dynamic library"
-	depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64 \
-		|| BR2_mips || BR2_mipsel || BR2_powerpc
+	depends on BR2_PACKAGE_JAMVM_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_CLASSPATH_ARCH_SUPPORTS
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
Signature · 1 line
2.14.1
#3 lore raw

PATCH 2/2 package/jamvm: restrict on what MIPS procs are allowed

In reply to Yann E. MORIN

jamvm uses deprecated opcodes to store/load words from the FPU coprocessor registers, and in so doing, expects those registers to be 32-bit.

Thus, restrict the conditions under which jamvm is available under mips.

Fixes:

    http://autobuild.buildroot.org/results/f76/f76e10e4c1ce25b42fb2e5d2012adf2eaf1b2fe1/
    http://autobuild.buildroot.org/results/162/162d0e41dc9bc6d6f6594ccee0cb4217067fc71f/
    ...
---
 package/jamvm/Config.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/jamvm/Config.in +2 -1
index 51d5da03b8..7717ccaadb 100644
@@ -2,7 +2,8 @@ config BR2_PACKAGE_JAMVM_ARCH_SUPPORTS
 	bool
 	default y if BR2_arm || BR2_armeb
 	default y if BR2_i386 || BR2_x86_64
-	default y if BR2_mips || BR2_mipsel
+	default y if (BR2_mips || BR2_mipsel) \
+		&& (BR2_MIPS_FP32_MODE_32 || BR2_MIPS_SOFT_FLOAT)
 	default y if BR2_powerpc
 
 config BR2_PACKAGE_JAMVM
Signature · 1 line
2.14.1
#4 lore raw

PATCH 2/2 package/jamvm: restrict on what MIPS procs are allowed

Quoted 9 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> writes:

jamvm uses deprecated opcodes to store/load words from the FPU coprocessor registers, and in so doing, expects those registers to be 32-bit.

Thus, restrict the conditions under which jamvm is available under mips.

Quoted 6 lines

Fixes:

    http://autobuild.buildroot.org/results/f76/f76e10e4c1ce25b42fb2e5d2012adf2eaf1b2fe1/
    http://autobuild.buildroot.org/results/162/162d0e41dc9bc6d6f6594ccee0cb4217067fc71f/
    ...

Committed to 2018.02.x, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#5 lore raw

cover package/jamvm: fix build on MIPS

In reply to Yann E. MORIN

Hello,

Quoted 3 lines · Yann E. MORIN

Yann E. MORIN (2):
package/jamvm: move arch dependency to a symbol package/jamvm: restrict on what MIPS procs are allowed

Thanks, series applied to master. To be honest, I don't fully understand the MIPS details, but since we no longer have anyone really taking care of this architecture, it's not a big deal if we exclude too many MIPS variants. They can always be re-enabled later when/if someone complains.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#6 lore raw

cover package/jamvm: fix build on MIPS

Thomas, All,

On 2018-05-13 21:48 +0200, Thomas Petazzoni spake thusly:

Quoted 11 lines · Yann E. MORIN
Quoted 4 lines

Yann E. MORIN (2):
package/jamvm: move arch dependency to a symbol package/jamvm: restrict on what MIPS procs are allowed

Thanks, series applied to master. To be honest, I don't fully understand the MIPS details, but since we no longer have anyone really taking care of this architecture, it's not a big deal if we exclude too many MIPS variants. They can always be re-enabled later when/if someone complains.

Neither do I understand entirely either, but this code:

    swc1 $f1,4($8)

will cause binutils to warn if FP ABI is fp32, or error out if it is either fpxx or fp64.

Sicne that code in jamvm depends on the use of hard floats, we just allow it for soft-float or fp32.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'