Skip to content

Instantly share code, notes, and snippets.

@lguardiola
Created April 5, 2012 19:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lguardiola/2313561 to your computer and use it in GitHub Desktop.
Save lguardiola/2313561 to your computer and use it in GitHub Desktop.
Patch to compile Ruby Enterprise Edition 1.8.7 for glibc >= 2.14
diff --git a/distro/google-perftools-1.7/src/tcmalloc.cc b/distro/google-perftools-1.7/src/tcmalloc.cc
index 8d94d20..0769425 100644
--- a/distro/google-perftools-1.7/src/tcmalloc.cc
+++ b/distro/google-perftools-1.7/src/tcmalloc.cc
@@ -137,6 +137,13 @@
# define WIN32_DO_PATCHING 1
#endif
+// GLibc 2.14+ requires the hook functions be declared volatile, based on the value of the
+// define __MALLOC_HOOK_VOLATILE. For compatibility with older/non-GLibc implementations,
+// provide an empty definition.
+#if !defined(__MALLOC_HOOK_VOLATILE)
+#define __MALLOC_HOOK_VOLATILE
+#endif
+
using STL_NAMESPACE::max;
using STL_NAMESPACE::numeric_limits;
using STL_NAMESPACE::vector;
@@ -1669,5 +1676,5 @@ static void *MemalignOverride(size_t align, size_t size, const void *caller)
MallocHook::InvokeNewHook(result, size);
return result;
}
-void *(*__memalign_hook)(size_t, size_t, const void *) = MemalignOverride;
+void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t, size_t, const void *) = MemalignOverride;
#endif // #ifndef TCMALLOC_FOR_DEBUGALLOCATION
diff --git a/ext/dl/depend b/ext/dl/depend
index fba3df7..0830ffa 100644
--- a/ext/dl/depend
+++ b/ext/dl/depend
@@ -32,15 +32,15 @@ handle.o: dl.h
call.func: $(srcdir)/mkcall.rb ./dlconfig.rb
@echo "Generating call.func"
- @$(RUBY) $(srcdir)/mkcall.rb > $@
+ @$(RUBY) $(srcdir)/mkcall.rb | tee $@
callback.func: $(srcdir)/mkcallback.rb ./dlconfig.rb
@echo "Generating callback.func"
- @$(RUBY) $(srcdir)/mkcallback.rb > $@
+ @$(RUBY) $(srcdir)/mkcallback.rb | tee $@
cbtable.func: $(srcdir)/mkcbtable.rb ./dlconfig.rb
@echo "Generating cbtable.func"
- @$(RUBY) $(srcdir)/mkcbtable.rb > $@
+ @$(RUBY) $(srcdir)/mkcbtable.rb | tee $@
debug:
$(MAKE) CPPFLAGS="$(CPPFLAGS) -DDEBUG"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment