dev-lang/nasm: sync with upstream

Commit-Ref: ea8b0bbe22

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
This commit is contained in:
Mathieu Tortuyaux 2024-07-08 10:16:47 +02:00
parent a67869fda3
commit db92389868
No known key found for this signature in database
GPG Key ID: AC5CCFB52545D9B8
7 changed files with 505 additions and 43 deletions

View File

@ -1 +1,3 @@
DIST nasm-2.15.05.tar.xz 995732 BLAKE2B a41434965c2125577b762d907a0a3c251c75d9f9beac230fba4099182c7f7beb08c6d2c05c2432b0dc8ba829f24077f44c3096faea9bd0a533250e6dbbfaef35 SHA512 512f90a2584f1c5811429274b97c64a2cedf37b9fdeffb1bcd0ea64afd9ecc19a2d7877ca8f1e05393aa324153fc9f39ea51dacbf8d25a7d5a2d7728c925dba7
DIST nasm-2.16.01.tar.xz 1017732 BLAKE2B 0f7e96648e3db6fa4a8e10a89885f61cab7d79af25adbcc9d4706b3af61206c3cae024b7f873d636f5c1b2cb34ce5e7fbecc16af9b59086e9a1f49fb37c59670 SHA512 51fccb5639ce019d9c423c0f279750ffbd74c64cd41dd3b185d1aa1a1aaed79c5d3cd8d4bebbc13ee249a375ed27457ea2abde1a4dbb24d354598fffd1254833
DIST nasm-2.16.02.tar.xz 1044824 BLAKE2B daa3585e9aef3c388e3b577a52453b31aaa7f13942e621c21bbe6ec744ff30bf2692e853dda193b30006989cb10e40dcc1cf0107176e31fd5ee096baad28c7a1 SHA512 9ccafb4cd9064fb21f6551309d35ba7461de8da138b1239d76c2ea0c070a1a767f1019d5d705088375d625cfb73eebbfd9dfa3588107793b95354d89dcfd22c3
DIST nasm-2.16.03.tar.xz 1032388 BLAKE2B 742cbf330341fde9f778d8ca13e8c06199f48796d47028ac973d39e3d9e434450cdfebe89f6ab248d372bdaeb0c88a25eb7153a39b66fc05e770523d4c9e11e9 SHA512 0c706e41a9c33e1ac3bad5056e8bf8cbcd51785b551a6e34ce7d0d723df8eaab8603a033e89b3dcda1004b558f9e9ef3196691500f10d8201bf47a323a516f84

View File

