5d69d9de72
Our berkeley db shadows the OS's berkeley db 1.x, making it impossible to build software that only builds on 1.x (e.g. opensmtpd). The --enable-compat185 switch enables a 1.x compatibility mode, which shouldn't have any downsides and is the standard in other package managers. (One wonders why it isn't on by default if so.)
65 lines
2.1 KiB
Ruby
65 lines
2.1 KiB
Ruby
require 'formula'
|
|
|
|
class BerkeleyDb < Formula
|
|
homepage 'http://www.oracle.com/technology/products/berkeley-db/index.html'
|
|
url 'http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz'
|
|
sha1 '32e43c4898c8996750c958a90c174bd116fcba83'
|
|
|
|
option 'with-java', 'Compile with Java support.'
|
|
option 'enable-sql', 'Compile with SQL support.'
|
|
|
|
# Fix build under Xcode 4.6
|
|
# Double-underscore names are reserved, and __atomic_compare_exchange is now
|
|
# a built-in, so rename this to something non-conflicting.
|
|
def patches; DATA; end
|
|
|
|
def install
|
|
# BerkeleyDB dislikes parallel builds
|
|
ENV.deparallelize
|
|
# --enable-compat185 is necessary because our build shadows
|
|
# the system berkeley db 1.x
|
|
args = %W[
|
|
--disable-debug
|
|
--prefix=#{prefix}
|
|
--mandir=#{man}
|
|
--enable-cxx
|
|
--enable-compat185
|
|
]
|
|
args << "--enable-java" if build.include? "with-java"
|
|
args << "--enable-sql" if build.include? "enable-sql"
|
|
|
|
# BerkeleyDB requires you to build everything from the build_unix subdirectory
|
|
cd 'build_unix' do
|
|
system "../dist/configure", *args
|
|
system "make install"
|
|
|
|
# use the standard docs location
|
|
doc.parent.mkpath
|
|
mv prefix/'docs', doc
|
|
end
|
|
end
|
|
end
|
|
|
|
__END__
|
|
diff --git a/src/dbinc/atomic.h b/src/dbinc/atomic.h
|
|
index 096176a..561037a 100644
|
|
--- a/src/dbinc/atomic.h
|
|
+++ b/src/dbinc/atomic.h
|
|
@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val;
|
|
#define atomic_inc(env, p) __atomic_inc(p)
|
|
#define atomic_dec(env, p) __atomic_dec(p)
|
|
#define atomic_compare_exchange(env, p, o, n) \
|
|
- __atomic_compare_exchange((p), (o), (n))
|
|
+ __atomic_compare_exchange_db((p), (o), (n))
|
|
static inline int __atomic_inc(db_atomic_t *p)
|
|
{
|
|
int temp;
|
|
@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p)
|
|
* http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
|
|
* which configure could be changed to use.
|
|
*/
|
|
-static inline int __atomic_compare_exchange(
|
|
+static inline int __atomic_compare_exchange_db(
|
|
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
|
|
{
|
|
atomic_value_t was;
|