| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check for sys/auxv.h to avoid the following uclibc build failure on
aarch64:
crc32c.c:277:10: fatal error: sys/auxv.h: No such file or directory
277 | #include <sys/auxv.h>
| ^~~~~~~~~~~~
Fixes:
- http://autobuild.buildroot.org/results/08591fbf9677ff126492c50c15170c641bcab56a
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Disables Werror by default. Allows user to conditionally enable -Werror
Change originally to avoid the following build failure:
In file included from hash.c:7:
xxhash.h:2667:5: error: #warning is a GCC extension [-Werror]
2667 | # warning "XXH3 is highly inefficient without ARM or Thumb-2."
| ^~~~~~~
xxhash.h:2667:5: error: #warning "XXH3 is highly inefficient without ARM or Thumb-2." [-Werror=cpp]
Fixes:
- http://autobuild.buildroot.org/results/3124bae73c207f1a118e57e41e222ef464ccb297
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
| |
|
|
|
|
|
|
| |
The header generated comes with $ IDs thus breaking the build.
The probes are set with const address arguments already
which just add the qualifier again.
|
|
|
|
|
|
| |
Use pkg-config to retrieve openssl dependencies such as -latomic or -lz
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See BUILD for compilation details.
See t/startfile.lua for configuration examples.
(see also https://github.com/memcached/memcached-proxylibs for
extensions, config libraries, more examples)
NOTE: io_uring mode is _not stable_, will crash.
As of this commit it is not recommended to run the proxy in production.
If you are interested please let us know, as we are actively stabilizing
for production use.
|
|
|
|
|
|
| |
now that all of the read/writes to the notify pipe are in one place,
we can easily use linux eventfd if available. This also allows batching
events so we're not firing the same notifier constantly.
|
|
|
|
|
|
|
| |
libevent 1 doesn't have the socket id wrapper. since version 2 is 10
years old we should fail to build on version 1.
explicit cast to avoid possible pedantic build flags complains (ie can be the old iovec interface)
|
|
|
|
|
|
| |
Use the .arch_extension directive so that a config options and
special cflags aren't required. Add a few tests for both the
software and hardware implementations
|
|
|
|
|
|
|
| |
Sigignore has been marked as deprecated on Fedora rawhide and
signal function is used already on multiple places in memcached.c
fix #690
|
|
|
|
|
|
|
|
| |
Also re-adds the start time detection of intel instruction.
I never got a proper test platform for the ARM bits and it's been stuck
as a configure flag. I'd be happy to add it back if that situation
changes.
|
|
|
|
| |
This reverts commit 651380cd4863033f4668f09c6a96819044e11f69.
|
|
|
|
|
|
| |
1. configure.ac - Add --disable-unix-socket to disable and define DISABLE_UNIX_SOCKET.
2. memcached.* - Guard all unix socket-related codes with DISABLE_UNIX_SOCKET. Take note of negative checking (#ifndef DISABLE_UNIX_SOCKET instead of #ifdef UNIX_SOCKET). This is just to make sure that current code even without a config file is the default or supports unix socket.
3. t/ - Check first if unix socket is supported before executing some unix socket-related tests.
|
|
|
|
|
|
|
| |
pread[v]() is missing on some platforms. We had a test added to build
under OS X, but the lseek arguments were swapped and tests would've
never passed. I never force-tested the replacement code until checking
this out for a cygwin build error :(
|
|
|
|
|
|
| |
on some systems (e.g. FreeBSD), shared libraries do not contain symbols
thus build failing for wrong reasons.
here just trying to compile dumb code to check it instead.
|
| |
|
|
|
|
| |
links to a forwarder for the wiki page.
|
|
|
|
|
|
|
|
|
|
|
| |
allows specifying a megabyte limit for either response objects or read
buffers. this is split among all of the worker threads.
useful if connection limit is extremely high and you want to
aggressively close connections if something
happens and all connections become active at the same time.
missing runtime tuning.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Compiling with ASAN can help find improper memory management by detecting
leaks, use after frees, double frees, buffer overflows, etc.
It will profile the binary which has an effect on the binary size and
possibly a small impact on performance (although a lot better than valgrind).
We can use this from GCC-4.8 onwards.
To enable, during configure time, run:
./configure --enable-asan
Docs: https://github.com/google/sanitizers/wiki/AddressSanitizer
Limitations (Pulled from Clang docs, but should be similar for GCC):
https://clang.llvm.org/docs/AddressSanitizer.html#limitations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AC_RUN_IFELSE does not work when cross-compiling so we need to provide
fallback methods for those cases.
I tried to use constructs that work with Autoconf 2.52.
Alas, I wasn't able to generate a working build system with that version.
Autoconf 2.58 / Automake 1.7.9 is the earliest combo that I could get
to work (with and without this patch).
Perhaps it's time for a slight bump for the required version numbers?
Cross-compiles sucessfully against:
riscv64-unknown-linux-gnu
|
|
|
|
|
|
|
|
| |
During config step just being "contented" by generating the header,
there is no symbols to attach for, no chance to work as is.
Changing a probe signature, on some platforms, pthread_t is an
opaque type thus casting to a type large enough to hold it
for all oses.
|
|
|
|
|
|
|
|
|
|
| |
severe bug in item chunk fixup (wasn't doing it at all!)
failed to check on my 32bit builders... and 32bit platforms weren't
working at all. This is a bit of a kludge since I'm still working
around having ptrdiff, but it seems to work.
also fixes a bug with missing null byte for meta filename.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"-e /path/to/tmpfsmnt/file"
SIGUSR1 for graceful stop
restart requires the same memory limit, slab sizes, and some other
infrequently changed details. Most other options and features can
change between restarts. Binary can be upgraded between restarts.
Restart does some fixup work on start for every item in cache. Can take
over a minute with more than a few hundred million items in cache.
Keep in mind when a cache is down it may be missing invalidations,
updates, and so on.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of the work done by Tharanga. Some commits squashed in by
dormando. Also reviewed by dormando.
Tested, working, but experimental implementation of TLS for memcached.
Enable with ./configure --enable-tls
Requires OpenSSL 1.1.0 or better.
See `memcached -h` output for usage.
|
|
|
|
|
| |
To make it less likely that distros enable seccomp by default, mark it
as EXPERIMENTAL in both readme and configure help.
|
|
|
|
|
| |
users also need to add CFLAGS="-march=armv8-a+crc" if they have actual
aarch64 platforms.
|
|
|
|
|
| |
For https://github.com/memcached/memcached/issues/365
On RHEL(5|6|7) the name of the defined constant in sasl.h is SASL_CB_GETCONFPATH and not SASL_CB_GETCONF.
This adds support for HAVE_SASL_CB_GETCONFPATH to be set to nonzero when the SASL implementation supports SASL_CB_GETCONFPATH. This will be used in sasl_defs.c when ./configure is run with "--enable-sasl".
|
|
|
|
|
|
|
|
|
|
|
| |
ARMv8 (and in general aarch64) has flipped some strictness requirements.
However, at some point in history the NEED_ALIGN configure check code was
optimized away by GCC.
This fixes detection of alignment, as well as fixes an unaligned access that
snuck in via the logging code.
Also fixes a 64bit GCC atomics test that possibly never worked before.
|
|
|
|
|
| |
./configure --enable-extstore to compile the feature in
specify -o ext_path=/whatever to start.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement an aggressive version of drop_privileges(). Additionally add
similar initialization function for threads drop_worker_privileges().
This version is similar to Solaris one and prohibits memcached from
making any not approved syscalls. Current list narrows down the allowed
calls to socket sends/recvs, accept, epoll handling, futex (and
dependencies - mmap), getrusage (for stats), and signal / exit
handling.
Any incorrect behaviour will result in EACCES returned. This should be
restricted further to KILL in the future (after more testing).
The feature is only tested for i386 and x86_64. It depends on bpf
filters and seccomp enabled in the kernel. It also requires libsecomp
for abstraction to seccomp filters. All are available since Linux 3.5.
Seccomp filtering can be enabled at compile time with --enable-seccomp.
In case of local customisations which require more rights, memcached
allows disabling drop_privileges() with "-o no_drop_privileges" at
startup.
Tests have to run with "-o relaxed_privileges", since they require
disk access after the tests complete. This adds a few allowed syscalls,
but does not disable the protection system completely.
|
|
|
|
|
|
|
|
|
| |
-o -> --extended, but some of those options should be top level. can fix in
future iterations.
update --help and golf the wordcount a bit
add long options to manpage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* accesses
* amount
* append
* command
* cyrillic
* daemonize
* detaches
* detail
* documentation
* dynamically
* enabled
* existence
* extra
* implementations
* incoming
* increment
* initialize
* issue
* javascript
* number
* optimization
* overall
* pipeline
* reassign
* reclaimed
* response
* responses
* sigabrt
* specific
* specificity
* tidiness
|
|
|
|
|
|
|
|
|
| |
We only explicitly tested for short atomics. Then I added 8byte atomic usage
in the logger: now separately test for those.. since some systems can have one
but not the other, I'd rather use atomics where available then fall back to
a mutex when necessary.
Reproduced this on a raspberry pi 2.
|
|
|
|
|
| |
- avoid initializing the gnu stack (foreign)
- make memcached easier to cross-compile
|
|
|
|
|
|
| |
... there should always be an 'automake' alias, and we haven't had an
"unsupported" version in probably ten years. hopefully this stops systems with
upgraded automakes from breaking every time.
|
|
|
|
|
|
|
|
|
|
| |
See bug/pull discussions
- http://code.google.com/p/memcached/issues/detail?id=100
- https://github.com/memcached/memcached/pull/3
- http://code.google.com/p/memcached/issues/detail?id=360
Conflicts:
configure.ac
|
| |
|
| |
|
|
|
|
| |
when GCC is clang
|
|
|
|
| |
-pthread was added as part of setting up the gcov options
|
| |
|
|
|
|
|
| |
I was naive. GCC atomics were added in 4.1.2, and not easily detectable
without configure tests. 32bit platforms, centos5, etc.
|
| |
|
|
|
|
|
|
|
|
|
| |
I've still removed the "set the time now" stuff that the flush_all commands
do. They push to one second in the past, and with some startup fudge the tests
all pass.
Relying on libevent's firing of clock_handler was drifting ~5ms per tick.
Fudging it further wouldn't be a great idea.
|
| |
|
| |
|
| |
|