summaryrefslogtreecommitdiff
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* Remove extra space after comma in MIT-like license termsIvan Maidanski2022-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | (reformatting) * LICENSE: Remove an extra space after comma in MIT-like license. * configure.ac: Remove an extra space after comma in license header comment. * src/atomic_ops/sysdeps/armcc/arm_v6.h: Likewise. * src/atomic_ops/sysdeps/gcc/aarch64.h: Likewise. * src/atomic_ops/sysdeps/gcc/alpha.h: Likewise. * src/atomic_ops/sysdeps/gcc/arm.h: Likewise. * src/atomic_ops/sysdeps/gcc/hexagon.h: Likewise. * src/atomic_ops/sysdeps/gcc/m68k.h: Likewise. * src/atomic_ops/sysdeps/gcc/mips.h: Likewise. * src/atomic_ops/sysdeps/gcc/powerpc.h: Likewise. * src/atomic_ops/sysdeps/gcc/riscv.h: Likewise. * src/atomic_ops/sysdeps/gcc/s390.h: Likewise. * src/atomic_ops/sysdeps/gcc/sh.h: Likewise. * src/atomic_ops/sysdeps/gcc/sparc.h: Likewise. * src/atomic_ops/sysdeps/gcc/x86.h: Likewise. * src/atomic_ops/sysdeps/sunc/x86.h: Likewise.
* Replace obsolete AC_TRY_COMPILE with AC_COMPILE_IFELSE in configureIvan Maidanski2021-12-231-5/+7
| | | | | | | (refactoring) * configure.ac (AC_TRY_COMPILE): Replace with AC_COMPILE_IFELSE(AC_LANG_SOURCE).
* Replace obsolete AC_HELP_STRING with AS_HELP_STRING in configureIvan Maidanski2021-12-231-7/+7
| | | | | | | (refactoring) * configure.ac (AC_ARG_ENABLE): Specify AS_HELP_STRING instead of AC_HELP_STRING.
* Explicitly outline symbols exported in AO shared librariesIvan Maidanski2021-11-081-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AO_DLL macro is defined by configure if building shared libraries; AO_DLL controls the definition of AO_API. (In case of a static build, AO_API is always defined to "extern".) * configure.ac [$enable_shared && !$enable_static] (CFLAGS): Perpend -DAO_DLL. * src/atomic_ops.c [!AO_BUILD] (AO_BUILD): Define before include atomic_ops.h. * src/atomic_ops.c (AO_pause): Add AO_API specifier. * src/atomic_ops.c [!_MSC_VER && !__MINGW32__ && !__BORLANDC__ || AO_USE_NO_SIGNALS] (AO_fetch_compare_and_swap_emulation, AO_compare_double_and_swap_double_emulation, AO_store_full_emulation): Likewise. * src/atomic_ops/sysdeps/emul_cas.h (AO_fetch_compare_and_swap_emulation, AO_compare_double_and_swap_double_emulation, AO_store_full_emulation): Likewise. * src/atomic_ops/sysdeps/generic_pthread.h (AO_pt_lock): Likewise. * src/atomic_ops_malloc.c (AO_malloc_enable_mmap, AO_malloc, AO_free): Likewise. * src/atomic_ops_malloc.h (AO_free, AO_malloc, AO_malloc_enable_mmap): Likewise. * src/atomic_ops_stack.c [AO_USE_ALMOST_LOCK_FREE] (AO_pause, AO_stack_push_explicit_aux_release, AO_stack_pop_explicit_aux_acquire): Likewise. * src/atomic_ops_stack.c (AO_stack_push_release, AO_stack_pop_acquire): Likewise. * src/atomic_ops_stack.h [AO_USE_ALMOST_LOCK_FREE] (AO_stack_push_explicit_aux_release, AO_stack_pop_explicit_aux_acquire): Likewise. * src/atomic_ops_stack.h (AO_stack_push_release, AO_stack_pop_acquire): Likewise. * tests/test_atomic.c [(!_MSC_VER && !__MINGW32__ && !__BORLANDC__ || AO_USE_NO_SIGNALS || AO_USE_WIN32_PTHREADS) && AO_TEST_EMULATION] (AO_store_full_emulation, AO_fetch_compare_and_swap_emulation): Likewise. * tests/test_atomic.c [(!_MSC_VER && !__MINGW32__ && !__BORLANDC__ || AO_USE_NO_SIGNALS || AO_USE_WIN32_PTHREADS) && AO_TEST_EMULATION && AO_HAVE_double_t] (AO_compare_double_and_swap_double_emulation): Likewise. * src/atomic_ops.c [(!_MSC_VER && !__MINGW32__ && !__BORLANDC__ || AO_USE_NO_SIGNALS) && !AO_NO_PTHREADS] (AO_pt_lock): Add declaration but with AO_API; move the definition out of extern C. * src/atomic_ops.h [!AO_API] (AO_API): Define (depending on AO_BUILD and AO_DLL). * src/atomic_ops_malloc.c [!AO_BUILD] (AO_BUILD): Define before include atomic_ops_malloc.h. * src/atomic_ops_stack.c [!AO_BUILD] (AO_BUILD): Define before include atomic_ops_stack.h.
* Remove 'lib' prefix for atomic_ops[_gpl].lib in Makefile.msftIvan Maidanski2021-11-071-1/+1
| | | | | | | | | | | | | | | | | | | This is to unify build artifacts naming between the supported build scripts. The documentation and LICENSING.txt are updated accordingly. * LICENSING.txt: Rename libatomic_ops_gpl to atomic_ops_gpl. * README_malloc.txt: Likewise. * README_win32.txt: Likewise. * configure.ac (gpl): Likewise. * src/Makefile.msft (all, libatomic_ops_gpl.lib, test_malloc, test_stack): Likewise. * README_win32.txt: Rename libatomic_ops.lib to atomic_ops.lib. * src/Makefile.msft (all-disable-gpl, libatomic_ops.lib, test_malloc, test_stack): Likewise. * src/Makefile.msft (clean): Remove atomic_ops*.lib instead of libatomic_ops*.lib.
* New configure option (--disable-gpl) to skip building of libatomic_ops_gplIvan Maidanski2021-11-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.am [ENABLE_DOCS] (dist_doc_DATA): Do not add COPYING, README_malloc.txt, README_stack.txt items unless ENABLE_GPL. * README.md (Installation and Usage): Add note that libatomic_ops_gpl.a is not built if --disable-gpl option is given to configure. * configure.ac (gpl): New AC_ARG_ENABLE. * configure.ac (ENABLE_GPL): New AM_CONDITIONAL. * src/Makefile.am (include_HEADERS): Do not add atomic_ops_malloc.h and atomic_ops_stack.h items unless ENABLE_GPL. * src/Makefile.am (lib_LTLIBRARIES): Do not add libatomic_ops_gpl.la unless ENABLE_GPL. * src/Makefile.am (libatomic_ops_gpl_la_SOURCES, libatomic_ops_gpl_la_LDFLAGS, libatomic_ops_gpl_la_LIBADD): Do not define unless ENABLE_GPL. * tests/Makefile.am (test_stack_SOURCES, test_stack_LDADD, test_malloc_SOURCES, test_malloc_LDADD): Likewise. * tests/Makefile.am [ENABLE_SHARED] (test_malloc_LDADD, test_stack_LDADD): Likewise. * tests/Makefile.am (TESTS): Do not add test_malloc$(EXEEXT) and test_stack$(EXEEXT) items unless ENABLE_GPL. * tests/Makefile.am (TEST_OBJS): Do not add test_malloc.o, test_stack.o items unless ENABLE_GPL. * tests/Makefile.am (check_PROGRAMS): Do not add test_malloc and test_stack items unless ENABLE_GPL. * tests/Makefile.am (check-gpl-without-test-driver): New PHONY goal. * tests/Makefile.am (check-without-test-driver): Depend also on check-gpl-without-test-driver; do not run test_stack and test_malloc directly.
* Move all README and license files to the top folderIvan Maidanski2021-11-011-1/+0
| | | | | | | | | | | | | | | | | | | | | | | The rationale: all relative links (in README.md) should remain valid after docs installation. * doc/LICENSING.txt: Move to the base folder. * doc/README_details.txt: Likewise. * doc/README_malloc.txt: Likewise. * doc/README_stack.txt: Likewise. * doc/README_win32.txt: Likewise. * Makefile.am (SUBDIRS): Remove doc item. * Makefile.am [ENABLE_DOCS] (dist_doc_DATA): Add comment and items from doc/Makefile.am. * README.md (Overview): Replace reference to doc with the links to the existing README_*.txt files (except for README_win32.txt). * README.md (Installation and Usage): Add link to LICENSING.txt. * README.md (Platform Specific Notes): Add link to README_win32.txt. * README.md (Copyright & Warranty): Adjust link to LICENSING.txt (after moving to the base folder). * configure.ac (AC_CONFIG_FILES): Remove doc/Makefile item. * doc/Makefile.am: Remove file. * src/atomic_ops_malloc.h: Update path to LICENSING.txt in comment.
* Document config macros in README_win32 and remove them from configureIvan Maidanski2021-10-301-10/+1
| | | | | | | | | | | | | | | The configuration macros actual only for builds with the Microsoft tools are removed from configure.ac (AH_TEMPLATE). At the same time, these and other macros configuring builds with the Microsoft tools are now documented in README_win32.txt file. * configure.ac (AO_ASM_X64_AVAILABLE, AO_ASSUME_VISTA, AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE, AO_USE_INTERLOCKED_INTRINSICS): Remove AH_TEMPLATE. * doc/README_win32.txt: Document AO_ASM_X64_AVAILABLE, AO_ASSUME_VISTA, AO_CMPXCHG16B_AVAILABLE, AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE, AO_PREFER_GENERALIZED, AO_UNIPROCESSOR, AO_USE_INTERLOCKED_INTRINSICS, AO_USE_PENTIUM4_INSTRS.
* Refine AO_UNIPROCESSOR macro description in configureIvan Maidanski2021-10-291-1/+2
| | | | | * configure.ac (AO_UNIPROCESSOR): Refine description (also mention GCC intrinsics).
* Do not name GCC intrinsics as C11 ones in ChangeLog and configureIvan Maidanski2021-10-291-4/+4
| | | | | | | * ChangeLog (7.6.0): Do not mention C11 when referring to GCC intrinsics. * configure.ac (atomic-intrinsics, AO_PREFER_BUILTIN_ATOMICS): Likewise.
* Support MSYS host (configure)Alexey Pavlov2019-03-061-2/+2
| | | | | | * configure.ac [$host=*-*-msys*] (PICFLAG): Set to empty. * configure.ac [$have_pthreads=true && $host=*-*-msys*] (THREADDLLIBS): Likewise.
* Update copyright year in configure and READMEIvan Maidanski2019-03-061-1/+1
| | | | | * README.md: Update year (to 2019) in the Copyright. * configure.ac: Likewise.
* Fix 'duplicate symbol' error for test_malloc/stack with static libs (OS X)Ivan Maidanski2019-02-261-0/+1
| | | | | | | | | | | | | | | | | If configured with --enable-static (the default behavior), libtool passes libatomic_ops.a to gcc twice (with a relative path and with an absolute one) when linking test_malloc and test_stack because the latter ones use also depend on libatomic_ops_gpl.a which, in turn, depends on libatomic_ops.a. Double specification of libatomic_ops.a confuses ld tool of MacOS 10.14. The workaround is to omit libatomic_ops.la in *_LDADD specification for test_malloc and test_stack at least when the shared libraries are not requested. * configure.ac (ENABLE_SHARED): New AM_CONDITIONAL. * tests/Makefile.am (test_stack_LDADD, test_malloc_LDADD): Do not add libatomic_ops.la unless ENABLE_SHARED; add comment.
* Fix comments style in configure.ac and Makefile.amIvan Maidanski2018-05-181-5/+18
| | | | | | | | | | | | (code refactoring) Do not allow the comments that are meaningless in the auto-generated configure and Makefile.in to be put to these files. * Makefile.am (check-nolink): Change comment style from "#" to "##". * configure.ac: Add the copyright and disclaimer. * configure.ac: Change comment style from "#" to "dnl" for the comments that are meaningless in auto-generated configure file.
* Do not install documentation if configure --disable-docs (new option)Ivan Maidanski2017-08-041-0/+5
| | | | | | | | | Issue #28 (libatomic_ops). * Makefile.am (dist_doc_DATA): Define only if ENABLE_DOCS. * doc/Makefile.am (dist_doc_DATA): Likewise. * configure.ac (docs): New AC_ARG_ENABLE. * configure.ac (ENABLE_DOCS): New AM_CONDITIONAL.
* Do not produce .tar.bz2 distribution file (configure)Ivan Maidanski2017-06-091-1/+1
| | | | * configure.ac (AM_INIT_AUTOMAKE): Remove dist-bzip2.
* Update README about bugs reporting and new releases notificationIvan Maidanski2017-06-021-1/+1
| | | | | | | | * README.md (Download): Move (and update) information about bug reporting to another section. * README.md (Feedback, Contribution, Questions and Notifications): New section. * configure.ac (AC_INIT): Change URI for reporting bugs.
* Bump libatomic_ops versionIvan Maidanski2017-05-191-1/+1
| | | | | | | | | * README.md: Bump version to 7.7.0. * .travis.yml (addons.coverity_scan.project.version): Likewise. * appveyor.yml (version): Likewise. * configure.ac (AC_INIT): Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_MINOR): Likewise. * README.md: Add back the build status indicators for "master" branch.
* [7.6.0]v7.6.0Ivan Maidanski2017-05-191-1/+1
| | | | | | | | | | | | | | | | | | Bump libatomic_ops version to 7.6.0 * ChangeLog (7.5.0): Bump version (to 7.6.0). * .travis.yml (addons.coverity_scan.project.version): Likewise. * README.md: Likewise. * appveyor.yml (version): Likewise. * configure.ac (AC_INIT): Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_MINOR): Likewise. * ChangeLog (7.6.0, 7.4.6): Add release date. * README.md: Remove build status indicators for "master" branch. * src/Makefile.am (LIBATOMIC_OPS_GPL_VER_INFO): Change to 2:1:1 (increment revision number) because libatomic_ops_gpl.so implementation has been updated (since the last change of the version info). * src/Makefile.am (LIBATOMIC_OPS_VER_INFO): Change to 2:1:1 (just to stay aligned with LIBATOMIC_OPS_GPL_VER_INFO).
* Refine configure messages when checking for compiler optionsIvan Maidanski2017-03-151-6/+6
| | | | | | | * configure.ac (AC_MSG_CHECKING, AC_MSG_RESULT): Refine message when checking for a compiler option support (replace "gcc" with "compiler"), and when reporting PIC option required; put string in []. * configure.ac (AC_MSG_RESULT): Do not put string in quotes.
* Allow alternate CC (CROSS_CC) for AC_TRY_COMPILE (configure)Ivan Maidanski2017-02-271-0/+7
| | | | | * configure.ac [GCC && CROSS_CC] (CC): Assign to CROSS_CC temporarily (for AC_TRY_COMPILE); restore original value after last AC_TRY_COMPILE.
* Workaround 'AM_EXTRA_RECURSIVE_TARGETS not found in library' autoconf errorIvan Maidanski2017-02-201-1/+0
| | | | | | | | | | (fix commit 3b7e732) * Makefile.am (.PHONY): Add check-nolink, check-nolink-local targets. * Makefile.am (check-nolink): New target (which invokes existing check-nolink-local in this Makefile and in tests/Makefile). * configure.ac (AM_EXTRA_RECURSIVE_TARGETS): Remove (this directive is not supported by autoconf-1.12 and earlier).
* Add Makefile target (check-nolink) to compile all source without linkingIvan Maidanski2017-02-181-0/+1
| | | | | | | | | | | | Note: it is assumed --enable-shared is not passed to configure. * Makefile.am (check-nolink-local): New Makefile phony target (just redirects to "all"). * configure.ac: Define check-nolink by AM_EXTRA_RECURSIVE_TARGETS. * tests/Makefile.am (TEST_OBJS): New variable (with a list of the test .o files). * tests/Makefile.am (check-nolink-local): New Makefile phony target (forces all tests to be compiled but not linked).
* Always define word-wide CAS for x86 (MS VC++ 8 or later)Ivan Maidanski2017-01-201-3/+0
| | | | | | | | | | | | | | | | | | | Visual Studio 2005 (MS VC++ 8.0) discontinued support of Windows 95. This patch deprecates AO_ASSUME_WINDOWS98 macro. * configure.ac (AO_ASSUME_WINDOWS98): Remove AH template. * doc/README.txt (AO_ASSUME_WINDOWS98): Remove documentation (as relates only to Win95). * doc/README_win32.txt (AO_ASSUME_WINDOWS98): Likwise. * doc/README_win32.txt (AO_ASSUME_VISTA): Update documentation. * src/Makefile.msft (CFLAGS): Remove "-D AO_ASSUME_WINDOWS98". * src/Makefile.msft (test_atomic_w95): Remove target. * src/Makefile.msft (check): Do not call test_atomic_w95; remove the corresponding printed message. * src/atomic_ops/sysdeps/msftc/x86.h: Remove AO_ASSUME_WINDOWS98 from comment. * src/atomic_ops/sysdeps/msftc/x86.h (AO_ASSUME_WINDOWS98): Define (implicitly) if _MSC_VER >= 1400.
* Fix turn off optimization in case of configure --enable-gcovIvan Maidanski2017-01-191-1/+1
| | | | | | | | (fix commit 0d0a16d) * configure.ac [enable_gcov] (CFLAGS): Change sed regular expression to avoid [] (as they are not properly handled during autogen), and to also filter out -Os and -Ofast (-O0 is ignored).
* Add configure --enable-gcov option (enable code coverage analysis)Ivan Maidanski2017-01-131-0/+8
| | | | | | * configure.ac (gcov): New --enable-* option. * configure.ac [enable_gcov] (CFLAGS): Add "--coverage" option; filter out "-O" options.
* Support CFLAGS_EXTRA to pass extra user-defined compiler flags (configure)Ivan Maidanski2016-12-101-0/+3
| | | | | | * configure.ac: Add AC_SUBST(CFLAGS_EXTRA). * src/Makefile.am (CFLAGS): Append $(CFLAGS_EXTRA). * tests/Makefile.am (CFLAGS): Likewise.
* Fix GCC -Wpedantic checking in configureIvan Maidanski2016-11-221-1/+3
| | | | | | | (fix commit 96a8fd9) * configure.ac [GCC] (ac_cv_cc_pedantic): Compile code that contains "extern int quiet" (since the translation unit cannot be empty).
* Report gcc/clang pedantic warnings (configure)Ivan Maidanski2016-11-221-1/+9
| | | | | | * configure.ac [GCC] (WPEDANTIC): New variable (set to "-Wpedantic -Wno-long-long" if supported by the compiler). * configure.ac [GCC] (CFLAGS): Add $WPEDANTIC.
* Add configure '--disable-atomic-intrinsics' optionIvan Maidanski2016-08-151-2/+8
| | | | | | * configure.ac (atomic-intrinsics): New configure option. * configure.ac (AO_DISABLE_GCC_ATOMICS): Replace AH_TEMPLATE with AC_DEFINE depending atomic-intrinsics option.
* Add AO_DISABLE_GCC_ATOMICS, AO_PREFER_BUILTIN_ATOMICS macros to configureIvan Maidanski2016-04-191-0/+6
| | | | | * configure.ac (AO_DISABLE_GCC_ATOMICS, AO_PREFER_BUILTIN_ATOMICS): Declare and document (using AH_TEMPLATE).
* Fix typo in configure.ac (in description of AO_ASM_X64_AVAILABLE)Ivan Maidanski2016-04-191-1/+1
| | | | * configure.ac (AO_ASM_X64_AVAILABLE): Fix typo ("available").
* New configure option (--enable-werror) to treat warnings as compiler errorsIvan Maidanski2015-05-171-0/+6
| | | | | * configure.ac (werror): Test --enable-werror option to add -Werror to CFLAGS.
* Update emails/links due to project site transitionIvan Maidanski2014-02-211-1/+1
| | | | | | | | * AUTHORS: Update email. * README.md: Update links to BDWGC/libatomic_ops site. * doc/README_stack.txt: Likewise. * README.md: Update mailing list info. * configure.ac: Likewise.
* Bump atomic_ops versionIvan Maidanski2014-01-311-1/+1
| | | | | | * README.md: Bump version to 7.5.0. * configure.ac: Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_MINOR): Likewise.
* [7.4.0]libatomic_ops-7_4_0Ivan Maidanski2013-11-171-1/+1
| | | | | | | | | | | Bump version to 7.4.0; change policy regarding version numbers * ChangeLog: Update. * README.md: Bump version. * configure.ac (AC_INIT): Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_MINOR): Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_ALPHA): Replace to AO_VERSION_MICRO; add comment.
* Define AO_NO_PTHREADS in configure if no pthreads (Win32 and VxWorks)Ivan Maidanski2013-05-261-5/+11
| | | | | | * configure.ac (have_pthreads): Do not define to true if check for pthread_self failed. * configure.ac (AO_NO_PTHREADS): Define if not have_pthreads.
* Better document configure THREADDLLIBS variableIvan Maidanski2013-05-261-2/+8
| | | | * configure.ac (THREADDLLIBS, have_pthreads): Add comments.
* Fix AM_CONFIG_HEADER in configure for autoconf-2.69-1Manuel Serrano2013-04-031-1/+1
| | | | | * configure.ac (AM_CONFIG_HEADER): Replace obsolete macro with with AC_CONFIG_HEADERS one.
* Remove unsafe emulation-based implementation of double CAS (SunCC/x86)Ivan Maidanski2012-09-291-1/+1
| | | | | | | | | | | | * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_double_and_swap_double_full): Do not test AO_WEAK_DOUBLE_CAS_EMULATION and remove emulation-based implementation since it is unsafe (not atomic with respect to other kinds of updates) leading to test_stack failure. * configure.ac (AO_WEAK_DOUBLE_CAS_EMULATION): Update and refine documentation. * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_double_and_swap_double_full): Likewise.
* Bump libatomic_ops versionIvan Maidanski2012-05-151-1/+1
| | | | | | * README: Bump version to 7.3alpha3. * configure.ac: Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_ALPHA): Likewise.
* [7.3alpha2]libatomic_ops-7_3alpha2Ivan Maidanski2012-05-151-1/+1
| | | | | | | | | Bump libatomic_ops version to 7.3alpha2 * ChangeLog: Set release dates. * README: Bump version to 7.3alpha2. * configure.ac: Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_ALPHA): Likewise.
* Fix configure to define __PIC__ macro explicitly only if not done by GCCIvan Maidanski2012-03-281-8/+16
| | | | | | | | * configure.ac (PICFLAG): Adjust AC_MSG_CHECKING message; report "none" result if no -fPIC is needed (for Cygwin/MinGW); determine whether GCC -fPIC option causes __PIC__ macro definition; pass -D __PIC__ to PICFLAG (instead of CFLAGS) only if not defined automatically in case -fPIC specified; update comment.
* configure: Require automake 2.61 instead of 2.63Ivan Maidanski2012-03-051-1/+1
| | | | | * configure.ac (AC_PREREQ): Use value of 2.63 (relax requirement to enable autoreconf on current Mac OS X).
* configure: Require automake 2.63 (widely spread) instead of 2.64Ivan Maidanski2012-02-171-1/+1
| | | | * configure.ac (AC_PREREQ): Use value of 2.63 (instead of 2.64).
* configure: Specify bug reports email in AC_INITIvan Maidanski2012-01-201-1/+1
|
* configure: Do not pass '-Wextra' option to GCC if unsupportedIvan Maidanski2011-12-131-1/+9
| | | | | | * configure.ac (WEXTRA): New variable (set to "-Wextra" if the latter is supported by GCC, otherwise to "-W"). * configure.ac (CFLAGS): Use WEXTRA variable.
* Define NDEBUG via config.h instead of CFLAGS;Ivan Maidanski2011-12-121-1/+7
| | | | | | | | | do not define NDEBUG if '--enable-assertions' passed to configure * configure.ac (CFLAGS): Do not add "-DNDEBUG". * configure.ac (assertions): New AC argument. * configure.ac (NDEBUG): New AC macro (defined only if "assertions" AC argument is not set to "yes").
* Add new macro (AO_PREFER_GENERALIZED) to favor generalized primitivesIvan Maidanski2011-12-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | over direct assembly-based ones * configure.ac (AO_PREFER_GENERALIZED): New AC template. * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_test_and_set, AO_HAVE_test_and_set, AO_fetch_and_add, AO_HAVE_fetch_and_add, AO_fetch_and_add1, AO_HAVE_fetch_and_add1, AO_fetch_and_sub1, AO_HAVE_fetch_and_sub1): Do not define if AO_PREFER_GENERALIZED. * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set, AO_HAVE_test_and_set, AO_fetch_and_add, AO_HAVE_fetch_and_add, AO_fetch_and_add1, AO_HAVE_fetch_and_add1, AO_fetch_and_sub1, AO_HAVE_fetch_and_sub1): Likewise. * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set_full, AO_HAVE_test_and_set_full): Likewise. * src/atomic_ops/sysdeps/gcc/hexagon.h (AO_fetch_and_add, AO_HAVE_fetch_and_add, AO_test_and_set, AO_HAVE_test_and_set): Likewise. * src/atomic_ops/sysdeps/gcc/ia64.h (AO_fetch_and_add1_acquire, AO_HAVE_fetch_and_add1_acquire, AO_fetch_and_add1_release, AO_HAVE_fetch_and_add1_release, AO_fetch_and_sub1_acquire, AO_HAVE_fetch_and_sub1_acquire, AO_fetch_and_sub1_release, AO_HAVE_fetch_and_sub1_release, AO_int_fetch_and_add1_acquire, AO_HAVE_int_fetch_and_add1_acquire, AO_int_fetch_and_add1_release, AO_HAVE_int_fetch_and_add1_release, AO_int_fetch_and_sub1_acquire, AO_HAVE_int_fetch_and_sub1_acquire, AO_int_fetch_and_sub1_release, AO_HAVE_int_fetch_and_sub1_release): Likewise. * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_test_and_set, AO_HAVE_test_and_set, AO_test_and_set_acquire, AO_HAVE_test_and_set_acquire, AO_test_and_set_release, AO_HAVE_test_and_set_release, AO_test_and_set_full, AO_HAVE_test_and_set_full): Likewise. * src/atomic_ops/sysdeps/gcc/x86.h (AO_fetch_and_add_full, AO_HAVE_fetch_and_add_full, AO_and_full, AO_HAVE_and_full, AO_or_full, AO_HAVE_or_full, AO_xor_full, AO_HAVE_xor_full): Likewise. * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_fetch_and_add_full, AO_HAVE_fetch_and_add_full, AO_and_full, AO_HAVE_and_full, AO_or_full, AO_HAVE_or_full, AO_xor_full, AO_HAVE_xor_full): Likewise. * src/atomic_ops/sysdeps/hpc/ia64.h (AO_fetch_and_add1_acquire, AO_HAVE_fetch_and_add1_acquire, AO_fetch_and_add1_release, AO_HAVE_fetch_and_add1_release, AO_fetch_and_sub1_acquire, AO_HAVE_fetch_and_sub1_acquire, AO_fetch_and_sub1_release, AO_HAVE_fetch_and_sub1_release): Likewise. * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set_acquire, AO_HAVE_test_and_set_acquire, AO_test_and_set_release, AO_HAVE_test_and_set_release, AO_test_and_set_full, AO_HAVE_test_and_set_full): Likewise. * src/atomic_ops/sysdeps/icc/ia64.h (AO_fetch_and_add1_acquire, AO_HAVE_fetch_and_add1_acquire, AO_fetch_and_add1_release, AO_HAVE_fetch_and_add1_release, AO_fetch_and_sub1_acquire, AO_HAVE_fetch_and_sub1_acquire, AO_fetch_and_sub1_release, AO_HAVE_fetch_and_sub1_release): Likewise. * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_fetch_and_add_full, AO_HAVE_fetch_and_add_full, AO_fetch_and_add1_full, AO_HAVE_fetch_and_add1_full, AO_fetch_and_sub1_full, AO_HAVE_fetch_and_sub1_full): Likewise. * src/atomic_ops/sysdeps/sunc/x86.h (AO_fetch_and_add_full, AO_HAVE_fetch_and_add_full, AO_and_full, AO_HAVE_and_full, AO_or_full, AO_HAVE_or_full, AO_xor_full, AO_HAVE_xor_full): Likewise. * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_fetch_and_add_full, AO_HAVE_fetch_and_add_full, AO_and_full, AO_HAVE_and_full, AO_or_full, AO_HAVE_or_full, AO_xor_full, AO_HAVE_xor_full): Likewise. * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full, AO_HAVE_test_and_set_full): Do not define if AO_PREFER_GENERALIZED (but only in case of ARMv6+). * src/atomic_ops/sysdeps/msftc/common32_defs.h (_InterlockedIncrement, _InterlockedDecrement, _InterlockedExchangeAdd): Do not declare intrinsic if both AO_PREFER_GENERALIZED and AO_ASSUME_WINDOWS98. * src/atomic_ops/sysdeps/msftc/common32_defs.h (AO_fetch_and_add_full, AO_HAVE_fetch_and_add_full, AO_fetch_and_add1_full, AO_HAVE_fetch_and_add1_full, AO_fetch_and_sub1_full, AO_HAVE_fetch_and_sub1_full): Do not define if both AO_PREFER_GENERALIZED and AO_ASSUME_WINDOWS98. * src/atomic_ops/sysdeps/msftc/x86_64.h (_InterlockedIncrement64, _InterlockedDecrement64, _InterlockedExchangeAdd64): Do not declare intrinsic if AO_PREFER_GENERALIZED.
* Add all AO control macros to configure (as templates)Ivan Maidanski2011-12-011-0/+45
| | | | | | | | | | | * configure.ac (AO_USE_NANOSLEEP, AO_USE_NO_SIGNALS, AO_USE_WIN32_PTHREADS, AO_TRACE_MALLOC, AO_GENERALIZE_ASM_BOOL_CAS, AO_USE_PTHREAD_DEFS, AO_ASM_X64_AVAILABLE, AO_ASSUME_VISTA, AO_ASSUME_WINDOWS98, AO_CMPXCHG16B_AVAILABLE, AO_FORCE_USE_SWP, AO_NO_SPARC_V9, AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE, AO_UNIPROCESSOR, AO_USE_INTERLOCKED_INTRINSICS, AO_USE_PENTIUM4_INSTRS, AO_USE_SYNC_CAS_BUILTIN, AO_WEAK_DOUBLE_CAS_EMULATION): New AC template.