Skip to contentSkip to conversation

moarvm: bump version to 2016.11

PATCH New Vicente Olivert Riera 2 participants 13 messages Nov 23, 2016 – Nov 25, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/6 moarvm: bump version to 2016.11

---
 package/moarvm/moarvm.hash | 2 +-
 package/moarvm/moarvm.mk   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
package/moarvm/moarvm.hash +1 -1
index 514a1bf..2e49811 100644
@@ -1,2 +1,2 @@
 # Locally computed
-sha256  d8cb9fe74267dd933c3e405b098dea99cb9c0561aedb06e8efd8ddaef43396d0  MoarVM-2016.10.tar.gz
+sha256 5eaa8ff47b1c25e023a900947f88222fffe0884ce74652659ecd2265ae2d1387  MoarVM-2016.11.tar.gz
package/moarvm/moarvm.mk +1 -1
index d2421fd..644432e 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-MOARVM_VERSION = 2016.10
+MOARVM_VERSION = 2016.11
 MOARVM_SITE = http://moarvm.com/releases
 MOARVM_SOURCE = MoarVM-$(MOARVM_VERSION).tar.gz
 MOARVM_LICENSE = Artistic-2.0
Signature · 1 line
2.10.1
#1 lore raw

PATCH 2/6 moarvm: use pkgconfig to find libraries and headers

MoarVM's Configure.pl script uses pkgconfig to find libraries and headers, but it uses the one installed in the host machine which is wrong and can lead to errors of unsafe include paths.

Instead, make it depend on the host-pkgconf package and specify the path to our pkgconfig binary by using the --pkgconfig configure option.

---
 package/moarvm/moarvm.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/moarvm/moarvm.mk +2 -1
index 644432e..80bd19c 100644
@@ -10,7 +10,7 @@ MOARVM_SOURCE = MoarVM-$(MOARVM_VERSION).tar.gz
 MOARVM_LICENSE = Artistic-2.0
 MOARVM_LICENSE_FILES = Artistic2.txt
 MOARVM_INSTALL_STAGING = YES
-MOARVM_DEPENDENCIES = host-luajit libuv libtommath libatomic_ops
+MOARVM_DEPENDENCIES = host-luajit host-pkgconf libuv libtommath libatomic_ops
 
 MOARVM_CONF_OPTS = \
 	--build=$(GNU_HOST_NAME) \
@@ -19,6 +19,7 @@ MOARVM_CONF_OPTS = \
 	--cc="$(TARGET_CC)" \
 	--ld="$(TARGET_CC)" \
 	--prefix="/usr" \
+	--pkgconfig=$(PKG_CONFIG_HOST_BINARY) \
 	--lua=$(HOST_DIR)/usr/bin/luajit \
 	--has-libuv \
 	--has-libtommath \
Signature · 1 line
2.10.1
#2 lore raw

PATCH 3/6 moarvm: enable optional support for libffi

In reply to Vicente Olivert Riera
---
 package/moarvm/moarvm.mk | 5 +++++
 1 file changed, 5 insertions(+)
package/moarvm/moarvm.mk +5 -0
index 80bd19c..d091174 100644
@@ -25,6 +25,11 @@ MOARVM_CONF_OPTS = \
 	--has-libtommath \
 	--has-libatomic
 
+ifeq ($(BR2_PACKAGE_LIBFFI),y)
+MOARVM_CONF_OPTS += --has-libffi
+MOARVM_DEPENDENCIES += libffi
+endif
+
 ifeq ($(BR2_ENDIAN),"BIG")
 MOARVM_CONF_OPTS += --big-endian
 endif
Signature · 1 line
2.10.1
#3 lore raw

PATCH 4/6 moarvm: select libffi when building for MIPS

In reply to Vicente Olivert Riera

Otherwise the compilation will fail like this:

