Compare commits

...
Sign in to create a new pull request.

56 commits

Author SHA1 Message Date
Andreas Schneider
eb9b55cb85 Update to version 2.1.1761727121 2025-11-03 11:34:49 +01:00
Fedora Release Engineering
0a26f58b25 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 21:01:13 +00:00
Andreas Schneider
a991d71a64 Fix sources
[skip changelog]
2025-07-08 14:38:44 +02:00
Andreas Schneider
0abdb434ef Update to version 2.1.1748459687
- Fixes CVE-2024-25176
2025-07-08 14:18:21 +02:00
Andreas Schneider
2b4fcf685a Update to version 2.1.1744318430 2025-04-14 16:18:50 +02:00
Fedora Release Engineering
272698d73d Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 16:20:31 +00:00
Andreas Schneider
4f3ef8f24c Re-add LuaJIT-test-cleanup.tar.gz to sources
[skip changelog]
2024-11-14 16:11:02 +01:00
Andreas Schneider
6375dbc3e0 Update sources
[skip changelog]
2024-11-14 14:50:43 +01:00
Andreas Schneider
59d1e202ba Update to version 2.1.1731485912
- Fix bcsave assertion on s390x
- resolves: rhbz#2323980
2024-11-14 14:34:58 +01:00
Andreas Schneider
19104fbe8f Update to version 2.1.1724232689 2024-08-22 12:54:36 +02:00
Andreas Schneider
cf2d0da41f Update to version 2.1.1720049189 2024-07-25 08:47:19 +02:00
Fedora Release Engineering
a578cb7d08 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 16:16:25 +00:00
Andreas Schneider
a2b9554e9f Update to verion 2.1.1713773202 2024-05-23 13:13:26 +02:00
Andreas Schneider
c705b186ce Convert to %autorelease and %autochangelog
[skip changelog]
2024-05-23 13:12:01 +02:00
Andreas Schneider
a6ae8b3d73 Add support for s390x 2024-03-01 21:11:57 +01:00
Andreas Schneider
91295253fd Update to version 2.1.1707061634 2024-02-22 16:24:39 +01:00
Fedora Release Engineering
d46908f948 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 05:12:16 +00:00
Fedora Release Engineering
4735fa65eb Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 06:28:44 +00:00
Andreas Schneider
844775d91c Always run tests
This also uses symlinks for test and bench directory from the
LuaJIT-test-cleanup repository.
2023-08-29 08:44:36 +02:00
Andreas Schneider
6624593a3c Update to latest luajit rolling release 2023-08-26 19:36:12 +02:00
Fedora Release Engineering
3e7ab73c13 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 13:18:57 +00:00
Andreas Schneider
0a96623703 Update to latest luajit v2.1 git version 2023-03-12 09:17:50 +01:00
Fedora Release Engineering
2a87cf278a Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 18:32:07 +00:00
Andreas Schneider
c19899ad33 Update to latest luajit v2.1 git version 2022-08-24 09:58:41 +02:00
Fedora Release Engineering
b9c7242352 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 20:06:20 +00:00
Fedora Release Engineering
be3d54b48a - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 18:18:27 +00:00
Siddhesh Poyarekar
c52917f29d Bring back the earlier code to do ln -sf 2021-10-26 21:38:28 +05:30
Andreas Schneider
5f35e57a82 Apply patches from https://github.com/LuaJIT/LuaJIT/ 2021-10-21 13:31:29 +02:00
Fedora Release Engineering
83cef061f0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 13:22:23 +00:00
Fedora Release Engineering
558bd69f40 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 18:53:31 +00:00
Fedora Release Engineering
4746b4a3b2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 06:30:13 +00:00
Fedora Release Engineering
ab00354308 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 11:33:20 +00:00
Siddhesh Poyarekar
badfc99c37 Multiple updates
- New API functions jit.prngstate and thread.exdata from OpenResty.
- Bug fixes in ppc64le and aarch64.
- Optimised string hash function for SSE4.2
- Miscellaneous bug fixes.
2019-09-25 16:42:34 -07:00
Fedora Release Engineering
0f267e9eea - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 15:25:27 +00:00
Siddhesh Poyarekar
56036d33dc Don't add symlink for luajit-*
The openresty patch causes the install target to this by default so
this additional step is no longer necessary.
2019-06-26 09:03:45 +05:30
Siddhesh Poyarekar
513e3620e5 Port JIT features and fixes from openresty/luajit2
The ported features only extend the JIT diagnostics module and not the
language or core features.
2019-06-25 22:07:03 +05:30
Siddhesh Poyarekar
1fed13cd2c Add ppc64le support 2019-06-19 21:30:39 +05:30
Siddhesh Poyarekar
586ddbeb3a Bug fix update
Backport bugfixes from github.com/siddhesh/LuaJIT.git
2019-06-19 20:47:10 +05:30
Igor Gnatenko
1d64e7791a
Enable Lua 5.2 features
This should not break anything, however documentation suggests that some
things might.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-06-17 07:11:44 +02:00
Igor Gnatenko
629bf36c21
Switch to %{build_*flags}
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-06-17 07:07:45 +02:00
Siddhesh Poyarekar
616098e6d1 Add support for s390x
Merged in from https://github.com/linux-on-ibm-z/LuaJIT/tree/v2.1
2019-04-24 15:43:07 +05:30
Siddhesh Poyarekar
e22e03a62a Add fixes from https://github.com/siddhesh/LuaJIT/tree/v2.1
The main LuaJIT repository is not seeing too many updates and the
maintainer has not been reviewing patches for some time now.  This
fork is primarily a means to consolidate abandoned but useful patches
to luajit that have been lying around in various trees such as
OpenResty, RaptorJIT (these will need extra work since it's a hard
fork) and architecture forks such as ppc64.

