commit:     1dc9ddc63ed66854bd981378c9d2f0b523694837
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 09:27:29 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon May 17 04:57:00 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1dc9ddc6

app-editors/emacs: add gccjit support to version 28

Landed upstream in 289000eee729689b0cf362a21baa40ac7f9506f6
requires gcc built with USE=jit

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 app-editors/emacs/emacs-28.0.9999.ebuild | 10 ++++++++--
 app-editors/emacs/metadata.xml           |  2 ++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/app-editors/emacs/emacs-28.0.9999.ebuild 
b/app-editors/emacs/emacs-28.0.9999.ebuild
index d1f8dc79560..e37d8033bea 100644
--- a/app-editors/emacs/emacs-28.0.9999.ebuild
+++ b/app-editors/emacs/emacs-28.0.9999.ebuild
@@ -40,7 +40,7 @@ DESCRIPTION="The extensible, customizable, self-documenting 
real-time display ed
 HOMEPAGE="https://www.gnu.org/software/emacs/";
 
 LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
-IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gconf gfile gif 
+gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jpeg json 
kerberos lcms libxml2 livecd m17n-lib mailutils png selinux sound source ssl 
svg systemd +threads tiff toolkit-scroll-bars wide-int Xaw3d xft +xpm xwidgets 
zlib"
+IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gconf gfile gif 
+gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg json 
kerberos lcms libxml2 livecd m17n-lib mailutils png selinux sound source ssl 
svg systemd +threads tiff toolkit-scroll-bars wide-int Xaw3d xft +xpm xwidgets 
zlib"
 RESTRICT="test"
 
 RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
@@ -52,6 +52,7 @@ RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
        gmp? ( dev-libs/gmp:0= )
        gpm? ( sys-libs/gpm )
        !inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
+       jit? ( sys-devel/gcc:=[jit(-)] )
        json? ( dev-libs/jansson )
        kerberos? ( virtual/krb5 )
        lcms? ( media-libs/lcms:2 )
@@ -140,6 +141,10 @@ src_prepare() {
                        || die "Upstream version number changed to 
${FULL_VERSION}"
        fi
 
+       # These files ignore LDFLAGS. We assign the variable here, because
+       # for live ebuilds FULL_VERSION doesn't exist in global scope
+       use jit && 
QA_FLAGS_IGNORED="usr/$(get_libdir)/emacs/${FULL_VERSION}/native-lisp/.*"
+
        eapply_user
 
        # Fix filename reference in redirected man page
@@ -261,6 +266,7 @@ src_configure() {
                $(use_with games gameuser ":gamestat") \
                $(use_with gmp libgmp) \
                $(use_with gpm) \
+               $(use_with jit native-compilation) \
                $(use_with json) \
                $(use_with kerberos) $(use_with kerberos kerberos5) \
                $(use_with lcms lcms2) \
@@ -310,7 +316,7 @@ src_install() {
        # avoid collision between slots, see bug #169033 e.g.
        rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
        rm -rf "${ED}"/usr/share/{appdata,applications,icons} || die
-       rm -rf "${ED}/usr/$(get_libdir)" || die
+       rm -rf "${ED}/usr/$(get_libdir)/systemd" || die
        rm -rf "${ED}"/var || die
 
        # remove unused <version>/site-lisp dir

diff --git a/app-editors/emacs/metadata.xml b/app-editors/emacs/metadata.xml
index 62697703545..48f1ffacb83 100644
--- a/app-editors/emacs/metadata.xml
+++ b/app-editors/emacs/metadata.xml
@@ -38,6 +38,8 @@
     engine</flag>
   <flag name="imagemagick">Use <pkg>media-gfx/imagemagick</pkg> for image
     processing</flag>
+  <flag name="jit">Compile with Emacs Lisp native compiler support via
+    libgccjit</flag>
   <flag name="json">Compile with native JSON support using
     <pkg>dev-libs/jansson</pkg></flag>
   <flag name="libxml2">Use <pkg>dev-libs/libxml2</pkg> to parse XML instead

Reply via email to