./libmoar.so: undefined reference to `dcCallbackThunkEntry'

See: https://github.com/MoarVM/MoarVM/issues/222

---
 package/moarvm/Config.in | 3 +++
 1 file changed, 3 insertions(+)
package/moarvm/Config.in +3 -0
index 3e0a104..76343d1 100644
@@ -9,6 +9,9 @@ config BR2_PACKAGE_MOARVM
 	select BR2_PACKAGE_LIBUV
 	select BR2_PACKAGE_LIBTOMMATH
 	select BR2_PACKAGE_LIBATOMIC_OPS
+	# dyncall does not work on MIPS; libffi needs to be used.
+	# See: https://github.com/MoarVM/MoarVM/issues/222
+	select BR2_PACKAGE_LIBFFI if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
 	help
 	  Short for "Metamodel On A Runtime", MoarVM is a virtual machine
 	  built especially for Rakudo Perl 6 and the NQP Compiler Toolchain.
Signature · 1 line
2.10.1
#4 lore raw

PATCH 4/6 moarvm: select libffi when building for MIPS

Hello,

Quoted 7 lines · Vicente Olivert Riera

Otherwise the compilation will fail like this:

./libmoar.so: undefined reference to `dcCallbackThunkEntry'

See: https://github.com/MoarVM/MoarVM/issues/222

Is this something we can see in the autobuilders? I.e, is this master or next material?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#5 lore raw

PATCH 4/6 moarvm: select libffi when building for MIPS

Hi Thomas,

Quoted 5 lines · Thomas Petazzoni

Hello,

Quoted 2 lines · Vicente Olivert Riera

Otherwise the compilation will fail like this:

Quoted 8 lines
Quoted 5 lines

