diff options
author | Sam James <sam@gentoo.org> | 2024-04-05 15:03:54 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-04-05 15:25:16 +0100 |
commit | 8f41575bbccd2c54a97ce911322aab0237ab27cd (patch) | |
tree | e7f319fd121270831685ecdb8fe8edab915581bc /dev-lang/uasm | |
parent | app-arch/p7zip: fix indentation (diff) | |
download | gentoo-8f41575bbccd2c54a97ce911322aab0237ab27cd.tar.gz gentoo-8f41575bbccd2c54a97ce911322aab0237ab27cd.tar.bz2 gentoo-8f41575bbccd2c54a97ce911322aab0237ab27cd.zip |
dev-lang/uasm: new package, add 2.56.2
Imported from ::guru as of commit ea612f548c48f74fce1abc60d5ad205c521c7492.
Adding arthur and myself as well as NRK as discussed in #gentoo-guru. Dep of
to-be-shortly-added app-arch/7zip for AES HW acceleration.
Bug: https://bugs.gentoo.org/664664
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-lang/uasm')
-rw-r--r-- | dev-lang/uasm/Manifest | 1 | ||||
-rw-r--r-- | dev-lang/uasm/files/build-fix.patch | 179 | ||||
-rw-r--r-- | dev-lang/uasm/metadata.xml | 18 | ||||
-rw-r--r-- | dev-lang/uasm/uasm-2.56.2.ebuild | 36 |
4 files changed, 234 insertions, 0 deletions
diff --git a/dev-lang/uasm/Manifest b/dev-lang/uasm/Manifest new file mode 100644 index 000000000000..bb9b666ccfbf --- /dev/null +++ b/dev-lang/uasm/Manifest @@ -0,0 +1 @@ +DIST uasm-2.56.2.tar.gz 1243830 BLAKE2B dcc0948d92cdd5972a6698e721a6ccc6a54926ef94778438cf9a88a6e41ebc652d5230003f689d4278bd1e48959dd04595c602427287a48c551d7b847be665f0 SHA512 1f6c1037909d012f3293985c4e0516f4b61497de23cac6bbb58db735efb512599c0bba5d60d8ce999e6afc57e44484a094bf10f0ee185a51afd826f5541c9337 diff --git a/dev-lang/uasm/files/build-fix.patch b/dev-lang/uasm/files/build-fix.patch new file mode 100644 index 000000000000..6870528ef87f --- /dev/null +++ b/dev-lang/uasm/files/build-fix.patch @@ -0,0 +1,179 @@ +Fixes various build issues with newer clang +https://bugs.gentoo.org/927802 + +From b6457542bd56507cb2b659d50772f87cc66d6ea3 Mon Sep 17 00:00:00 2001 +From: NRK <nrk@disroot.org> +Date: Mon, 1 Apr 2024 15:29:47 +0000 +Subject: [PATCH 1/4] Add missing includes + +--- + assemble.c | 2 +- + codegenv2.c | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/assemble.c b/assemble.c +index 2ce0e14..a9f2899 100644 +--- a/assemble.c ++++ b/assemble.c +@@ -43,7 +43,7 @@ + #include "lqueue.h" + #include "orgfixup.h" + #include "macrolib.h" +-//#include "simd.h" ++#include "simd.h" + + #if DLLIMPORT + #include "mangle.h" +diff --git a/codegenv2.c b/codegenv2.c +index 6bcc08d..7063c27 100644 +--- a/codegenv2.c ++++ b/codegenv2.c +@@ -1,6 +1,7 @@ + + #include "codegenv2.h" + ++#include <ctype.h> + #include <time.h> + #include "globals.h" + #include "parser.h" +@@ -12,6 +13,7 @@ + #include "types.h" + #include "macro.h" + #include "listing.h" ++#include "input.h" + + #define OutputCodeByte( x ) OutputByte( x ) + +-- +2.42.0 + + +From bc4ffb4ac77f97b42f7d83cae0f0ea7a59c5b6be Mon Sep 17 00:00:00 2001 +From: NRK <nrk@disroot.org> +Date: Mon, 1 Apr 2024 15:36:14 +0000 +Subject: [PATCH 2/4] Add missing prototypes + +ref: https://github.com/Terraspace/UASM/pull/186 +--- + H/globals.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/H/globals.h b/H/globals.h +index e202c50..7320cb9 100644 +--- a/H/globals.h ++++ b/H/globals.h +@@ -49,6 +49,7 @@ + #endif + #define _ltoa ltoa + #define _strupr strupr ++extern char *strupr(char *); + + #elif defined(__POCC__) + +@@ -946,4 +947,11 @@ extern char *num2hex64(uint_64 value, char *buffer); + extern char *ConvertSectionName( const struct asym *, enum seg_type *pst, char *buffer ); + extern void RewindToWin64(void); + ++extern void CreateMacroLibCases64(void); ++extern void CreateMacroLibCases32(void); ++extern void OutputInterleavedBytes(const unsigned char *pbytes, int len, struct fixup *fixup); ++extern void SymSimd(struct dsym *sym); ++extern void RunLineQueue( void ); ++extern ret_code BackPatch( struct asym *sym ); ++ + #endif +-- +2.42.0 + + +From d4d625d009dfc7ab91136516aafb4fc706d0c1ab Mon Sep 17 00:00:00 2001 +From: NRK <nrk@disroot.org> +Date: Mon, 1 Apr 2024 15:40:30 +0000 +Subject: [PATCH 3/4] Fix incompatible assignment of `void *` to `uint32_t` + +--- + macho64.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/macho64.c b/macho64.c +index 8e74842..8b81d5e 100644 +--- a/macho64.c ++++ b/macho64.c +@@ -725,7 +725,7 @@ static ret_code macho_write_module( struct module_info *modinfo ) + mm.header.cputype = CPU_TYPE_X86_64; + mm.header.cpusubtype = CPU_SUBTYPE_LITTLE_ENDIAN | CPU_SUBTYPE_X86_64_ALL; + mm.header.filetype = MH_OBJECT; +- mm.header.flags = NULL; ++ mm.header.flags = 0; + + macho_build_structures(modinfo, mm); + } +-- +2.42.0 + + +From 0108e8754737c9ceac0314c8f70da8c9f4bd2095 Mon Sep 17 00:00:00 2001 +From: NRK <nrk@disroot.org> +Date: Mon, 1 Apr 2024 15:54:02 +0000 +Subject: [PATCH 4/4] Fix incompatible function pointer + +--- + proc.c | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +diff --git a/proc.c b/proc.c +index fdd8b49..80e8674 100644 +--- a/proc.c ++++ b/proc.c +@@ -162,10 +162,12 @@ struct delphicall_conv { + + + static int ms32_pcheck(struct dsym *, struct dsym *, int *); ++static int ms32_syspcheck(struct dsym *, struct dsym *, int *, int *); + static void ms32_return(struct dsym *, char *); + + #if OWFC_SUPPORT + static int watc_pcheck(struct dsym *, struct dsym *, int *); ++static int watc_syspcheck(struct dsym *, struct dsym *, int *, int *); + static void watc_return(struct dsym *, char *); + #endif + +@@ -212,9 +214,9 @@ static const struct vectorcall_conv vectorcall_tab[] = { + }; + + static const struct sysvcall_conv sysvcall_tab[] = { +- { ms32_pcheck, ms32_return }, /* FCT_MSC */ ++ { ms32_syspcheck, ms32_return }, /* FCT_MSC */ + #if OWFC_SUPPORT +- { watc_pcheck, watc_return }, /* FCT_WATCOMC */ ++ { watc_syspcheck, watc_return }, /* FCT_WATCOMC */ + #endif + #if SYSV_SUPPORT + { sysv_pcheck, sysv_return } /* FCT_WIN64 / SYSTEMV */ +@@ -380,6 +382,11 @@ static int watc_pcheck(struct dsym *proc, struct dsym *paranode, int *used) + return(1); + } + ++static int watc_syspcheck(struct dsym *proc, struct dsym *paranode, int *used, int *vecused) ++{ ++ return watc_pcheck(proc, paranode, used); ++} ++ + static void watc_return(struct dsym *proc, char *buffer) + /********************************************************/ + { +@@ -433,6 +440,11 @@ static int ms32_pcheck(struct dsym *proc, struct dsym *paranode, int *used) + return(1); + } + ++static int ms32_syspcheck(struct dsym *proc, struct dsym *paranode, int *used, int *vecused) ++{ ++ return ms32_pcheck(proc, paranode, used); ++} ++ + static void ms32_return(struct dsym *proc, char *buffer) + /********************************************************/ + { +-- +2.42.0 + diff --git a/dev-lang/uasm/metadata.xml b/dev-lang/uasm/metadata.xml new file mode 100644 index 000000000000..33becdeb8c4e --- /dev/null +++ b/dev-lang/uasm/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>nrk@disroot.org</email> + </maintainer> + <maintainer type="person"> + <email>arthurzam@gentoo.org</email> + <name>Arthur Zamarin</name> + </maintainer> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <upstream> + <remote-id type="github">Terraspace/UASM</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/uasm/uasm-2.56.2.ebuild b/dev-lang/uasm/uasm-2.56.2.ebuild new file mode 100644 index 000000000000..1a4c8c42f2cd --- /dev/null +++ b/dev-lang/uasm/uasm-2.56.2.ebuild @@ -0,0 +1,36 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs flag-o-matic + +DESCRIPTION="UASM is a free MASM-compatible assembler" +HOMEPAGE="https://www.terraspace.co.uk/uasm.html" +SRC_URI="https://github.com/Terraspace/UASM/archive/v${PV}.tar.gz -> ${P}.tar.gz" +LICENSE="Watcom-1.0" + +SLOT="0" +KEYWORDS="~amd64" + +S="${WORKDIR}/UASM-${PV}" +PATCHES=( + "${FILESDIR}/build-fix.patch" +) + +src_prepare() { + default + # don't strip binary + sed -i gccLinux64.mak -e 's/ -s / /g' || die +} + +src_compile() { + append-cflags -fcommon # Bug: https://github.com/Terraspace/UASM/issues/143 + emake -f gccLinux64.mak CC="$(tc-getCC)" \ + CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" +} + +src_install() { + dobin GccUnixR/uasm + dodoc *.txt Doc/*.txt +} |