All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v4 1/1] package/spidermonkey185: new package
Date: Wed, 23 Aug 2017 16:08:15 +0200	[thread overview]
Message-ID: <20170823160815.3ea3ae11@windsurf> (raw)
In-Reply-To: <20170806164452.11938-1-bernd.kuhls@t-online.de>

Hello,

+Nicolas in Cc.

I'm still not really thrilled by the idea of adding a package for such
a large piece of code that Mozilla says is outdated
(https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/1.8.5).
Is it still just CouchDB that needs this? Do they have some plans of
using something more maintained ?

On Sun,  6 Aug 2017 18:44:52 +0200, Bernd Kuhls wrote:

>  create mode 100644 package/spidermonkey185/0001-64bit-big-endian.patch
>  create mode 100644 package/spidermonkey185/0002-secondary-jit.patch
>  create mode 100644 package/spidermonkey185/0003-destdir.patch
>  create mode 100644 package/spidermonkey185/0004-537701.patch
>  create mode 100644 package/spidermonkey185/0005-arm-nosoftfp.patch
>  create mode 100644 package/spidermonkey185/0006-aarch64.patch
>  create mode 100644 package/spidermonkey185/0007-ppc64le.patch
>  create mode 100644 package/spidermonkey185/0008-array-recursion.patch
>  create mode 100644 package/spidermonkey185/0009-c++11.patch
>  create mode 100644 package/spidermonkey185/0010-tag.patch

Most of those patches don't have any useful description. Could you add
such a description inside the patches ?

> diff --git a/package/spidermonkey185/0001-64bit-big-endian.patch b/package/spidermonkey185/0001-64bit-big-endian.patch
> new file mode 100644
> index 000000000..9d5142b20
> --- /dev/null
> +++ b/package/spidermonkey185/0001-64bit-big-endian.patch
> @@ -0,0 +1,21 @@
> +https://bugzilla.mozilla.org/show_bug.cgi?id=627664
> +
> +Source:
> +https://src.fedoraproject.org/rpms/js/blob/f26/f/js-1.8.5-64bit-big-endian.patch
> +
> +Patch position #1:
> +https://src.fedoraproject.org/rpms/js/blob/master/f/js.spec#_12
> +
> +Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> +
> +diff -up xulrunner-2.0/mozilla-central/js/src/jsval.h.64bit-big-endian xulrunner-2.0/mozilla-central/js/src/jsval.h
> +--- js-1.8.5/js/src/jsval.h.64bit-big-endian	2011-01-20 15:59:49.000000000 +0100
> ++++ js-1.8.5/js/src/jsval.h	2011-01-20 16:00:21.000000000 +0100
> +@@ -347,6 +347,7 @@ typedef union jsval_layout
> +             int32          i32;
> +             uint32         u32;
> +             JSWhyMagic     why;
> ++            jsuword        word;

This change is later reverted by patch 0004.

> +diff -up xulrunner-2.0/mozilla-central/js/src/Makefile.in.big-endian-jit xulrunner-2.0/mozilla-central/js/src/Makefile.in
> +--- js-1.8.5/js/src/Makefile.in.big-endian-jit	2010-11-04 21:05:48.000000000 +0100
> ++++ js-1.8.5/js/src/Makefile.in	2010-11-15 14:17:39.000000000 +0100
> +@@ -371,7 +371,7 @@ CPPSRCS += 	checks.cc \
> + # END enclude sources for V8 dtoa
> + #############################################
> + 
> +-ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU)))
> ++ifeq (,$(filter-out powerpc powerpc64 sparc sparc64 s390 s390x,$(TARGET_CPU)))

This change is later modified again in patch 0013, to go in a different
direction (use filter instead of filter-out to opt-in supported
architectures instead of opt-out unsupported architectures).


> +-ifeq (,$(filter-out powerpc powerpc64 sparc sparc64 s390 s390x,$(TARGET_CPU)))
> ++ifeq (,$(filter-out aarch64 powerpc powerpc64 sparc sparc64 s390 s390x,$(TARGET_CPU)))

Another change modified later.


> +-ifeq (,$(filter-out aarch64 powerpc powerpc64 sparc sparc64 s390 s390x,$(TARGET_CPU)))
> ++ifeq (,$(filter-out aarch64 powerpc powerpc64 powerpc64le sparc sparc64 s390 s390x,$(TARGET_CPU)))

Ditto.


> diff --git a/package/spidermonkey185/Config.in b/package/spidermonkey185/Config.in
> new file mode 100644
> index 000000000..d1d02bf2e
> --- /dev/null
> +++ b/package/spidermonkey185/Config.in
> @@ -0,0 +1,16 @@
> +config BR2_PACKAGE_SPIDERMONKEY185
> +	bool "spidermonkey (1.8.5)"

spidermonkey-185 ? Perhaps use that as the name for the package ?

> +	depends on BR2_USE_MMU # fork in executable tools.
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on !BR2_STATIC_LIBS
> +	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # needs pthread_getattr_np()
> +	help
> +	  SpiderMonkey is Mozilla's JavaScript engine written in C/C++. It is
> +	  used in various Mozilla products, including Firefox.
> +
> +	  This is the old 1.8.5 branch, used in Firefox 4.
> +
> +comment "Spider monkey (1.8.5) need a toolchain with C++, dynamic library, NPTL"
> +	depends on BR2_USE_MMU
> +	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_HAS_THREADS_NPTL

> diff --git a/package/spidermonkey185/spidermonkey185.mk b/package/spidermonkey185/spidermonkey185.mk
> new file mode 100644
> index 000000000..4787a6309
> --- /dev/null
> +++ b/package/spidermonkey185/spidermonkey185.mk
> @@ -0,0 +1,36 @@
> +################################################################################
> +#
> +# Spidermonkey (1.8.5)

spidermonkey185, or spidermonkey-185 if you change the package name.

> +#
> +################################################################################
> +
> +SPIDERMONKEY185_VERSION = 1.0.0
> +SPIDERMONKEY185_SITE = http://ftp.mozilla.org/pub/js
> +SPIDERMONKEY185_SOURCE = js185-$(SPIDERMONKEY185_VERSION).tar.gz
> +SPIDERMONKEY185_SUBDIR = js/src
> +SPIDERMONKEY185_LICENSE = MPL-1.1 or GPL-2.0+ or LGPL-2.1+

No license file available ?

> +SPIDERMONKEY185_INSTALL_STAGING = YES
> +SPIDERMONKEY185_DEPENDENCIES = host-python host-perl
> +
> +# To detect endianess a host binary is built from jscpucfg.cpp which is
> +# not cross-compile friendly, so we force endianess.
> +# HOST_CFLAGS are forced to avoid problems when detecting host gcc
> +# because configure would pass TARGET_CFLAGS to the host gcc.
> +SPIDERMONKEY185_CONF_ENV = \
> +	HOST_CFLAGS="$(HOST_CFLAGS)" \
> +	HOST_CXXFLAGS="$(HOST_CXXFLAGS) -DFORCE_$(BR2_ENDIAN)_ENDIAN" \

So you have to specify the endianness of the target in host flags?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

  reply	other threads:[~2017-08-23 14:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-06 16:44 [Buildroot] [PATCH v4 1/1] package/spidermonkey185: new package Bernd Kuhls
2017-08-23 14:08 ` Thomas Petazzoni [this message]
2017-08-23 20:57   ` Bernd Kuhls

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170823160815.3ea3ae11@windsurf \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.