This tree also incorporates the LuaJIT-test-cleanup project into the
main repository to enable testing of the built binary.
2019-04-12 21:14:44 +05:30
Siddhesh Poyarekar
47e9ff3dfc Add upstream bug fixes from the v2.1 branch
These are bug fixes from the 2.1 branch in the official LuaJIT
repository that never made it into a release since there have been
none since 2.1.0-beta3.
2019-04-12 20:21:11 +05:30
Fedora Release Engineering
c82cbbda33 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 09:13:04 +00:00
Igor Gnatenko
6f48f7d4f4
Remove obsolete ldconfig scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-22 18:40:20 +01:00
Fedora Release Engineering
de9a374212 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 09:29:50 +00:00
Fedora Release Engineering
3e6d98376e - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-08 00:24:39 +00:00
Fedora Release Engineering
b483e5aef3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 02:50:01 +00:00
Fedora Release Engineering
65f883f360 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 20:29:31 +00:00
Tom Callaway
014c40d543 2.1.0beta3 2017-05-15 09:33:51 -04:00
Fedora Release Engineering
99eb8aeff7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-10 20:09:00 +00:00
Igor Gnatenko
264ac1fda7 Add aarch64 to ExclusiveArch
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
2016-08-29 19:14:10 +02:00
Igor Gnatenko
8a70477e72 drop unused %configure
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
2016-08-29 16:20:44 +02:00
Igor Gnatenko
772b91d1b5 Update to 2.1.0-beta2 (RHBZ #1371158)
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
2016-08-29 16:12:42 +02:00
Dan Horák
969d554cd7 - set ExclusiveArch also for Fedora 2016-05-09 14:34:26 +02:00
Dennis Gilmore
651e3b30fb - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-04 04:35:25 +00:00
8 changed files with 7860 additions and 94 deletions

12
.gitignore vendored
View file

@ -1,3 +1,15 @@
/LuaJIT-2.0.2.tar.gz
/LuaJIT-2.0.3.tar.gz
/LuaJIT-2.0.4.tar.gz
/LuaJIT-2.1.0-beta2.tar.gz
/LuaJIT-2.1.0-beta3.tar.gz
/LuaJIT-2.1.1692716794.tar.gz
/LuaJIT-test-cleanup.tar.gz
/LuaJIT-2.1.1707061634.tar.gz
/LuaJIT-2.1.1713773202.tar.gz
/LuaJIT-2.1.1720049189.tar.gz
/LuaJIT-2.1.1724232689.tar.gz
/LuaJIT-2.1.1731485912.tar.gz
/LuaJIT-2.1.1744318430.tar.gz
/LuaJIT-2.1.1748459687.tar.gz
/LuaJIT-2.1.1761727121.tar.gz

186
changelog Normal file
View file

@ -0,0 +1,186 @@
* Fri Mar 01 2024 Andreas Schneider <asn@redhat.com> - 2.1.1707061634-2
- Add support for s390x
resolves: rhbz#2222911
* Thu Feb 22 2024 Andreas Schneider <asn@redhat.com> - 2.1.1707061634-1
- Update to version 2.1.1707061634
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1692716794-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1692716794-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Aug 26 2023 Andreas Schneider <asn@redhat.com> - 2.1.1692716794-1
- Update to rolling release version of luajit
- Adapted patches and cleaned up spec file
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.28beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Mar 12 2023 Andreas Schneider <asn@redhat.com> - 2.1.0-0.27beta3
- Update to latest luajit v2.1 git version
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.26beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sun Aug 21 2022 Andreas Schneider <asn@redhat.com> - 2.1.0-0.25beta3
- Update to latest luajit v2.1 git version
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.24beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.23beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Oct 26 2021 Siddhesh Poyarekar <siddhesh@gotplt.org> - 2.1.0-0.22beta3
- Bring back the earlier code to do ln -sf.
* Tue Oct 12 2021 Andreas Schneider <asn@redhat.com> - 2.1.0-0.21beta3
- Rebase onto https://github.com/LuaJIT/LuaJIT/tree/v2.1
- Dropped support for ppc64le
- Dropped support for s390x
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.20beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.19beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.18beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.17beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Sep 25 2019 Siddhesh Poyarekar <sid@reserved-bit.com> - 2.1.0-0.16beta3
- New API functions jit.prngstate and thread.exdata from OpenResty.
- Bug fixes in ppc64le and aarch64.
- Optimised string hash function for SSE4.2
- Miscellaneous bug fixes.
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.16beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Jun 25 2019 Siddhesh Poyarekar <sid@reserved-bit.com> - 2.1.0-0.15beta3
- Port JIT features and fixes from openresty/luajit2.
* Wed Jun 19 2019 Siddhesh Poyarekar <sid@reserved-bit.com> - 2.1.0-0.14beta3
- Patch for PPC64 support.
* Wed Jun 19 2019 Siddhesh Poyarekar <sid@reserved-bit.com> - 2.1.0-0.13beta3
- arm: Fix up condition codes for conditional arithmetic insn.
- bugfix: fixed a segfault when unsinking 64-bit pointers.
- Remove setrlimit on FreeBSD.
- test: Check for package.searchers only in compat5.2.
* Mon Jun 17 07:10:20 CEST 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.1.0-0.12beta3
- Enable Lua 5.2 compatibility
* Wed Apr 24 2019 Siddhesh Poyarekar <sid@reserved-bit.com> - 2.1.0-0.11beta3
- Add s390x support.
* Fri Apr 12 2019 Siddhesh Poyarekar <sid@reserved-bit.com> - 2.1.0-0.10beta3
- Add upstream bug fixes from the v2.1 branch.
- Add bug fixes from https://github.com/siddhesh/LuaJIT.git
- Incorporate tests and benchmarks from LuaJIT-test-cleanup.
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.9beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.8beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.7beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.6beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.5beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon May 15 2017 Tom Callaway <spot@fedoraproject.org> - 2.1.0-0.4beta3
- Update to 2.1.0-beta3
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-0.3beta2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Aug 29 2016 Igor Gnatenko <ignatenko@redhat.com> - 2.1.0-0.2beta2
- Add aarch64 to ExclusiveArch
* Mon Aug 29 2016 Igor Gnatenko <ignatenko@redhat.com> - 2.1.0-0.1beta2
- Update to 2.1.0-beta2 (RHBZ #1371158)
* Mon May 09 2016 Dan Horák <dan[at]danny.cz> - 2.0.4-5
- set ExclusiveArch also for Fedora
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Aug 07 2015 Oliver Haessler <oliver@redhat.com> - 2.0.4-3
- only build x86_64 on EPEL as luajit has no support for ppc64
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu May 21 2015 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.4-1
- 2.0.4
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Jul 09 2014 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.3-3
- rebuild against lua 5.2
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu Mar 13 2014 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.3-1
- 2.0.3 upstream release
* Sun Dec 15 2013 Clive Messer <clive.messer@communitysqueeze.org> - 2.0.2-9
- Apply luajit-path64.patch on x86_64.
* Mon Dec 09 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-8
- Fix strip (thanks Ville Skyttä)
* Fri Dec 06 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-7
- Fix executable binary
* Mon Dec 02 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-6
- Fix .pc
* Sun Dec 01 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-5
- Fixed short-circuit builds (schwendt)
* Sat Nov 30 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-4
- Preserve timestamps at install
* Fri Nov 29 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-3
- fixed some issues found by besser82
- Moved html-docs to -devel subpackage (besser82)
* Thu Nov 28 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-2
- Re-update
* Mon Sep 02 2013 Muayyad Alsadi <alsadi@gmail.com> - 2.0.2-1
- Update to new upstream version
- remove PREREL= option
* Mon Feb 06 2012 Andrei Lapshin - 2.0.0-0.4.beta9
- Update to new upstream version
- Rename main executable to luajit
- Remove BuildRoot tag and %%clean section
* Sun Oct 09 2011 Andrei Lapshin - 2.0.0-0.3.beta8
- Enable debug build
- Enable verbose build output
- Move libluajit-*.so to -devel
- Add link to upstream hotfix #1
* Tue Jul 05 2011 Andrei Lapshin <alapshin@gmx.com> - 2.0.0-0.2.beta8
- Append upstream hotfix #1
* Sun Jul 03 2011 Andrei Lapshin <alapshin@gmx.com> - 2.0.0-0.1.beta8
- Initial build

400
luajit-2.1-fedora.patch Normal file
View file

@ -0,0 +1,400 @@
From 170b3e6e07613f83afa320bec3e0e0e6da53f583 Mon Sep 17 00:00:00 2001
From: Sameera Deshpande <sameera.deshpande@linaro.org>
Date: Fri, 15 Feb 2019 07:46:16 +0530
Subject: [PATCH 1/8] Add support for FNMADD and FNMSUB.
---
src/lj_asm_arm64.h | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/lj_asm_arm64.h b/src/lj_asm_arm64.h
index 5b40f4cc..cc842b53 100644
--- a/src/lj_asm_arm64.h
+++ b/src/lj_asm_arm64.h
@@ -361,6 +361,35 @@ static int asm_fusemadd(ASMState *as, IRIns *ir, A64Ins ai, A64Ins air)
return 0;
}
+/* Fuse FP neg-multiply-add/sub. */
+static int asm_fusenmadd(ASMState *as, IRIns *ir, A64Ins ai, A64Ins air)
+{
+ IRRef ref = ir->op1;
+ IRIns *irn = IR(ref);
+ if (irn->o != IR_ADD && irn->o != IR_SUB)
+ return 0;
+
+ if (!mayfuse(as, ref))
+ return 0;
+
+ IRRef lref = irn->op1, rref = irn->op2;
+ IRIns *irm;
+ if (lref != rref &&
+ ((mayfuse(as, lref) && (irm = IR(lref), irm->o == IR_MUL) &&
+ ra_noreg(irm->r)) ||
+ (mayfuse(as, rref) && (irm = IR(rref), irm->o == IR_MUL) &&
+ (rref = lref, ra_noreg(irm->r))))) {
+ Reg dest = ra_dest(as, ir, RSET_FPR);
+ Reg add = ra_hintalloc(as, rref, dest, RSET_FPR);
+ Reg left = ra_alloc2(as, irm,
+ rset_exclude(rset_exclude(RSET_FPR, dest), add));
+ Reg right = (left >> 8); left &= 255;
+ emit_dnma(as, (irn->o == IR_ADD ? ai : air), (dest & 31), (left & 31), (right & 31), (add & 31));
+ return 1;
+ }
+ return 0;
+}
+
/* Fuse BAND + BSHL/BSHR into UBFM. */
static int asm_fuseandshift(ASMState *as, IRIns *ir)
{
@@ -1461,7 +1490,8 @@ static void asm_mul(ASMState *as, IRIns *ir)
static void asm_neg(ASMState *as, IRIns *ir)
{
if (irt_isnum(ir->t)) {
- asm_fpunary(as, ir, A64I_FNEGd);
+ if (!asm_fusenmadd(as, ir, A64I_FNMADDd))
+ asm_fpunary(as, ir, A64I_FNEGd);
return;
}
asm_intneg(as, ir);
--
2.43.2
From 09b3c908b4e6397655e0c476ca7d3528d2b4773d Mon Sep 17 00:00:00 2001
From: Vivien HENRIET <bubuabu@bubuabu.org>
Date: Wed, 30 Jan 2019 23:44:51 +0100
Subject: [PATCH 2/8] Fix os.date() for timezone change awareness
On POSIX target, system timezone change are not taken into account.
To reproduce,
1. call os.date()
2. change your timezone
3. call os.date() within the same luajit instance
On POSIX target, os.date use localtime_r to retrieve time.
On other target, the function localtime is used. But there is a behaviour
diference between these two function. localtime acts as if it called tzset
which localtime_r don't.
To fix the issue tzset is called before localtime_r.
---
src/lib_os.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/lib_os.c b/src/lib_os.c
index cf0df281..d9dda853 100644
--- a/src/lib_os.c
+++ b/src/lib_os.c
@@ -185,6 +185,7 @@ LJLIB_CF(os_date)
#endif
} else {
#if LJ_TARGET_POSIX
+ tzset();
stm = localtime_r(&t, &rtm);
#else
stm = localtime(&t);
--
2.43.2
From 78ec3dbc5a3f6c0198e3dbe7901d80f7feb77344 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date: Thu, 14 Mar 2019 23:08:24 +0530
Subject: [PATCH 3/8] Revert "FFI: Make FP to U64 conversions match JIT backend
behavior."
This reverts commit f5d424afe8b9395f0df05aba905e0e1f6a2262b8.
The patch breaks test 279, i.e.
assert(tostring(bit.band(1ll, 1, 1ull, -1)) == "1ULL")
The patch was put in to make the JIT and interpreter behaviour
consistent[1] for float to unsigned int conversions but it ended up
making things worse. There needs to be a better fix for this.
[1] https://github.com/LuaJIT/LuaJIT/pull/415
---
src/lj_obj.h | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
diff --git a/src/lj_obj.h b/src/lj_obj.h
index 2d4386e1..d40f7264 100644
--- a/src/lj_obj.h
+++ b/src/lj_obj.h
@@ -996,22 +996,14 @@ static LJ_AINLINE int32_t lj_num2bit(lua_Number n)
#define lj_num2int(n) ((int32_t)(n))
-/*
-** This must match the JIT backend behavior. In particular for archs
-** that don't have a common hardware instruction for this conversion.
-** Note that signed FP to unsigned int conversions have an undefined
-** result and should never be relied upon in portable FFI code.
-** See also: C99 or C11 standard, 6.3.1.4, footnote of (1).
-*/
static LJ_AINLINE uint64_t lj_num2u64(lua_Number n)
{
-#if LJ_TARGET_X86ORX64 || LJ_TARGET_MIPS
- int64_t i = (int64_t)n;
- if (i < 0) i = (int64_t)(n - 18446744073709551616.0);
- return (uint64_t)i;
-#else
- return (uint64_t)n;
+#ifdef _MSC_VER
+ if (n >= 9223372036854775808.0) /* They think it's a feature. */
+ return (uint64_t)(int64_t)(n - 18446744073709551616.0);
+ else
#endif
+ return (uint64_t)n;
}
static LJ_AINLINE int32_t numberVint(cTValue *o)
--
2.43.2
From b71187a97405c03c64caa9a295e94c7708ffab35 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date: Sun, 17 Mar 2019 11:34:04 +0530
Subject: [PATCH 4/8] Guard against undefined behaviour when casting from float
to unsigned
Only range (-1.0, UINT64_MAX) can be safely converted to unsigned
directly, and (-INT64_MAX,INT_64_MAX) through a cast to int64_t first.
The remaining range is undefined.
TODO: Do the same for JIT as well as for float to other ranges.
---
src/lj_obj.h | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/lj_obj.h b/src/lj_obj.h
index d40f7264..f79cd02c 100644
--- a/src/lj_obj.h
+++ b/src/lj_obj.h
@@ -998,12 +998,18 @@ static LJ_AINLINE int32_t lj_num2bit(lua_Number n)
static LJ_AINLINE uint64_t lj_num2u64(lua_Number n)
{
+ /* Undefined behaviour. This is deliberately not a full check because we
+ don't want to slow down compliant code. */
+ lj_assertX(n >= -9223372036854775809.0, "Overflow");
#ifdef _MSC_VER
if (n >= 9223372036854775808.0) /* They think it's a feature. */
return (uint64_t)(int64_t)(n - 18446744073709551616.0);
else
#endif
- return (uint64_t)n;
+ if (n > -1.0)
+ return (uint64_t)n;
+ else
+ return (uint64_t)(int64_t)n;
}
static LJ_AINLINE int32_t numberVint(cTValue *o)
--
2.43.2
From 19908a818ccd8d5888bab6f4a4d518701570eaf8 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date: Mon, 25 Mar 2019 17:56:53 +0530
Subject: [PATCH 5/8] Fix build erro with fnmsub fusing
---
src/lj_asm_arm64.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lj_asm_arm64.h b/src/lj_asm_arm64.h
index cc842b53..d56a376a 100644
--- a/src/lj_asm_arm64.h
+++ b/src/lj_asm_arm64.h
@@ -1490,7 +1490,7 @@ static void asm_mul(ASMState *as, IRIns *ir)
static void asm_neg(ASMState *as, IRIns *ir)
{
if (irt_isnum(ir->t)) {
- if (!asm_fusenmadd(as, ir, A64I_FNMADDd))
+ if (!asm_fusenmadd(as, ir, A64I_FNMADDd, A64I_FNMSUBd))
asm_fpunary(as, ir, A64I_FNEGd);
return;
}
--
2.43.2
From e8279fb7d556553adb6f645f481ba399f144c80b Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date: Thu, 28 Mar 2019 09:19:34 +0530
Subject: [PATCH 6/8] aarch64: better float to unsigned int conversion
A straight float to unsigned conversion has a limited range of (-1.0,
UTYPE_MAX) which should be fine in general but for the sake of
consistency across the interpreter and the JIT compiler, it is
necessary to work a wee bit harder to expand this range to (TYPE_MIN,
UTYPE_MAX), which can be done with a simple range check. This adds a
couple of branches but only one of the branches should have a
noticeable performance impact on most processors with branch
predictors, and that too only if the input number varies wildly in
range.
This currently works only for 64-bit conversions, 32-bit is still WIP.
---
src/lj_asm_arm64.h | 30 ++++++++++++++++++++++--------
src/lj_target_arm64.h | 1 +
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/src/lj_asm_arm64.h b/src/lj_asm_arm64.h
index d56a376a..a1b44ec2 100644
--- a/src/lj_asm_arm64.h
+++ b/src/lj_asm_arm64.h
@@ -665,14 +665,28 @@ static void asm_conv(ASMState *as, IRIns *ir)
} else {
Reg left = ra_alloc1(as, lref, RSET_FPR);
Reg dest = ra_dest(as, ir, RSET_GPR);
- A64Ins ai = irt_is64(ir->t) ?
- (st == IRT_NUM ?
- (irt_isi64(ir->t) ? A64I_FCVT_S64_F64 : A64I_FCVT_U64_F64) :
- (irt_isi64(ir->t) ? A64I_FCVT_S64_F32 : A64I_FCVT_U64_F32)) :
- (st == IRT_NUM ?
- (irt_isint(ir->t) ? A64I_FCVT_S32_F64 : A64I_FCVT_U32_F64) :
- (irt_isint(ir->t) ? A64I_FCVT_S32_F32 : A64I_FCVT_U32_F32));
- emit_dn(as, ai, dest, (left & 31));
+
+ A64Ins ai_signed = st == IRT_NUM ?
+ (irt_is64(ir->t) ? A64I_FCVT_S64_F64 : A64I_FCVT_S32_F64) :
+ (irt_is64(ir->t) ? A64I_FCVT_S64_F32 : A64I_FCVT_S32_F32);
+
+ if (irt_isi64(ir->t) || irt_isint(ir->t))
+ emit_dn(as, ai_signed, dest, (left & 31));
+ else {
+ A64Ins ai_unsigned = st == IRT_NUM ?
+ (irt_is64(ir->t) ? A64I_FCVT_U64_F64 : A64I_FCVT_U32_F64) :
+ (irt_is64(ir->t) ? A64I_FCVT_U64_F32 : A64I_FCVT_U32_F32);
+
+ MCLabel l_done = emit_label(as);
+ emit_dn(as, ai_unsigned, dest, (left & 31));
+ MCLabel l_signed = emit_label(as);
+ emit_jmp(as, l_done);
+ emit_dn(as, ai_signed, dest, (left & 31));
+ /* The valid range for float to unsigned int conversion is (-1.0,
+ UINT{,64}_MAX-1), but we just compare with 0 to save a load. */
+ emit_cond_branch(as, CC_PL, l_signed);
+ emit_nm(as, st == IRT_NUM ? A64I_FCMPZd : A64I_FCMPZs, left & 31, 0);
+ }
}
} else if (st >= IRT_I8 && st <= IRT_U16) { /* Extend to 32 bit integer. */
Reg dest = ra_dest(as, ir, RSET_GPR);
diff --git a/src/lj_target_arm64.h b/src/lj_target_arm64.h
index c34f1e59..1e2f19ea 100644
--- a/src/lj_target_arm64.h
+++ b/src/lj_target_arm64.h
@@ -288,6 +288,7 @@ typedef enum A64Ins {
A64I_STPs = 0x2d000000,
A64I_STPd = 0x6d000000,
A64I_FCMPd = 0x1e602000,
+ A64I_FCMPZs = 0x1e202008,
A64I_FCMPZd = 0x1e602008,
A64I_FCSELd = 0x1e600c00,
A64I_FRINTMd = 0x1e654000,
--
2.43.2
From f37d7e3dac8648771171038c13408811ab3e2694 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date: Thu, 28 Mar 2019 10:50:23 +0530
Subject: [PATCH 7/8] Better behaviour for float to uint32_t conversions
This is the uint32_t part of the float to unsigned int conversions for
the interpreter. The cast ends up working correctly for x86 but not
for aarch64 since fcvtzu sets the result to zero on negative inputs.
Work slightly harder to make sure that negative number inputs behave
like x86.
This fixes the interpreter but not the JIT compiler, which errors out
during the narrowing pass.
---
src/lj_cconv.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/lj_cconv.c b/src/lj_cconv.c
index 419a8f45..ebb98521 100644
--- a/src/lj_cconv.c
+++ b/src/lj_cconv.c
@@ -203,7 +203,13 @@ void lj_cconv_ct_ct(CTState *cts, CType *d, CType *s,
else if (dsize == 2) *(int16_t *)dp = (int16_t)i;
else *(int8_t *)dp = (int8_t)i;
} else if (dsize == 4) {
- *(uint32_t *)dp = (uint32_t)n;
+ /* Undefined behaviour. This is deliberately not a full check because we
+ * don't want to slow down compliant code. */
+ lj_assertX(n >= -2147483649.0, "Overflow");
+ if (n > -1.0)
+ *(uint32_t *)dp = (uint32_t)n;
+ else
+ *(uint32_t *)dp = (uint32_t)(int32_t)n;
} else if (dsize == 8) {
if (!(dinfo & CTF_UNSIGNED))
*(int64_t *)dp = (int64_t)n;
--
2.43.2
From 9d79974a1e059f34ad9d2ad38419be34acd6c343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= <ondrej@sury.org>
Date: Thu, 19 Nov 2015 16:29:02 +0200
Subject: [PATCH 8/8] Get rid of LUAJIT_VERSION_SYM that changes ABI on every
patch release
---
src/lj_dispatch.c | 5 -----
src/luajit.c | 1 -
src/luajit_rolling.h | 3 ---
3 files changed, 9 deletions(-)
diff --git a/src/lj_dispatch.c b/src/lj_dispatch.c
index b9748bba..d09238f8 100644
--- a/src/lj_dispatch.c
+++ b/src/lj_dispatch.c
@@ -318,11 +318,6 @@ int luaJIT_setmode(lua_State *L, int idx, int mode)
return 1; /* OK. */
}
-/* Enforce (dynamic) linker error for version mismatches. See luajit.c. */
-LUA_API void LUAJIT_VERSION_SYM(void)
-{
-}
-
/* -- Hooks --------------------------------------------------------------- */
/* This function can be called asynchronously (e.g. during a signal). */
diff --git a/src/luajit.c b/src/luajit.c
index 73e29d44..31fdba18 100644
--- a/src/luajit.c
+++ b/src/luajit.c
@@ -515,7 +515,6 @@ static int pmain(lua_State *L)
int argn;
int flags = 0;
globalL = L;
- LUAJIT_VERSION_SYM(); /* Linker-enforced version check. */
argn = collectargs(argv, &flags);
if (argn < 0) { /* Invalid args? */
diff --git a/src/luajit_rolling.h b/src/luajit_rolling.h
index 2d04402c..5ab4167d 100644
--- a/src/luajit_rolling.h
+++ b/src/luajit_rolling.h
@@ -73,8 +73,5 @@ LUA_API void luaJIT_profile_stop(lua_State *L);
LUA_API const char *luaJIT_profile_dumpstack(lua_State *L, const char *fmt,
int depth, size_t *len);
-/* Enforce (dynamic) linker error for version mismatches. Call from main. */
-LUA_API void LUAJIT_VERSION_SYM(void);
-
#error "DO NOT USE luajit_rolling.h -- only include build-generated luajit.h"
#endif
--
2.43.2

157
luajit-2.1-make-check.patch Normal file
View file

@ -0,0 +1,157 @@
From fdd83775c8e0e6a4e0ffd30dacd0b841bd243820 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date: Thu, 21 Oct 2021 11:04:58 +0200
Subject: [PATCH] Update Makefile to run LuaJIT-test-cleanup
The tests and benchmarks in the LuaJIT-test-cleanup repo are more or
less complete and with scaffolding added, they can now be called
seamlessly from within the luajit sources using `make check` and `make
bench` respectively.
---
Makefile | 17 ++++++++++++---
bench/Makefile | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 70 insertions(+), 3 deletions(-)
create mode 100644 bench/Makefile
Index: LuaJIT-2.1/Makefile
===================================================================
--- LuaJIT-2.1.orig/Makefile 2023-08-29 08:35:57.939200606 +0200
+++ LuaJIT-2.1/Makefile 2023-08-29 08:40:59.284925468 +0200
@@ -118,14 +118,14 @@ endif
##############################################################################
-INSTALL_DEP= src/luajit
+LUAJIT_BIN= src/luajit
default all $(INSTALL_DEP):
@echo "==== Building LuaJIT $(MMVERSION) ===="
$(MAKE) -C src
@echo "==== Successfully built LuaJIT $(MMVERSION) ===="
-install: $(INSTALL_DEP)
+install: $(LUAJIT_BIN)
@echo "==== Installing LuaJIT $(VERSION) to $(PREFIX) ===="
$(MKDIR) $(INSTALL_DIRS)
cd src && $(INSTALL_X) $(FILE_T) $(INSTALL_T)
@@ -158,6 +158,17 @@ uninstall:
$(RMDIR) $(UNINSTALL_DIRS) || :
@echo "==== Successfully uninstalled LuaJIT $(VERSION) from $(PREFIX) ===="
+check: $(LUAJIT_BIN)
+ @echo "==== Running tests for LuaJIT $(VERSION) ===="
+ $^ test/test.lua
+ @echo "==== All tests for LuaJIT $(VERSION) succeeded ===="
+
+# It is assumed that libluajit.a is built in the process of building LUAJIT_BIN.
+bench: $(LUAJIT_BIN)
+ @echo "==== Running benchmark for LuaJIT $(VERSION) ===="
+ make -C bench FILE_A=$(FILE_A)
+ @echo "==== Successfully finished running benchmark for LuaJIT $(VERSION) ===="
+
##############################################################################
amalg:
@@ -168,6 +179,6 @@ amalg:
clean:
$(MAKE) -C src clean
-.PHONY: all install amalg clean
+.PHONY: all install amalg clean bench check
##############################################################################
Index: LuaJIT-2.1/bench/Makefile
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ LuaJIT-2.1/bench/Makefile 2023-08-29 08:36:28.443172755 +0200
@@ -0,0 +1,56 @@
+CC=gcc
+
+LUA_FILE_ARG = -a
+LUA_ARG = $(patsubst %.lua,%,$^)
+
+ifndef LUA_BIN
+BENCH_BIN = luajit-bench
+LUA_BIN_NAME = ./$(BENCH_BIN)
+else
+ifdef BENCH_DURATION
+BENCH_ARG = -t $(BENCH_DURATION)
+endif
+LUA_BIN_NAME = $(LUA_BIN) luajit-bench.lua $(BENCH_ARG)
+endif
+
+BENCHMARKS = array3d binary-trees chameneos coroutine-ring euler14-bit \
+ fannkuch fasta k-nucleotide life mandelbrot mandelbrot-bit md5 \
+ meteor nbody nsieve nsieve-bit nsieve-bit-fp partialsums \
+ pidigits-nogmp ray recursive-ack recursive-fib revcomp \
+ scimark-2010-12-20 scimark-fft scimark-lu series scimark-sparse \
+ scimark-sor spectral-norm sum-file
+
+# Specify benchmarks that need input files.
+INPUT-k-nucleotide = FASTA_1000000
+INPUT-revcomp = FASTA_1000000
+INPUT-sum-file = SUMCOL_1000
+
+input-file = $(INPUT-$(patsubst %.result,%,$@))
+input-file-arg = $(if $(input-file),$(LUA_FILE_ARG) $(input-file),)
+LUA_CMD = $(LUA_BIN_NAME) $(LUA_ARG) $(input-file-arg)
+
+bench_targets = $(patsubst %,%.result,$(BENCHMARKS))
+
+all: $(BENCH_BIN) $(bench_targets)
+
+%.result: %.lua
+ @$(LUA_CMD)
+
+ifndef LUA_BIN
+ifdef BENCH_DURATION
+DURATION = -DBENCH_DURATION=$(BENCH_DURATION)
+endif
+
+LUAJIT_A = ../src/$(FILE_A)
+
+$(BENCH_BIN): $(LUAJIT_A) $(BENCH_BIN).c Makefile
+ $(CC) $@.c -std=gnu11 $(DURATION) -g -O3 -c -o $@.o -I ../src
+ $(CC) $@.o -lpthread $< -lm -ldl -o $@
+
+# Build the luajit static library if it doesn't exist.
+$(LUAJIT_A):
+ make -C ..
+
+clean:
+ rm -f $(BENCH_BIN) main.o
+endif
Index: LuaJIT-2.1/LuaJIT-test-cleanup-master/test/lib/contents.lua
===================================================================
--- LuaJIT-2.1.orig/LuaJIT-test-cleanup-master/test/lib/contents.lua 2016-10-19 23:27:03.000000000 +0200
+++ LuaJIT-2.1/LuaJIT-test-cleanup-master/test/lib/contents.lua 2023-08-29 08:36:28.444172754 +0200
@@ -76,8 +76,9 @@ do --- 5.2 string +lua>=5.2
assert(not string.gfind)
end
+-- Adapted for latest changes
do --- pre-5.2 table +lua<5.2
- check(table, "concat:foreach:foreachi:getn:insert:maxn:remove:sort", "pack:unpack:setn:new")
+ check(table, "concat:foreach:foreachi:getn:insert:maxn:move:remove:sort", "pack:unpack:setn:new")
end
do --- 5.2 table +lua>=5.2
@@ -118,10 +119,17 @@ end
do --- pre-5.2 package +lua<5.2
assert(package.loaders)
- assert(not package.searchers)
assert(package.seeall)
end
+-- LuaJIT version check for lua will return true for +lua<5.2 since it
+-- does not fully implement 5.2. Move the (not package.searchers) check
+-- to +compat5.2 instead of the version check since it is implemented by
+-- compat5.2.
+do --- 5.2 compat package +compat5.2
+ assert(package.searchers)
+end
+
do --- 5.2 package +lua>=5.2
assert(not package.loaders)
assert(package.searchers)

File diff suppressed because it is too large Load diff

View file

@ -1,14 +1,38 @@
%global pkgname LuaJIT
%global luajit_version_major 2
%global luajit_version_minor 1
%global luajit_version_patch 1761727121
%global luajit_version %{luajit_version_major}.%{luajit_version_minor}.%{luajit_version_patch}
Name: luajit
Version: 2.0.4
Release: 3%{?dist}
Version: %{luajit_version}
%global apiver %(v=%{version}; echo ${v%.${v#[0-9].[0-9].}})
Release: %autorelease
Summary: Just-In-Time Compiler for Lua
License: MIT
URL: http://luajit.org/
Source0: http://luajit.org/download/LuaJIT-%{version}.tar.gz
URL: http://luajit.org
# LuaJIT is a rolling release, see http://luajit.org/status.html
# To update the tarball you can use the update_tarball.sh script
Source0: https://github.com/LuaJIT/LuaJIT/archive/refs/heads/v2.1/%{pkgname}-%{version}.tar.gz
Source1: https://github.com/LuaJIT/LuaJIT-test-cleanup/archive/refs/heads/master/LuaJIT-test-cleanup.tar.gz
Source2: update_tarball.sh
%if 0%{?rhel}
ExclusiveArch: %{ix86} x86_64
%endif
# Add 'make check'
Patch0: luajit-2.1-make-check.patch
# Patches from https://github.com/cryptomilk/LuaJIT/commits/v2.1-fedora
# git format-patch --stdout -l1 --no-renames origin/v2.1..v2.1-fedora > luajit-2.1-fedora.patch
Patch1: luajit-2.1-fedora.patch
# If the patch doesn't apply, send a mail to:
# Ilya Leoshkevich <iii@de.ibm.com> or Andreas.Krebbel@de.ibm.com
# https://bugzilla.redhat.com/show_bug.cgi?id=2222911
Patch2: https://github.com/luajit/luajit/pull/631.patch#/luajit-2.1-s390x-support.patch
ExcludeArch: riscv64 ppc64 ppc64le
BuildRequires: gcc
BuildRequires: make
%description
LuaJIT implements the full set of language features defined by Lua 5.1.
@ -23,122 +47,60 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
This package contains development files for %{name}.
%prep
%setup -q -n LuaJIT-%{version}
echo '#!/bin/sh' > ./configure
chmod +x ./configure
%autosetup -p1 -n %{pkgname}-%{luajit_version_major}.%{luajit_version_minor} -a1
echo "%{luajit_version_patch}" > .relver
ln -s LuaJIT-test-cleanup-master/bench bench
ln -s LuaJIT-test-cleanup-master/test test
# Enable Lua 5.2 features
sed -i -e '/-DLUAJIT_ENABLE_LUA52COMPAT/s/^#//' src/Makefile
# preserve timestamps (cicku)
sed -i -e '/install -m/s/-m/-p -m/' Makefile
%ifarch x86_64
%global multilib_flag MULTILIB=lib64
%endif
%build
%configure
# Q= - enable verbose output
# E= @: - disable @echo messages
# NOTE: we use amalgamated build as per documentation suggestion doc/install.html
make amalg Q= E=@: PREFIX=%{_prefix} TARGET_STRIP=: \
CFLAGS="%{optflags}" \
%{?multilib_flag} \
CFLAGS="%{build_cflags}" LDFLAGS="%{build_ldflags}" \
MULTILIB=%{_lib} \
%{?_smp_mflags}
%install
# PREREL= - disable -betaX suffix
# INSTALL_TNAME - executable name
%make_install PREFIX=%{_prefix} \
%{?multilib_flag}
MULTILIB=%{_lib}
rm -rf _tmp_html ; mkdir _tmp_html
cp -a doc _tmp_html/html
# Remove static .a
find %{buildroot} -type f -name *.a -delete
find %{buildroot} -type f -name *.a -delete -print
%post -p /sbin/ldconfig
%ldconfig_scriptlets
%postun -p /sbin/ldconfig
%check
make check
%files
%license COPYRIGHT
%doc README
%{_bindir}/%{name}
%{_bindir}/%{name}-%{version}
%{_libdir}/libluajit*.so.*
%{_mandir}/man1/luajit*
%{_datadir}/%{name}-%{version}/
%{_bindir}/%{name}-%{luajit_version}
%{_libdir}/lib%{name}-*.so.*
%{_mandir}/man1/%{name}.1*
%{_datadir}/%{name}-%{luajit_version_major}.%{luajit_version_minor}/
%files devel
%doc _tmp_html/html/
%{_includedir}/luajit-2.0/
%{_libdir}/libluajit*.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/%{name}-%{apiver}/
%{_libdir}/lib%{name}-*.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Fri Aug 07 2015 Oliver Haessler <oliver@redhat.com> - 2.0.4-3
- only build x86_64 on EPEL as luajit has no support for ppc64
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu May 21 2015 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.4-1
- 2.0.4
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Jul 09 2014 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.3-3
- rebuild against lua 5.2
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu Mar 13 2014 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.3-1
- 2.0.3 upstream release
* Sun Dec 15 2013 Clive Messer <clive.messer@communitysqueeze.org> - 2.0.2-9
- Apply luajit-path64.patch on x86_64.
* Mon Dec 09 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-8
- Fix strip (thanks Ville Skyttä)
* Fri Dec 06 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-7
- Fix executable binary
* Mon Dec 02 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-6
- Fix .pc
* Sun Dec 01 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-5
- Fixed short-circuit builds (schwendt)
* Sat Nov 30 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-4
- Preserve timestamps at install
* Fri Nov 29 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-3
- fixed some issues found by besser82
- Moved html-docs to -devel subpackage (besser82)
* Thu Nov 28 2013 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.0.2-2
- Re-update
* Mon Sep 02 2013 Muayyad Alsadi <alsadi@gmail.com> - 2.0.2-1
- Update to new upstream version
- remove PREREL= option
* Mon Feb 06 2012 Andrei Lapshin - 2.0.0-0.4.beta9
- Update to new upstream version
- Rename main executable to luajit
- Remove BuildRoot tag and %%clean section
* Sun Oct 09 2011 Andrei Lapshin - 2.0.0-0.3.beta8
- Enable debug build
- Enable verbose build output
- Move libluajit-*.so to -devel
- Add link to upstream hotfix #1
* Tue Jul 05 2011 Andrei Lapshin <alapshin@gmx.com> - 2.0.0-0.2.beta8
- Append upstream hotfix #1
* Sun Jul 03 2011 Andrei Lapshin <alapshin@gmx.com> - 2.0.0-0.1.beta8
- Initial build
%autochangelog

View file

@ -1 +1,2 @@
dd9c38307f2223a504cbfb96e477eca0 LuaJIT-2.0.4.tar.gz
SHA512 (LuaJIT-2.1.1761727121.tar.gz) = 67f5ca8952a8d7b0f0c92783aa67c1ede86f46483466fd834974f413e6f16980d3255bb6c16d3a5af009e36e0cbe1e7facbcc9d7fc63f8278f1e4683d9488b1b
SHA512 (LuaJIT-test-cleanup.tar.gz) = a49baef3f27a157b3a2289dc3b10eec20befa5231a491a03d3393f280c6f73fa39893abb8e7e47c54e0341305ee3b320b8eb43af423c579781f108a040b62b57

50
update_tarball.sh Normal file
View file

@ -0,0 +1,50 @@
#!/bin/bash
LUAJIT_PKGNAME="LuaJIT"
LUAJIT_URL=$(rpmspec -P *.spec | awk '/Source0/ { print $NF }')
LUAJIT_TARBALL=$(basename $LUAJIT_URL)
LUAJIT_VERSION_MAJOR=$(awk '/%global luajit_version_major/ { print $NF }' *.spec)
LUAJIT_VERSION_MINOR=$(awk '/%global luajit_version_minor/ { print $NF }' *.spec)
LUAJIT_VERSION_PATCH=$(awk '/%global luajit_version_patch/ { print $NF }' *.spec)
LUAJIT_VERSION="${LUAJIT_VERSION_MAJOR}.${LUAJIT_VERSION_MINOR}.${LUAJIT_VERSION_PATCH}"
LUAJIT_PKGDIR="$(pwd)"
LUAJIT_TMPDIR=$(mktemp --tmpdir -d luajit-XXXXXXXX)
cleanup_tmpdir() {
popd 2>/dev/null || true
rm -rf "${LUAJIT_TMPDIR}"
}
trap cleanup_tmpdir SIGINT
cleanup_and_exit() {
cleanup_tmpdir
if test "$1" = 0 -o -z "$1" ; then
exit 0
else
exit "${1}"
fi
}
pushd "${LUAJIT_TMPDIR}" || cleanup_and_exit 1
wget "${LUAJIT_URL}"
tar xf ${LUAJIT_PKGNAME}-${LUAJIT_VERSION}.tar.gz
# commiter date, unix timestamp
LUAJIT_VERSION_PATCH_NEW=$(<${LUAJIT_PKGNAME}-${LUAJIT_VERSION_MAJOR}.${LUAJIT_VERSION_MINOR}/.relver)
LUAJIT_VERSION_NEW="${LUAJIT_VERSION_MAJOR}.${LUAJIT_VERSION_MINOR}.${LUAJIT_VERSION_PATCH_NEW}"
echo "LUAJIT_VERSION=${LUAJIT_VERSION_NEW}"
mv "${LUAJIT_PKGNAME}-${LUAJIT_VERSION}.tar.gz" "${LUAJIT_PKGDIR}/${LUAJIT_PKGNAME}-${LUAJIT_VERSION_NEW}.tar.gz"
echo
echo ">>> New tarball, run: fedpkg new-sources ${LUAJIT_PKGNAME}-${LUAJIT_VERSION_NEW}.tar.gz LuaJIT-test-cleanup.tar.gz"
popd || cleanup_and_exit 1
echo
echo ">>> Update spec file with: %global luajit_version_patch ${LUAJIT_VERSION_PATCH_NEW}"
echo
cleanup_and_exit 0