@ -0,0 +1,241 @@
From 5a2d629501d57301fe1d85fe6b2576e318f523d1 Mon Sep 17 00:00:00 2001
From: "H. Peter Anvin" <hpa@zytor.com>
Date: Sun, 19 Feb 2023 21:26:15 -0800
Subject: [PATCH] autoconf: a much of macro fixes... not sure how this ever
worked?
Exposed a bunch of problems with the autoconf m4 macro
library. Hopefulyy fix it, and tidy it up in the process.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
--- /dev/null
+++ b/autoconf/m4/pa_add_cppflags.m4
@@ -0,0 +1,9 @@
+dnl --------------------------------------------------------------------------
+dnl PA_ADD_CPPFLAGS(variable, flag [,actual_flag [,success [,failure]]]])
+dnl
+dnl Attempt to add the given option to xFLAGS, if it doesn't break
+dnl compilation. If the option to be tested is different than the
+dnl option that should actually be added, add the option to be
+dnl actually added as a second argument.
+dnl --------------------------------------------------------------------------
+AC_DEFUN([PA_ADD_CPPFLAGS], [PA_ADD_FLAGS(CPPFLAGS, [$1], [$2], [$3], [$4])])
--- a/autoconf/m4/pa_add_flags.m4
+++ b/autoconf/m4/pa_add_flags.m4
@@ -1,23 +1,39 @@
dnl --------------------------------------------------------------------------
-dnl PA_ADD_FLAGS(variable, flag [,actual_flag [,success [,failure]]])
+dnl PA_ADD_FLAGS(flagvar, flags)
dnl
-dnl Attempt to add the given option to CPPFLAGS, if it doesn't break
-dnl compilation. If the option to be tested is different than the
-dnl option that should actually be added, add the option to be
-dnl actually added as a second argument.
+dnl Add [flags] to the variable [flagvar] if and only if it is accepted
+dnl by all languages affected by [flagvar], if those languages have
+dnl been previously seen in the script.
dnl --------------------------------------------------------------------------
AC_DEFUN([PA_ADD_FLAGS],
-[AC_MSG_CHECKING([if $CC accepts $2])
- pa_add_flags__old_flags="$$1"
- $1="$$1 $2"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
- [printf("Hello, World!\n");])],
- [AC_MSG_RESULT([yes])
- $1="$pa_add_flags__old_flags ifelse([$3],[],[$2],[$3])"
- AC_DEFINE(PA_SYM([$1_],[$2]), 1,
- [Define to 1 if compiled with the `$2' compiler flag])
+[
+ AS_VAR_PUSHDEF([old], [_$0_$1_orig])
+ AS_VAR_PUSHDEF([ok], [_$0_$1_ok])
+ AS_VAR_PUSHDEF([flags], [$1])
+
+ AS_VAR_COPY([old], [flags])
+ AS_VAR_SET([flags], ["$flags $2"])
+ AS_VAR_SET([ok], [yes])
+
+ PA_LANG_FOREACH(PA_FLAGS_LANGLIST($1),
+ [AS_VAR_IF([ok], [yes],
+ [AC_MSG_CHECKING([if $]_AC_CC[ accepts $2])
+ PA_BUILD_IFELSE([],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AS_VAR_SET([ok], [no])])])
+ ])
+
+ AS_VAR_IF([ok], [yes],
+ [m4_ifnblank([$3],[AS_VAR_SET([flags], ["$old $3"])])
+ m4_foreach_w([_pa_add_flags_flag], [m4_ifblank([$3],[$2],[$3])],
+ [AC_DEFINE(PA_SYM([$1_]_pa_add_flags_flag), 1,
+ [Define to 1 if compiled with the ]_pa_add_flags_flag[ compiler flag])])
$4],
- [AC_MSG_RESULT([no])
- $1="$pa_add_flags__old_flags"
- $5])])
+ [AS_VAR_SET([flags], ["$old"])
+ $5])
+
+ AS_VAR_POPDEF([flags])
+ AS_VAR_POPDEF([ok])
+ AS_VAR_POPDEF([old])
+])
--- /dev/null
+++ b/autoconf/m4/pa_build_ifelse.m4
@@ -0,0 +1,16 @@
+dnl --------------------------------------------------------------------------
+dnl PA_BUILD_IFELSE(input [,success [,failure]])
+dnl
+dnl Same as AC_LINK_IFELSE for languages where linking is applicable,
+dnl otherwise AC_COMPILE_IFELSE.
+dnl
+dnl If the first argument is empty, use _AC_LANG_IO_PROGRAM.
+dnl --------------------------------------------------------------------------
+m4_defun([_PA_BUILD_IFELSE],
+[m4_case(_AC_LANG,
+ [Erlang], [AC_COMPILE_IFELSE($@)],
+ [AC_LINK_IFELSE($@)])])
+
+AC_DEFUN([PA_BUILD_IFELSE],
+[_PA_BUILD_IFELSE([m4_ifblank([$1],[AC_LANG_SOURCE(_AC_LANG_IO_PROGRAM)],
+ [$1])],[$2],[$3])])
--- /dev/null
+++ b/autoconf/m4/pa_flags_langlist.m4
@@ -0,0 +1,19 @@
+dnl --------------------------------------------------------------------------
+dnl PA_FLAGS_LANGLIST(flagvar)
+dnl
+dnl Return a list of languages affected by the variable flagvar.
+dnl If flagvar is unknown, assume it affects the current language.
+dnl --------------------------------------------------------------------------
+AC_DEFUN([PA_FLAGS_LANGLIST],
+[m4_dquote(m4_case([$1],
+ [CPPFLAGS], [[C],[C++],[Objective C],[Objective C++]],
+ [CFLAGS], [[C]],
+ [CXXFLAGS], [[C++]],
+ [FFLAGS], [[Fortran 77]],
+ [FCFLAGS], [[Fortran]],
+ [ERLCFLAGS], [[Erlang]],
+ [OBJCFLAGS], [[Objective C]],
+ [OBJCXXFLAGS], [[Objective C++]],
+ [GOFLAGS], [[Go]],
+ [LDFLAGS], [[C],[C++],[Fortran 77],[Fortran],[Objective C],[Objective C++],[Go]],
+ m4_dquote(_AC_LANG)))])
--- /dev/null
+++ b/autoconf/m4/pa_lang_foreach.m4
@@ -0,0 +1,15 @@
+dnl --------------------------------------------------------------------------
+dnl PA_LANG_FOREACH(subset, body)
+dnl
+dnl Expand [body] for each language encountered in the configure script also
+dnl present in [subset], or all if [subset] is empty
+dnl --------------------------------------------------------------------------
+AC_DEFUN([_PA_LANG_DO],dnl
+[AC_LANG([$2])dnl
+$1])
+
+AC_DEFUN([PA_LANG_FOREACH],dnl
+[m4_pushdef([_pa_lang_foreach_current],[_AC_LANG])dnl
+m4_map_args([m4_curry([_PA_LANG_DO],[$2])],m4_unquote(PA_LANG_SEEN_LIST($1)))dnl
+AC_LANG(_pa_lang_foreach_current)dnl
+m4_popdef([_pa_lang_foreach_current])])
--- /dev/null
+++ b/autoconf/m4/pa_lang_seen_list.m4
@@ -0,0 +1,20 @@
+dnl --------------------------------------------------------------------------
+dnl PA_LANG_SEEN_LIST(subset)
+dnl
+dnl List of the language lang has been used in the configuration
+dnl script so far, possibly subset by [subset].
+dnl
+dnl This relies on overriding _AC_LANG_SET(from, to),
+dnl the internal implementation of _AC_LANG.
+dnl --------------------------------------------------------------------------
+m4_ifndef([_PA_LANG_SET],
+[m4_rename([_AC_LANG_SET], [_PA_LANG_SET])dnl
+m4_defun([_AC_LANG_SET], [m4_set_add([_PA_LANG_SEEN_SET],[$2])dnl
+_PA_LANG_SET($@)])])
+
+AC_DEFUN([PA_LANG_SEEN_LIST],
+[m4_set_delete([_pa_lang_seen_subset])dnl
+m4_pushdef([_pa_lang_seen_subset_list],m4_ifnblank([$1],[$1],m4_dquote(m4_set_list([_PA_LANG_SEEN_SET]))))dnl
+m4_set_add_all([_pa_lang_seen_subset],_pa_lang_seen_subset_list)dnl
+m4_cdr(m4_set_intersection([_pa_lang_seen_subset],[_PA_LANG_SEEN_SET]))dnl
+m4_popdef([_pa_lang_seen_subset_list])])
--- a/configure.ac
+++ b/configure.ac
@@ -12,9 +12,6 @@ dnl start; this is used to generate config/unconfig.h.
AH_BOTTOM([
/* Begin unconfig.h */])
-dnl Save initial CFLAGS, to see if -g -O2 came from configure or not
-pa_init_cflags="$CFLAGS"
-
dnl This prevents us from running Wine and thinking we are not
dnl cross-compiling when in fact we are; running Wine here is at
dnl the best very slow and doesn't buy us a single thing at all.
@@ -27,35 +24,29 @@ AC_CANONICAL_HOST
dnl Enable any available C extensions
AC_PROG_CC
AC_USE_SYSTEM_EXTENSIONS
-AC_SYS_LARGEFILE
-PA_ADD_CFLAGS([-std=c17], [], [],
-[PA_ADD_CFLAGS([-std=c11], [], [],
- [PA_ADD_CFLAGS([-std=c99])])])
-
-dnl If the user did not specify a CFLAGS default, change default
-dnl to -O0 for debugging
-PA_ARG_DISABLED([optimization],
- [compile without optimization (-O0) to help debugging],
- [pa_no_optimize=true])
+PA_ADD_CPPFLAGS([-std=c17], [], [],
+[PA_ADD_CPPFLAGS([-std=c11], [], [],
+ [PA_ADD_CPPFLAGS([-std=c99])])])
-dnl Other programs
-pa_no_optimize=false
-
-dnl Compile and link with dwarf debug
+dnl Compile and link with gdb debug extensions
PA_ARG_ENABLED([gdb],
- [disable optimization and compile with extra debug information for GDB debugger],
- [PA_ADD_CFLAGS([-ggdb3])
- pa_no_optimize=true])
+ [compile with extra debug information for GDB debugger],
+ [PA_ADD_CFLAGS([-ggdb3])])
-AS_IF([$pa_no_optimize],
- [PA_ADD_CFLAGS([-O0])
- PA_ADD_CFLAGS([-fno-omit-frame-pointer])])
+dnl Disable optimization
+PA_ARG_DISABLED([optimization],
+ [compile without optimization (-O0) to help debugging],
+ [PA_ADD_CFLAGS([-O0])
+ PA_ADD_CFLAGS([-fno-omit-frame-pointer])])
dnl Profiling
PA_ARG_ENABLED([profiling],
[compile with profiling (-pg option)],
[PA_ADD_CFLAGS([-pg])])
+dnl Large files
+AC_SYS_LARGEFILE
+
dnl Abort on panic
PA_ARG_ENABLED([panic-abort],
[call abort() on panic to trap in the debugger],
@@ -104,10 +95,10 @@ AC_PROG_MAKE_SET
AC_PROG_INSTALL
AC_PROG_MKDIR_P
-AC_CHECK_PROGS(NROFF, nroff, false)
-AC_CHECK_PROGS(ASCIIDOC, asciidoc, false)
-AC_CHECK_PROGS(XMLTO, xmlto, false)
-AC_CHECK_PROGS(XZ, xz, false)
+AC_CHECK_PROGS([NROFF], nroff, false)
+AC_CHECK_PROGS([ASCIIDOC], asciidoc, false)
+AC_CHECK_PROGS([XMLTO], xmlto, false)
+AC_CHECK_PROGS([XZ], xz, false)
dnl Check for progs needed for manpage generation
MANPAGES=manpages

View File

@ -0,0 +1,11 @@
--- a/Makefile.in 2024-04-05 07:51:48.394437050 -0000
+++ b/Makefile.in 2024-04-05 07:52:38.731388961 -0000
@@ -214,7 +214,7 @@
INSDEP = x86/insns.dat x86/insns.pl x86/insns-iflags.ph x86/iflags.ph
config/unconfig.h: config/config.h.in
- $(RUNPERL) $(tools)/unconfig.pl \
+ $(RUNPERL) $(top_srcdir)/autoconf/unconfig.pl \
'$(srcdir)' config/config.h.in config/unconfig.h
x86/iflag.c: $(INSDEP)

View File

@ -1,42 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="groovy little assembler"
HOMEPAGE="https://www.nasm.us/"
SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz"
S="${WORKDIR}"/${P/_}
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="amd64 ~arm64 ~ia64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
IUSE="doc"
# [fonts note] doc/psfonts.ph defines ordered list of font preference.
# Currently 'media-fonts/source-pro' is most preferred and is able to
# satisfy all 6 font flavours: tilt, chapter, head, etc.
BDEPEND="
dev-lang/perl
doc? (
app-text/ghostscript-gpl
dev-perl/Font-TTF
dev-perl/Sort-Versions
media-fonts/source-pro
virtual/perl-File-Spec
)
"
PATCHES=(
"${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
)
src_compile() {
default
use doc && emake doc
}
src_install() {
default
emake DESTDIR="${D}" install_rdf $(usex doc install_doc '')
}

View File

@ -0,0 +1,72 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools
DESCRIPTION="groovy little assembler"
HOMEPAGE="https://www.nasm.us/"
SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz"
S="${WORKDIR}"/${P/_}
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="amd64 arm64 ~ia64 ~loong ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
IUSE="doc"
QA_CONFIG_IMPL_DECL_SKIP=(
_BitScanReverse
_BitScanReverse64
__cpu_to_le16
__cpu_to_le32
__cpu_to_le64
_byteswap_uint64
_byteswap_ulong
_byteswap_ushort
cpu_to_le16
cpu_to_le32
cpu_to_le64
)
# [fonts note] doc/psfonts.ph defines ordered list of font preference.
# Currently 'media-fonts/source-pro' is most preferred and is able to
# satisfy all 6 font flavours: tilt, chapter, head, etc.
BDEPEND="
dev-lang/perl
doc? (
app-text/ghostscript-gpl
dev-perl/Font-TTF
dev-perl/Sort-Versions
media-fonts/source-code-pro
media-fonts/source-sans:3
virtual/perl-File-Spec
)
"
PATCHES=(
"${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
"${FILESDIR}"/${PN}-2.16-autoconf-macro-fixes.patch
)
src_prepare() {
default
# https://bugs.gentoo.org/870214
# During the split of media-fonts/source-pro, the source-sans files
# were renamed. Currently depend on media-fonts/source-sans:3 which works
# with this sed.
sed -i 's/SourceSansPro/SourceSans3/g' doc/psfonts.ph || die
AT_M4DIR="${S}/autoconf/m4" eautoreconf
}
src_compile() {
default
use doc && emake doc
}
src_install() {
default
emake DESTDIR="${D}" install $(usex doc install_doc '')
}

View File

@ -0,0 +1,86 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools
DESCRIPTION="groovy little assembler"
HOMEPAGE="https://www.nasm.us/"
SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz"
S="${WORKDIR}"/${P/_}
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ia64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
IUSE="doc"
QA_CONFIG_IMPL_DECL_SKIP=(
# Windows.
_BitScanReverse
_BitScanReverse64
# Linux headers that are not included.
__cpu_to_le16
__cpu_to_le32
__cpu_to_le64
_byteswap_uint64
_byteswap_ulong
_byteswap_ushort
cpu_to_le16
cpu_to_le32
cpu_to_le64
# __typeof as gnu extensions are not enabled
typeof
# musl doesn't define __bswap_N in endian.h (it's named _bswapN
# instead). could be fixed to call this instead, or to include
# musl's byteswap.h instead, but it is much easier to fall back on
# __builtin_bswapN. Bug #928848
__bswap_16
__bswap_32
__bswap_64
)
# [fonts note] doc/psfonts.ph defines ordered list of font preference.
# Currently 'media-fonts/source-pro' is most preferred and is able to
# satisfy all 6 font flavours: tilt, chapter, head, etc.
BDEPEND="
dev-lang/perl
doc? (
app-text/ghostscript-gpl
dev-perl/Font-TTF
dev-perl/Sort-Versions
media-fonts/source-code-pro
media-fonts/source-sans:3
virtual/perl-File-Spec
)
"
PATCHES=(
"${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
"${FILESDIR}"/${PN}-2.16.02-unconfig.patch
)
src_prepare() {
default
# https://bugs.gentoo.org/870214
# During the split of media-fonts/source-pro, the source-sans files
# were renamed. Currently depend on media-fonts/source-sans:3 which works
# with this sed.
sed -i 's/SourceSansPro/SourceSans3/g' doc/psfonts.ph || die
AT_M4DIR="${S}/autoconf/m4" eautoreconf
}
src_compile() {
default
use doc && emake doc
}
src_install() {
default
emake DESTDIR="${D}" install $(usex doc install_doc '')
}

View File

@ -0,0 +1,92 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools
DESCRIPTION="groovy little assembler"
HOMEPAGE="https://www.nasm.us/"
SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz"
S="${WORKDIR}"/${P/_}
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ia64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
IUSE="doc lto"
QA_CONFIG_IMPL_DECL_SKIP=(
# Windows.
_BitScanReverse
_BitScanReverse64
# Linux headers that are not included.
__cpu_to_le16
__cpu_to_le32
__cpu_to_le64
_byteswap_uint64
_byteswap_ulong
_byteswap_ushort
cpu_to_le16
cpu_to_le32
cpu_to_le64
# __typeof as gnu extensions are not enabled
typeof
# musl doesn't define __bswap_N in endian.h (it's named _bswapN
# instead). could be fixed to call this instead, or to include
# musl's byteswap.h instead, but it is much easier to fall back on
# __builtin_bswapN. Bug #928848
__bswap_16
__bswap_32
__bswap_64
)
# [fonts note] doc/psfonts.ph defines ordered list of font preference.
# Currently 'media-fonts/source-pro' is most preferred and is able to
# satisfy all 6 font flavours: tilt, chapter, head, etc.
BDEPEND="
dev-lang/perl
doc? (
app-text/ghostscript-gpl
dev-perl/Font-TTF
dev-perl/Sort-Versions
media-fonts/source-code-pro
media-fonts/source-sans:3
virtual/perl-File-Spec
)
"
PATCHES=(
"${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
)
src_prepare() {
default
# https://bugs.gentoo.org/870214
# During the split of media-fonts/source-pro, the source-sans files
# were renamed. Currently depend on media-fonts/source-sans:3 which works
# with this sed.
sed -i 's/SourceSansPro/SourceSans3/g' doc/psfonts.ph || die
AT_M4DIR="${S}/autoconf/m4" eautoreconf
}
src_configure() {
local myconfargs=(
$(use_enable lto)
)
econf "${myconfargs[@]}"
}
src_compile() {
default
use doc && emake doc
}
src_install() {
default
emake DESTDIR="${D}" install $(usex doc install_doc '')
}