Initial commit

This commit is contained in:
2026-01-02 13:17:55 +02:00
commit 6f3ecee9c8
8 changed files with 209 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
# Exclude bpm archives
*.bpm
+12
View File
@@ -0,0 +1,12 @@
#!/bin/bash
# Github repository
REPO="yasm/yasm"
# Get tag name using Github Rest API
TAG_NAME=$(curl -s -L -H "X-GitHub-Api-Version: 2022-11-28" -H "Authorization: token ${GITHUB_API_TOKEN}" https://api.github.com/repos/"$REPO"/releases/latest | jq -r '.tag_name')
# Trim 'v' character in TAG_NAME variable
VERSION=$(echo "$TAG_NAME" | tr -d 'v')
echo "$VERSION"
+18
View File
@@ -0,0 +1,18 @@
name: yasm
description: Rewrite of NASM under the 'new' BSD License
version: 1.3.0
revision: 1
url: https://github.com/yasm/yasm
license: BSD-3-Clause,Artistic-1.0,GPL2-or-later,LGPL2.1-or-later
architecture: any
type: source
depends:
- glibc
make_depends:
- python3
- xmlto
downloads:
- url: https://github.com/yasm/yasm/archive/refs/tags/v${BPM_PKG_VERSION}.tar.gz
extract_to: ${BPM_SOURCE}
extract_strip_components: 1
checksum: f708be0b7b8c59bc1dbe7134153cd2f31faeebaa8eec48676c10f972a1f13df3
+29
View File
@@ -0,0 +1,29 @@
From 3e74376b5653102a3957f59005969fcdbbe5a89d Mon Sep 17 00:00:00 2001
From: Peter Johnson <[email protected]>
Date: Fri, 9 Jul 2021 16:02:37 -0500
Subject: [PATCH] Do not use AC_HEADER_STDC (#178)
This fixes compatibility with autotools 2.70+
---
configure.ac | 6 ------
1 file changed, 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index 01b61097f..2823ecd7d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -101,14 +101,8 @@ AM_WITH_DMALLOC
#
# Checks for header files.
#
-AC_HEADER_STDC
AC_CHECK_HEADERS([strings.h libgen.h unistd.h direct.h sys/stat.h])
-# REQUIRE standard C headers
-if test "$ac_cv_header_stdc" != yes; then
- AC_MSG_ERROR([Standard (ANSI/ISO C89) header files are required.])
-fi
-
#
# Checks for typedefs, structures, and compiler characteristics.
#
+36
View File
@@ -0,0 +1,36 @@
From 64ef740eb262f329e55eebadf2ce276b146d44e9 Mon Sep 17 00:00:00 2001
From: Martin Jansa <[email protected]>
Date: Tue, 22 Apr 2025 19:06:24 +0200
Subject: [PATCH] bitvect: fix build with gcc-15
* fixes:
libyasm/bitvect.h:86:32: error: cannot use keyword 'false' as enumeration constant
86 | typedef enum boolean { false = FALSE, true = TRUE } boolean;
| ^~~~~
../git/libyasm/bitvect.h:86:32: note: 'false' is a keyword with '-std=c23' onwards
as suggested in:
https://github.com/yasm/yasm/issues/283#issuecomment-2661108816
Signed-off-by: Martin Jansa <[email protected]>
---
libyasm/bitvect.h | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libyasm/bitvect.h b/libyasm/bitvect.h
index 3aee3a531..a13470ada 100644
--- a/libyasm/bitvect.h
+++ b/libyasm/bitvect.h
@@ -83,7 +83,11 @@ typedef Z_longword *Z_longwordptr;
#ifdef MACOS_TRADITIONAL
#define boolean Boolean
#else
- typedef enum boolean { false = FALSE, true = TRUE } boolean;
+ #if __STDC_VERSION__ < 202311L
+ typedef enum boolean { false = FALSE, true = TRUE } boolean;
+ #else
+ typedef bool boolean;
+ #endif
#endif
#endif
@@ -0,0 +1,24 @@
From 0799f381d513e18f404654047fa1b412084968c8 Mon Sep 17 00:00:00 2001
From: kalebskeithley <[email protected]>
Date: Sat, 13 May 2023 00:15:02 -0400
Subject: [PATCH] Update elf-objfmt.c (#148)
---
modules/objfmts/elf/elf-objfmt.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/objfmts/elf/elf-objfmt.c b/modules/objfmts/elf/elf-objfmt.c
index 0c3a14263..c4360c03d 100644
--- a/modules/objfmts/elf/elf-objfmt.c
+++ b/modules/objfmts/elf/elf-objfmt.c
@@ -1077,6 +1077,10 @@ elf_objfmt_section_switch(yasm_object *object, yasm_valparamhead *valparams,
align = 0;
data.type = SHT_PROGBITS;
data.flags = 0;
+ } else if (strcmp(sectname, ".note.gnu.property") == 0) {
+ align = 8;
+ data.type = SHT_NOTE;
+ data.flags = 0;
} else {
/* Default to code */
align = 1;
+49
View File
@@ -0,0 +1,49 @@
From 61e374f24718975e8175f048e70afaaf0c4771a9 Mon Sep 17 00:00:00 2001
From: Ismo Puustinen <[email protected]>
Date: Sat, 13 May 2023 07:07:35 +0300
Subject: [PATCH] Remove __DATE__ from version strings (#198)
Having __DATE__ is causing compilation errors when it's defined by Bazel
build tool like this: -D__DATE__=redacted
---
frontends/tasm/tasm.c | 1 -
frontends/vsyasm/vsyasm.c | 1 -
frontends/yasm/yasm.c | 1 -
3 files changed, 3 deletions(-)
diff --git a/frontends/tasm/tasm.c b/frontends/tasm/tasm.c
index 93c11c98f..353f8c582 100644
--- a/frontends/tasm/tasm.c
+++ b/frontends/tasm/tasm.c
@@ -228,7 +228,6 @@ static opt_option options[] =
/* version message */
/*@observer@*/ static const char *version_msg[] = {
PACKAGE_STRING,
- "Compiled on " __DATE__ ".",
"Copyright (c) 2001-2010 Peter Johnson and other Yasm developers.",
"Run yasm --license for licensing overview and summary."
};
diff --git a/frontends/vsyasm/vsyasm.c b/frontends/vsyasm/vsyasm.c
index 892b9b334..b3a5a592b 100644
--- a/frontends/vsyasm/vsyasm.c
+++ b/frontends/vsyasm/vsyasm.c
@@ -220,7 +220,6 @@ static opt_option options[] =
/* version message */
/*@observer@*/ static const char *version_msg[] = {
PACKAGE_STRING,
- "Compiled on " __DATE__ ".",
"Copyright (c) 2001-2010 Peter Johnson and other Yasm developers.",
"Run yasm --license for licensing overview and summary."
};
diff --git a/frontends/yasm/yasm.c b/frontends/yasm/yasm.c
index bc6f379ad..7ac141e69 100644
--- a/frontends/yasm/yasm.c
+++ b/frontends/yasm/yasm.c
@@ -219,7 +219,6 @@ static opt_option options[] =
/* version message */
/*@observer@*/ static const char *version_msg[] = {
PACKAGE_STRING,
- "Compiled on " __DATE__ ".",
"Copyright (c) 2001-2014 Peter Johnson and other Yasm developers.",
"Run yasm --license for licensing overview and summary."
};
+39
View File
@@ -0,0 +1,39 @@
# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
# The prepare function is executed in the root of the temp directory
# This function is used for putting downloaded files to the correct location or applying patches
prepare() {
cd "$BPM_SOURCE"
patch -p1 -i "$BPM_WORKDIR"/note-gnu-property-support.patch
patch -p1 -i "$BPM_WORKDIR"/autotools-2.70.patch
patch -p1 -i "$BPM_WORKDIR"/reproducible.patch
patch -p1 -i "$BPM_WORKDIR"/gcc-15.patch
echo "$BPM_PKG_VERSION" > version
autoreconf -fi
}
# The build function is executed in the source directory
# This function is used to compile the source code
build() {
./configure --prefix=/usr
make
}
# The check function is executed in the source directory
# This function is used to run tests to verify the package has been compiled correctly
check() {
make check -j1
}
# The package function is executed in the source directory
# This function is used to move the compiled files into the output directory
package() {
make DESTDIR="$BPM_OUTPUT" install
# Install package license
install -Dm644 "$BPM_SOURCE"/{Artistic.txt,BSD.txt,COPYING,GNU_*} -t "$BPM_OUTPUT"/usr/share/licenses/yasm
}