Opened 9 years ago
Closed 9 years ago
#48085 closed defect (worksforme)
Upgrade Redis 3.0.2 fatal error: 'jemalloc/jemalloc.h' file not found
Reported by: | muriel.hernan@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.3 |
Keywords: | Cc: | mp@… | |
Port: | redis |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
In OS X 10.10.3 to run this command:
sudo port selfupdate && sudo port upgrade outdated
Error: org.macports.build for port redis returned: command execution failed Please see the log file for port redis for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_redis/redis/main.log Error: Unable to upgrade port: 1
Attachments (2)
Change History (10)
Changed 9 years ago by muriel.hernan@…
comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|---|
Keywords: | jemalloc.h removed |
Owner: | changed from macports-tickets@… to brianjlandau@… |
Port: | redis added; Redis removed |
That was not a clean build attempt. Please clean and try again.
comment:2 Changed 9 years ago by zzanderr
In the README included in the source, I see the following:
Allocator --------- Selecting a non-default memory allocator when building Redis is done by setting the `MALLOC` environment variable. Redis is compiled and linked against libc malloc by default, with the exception of jemalloc being the default on Linux systems. This default was picked because jemalloc has proven to have fewer fragmentation problems than libc malloc. To force compiling against libc malloc, use: % make MALLOC=libc To compile against jemalloc on Mac OS X systems, use: % make MALLOC=jemalloc
Is it possible that it is compiling against jemalloc on Mac OS X by default?
I am experiencing the same problem with an _install_ build, on Leopard 10.5.8 (PPC) myself.
Changed 9 years ago by mp@…
Attachment: | redis-fails-even-with-jemalloc-installed.log added |
---|
Failure when building redis after first installing jemalloc port
comment:5 Changed 9 years ago by mp@…
According to the redis README, a make distclean
is needed for the supplied dependencies to build correctly:
Fixing build problems with dependencies or cached build options --------- Redis has some dependencies which are included into the "deps" directory. "make" does not rebuild dependencies automatically, even if something in the source code of dependencies is changes. When you update the source code with `git pull` or when code inside the dependencies tree is modified in any other way, make sure to use the following command in order to really clean everything and rebuild from scratch: make distclean This will clean: jemalloc, lua, hiredis, linenoise.
so adding
compiler.whitelist macports-gcc pre-build { system -W ${worksrcpath} "make distclean" }
works fine.
(The jemalloc supplied with redis doesn't get configured correctly if /usr/bin/clang
is chosen as compiler, and fails with
:info:build configure: error: C preprocessor "/lib/cpp" fails sanity check
in such a case.)
Some other tests:
If the line
build.args-append MALLOC=jemalloc
in the redis Portfile is commented out, redis installs fine.
Redis fails to build even if the jemalloc port is installed manually first.
Attached log: attachment:redis-fails-even-with-jemalloc-installed.log
The jemalloc supplied with redis should apparently be used.
comment:6 Changed 9 years ago by larryv (Lawrence Velázquez)
I am unable to reproduce any of these problems on my Yosemite system with Xcode 6.3.2.
Running make distclean
should not be necessary because MacPorts should always be working from a clean source distribution. We don’t support incremental builds or building from a dirty state.
Using FSF GCC as the compiler is not an acceptable solution. In any case, I do not see the preprocessor failure with Apple LLVM Compiler 6.1.0.
If the default allocator on OS X is libc’s, why are we explicitly using jemalloc?
comment:7 Changed 9 years ago by mf2k (Frank Schima)
Owner: | changed from brianjlandau@… to macports-tickets@… |
---|
See #47649.
comment:8 Changed 9 years ago by dbevans (David B. Evans)
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Update to version 3.0.7 in r145650.
Builds successfully on local El Capitan and on all active buildbots (including Yosemite)
log redis upgrade