diff options
author | blacksirius <blacksirius@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-06-03 18:53:02 +0000 |
---|---|---|
committer | blacksirius <blacksirius@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-06-03 18:53:02 +0000 |
commit | 4feeab8c61334ec73172fa01cda951dafde2505f (patch) | |
tree | 078521eec3b26bd7fcfd42c9d1615d35be6b3ec9 /configure.in | |
parent | 40ede8fd21bdb39c01665c90aa420a03a712c96c (diff) | |
download | hercules-4feeab8c61334ec73172fa01cda951dafde2505f.tar.gz hercules-4feeab8c61334ec73172fa01cda951dafde2505f.tar.bz2 hercules-4feeab8c61334ec73172fa01cda951dafde2505f.tar.xz hercules-4feeab8c61334ec73172fa01cda951dafde2505f.zip |
feature merge bs-coreoptimize->trunk: Atomic Operations, Threading, Spinlock implemnetation. [commit 1/2, windows will followup]
- Added Abstractions for Atomic Operations (lock instructions.. windows guy's may now this as Interlocked* stuff ..)
- Added Threading api abstraction for Pthread based OS's and Windows
- Added Spinlock Implementation (uses CAS / if you need more informations - just read the source - its simple.)
- Due to Interlocked(Compare)Exchange64 .. we now require at least i686 (Pentium Pro) for 32Bit Builds :)
youll also may feel some performance improvements when using 32bit builsd due to "newer" minimal arch
the compiler is now able to use CMOV's ....
================================================================
= Important Warning:
================================================================
Dont use threading at the moment athena is not threadsafe!
you'll mess up everthing when accessing data from other threads .., no synchronization is provided.
A way to process tasks asynchronously will come up after / with the new socket system.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16221 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/configure.in b/configure.in index ef029bcd5..2d3df1ce2 100644 --- a/configure.in +++ b/configure.in @@ -9,6 +9,7 @@ AC_CONFIG_FILES([Makefile src/common/Makefile]) AC_CONFIG_FILES([3rdparty/mt19937ar/Makefile 3rdparty/libconfig/Makefile]) AC_CONFIG_FILES([src/char/Makefile src/login/Makefile]) AC_CONFIG_FILES([src/map/Makefile src/tool/Makefile]) +AC_CONFIG_FILES([src/test/Makefile]) AC_GNU_SOURCE @@ -337,6 +338,31 @@ if test "$enable_64bit" = "no" ; then fi +# +# check if we're producing 32bit code - so well produce binarys for at least i686 (speedup: cmovs, and cmpchg8 support) +# +AC_MSG_CHECKING([whether $CC produces 32bit code]) +AC_RUN_IFELSE( + [ + int main(int argc, char **argv){ + if(sizeof(void*) == 4) return 0; + else return 1; + } + ], + [ + AC_MSG_RESULT([yes]) + CFLAGS="$CFLAGS -march=i686" + LDFLAGS="$LDFLAGS -march=i686" + ], + [ + AC_MSG_RESULT([no]) + ], + [ + AC_MSG_RESULT([guessing no]) + ] +) + + AC_MSG_CHECKING([whether $CC supports -Wno-unused-parameter]) OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wno-unused-parameter" @@ -637,6 +663,20 @@ fi # +# pthread +# +AC_CHECK_LIB([pthread], [pthread_create], [], [AC_MSG_ERROR([pthread library not found or incompatible])]) +AC_CHECK_LIB([pthread], [pthread_sigmask], [], [AC_MSG_ERROR([pthread library not found or incompatible])]) +AC_CHECK_LIB([pthread], [pthread_attr_init], [], [AC_MSG_ERROR([pthread library not found or incompatible])]) +AC_CHECK_LIB([pthread], [pthread_attr_setstacksize], [], [AC_MSG_ERROR([pthread library not found or incompatible])]) +AC_CHECK_LIB([pthread], [pthread_attr_destroy], [], [AC_MSG_ERROR([pthread library not found or incompatible])]) +AC_CHECK_LIB([pthread], [pthread_cancel], [], [AC_MSG_ERROR([pthread library not found or incompatible])]) +AC_CHECK_LIB([pthread], [pthread_join], [], [AC_MSG_ERROR([pthread library not found or incompatible])]) + +LDFLAGS="$LDFLAGS -lpthread" + + +# # MySQL library # |