FreeBSD support

This commit is contained in:
janus 2015-11-24 10:59:39 +00:00
parent 35cf6c428f
commit a1ade02cdc
10 changed files with 39 additions and 9 deletions

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost
, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode
, zlib, miniupnpc, qt4, protobuf, qrencode
, withGui }:
with stdenv.lib;
@ -17,7 +17,8 @@ stdenv.mkDerivation rec{
};
buildInputs = [ pkgconfig autoreconfHook openssl db48 boost zlib
miniupnpc utillinux protobuf ]
miniupnpc protobuf ]
++ optionals stdenv.isLinux [ utillinux ]
++ optionals withGui [ qt4 qrencode ];
configureFlags = [ "--with-boost-libdir=${boost.lib}/lib" ]

View File

@ -23,7 +23,11 @@ let
sha256 = "0sp5445rbvms6qvzhld0kwwvydw51vq5iaf4kdqsf2d9jvaz3yx5";
};
armv6l-linux = armv7l-linux;
x86_64-solaris = x86_64-linux;
x86_64-freebsd = rec {
version = "1.2.7";
system = "x86-64-freebsd";
sha256 = "14k42xiqd2rrim4pd5k5pjcrpkac09qnpynha8j1v4jngrvmw7y6";
};
};
cfg = options.${stdenv.system};
in

View File

@ -0,0 +1,22 @@
diff --git a/dbinc/atomic.h b/dbinc/atomic.h
index 0034dcc..fa7ba93 100644
--- a/dbinc/atomic.h
+++ b/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))
+ __db_atomic_compare_exchange((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 __db_atomic_compare_exchange(
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
{
atomic_value_t was;

View File

@ -2,6 +2,7 @@
import ./generic.nix (args // rec {
version = "4.8.30";
extraPatches = [ ./clang-4.8.patch ];
sha256 = "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0";
branch = "4.8";
})

View File

@ -3,6 +3,6 @@
import ./generic.nix (args // rec {
version = "5.3.28";
sha256 = "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0";
extraPatches = [ ./osx.patch ];
extraPatches = [ ./clang-5.3.patch ];
branch = "5.3";
})

View File

@ -7,7 +7,7 @@
with stdenv.lib;
assert !stdenv.isDarwin -> stdenv.cc.isGNU;
assert stdenv.isFreeBSD || stdenv.isDarwin || stdenv.cc.isGNU;
# TODO:
# * Add gio-module-fam

View File

@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
# (Windows' linker would need to be used somehow to produce an actual
# DLL.) Thus, build the static library too, and this is what Gettext
# will actually use.
configureFlags = if stdenv.isCygwin then [ "--enable-static" ] else null;
configureFlags = if stdenv.isCygwin then [ "--enable-static" ] else
if stdenv.isFreeBSD then [ "--with-pic" ] else null;
crossAttrs = {
# Disable stripping to avoid "libiconv.a: Archive has no index" (MinGW).

View File

@ -58,8 +58,9 @@ in stdenv.mkDerivation {
ln -s bzip2 $out/bin/bzcat
'';
patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace Makefile --replace 'CC=gcc' 'CC=clang'
patchPhase = ''
substituteInPlace Makefile --replace CC=gcc CC=cc
substituteInPlace Makefile-libbz2_so --replace CC=gcc CC=cc
'';
preConfigure = ''

View File

@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
inherit version;
homepage = http://miniupnp.free.fr/;
description = "A client that implements the UPnP Internet Gateway Device (IGD) specification";
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.freebsd;
};
}