diff options
Diffstat (limited to 'dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch')
-rw-r--r-- | dev-lang/nasm/files/nasm-2.16-autoconf-macro-fixes.patch | 241 |
1 files changed, 241 insertions, 0 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" <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 |