Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Improved compatibility, portability and standards conformance.
- Since it is not possible to portably and reliably re-use the core's
symbols in plugins, symbols are no longer exported unless explicitly
required, in the UNIX builds. This mimics the Windows behavior and
adds HPM compatibility to OSes such as FreeBSD. Credits to Andrei Karas
for making this possible.
- For convenience, it is no longer necessary to call GET_SYMBOL, since
the plugin will automatically import all the available symbols when
it's loaded, depending on the included headers.
- Plugins are now supposed to include the "common/hercules.h" header
before including anything else. Incluing common/HPMi.h,
common/cbasetypes.h or conf/core.h is no longer necessary, as those
are guaranteed to be automatically included by hercules.h.
- HPM API version bumped to 1.1.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- This fixes plugin compilation on FreeBSD and Debian failing due to a
missing -fPIC, in combination with some upcoming changes.
Signed-off-by: Haru <haru@dotalux.com>
|
|
and higher.
For enable LTO need run: ./configure --enable-lto
|
|
- This fixes compilation on systems such as FreeBSD, where -lexecinfo
is necessary, or Cygwin, where execinfo.h is not available.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Also enable in configure linker flag -rdynamic.
|
|
Fix small typo.
|
|
This will allow fine-grained detection of the sanitizer options
supported by the current compiler.
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
If set check_occupied_cells to 0 it will allow walk to occupied cells
And it heavy reduce CPU usage on walking.
|
|
It was blocked in configure.
|
|
This flag hide some usefull warnings.
|
|
- This allows Hercules to correctly detect MariaDB and other drop-in
replacements in distributions that rename their libmysqlclient (i.e.
Debian / Ubuntu renaming it to libmariadbclient).
- Closes issue #368
- Due to a bug in Ubuntu 14.04 LTS (incorrect output by the
mariadb-provided version of `mysql_config --libs` and missing
dependencies of libmariadbclient-dev), users of said distribution will
have to manually specify ./configure LIBS="-lssl -lcrypto" as well as
manually install the libssl-dev package, if they wish to use
libmariadbclient-dev, as it will be unable to link otherwise (note:
this issue isn't Hercules-specific)
- Special thanks to Andrei Karas
Signed-off-by: Haru <haru@dotalux.com>
|
|
- It is now possible to pass custom LIBS values to ./configure by
specifying them on the command line
Signed-off-by: Haru <haru@dotalux.com>
|
|
This option enable static build for server binaries and map cache.
For plugins this option enable static linking with gcc.
|
|
This option add run time checks for buffer overflows and some other
memory related things.
Not recommended for production.
|
|
- Functions that expect a printf-style format string are now marked as
such, so that gcc/clang will emit a warning warn you if you mismatch
format string and arguments.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Language extensions, such as _GNU_SOURCE are now enabled through
CPPFLAGS by the configure script, rather than within the source code.
- Moved some configure-time CFLAGS to CPPFLAGS, where appropriate.
- Fixes bugreport:8211, thanks to Neoth
http://hercules.ws/board/tracker/issue-8211-compiling-warning-in-linux
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Follow-up to c50e094dff1898badd4136d9cdeb7318c803cb61
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixed some warnings we had missed.
- Improved -W cflag detection routines.
- Only use -Wshadow if it's actually useful.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- They are now on par with the Xcode project (and similar to the MSVC
ones) - this will make it easier to notice issues before committing in
future.
- If this causes, on your system, warnings that we didn't detect, please
let us know!
Signed-off-by: Haru <haru@dotalux.com>
|
|
- No functional changes. That's just the correct OS X file extension for
dynamic libs.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- The --disable-packetver-re (or --enable-packetver-re=no) flag
prevents the definition of PACKETVER_RE (without editing mmo.h)
- The --with-key1=, --with-key2=, --with-key3= flags override the
encryption key defined by the current packetver. All three flags are
required if at least one is used, or they'll be ignored.
- These options are mostly useful for buildbots, developers who often
use git bisect, or users who want to minimize their diffs and still
want to override those settings.
- (unrelated minor tweak) Silenced an unnecessarily verbose STDERR
message caused by the $CC shipped with clang-5 during the MinGW check.
|
|
- This fixes an issue with timers that stop working after about 24-49
days when the tick overflows (note that this may happen much earlier
than that, and at hard to predict times, on some systems)
- Updated the RDTSC help message in the configure script to also warn
users about issues with SpeedStep enabled systems.
- On Windows, tick() still has a resolution of 10~15ms (or even as low
as 100ms on some systems). A TODO comment (thanks, Ai4rei) was added
for a follow-up patch, as I want this one to be as small as possible)
- Note: on Windows versions earlier than 6.x (Vista, Server 2008), the
tick overflow issue is NOT fixed, since they don't support the
function used to retrieve a 64 bit tick. This isn't a big issue, since
those platforms are already - or going soon to be - out of their
extended support period, and it's already advisable to upgrade, for
other reasons. If you're the unfortunate user of such a system, it is
recommended that you reboot your machine at least once every 49 days
for Hercules to work reliably.
- Note: To clear some doubts, since I've already been asked, this has
absolutely NOTHING to do with 32/64 bit CPUs or OSes. It's all about
a variable's size, not the size of registers of your CPU, and your
32bit CPU will be able to handle this just fine.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Slightly reformatted the include files (as produced by the new tool)
- You normally won't need to use the generation tool, but in case you
do, the software requirements are:
* A Unix-compatible system (cygwin may work, or may not), capable to
use the Hercules configure/make build system
* perl (the perl executable must be in your $PATH)
* doxygen (the command-line doxygen executable must be in your $PATH)
- The generation tool was developed in collaboration with Ind
(originally in php, the file here included is a tweaked version ported
to perl)
Signed-off-by: Haru <haru@dotalux.com>
|
|
- On certain platforms, shared objects will be built without linker
errors even if they have undefined references (but they'll fail to
load if those references can't be found at runtime).
- This resolves issues with plugins that on linux seem to compile, but
won't load (or will lead completely unpredictable results) because
they use symbols that may not exist. Special thanks to oss10110 for
bringing it up.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Both Renewal and Pre-Renewal branches will now be built and tested.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Replaced old SVN version string with a git-compatible one
- Fixed configure.in warnings on autoconf 2.68 or newer (wrapped code
snippets in AC_LANG_SOURCE calls, as recommended by autoconf)
- Re-generated configure script with autoconf 2.69
Signed-off-by: Haru <haru@dotalux.com>
|
|
http://hercules.ws/board/topic/549-introducing-hercules-plugin-manager/
Signed-off-by: shennetsind <ind@henn.et>
|
|
Making --enable-debug useful once again. in r17061 lighta made --enable-debug enforce -wconversion, -Wno-switch, and other options (instead of making them optional) and by doing that lighta cluttered --enable-debug output making it incredibly hard to find important errors
Signed-off-by: shennetsind <ind@henn.et>
|
|
-Upd configure to disable warning only when enable-debug option ain't selected. (thus if you wanna see more warnings compile with enable-debug)
-Add -Wconversion in configure.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17061 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
during normal build!)
Note
The files i added / modifications i did, are not affecting a normal build
nothing gets changed yet!
Linux 2.5+ only yet.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16271 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
support (usually older OSX llvm versions ..)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16226 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
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
|
|
- Removed @ Autoconf/make and CMake, VC Projects will be cleaned in a additional commit.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16203 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16200 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
Dependency Handling
- "Optimized" the build Output using Makefiles - to Kernel style build output.
- Changed dependency handling to common (core), by generating one lib file (ar) and link against that
instead of assigning all deps individually in every subproject
- Changed header dependency handling in Subproject makefiles - requiring all common/ headers.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16198 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
adequate platforms.
Info:
No need for --enable-64bit anymore,
you can force to build 32bit bin's on such platforms by adding a --disable-64bit (or --enable-64bit=no) ..
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16197 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16196 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15584 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15573 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
http://www.hyperrealm.com/libconfig/):
- Updated VS9/10 project files.
- Updated `configure` & `Makefile`s.
- New GM, Commands & Permissions system:
- '''This is a backwards compatibility breaking update''', please read tid:58877
- Replaced GM levels with Player Groups.
- Commands permissions & other privileges now depend on group, not GM level.
- `@help` command improvements: requires "commandname" param and shows more detailed info about commands.
- Modified GM whisper system to deliver messages basing on permissions, not GM level.
- Remote trade request is now possible only if player is allowed to use `@trade` command as well.
- Added a proper permission to use `/changemaptype` command.
- `clif_displaymessage` is now capable of displaying multiline messages.
- All `ACMD_FUNC`s are static now, and the only way to invoke them is with `is_atcommand()`; all client commands (starting with `/`) are now translated into corresponding atcommands (with exception of `/kick` used on monster, as there is no atcommand to kill single monster).
- Removed nonsense "bot check" triggering when player blocked (`/ex`) Server.
- Merged `@monster`, `@monsterbig` and `@monstersmall`.
- Improved flow of atcommand execution to avoid revealing info about online players or existing commands to non-privileged players.
- Merged `atcommand` and `charcommand` script functions (`charcommand` is aliased to `atcommand`).
- Fixed `atcommand` script function reading unknown memory area (possible access violation).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15572 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
* TXT save engine is removed and no longer supported.
* See also tid:53926, tid:57717.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15503 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
* Fixed TXT-removal branch configure and Makefile errors and removed TXT-only leftovers.
* SQL libs are now required to configure/make TXT-removal branch.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15499 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
enable-debug being broken.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15197 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15128 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15065 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
added through -O2), since the code is not aliasing safe and causes warnings with gcc.
- This also fixes a missing line in the pre-built configure script (since r14870).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14935 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
configure script.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14870 54d463be-8e91-2dee-dedb-b68131a5f0ec
|