mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-11 17:10:45 +08:00
Merge remote-tracking branch 'github/nasm-2.16.xx'
This commit is contained in:
commit
a916e4127b
9
autoconf/m4/pa_add_cppflags.m4
Normal file
9
autoconf/m4/pa_add_cppflags.m4
Normal file
@ -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])])
|
@ -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])
|
||||
])
|
||||
|
16
autoconf/m4/pa_build_ifelse.m4
Normal file
16
autoconf/m4/pa_build_ifelse.m4
Normal file
@ -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])])
|
19
autoconf/m4/pa_flags_langlist.m4
Normal file
19
autoconf/m4/pa_flags_langlist.m4
Normal file
@ -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)))])
|
15
autoconf/m4/pa_lang_foreach.m4
Normal file
15
autoconf/m4/pa_lang_foreach.m4
Normal file
@ -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])])
|
20
autoconf/m4/pa_lang_seen_list.m4
Normal file
20
autoconf/m4/pa_lang_seen_list.m4
Normal file
@ -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])])
|
45
configure.ac
45
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])])])
|
||||
PA_ADD_CPPFLAGS([-std=c17], [], [],
|
||||
[PA_ADD_CPPFLAGS([-std=c11], [], [],
|
||||
[PA_ADD_CPPFLAGS([-std=c99])])])
|
||||
|
||||
dnl If the user did not specify a CFLAGS default, change default
|
||||
dnl to -O0 for debugging
|
||||
dnl Compile and link with gdb debug extensions
|
||||
PA_ARG_ENABLED([gdb],
|
||||
[compile with extra debug information for GDB debugger],
|
||||
[PA_ADD_CFLAGS([-ggdb3])])
|
||||
|
||||
dnl Disable optimization
|
||||
PA_ARG_DISABLED([optimization],
|
||||
[compile without optimization (-O0) to help debugging],
|
||||
[pa_no_optimize=true])
|
||||
|
||||
dnl Other programs
|
||||
pa_no_optimize=false
|
||||
|
||||
dnl Compile and link with dwarf debug
|
||||
PA_ARG_ENABLED([gdb],
|
||||
[disable optimization and compile with extra debug information for GDB debugger],
|
||||
[PA_ADD_CFLAGS([-ggdb3])
|
||||
pa_no_optimize=true])
|
||||
|
||||
AS_IF([$pa_no_optimize],
|
||||
[PA_ADD_CFLAGS([-O0])
|
||||
PA_ADD_CFLAGS([-fno-omit-frame-pointer])])
|
||||
[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
|
||||
|
@ -7,12 +7,17 @@
|
||||
The NASM 2 series supports x86-64, and is the production version of NASM
|
||||
since 2007.
|
||||
|
||||
|
||||
\S{cl-2.17} Version 2.17
|
||||
|
||||
\b ... here goes release notes not intended to be included in the
|
||||
2.16.xx stable series ...
|
||||
|
||||
\S{cl-2.16.02} Version 2.16.02
|
||||
|
||||
\b Fix building from the source distribution in a separate directory
|
||||
from the source.
|
||||
|
||||
\b Update broken \c{autoconf} macros.
|
||||
|
||||
\S{cl-2.16.01} Version 2.16.01
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user