./libmoar.so: undefined reference to `dcCallbackThunkEntry'

See: https://github.com/MoarVM/MoarVM/issues/222

Is this something we can see in the autobuilders? I.e, is this master or next material?

Is next material since MoarVM is not available for MIPS, so you cannot build it and you cannot hit that issue.
MoarVM depends on libatomic_ops, and libatomic_ops doesn't have MIPS support in Buildroot so far. This patch series adds MIPS support to it, so, from that moment, MoarVM will be able to be built for MIPS.

Regards,

Vincent

Quoted 5 lines

Thanks,

Thomas

#6 lore raw

PATCH 4/6 moarvm: select libffi when building for MIPS

Hello,

Thanks for your feedback.

Quoted 3 lines · Vicente Olivert Riera

MoarVM depends on libatomic_ops, and libatomic_ops doesn't have MIPS support in Buildroot so far. This patch series adds MIPS support to it, so, from that moment, MoarVM will be able to be built for MIPS.

If moarvm depends on libatomic_ops, then why the patch enabling MIPS support in libatomic_ops is PATCH 5/6, i.e. *after* the patch enabling moarvm? Won't things break if I apply only patches 1 to 4, but not patches 5 and 6 ?

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#7 lore raw

PATCH 4/6 moarvm: select libffi when building for MIPS

Hi Thomas,

Quoted 6 lines · Thomas Petazzoni

Hello,

Thanks for your feedback.

On Thu, 24 Nov 2016 14:58:00 +0000, Vicente Olivert Riera wrote:

Quoted 8 lines
Quoted 3 lines

MoarVM depends on libatomic_ops, and libatomic_ops doesn't have MIPS support in Buildroot so far. This patch series adds MIPS support to it, so, from that moment, MoarVM will be able to be built for MIPS.

If moarvm depends on libatomic_ops, then why the patch enabling MIPS support in libatomic_ops is PATCH 5/6, i.e. *after* the patch enabling moarvm? Won't things break if I apply only patches 1 to 4, but not patches 5 and 6 ?

no, there is no patch enabling or disabling MoarVM for MIPS. You won't be able to build MoarVM for MIPS until libatomic_ops has support for MIPS as well, because MoarVM depends on libatomic_ops.

So, if we enable libatomic_ops, then we will be able to build MoarVM, and that will fail. What I did in my patch series is to add the code for fixing the MIPS problem in MoarVM even before we can actually build it for MIPS.

Regards,

Vincent

Quoted 5 lines

Best regards,

Thomas

#8 lore raw

PATCH 4/6 moarvm: select libffi when building for MIPS

Hello,

Quoted 8 lines · Vicente Olivert Riera

no, there is no patch enabling or disabling MoarVM for MIPS. You won't be able to build MoarVM for MIPS until libatomic_ops has support for MIPS as well, because MoarVM depends on libatomic_ops.

So, if we enable libatomic_ops, then we will be able to build MoarVM, and that will fail. What I did in my patch series is to add the code for fixing the MIPS problem in MoarVM even before we can actually build it for MIPS.

Ah, yes, moarvm has a "depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS", so indeed moarvm can't be selected for MIPS until MIPS support in libatomic_ops is enabled. So bisectability-wise we are OK.

However, from a logical point of view, it is very, very strange to enable the dependencies of moarvm *after* moarvm itself. It would be much more logical to take care of libatomic_ops first (which can be used for other things than moarvm), and then handle moarvm.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#9 lore raw

PATCH 4/6 moarvm: select libffi when building for MIPS

Hi Thomas,

Quoted 13 lines · Thomas Petazzoni

Hello,

Quoted 8 lines · Vicente Olivert Riera

no, there is no patch enabling or disabling MoarVM for MIPS. You won't be able to build MoarVM for MIPS until libatomic_ops has support for MIPS as well, because MoarVM depends on libatomic_ops.

So, if we enable libatomic_ops, then we will be able to build MoarVM, and that will fail. What I did in my patch series is to add the code for fixing the MIPS problem in MoarVM even before we can actually build it for MIPS.

Quoted 7 lines

Ah, yes, moarvm has a "depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS", so indeed moarvm can't be selected for MIPS until MIPS support in libatomic_ops is enabled. So bisectability-wise we are OK.

However, from a logical point of view, it is very, very strange to enable the dependencies of moarvm *after* moarvm itself.

That's the thing, we are not enabling moarvm itself. It happens automatically when you enable its dependencies.

Quoted 3 lines

It would be
much more logical to take care of libatomic_ops first (which can be used for other things than moarvm), and then handle moarvm.

Yeah, I see your point. The thing is that I put first the fix for moarvm in place so whenever it gets enabled for MIPS it's gonna build just fine.

Anyway, do you need me to resend this series with the patches in different order, or will you handle that when applying?

Regards,

Vincent

Quoted 5 lines

Thanks,

Thomas

#10 lore raw

PATCH 5/6 libatomic_ops: add support for MIPS architecture

In reply to Vicente Olivert Riera
---
 package/libatomic_ops/Config.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
package/libatomic_ops/Config.in +3 -1
index c6fe7a0..e9206f3 100644
@@ -1,6 +1,8 @@
 config BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS
 	bool
-	default y if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_i386 || BR2_sparc || BR2_sparc64 || BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || BR2_x86_64
+	default y if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_i386 || BR2_sparc || BR2_sparc64 || BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || BR2_x86_64 || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+	# Unsupported for MIPS R6
+	depends on !BR2_MIPS_CPU_MIPS32R6 && !BR2_MIPS_CPU_MIPS64R6
 
 config BR2_PACKAGE_LIBATOMIC_OPS
 	bool "libatomic_ops"
Signature · 1 line
2.10.1
#11 lore raw

PATCH 6/6 libatomic_ops: bump version to 7.4.4

In reply to Vicente Olivert Riera
---
 package/libatomic_ops/libatomic_ops.hash | 2 +-
 package/libatomic_ops/libatomic_ops.mk   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
package/libatomic_ops/libatomic_ops.hash +1 -1
index d91f705..47a281d 100644
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 2616be0a2f70f7e3eb12f131a36e32723ed5a1928f17b886c3e7c62f7ed14339  libatomic_ops-libatomic_ops-7_4_2.tar.gz
+sha256 ef8335676f18a111f885d48810ab090fb6bfad94e5a5dd76cdccd2a536828662  libatomic_ops-libatomic_ops-7_4_4.tar.gz
package/libatomic_ops/libatomic_ops.mk +1 -1
index fd45726..b5e2172 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBATOMIC_OPS_VERSION = libatomic_ops-7_4_2
+LIBATOMIC_OPS_VERSION = libatomic_ops-7_4_4
 LIBATOMIC_OPS_SITE = $(call github,ivmai,libatomic_ops,$(LIBATOMIC_OPS_VERSION))
 LIBATOMIC_OPS_AUTORECONF = YES
 
Signature · 1 line
2.10.1
#12 lore raw

PATCH 1/6 moarvm: bump version to 2016.11

In reply to Vicente Olivert Riera

Hello,

Quoted 5 lines · Vicente Olivert Riera
---
 package/moarvm/moarvm.hash | 2 +-
 package/moarvm/moarvm.mk   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Entire patch series applied to next. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com