mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-10 04:45:56 +03:00
Applied the FreeBSD patch from Ralith, closes ticket #95 , slightly changed but basically the same. Thanx Ralith :)
This commit is contained in:
parent
e77e235307
commit
d0c5df393c
7 changed files with 33 additions and 10 deletions
|
@ -487,6 +487,9 @@ Expression *Mod(Type *type, Expression *e1, Expression *e2)
|
|||
c = fmodl(e1->toReal(), r2) + fmodl(e1->toImaginary(), r2) * I;
|
||||
#elif defined(IN_GCC)
|
||||
c = complex_t(e1->toReal() % r2, e1->toImaginary() % r2);
|
||||
#elif defined(__FreeBSD__) && __FreeBSD_version < 800000
|
||||
// freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
|
||||
c = complex_t(fmod(e1->toReal(), r2), fmod(e1->toImaginary(), r2));
|
||||
#else
|
||||
c = complex_t(fmodl(e1->toReal(), r2), fmodl(e1->toImaginary(), r2));
|
||||
#endif
|
||||
|
@ -498,6 +501,9 @@ Expression *Mod(Type *type, Expression *e1, Expression *e2)
|
|||
c = fmodl(e1->toReal(), i2) + fmodl(e1->toImaginary(), i2) * I;
|
||||
#elif defined(IN_GCC)
|
||||
c = complex_t(e1->toReal() % i2, e1->toImaginary() % i2);
|
||||
#elif defined(__FreeBSD__) && __FreeBSD_version < 800000
|
||||
// freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
|
||||
c = complex_t(fmod(e1->toReal(), i2), fmod(e1->toImaginary(), i2));
|
||||
#else
|
||||
c = complex_t(fmodl(e1->toReal(), i2), fmodl(e1->toImaginary(), i2));
|
||||
#endif
|
||||
|
|
|
@ -330,8 +330,10 @@ int main(int argc, char *argv[])
|
|||
global.params.os = OSLinux;
|
||||
#elif __APPLE__
|
||||
global.params.os = OSMacOSX;
|
||||
#elif __FreeBSD__
|
||||
global.params.os = OSFreeBSD;
|
||||
#else
|
||||
#error
|
||||
#error Unsupported OS
|
||||
#endif /* linux */
|
||||
|
||||
assert(global.params.os != OSinvalid);
|
||||
|
@ -843,6 +845,11 @@ int main(int argc, char *argv[])
|
|||
global.params.tt_os = "-pc-darwin-gnu";
|
||||
break;
|
||||
|
||||
case OSFreeBSD:
|
||||
VersionCondition::addPredefinedGlobalIdent("freebsd");
|
||||
VersionCondition::addPredefinedGlobalIdent("Posix");
|
||||
break;
|
||||
|
||||
default:
|
||||
assert(false && "Target OS not supported");
|
||||
}
|
||||
|
|
|
@ -52,7 +52,8 @@ enum OS
|
|||
OSinvalid,
|
||||
OSLinux,
|
||||
OSWindows,
|
||||
OSMacOSX
|
||||
OSMacOSX,
|
||||
OSFreeBSD
|
||||
};
|
||||
|
||||
// Put command line switches in here
|
||||
|
|
|
@ -151,15 +151,18 @@ int linkExecutable(const char* argv0)
|
|||
}
|
||||
|
||||
// default libs
|
||||
if(global.params.os == OSLinux || global.params.os == OSMacOSX)
|
||||
{
|
||||
args.push_back("-lpthread");
|
||||
switch(global.params.os) {
|
||||
case OSLinux:
|
||||
case OSMacOSX:
|
||||
args.push_back("-ldl");
|
||||
case OSFreeBSD:
|
||||
args.push_back("-lpthread");
|
||||
args.push_back("-lm");
|
||||
}
|
||||
else if (global.params.os == OSWindows)
|
||||
{
|
||||
break;
|
||||
|
||||
case OSWindows:
|
||||
// FIXME: I'd assume kernel32 etc
|
||||
break;
|
||||
}
|
||||
|
||||
// object files
|
||||
|
|
|
@ -704,6 +704,12 @@ const LLStructType* DtoMutexType()
|
|||
return LLStructType::get(types);
|
||||
}
|
||||
|
||||
// FreeBSD
|
||||
else if (global.params.os == OSFreeBSD) {
|
||||
// Just a pointer
|
||||
return LLStructType::get(DtoSize_t(), 0);
|
||||
}
|
||||
|
||||
// pthread_fastlock
|
||||
std::vector<const LLType*> types2;
|
||||
types2.push_back(DtoSize_t());
|
||||
|
|
|
@ -75,7 +75,7 @@ void _STD_critical_term()
|
|||
|
||||
/* ================================= linux ============================ */
|
||||
|
||||
#if linux || __APPLE__
|
||||
#if linux || __APPLE__ || __FreeBSD__
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
# check for command line arguments
|
||||
if [ -z "$1" ] ; then
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue