commit:     ebf663ea9fba020321c0cbfb4e713a11fa8c0e43
Author:     Matthew Smith <matthew <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  3 08:18:24 2023 +0000
Commit:     Matthew Smith <matthew <AT> gentoo <DOT> org>
CommitDate: Tue Oct  3 08:23:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ebf663ea

dev-lang/nasm: EAPI-8

- Bump to EAPI-8.
- Suppress implicit function declaration in configure QA notice.
- Apply autoconf fixes from 2.16.02 (not yet released).

Closes: https://bugs.gentoo.org/898306
Signed-off-by: Matthew Smith <matthew <AT> gentoo.org>

 .../files/nasm-2.16-autoconf-macro-fixes.patch     | 241 +++++++++++++++++++++
 ...{nasm-2.16.01.ebuild => nasm-2.16.01-r1.ebuild} |  23 +-
 2 files changed, 262 insertions(+), 2 deletions(-)

diff --git a/dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch 
b/dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch
new file mode 100644
index 000000000000..c2efc5b2e2f6
--- /dev/null
+++ b/dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch
@@ -0,0 +1,241 @@
+From 5a2d629501d57301fe1d85fe6b2576e318f523d1 Mon Sep 17 00:00:00 2001
+From: "H. Peter Anvin" <[email protected]>
+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 <[email protected]>
+--- /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

diff --git a/dev-lang/nasm/nasm-2.16.01.ebuild 
b/dev-lang/nasm/nasm-2.16.01-r1.ebuild
similarity index 77%
rename from dev-lang/nasm/nasm-2.16.01.ebuild
rename to dev-lang/nasm/nasm-2.16.01-r1.ebuild
index 0516affa1974..499e7181c397 100644
--- a/dev-lang/nasm/nasm-2.16.01.ebuild
+++ b/dev-lang/nasm/nasm-2.16.01-r1.ebuild
@@ -1,7 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=7
+EAPI=8
+
+inherit autotools
 
 DESCRIPTION="groovy little assembler"
 HOMEPAGE="https://www.nasm.us/";
@@ -13,6 +15,20 @@ 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.
@@ -30,6 +46,7 @@ BDEPEND="
 
 PATCHES=(
        "${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch
+       "${FILESDIR}"/${PN}-2.16-autoconf-macro-fixes.patch
 )
 
 src_prepare() {
@@ -40,6 +57,8 @@ src_prepare() {
        # 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() {

Reply via email to