HaikuPorts
  • Login
  • Preferences
  • Help/Guide
  • Wiki
  • Timeline
  • Roadmap
  • View Tickets
  • Search
  • Port Log
  • Blog

Context Navigation

  • Back to Ticket #280

Ticket #280: dmd164.patch

File dmd164.patch, 53.6 KB (added by haikubot, 5 years ago)

dmd 1.64 patch

  • src/dmd/backend/cc.h

    diff -r a61748274812 src/dmd/backend/cc.h
    a b  
    8282        WM_badnumber    = 24, 
    8383        WM_ccast        = 25, 
    8484        WM_obsolete     = 26, 
    85 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     85#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    8686        WM_skip_attribute   = 27, // skip GNUC attribute specification 
    8787        WM_warning_message  = 28, // preprocessor warning message 
    8888        WM_bad_vastart      = 29, // args for builtin va_start bad 
    … …  
    146146#include        "msgs2.h" 
    147147#endif 
    148148#include        "ty.h" 
    149 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     149#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    150150#include        "../tk/mem.h" 
    151151#else 
    152152#include        "mem.h" 
    … …  
    745745        #define Fnteh           0x08    // uses NT Structured EH 
    746746        #define Fdoinline       0x40    // do inline walk 
    747747        #define Foverridden     0x80    // ignore for overriding purposes 
    748 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     748#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    749749        #define Fnowrite        0x100   // SCinline should never output definition 
    750750#else 
    751751        #define Fjmonitor       0x100   // Jupiter synchronized function 
    … …  
    800800                                // of SCftexpspec explicit specializations 
    801801    Funcsym *Fsurrogatesym;     // Fsurrogate: surrogate cast function 
    802802 
    803 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     803#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    804804    char *Fredirect;            // redirect function name to this name in object 
    805805#endif 
    806806    TARGET_structFUNC_S 
    … …  
    13251325        #define SFLmutable      0x100000        // SCmember or SCfield is mutable 
    13261326        #define SFLdyninit      0x200000        // symbol has dynamic initializer 
    13271327        #define SFLtmp          0x400000        // symbol is a generated temporary 
    1328 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1328#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    13291329        #define SFLthunk        0x40000 // symbol is temporary for thunk 
    13301330#endif 
    13311331 
    … …  
    15431543        FLallocatmp,    // temp for built-in alloca() 
    15441544        FLstack,        // offset from ESP rather than EBP 
    15451545        FLdsymbol,      // it's a Dsymbol 
    1546 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1546#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    15471547        // Change this, update debug.c too 
    15481548        FLgot,          // global offset table entry outside this object file 
    15491549        FLgotoff,       // global offset table entry inside this object file 
  • src/dmd/backend/cdef.h

    diff -r a61748274812 src/dmd/backend/cdef.h
    a b  
    171171#define TARGET_SOLARIS  0               // target is a Solaris executable 
    172172#endif 
    173173 
     174// Set to 1 using the makefile 
     175#ifndef TARGET_HAIKU 
     176#define TARGET_HAIKU  0               // target is a Haiku executable 
     177#endif 
     178 
    174179// This is the default 
    175180#ifndef TARGET_WINDOS 
    176 #define TARGET_WINDOS   (!(TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS)) 
     181#define TARGET_WINDOS   (!(TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU)) 
    177182#endif 
    178183 
    179184#if __GNUC__ 
    … …  
    242247 
    243248// Precompiled header variations 
    244249#define MEMORYHX        (_WINDLL && _WIN32)     // HX and SYM files are cached in memory 
    245 #define MMFIO           (_WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4)  // if memory mapped files 
     250#define MMFIO           (_WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__)  // if memory mapped files 
    246251#define LINEARALLOC     _WIN32  // if we can reserve address ranges 
    247252 
    248253// H_STYLE takes on one of these precompiled header methods 
    … …  
    458463#define DOUBLESIZE      8 
    459464#if TARGET_OSX 
    460465#define LNGDBLSIZE      16      // 80 bit reals 
    461 #elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     466#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    462467#define LNGDBLSIZE      12      // 80 bit reals 
    463468#else 
    464469#define LNGDBLSIZE      10      // 80 bit reals 
    … …  
    509514#define OMFOBJ          TARGET_WINDOS 
    510515#endif 
    511516#ifndef ELFOBJ 
    512 #define ELFOBJ          (TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS) 
     517#define ELFOBJ          (TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU) 
    513518#endif 
    514519#ifndef MACHOBJ 
    515520#define MACHOBJ         TARGET_OSX 
    … …  
    696701#define EX_SCOUNIX      0x800 
    697702#define EX_UNIXSVR4     0x1000 
    698703#define EX_LINUX        0x2000 
     704#define EX_HAIKU        0x2000 
    699705#define EX_WIN64        0x4000  // AMD64 and Windows (64 bit mode) 
    700706#define EX_LINUX64      0x8000  // AMD64 and Linux (64 bit mode) 
    701707#define EX_OSX          0x10000 
    … …  
    707713 
    708714#define EX_flat         (EX_OS2 | EX_NT | EX_LINUX | EX_WIN64 | EX_LINUX64 | \ 
    709715                         EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | \ 
    710                          EX_SOLARIS | EX_SOLARIS64) 
     716                         EX_SOLARIS | EX_SOLARIS64 | EX_HAIKU) 
    711717#define EX_dos          (EX_DOSX | EX_ZPM | EX_RATIONAL | EX_PHARLAP | \ 
    712718                         EX_COM | EX_MZ /*| EX_WIN16*/) 
    713719 
    … …  
    760766#define CFG3relax       0x200   // relaxed type checking (C only) 
    761767#define CFG3cpp         0x400   // C++ compile 
    762768#define CFG3igninc      0x800   // ignore standard include directory 
    763 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     769#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    764770#define CFG3mars        0x1000  // use mars libs and headers 
    765771#define NO_FAR          (TRUE)  // always ignore __far and __huge keywords 
    766772#else 
    … …  
    772778#define CFG3cppcomment  0x8000  // allow C++ style comments 
    773779#define CFG3wkfloat     0x10000 // make floating point references weak externs 
    774780#define CFG3digraphs    0x20000 // support ANSI C++ digraphs 
    775 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     781#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    776782#define CFG3semirelax   0x40000 // moderate relaxed type checking 
    777783#endif 
    778784#define CFG3pic         0x80000 // position independent code 
    … …  
    975981#define SYMBOLZERO 
    976982#endif 
    977983 
    978 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     984#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    979985#define UNIXFIELDS      (unsigned)-1,(unsigned)-1,0,0, 
    980986#elif TARGET_OSX 
    981987#define UNIXFIELDS      (unsigned)-1,(unsigned)-1,0,0,0, 
  • src/dmd/backend/cg87.c

    diff -r a61748274812 src/dmd/backend/cg87.c
    a b  
    619619    static double dval[7] = 
    620620        {0.0,1.0,PI,LOG2T,LOG2E,LOG2,LN2}; 
    621621    static long double ldval[7] = 
    622 #if __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     622#if __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    623623#define M_PIl           0x1.921fb54442d1846ap+1L        // 3.14159 fldpi 
    624624#define M_LOG2T_L       0x1.a934f0979a3715fcp+1L        // 3.32193 fldl2t 
    625625#define M_LOG2El        0x1.71547652b82fe178p+0L        // 1.4427 fldl2e 
  • src/dmd/backend/cgcod.c

    diff -r a61748274812 src/dmd/backend/cgcod.c
    a b  
    127127    csmax = 64; 
    128128    csextab = (struct CSE *) util_calloc(sizeof(struct CSE),csmax); 
    129129    functy = tybasic(funcsym_p->ty()); 
    130 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     130#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    131131    if (0 && config.flags3 & CFG3pic) 
    132132    { 
    133133        ALLREGS = ALLREGS_INIT_PIC; 
    … …  
    10021002#endif 
    10031003                if (config.flags2 & CFG2seh) 
    10041004                    c = cat(c,nteh_unwind(0,toindex)); 
    1005 #if MARS && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS) 
     1005#if MARS && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU) 
    10061006                else if (toindex + 1 <= fromindex) 
    10071007                { 
    10081008                    //c = cat(c, linux_unwind(0, toindex)); 
    … …  
    10891089            assert(!getregs(allregs)); 
    10901090            assert(!e); 
    10911091            assert(!bl->Bcode); 
    1092 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1092#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    10931093            if (config.flags3 & CFG3pic) 
    10941094            { 
    10951095                if (STACKALIGN == 16) 
    … …  
    15531553            return mST0; 
    15541554 
    15551555        case TYcfloat: 
    1556 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1556#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    15571557            if (I32 && tybasic(tyf) == TYnfunc) 
    15581558                return mDX | mAX; 
    15591559#endif 
    … …  
    24922492        case OPrelconst: 
    24932493            c = cdrelconst(e,pretregs); 
    24942494            break; 
    2495 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     2495#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    24962496        case OPgot: 
    24972497            c = cdgot(e,pretregs); 
    24982498            break; 
  • src/dmd/backend/cgelem.c

    diff -r a61748274812 src/dmd/backend/cgelem.c
    a b  
    812812  e2 = e->E2; 
    813813  if (e2->Eoper == OPconst) 
    814814  { 
    815 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     815#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    816816        if (e1->Eoper == OPrelconst && e1->EV.sp.Vsym->Sfl == FLgot) 
    817817                goto ret; 
    818818#endif 
    … …  
    827827  } 
    828828  else if (e1->Eoper == OPconst) 
    829829  { 
    830 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     830#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    831831        if (e2->Eoper == OPrelconst && e2->EV.sp.Vsym->Sfl == FLgot) 
    832832                goto ret; 
    833833#endif 
  • src/dmd/backend/cod1.c

    diff -r a61748274812 src/dmd/backend/cod1.c
    a b  
    12791279    case FLextern: 
    12801280        if (s->Sident[0] == '_' && memcmp(s->Sident + 1,"tls_array",10) == 0) 
    12811281        { 
    1282 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     1282#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    12831283            // Rewrite as GS:[0000], or FS:[0000] for 64 bit 
    12841284            if (I64) 
    12851285            { 
    … …  
    13071307    case FLdata: 
    13081308    case FLudata: 
    13091309    case FLcsdata: 
    1310 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1310#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    13111311    case FLgot: 
    13121312    case FLgotoff: 
    13131313    case FLtlsdata: 
    … …  
    13381338        { 
    13391339            pcs->Iflags |= CFcs | CFoff; 
    13401340        } 
    1341 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1341#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    13421342        if (I64 && config.flags3 & CFG3pic && 
    13431343            (fl == FLtlsdata || s->ty() & mTYthread)) 
    13441344        { 
    … …  
    19231923{ 
    19241924    //printf("callclib(e = %p, clib = %d, *pretregs = %s, keepmask = %s\n", e, clib, regm_str(*pretregs), regm_str(keepmask)); 
    19251925    //elem_print(e); 
    1926 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1926#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    19271927  static symbol lib[] = 
    19281928  { 
    19291929/* Convert destroyed regs into saved regs       */ 
    19301930#define Z(desregs)      (~(desregs) & (mBP| mES | ALLREGS)) 
    1931 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1931#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    19321932#define N(name) "_" name 
    19331933#else 
    19341934#define N(name) name 
    … …  
    21492149    {DOUBLEREGS_16,DOUBLEREGS_32,0,INFfloat,1,1},       // _INTDBL@     intdbl 
    21502150    {mAX,mAX,0,INFfloat,1,1},                           // _DBLUNS@     dbluns 
    21512151    {DOUBLEREGS_16,DOUBLEREGS_32,0,INFfloat,1,1},       // _UNSDBL@     unsdbl 
    2152 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     2152#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    21532153    {mDX|mAX,mAX,0,INF32|INFfloat,0,1},                 // _DBLULNG@    dblulng 
    21542154#else 
    21552155    {mDX|mAX,mAX,0,INFfloat,1,1},                       // _DBLULNG@    dblulng 
    … …  
    21622162 
    21632163    {DOUBLEREGS_16,mDX|mAX,0,INFfloat,1,1},             // _DBLLLNG@ 
    21642164    {DOUBLEREGS_16,DOUBLEREGS_32,0,INFfloat,1,1},       // _LLNGDBL@ 
    2165 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     2165#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    21662166    {DOUBLEREGS_16,mDX|mAX,0,INFfloat,2,2},             // _DBLULLNG@ 
    21672167#else 
    21682168    {DOUBLEREGS_16,mDX|mAX,0,INFfloat,1,1},             // _DBLULLNG@ 
  • src/dmd/backend/cod2.c

    diff -r a61748274812 src/dmd/backend/cod2.c
    a b  
    151151 
    152152  ty1 = tybasic(e1->Ety); 
    153153  if (tyfloating(ty1)) 
    154 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     154#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    155155        return orth87(e,pretregs); 
    156156#else 
    157157        return opdouble(e,pretregs,(e->Eoper == OPadd) ? CLIBdadd 
    … …  
    793793    unsigned grex = rex << 16; 
    794794 
    795795    if (tyfloating(tyml)) 
    796 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     796#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    797797        return orth87(e,pretregs); 
    798798#else 
    799799        return opdouble(e,pretregs,(oper == OPmul) ? CLIBdmul : CLIBddiv); 
    … …  
    37613761        goto L4; 
    37623762 
    37633763    case FLtlsdata: 
    3764 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     3764#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    37653765    { 
    37663766      L5: 
    37673767        if (I64 && config.flags3 & CFG3pic) 
    … …  
    38533853        goto L4; 
    38543854 
    38553855    case FLextern: 
    3856 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     3856#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    38573857        if (e->EV.sp.Vsym->ty() & mTYthread) 
    38583858            goto L5; 
    38593859#endif 
    38603860    case FLdata: 
    38613861    case FLudata: 
    3862 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     3862#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    38633863    case FLgot: 
    38643864    case FLgotoff: 
    38653865#endif 
    … …  
    41414141 
    41424142  if (tyfloating(tyml)) 
    41434143  { 
    4144 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     4144#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    41454145        return post87(e,pretregs); 
    41464146#else 
    41474147        if (config.inline8087) 
  • src/dmd/backend/cod3.c

    diff -r a61748274812 src/dmd/backend/cod3.c
    a b  
    534534            genjmp(c,JNE,FLblock,list_block(b->Bsucc)); /* JNE default  */ 
    535535        } 
    536536        ce = getregs(mCX|mDI); 
    537 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     537#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    538538        if (config.flags3 & CFG3pic) 
    539539        {   // Add in GOT 
    540540            code *cx; 
    … …  
    614614        mod = (disp > 127) ? 2 : 1;     /* 1 or 2 byte displacement     */ 
    615615        if (config.flags & CFGromable) 
    616616                gen1(ce,SEGCS);         /* table is in code segment     */ 
    617 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     617#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    618618        if (config.flags3 & CFG3pic) 
    619619        {                               // ADD EDX,(ncases-1)*2[EDI] 
    620620            ct = genc1(CNIL,0x03,modregrm(mod,DX,7),FLconst,disp); 
    … …  
    10921092    gen1(c, 0x58 + reg);                // L1: POP reg 
    10931093 
    10941094    return cat(c,fixresult(e,retregs,pretregs)); 
    1095 #elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     1095#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    10961096    regm_t retregs; 
    10971097    unsigned reg; 
    10981098    code *c; 
    … …  
    11251125#endif 
    11261126} 
    11271127 
    1128 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1128#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    11291129/***************************** 
    11301130 * Returns: 
    11311131 *      # of bytes stored 
    … …  
    14011401        if (config.wflags & WFincbp && farfunc) 
    14021402            c = gen1(c,0x40 + BP);      /* INC  BP                      */ 
    14031403        if (config.target_cpu < TARGET_80286 || 
    1404             config.exe & (EX_LINUX | EX_LINUX64 | EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | EX_SOLARIS | EX_SOLARIS64) || 
     1404            config.exe & (EX_LINUX | EX_LINUX64 | EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | EX_SOLARIS | EX_SOLARIS64 | EX_HAIKU) || 
    14051405            !localsize || 
    14061406            config.flags & CFGstack || 
    14071407            (xlocalsize >= 0x1000 && config.exe & EX_flat) || 
    … …  
    20772077 
    20782078code *cod3_load_got() 
    20792079{ 
    2080 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     2080#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    20812081    code *c; 
    20822082    code *cgot; 
    20832083 
    … …  
    22592259    sthunk->Soffset = thunkoffset; 
    22602260    sthunk->Ssize = Coffset - thunkoffset; /* size of thunk */ 
    22612261    sthunk->Sseg = cseg; 
    2262 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     2262#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    22632263    objpubdef(cseg,sthunk,sthunk->Soffset); 
    22642264#endif 
    22652265    searchfixlist(sthunk);              /* resolve forward refs */ 
    … …  
    42514251            // un-named external with is the start of .rodata or .data 
    42524252        case FLextern:                      /* external data symbol         */ 
    42534253        case FLtlsdata: 
    4254 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     4254#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    42554255        case FLgot: 
    42564256        case FLgotoff: 
    42574257#endif 
    … …  
    43444344        // un-named external with is the start of .rodata or .data 
    43454345    case FLextern:                      /* external data symbol         */ 
    43464346    case FLtlsdata: 
    4347 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     4347#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    43484348    case FLgot: 
    43494349    case FLgotoff: 
    43504350#endif 
    … …  
    45684568                // resolve directly. 
    45694569                if (s->Sseg == p->Lseg && 
    45704570                    (s->Sclass == SCstatic || 
    4571 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     4571#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    45724572                     (!(config.flags3 & CFG3pic) && s->Sclass == SCglobal)) && 
    45734573#else 
    45744574                        s->Sclass == SCglobal) && 
  • src/dmd/backend/cod4.c

    diff -r a61748274812 src/dmd/backend/cod4.c
    a b  
    749749  byte = (sz == 1);                     // 1 for byte operation, else 0 
    750750  if (tyfloating(tyml)) 
    751751  { 
    752 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     752#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    753753      if (op == OPnegass) 
    754754            c = cdnegass87(e,pretregs); 
    755755        else 
    … …  
    11921192 
    11931193 
    11941194  if (tyfloating(tyml)) 
    1195 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1195#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    11961196        return opass87(e,pretregs); 
    11971197#else 
    11981198        return opassdbl(e,pretregs,op); 
    … …  
    16851685    unsigned rex = (I64 && sz == 8) ? REX_W : 0; 
    16861686    unsigned grex = rex << 16;          // 64 bit operands 
    16871687 
    1688 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1688#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    16891689  if (tyfloating(tym))                  /* if floating operation        */ 
    16901690  { 
    16911691        retregs = mPSW; 
    … …  
    24272427            case OPd_s64: 
    24282428                return cnvt87(e,pretregs); 
    24292429            case OPd_u32:               // use subroutine, not 8087 
    2430 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     2430#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    24312431                retregs = mST0; 
    24322432#else 
    24332433                retregs = DOUBLEREGS; 
  • src/dmd/backend/code.h

    diff -r a61748274812 src/dmd/backend/code.h
    a b  
    110110#define RMload  (1 << 30) 
    111111#define RMstore (1 << 31) 
    112112 
    113 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     113#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    114114    // To support positional independent code, 
    115115    // must be able to remove BX from available registers 
    116116extern regm_t ALLREGS; 
    … …  
    669669cd_t cdcomma; 
    670670cd_t cdloglog; 
    671671cd_t cdshift; 
    672 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     672#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    673673cd_t cdindpic; 
    674674#endif 
    675675cd_t cdind; 
  • src/dmd/backend/debug.c

    diff -r a61748274812 src/dmd/backend/debug.c
    a b  
    101101    if (t & mTYpasobj) 
    102102        dbg_printf("mTYpasobj|"); 
    103103#endif 
    104 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     104#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    105105    if (t & mTYtransu) 
    106106        dbg_printf("mTYtransu|"); 
    107107#endif 
    … …  
    294294         "ndp   ","farda ","local ","csdat ","tlsdat", 
    295295         "bprel ","frameh","asm   ","blocko","alloca", 
    296296         "stack ","dsym  ", 
    297 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     297#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    298298         "got   ","gotoff", 
    299299#endif 
    300300#endif 
  • src/dmd/backend/dwarf.c

    diff -r a61748274812 src/dmd/backend/dwarf.c
    a b  
    2222#include        <malloc.h> 
    2323#endif 
    2424 
    25 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     25#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    2626#include        <signal.h> 
    2727#include        <unistd.h> 
    2828#include        <errno.h> 
    … …  
    402402        linebuf->writeString((char *)list_ptr(pl)); 
    403403        linebuf->writeByte(0); 
    404404    } 
    405 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     405#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    406406    for (pl = pathsyslist; pl; pl = list_next(pl)) 
    407407    { 
    408408        linebuf->writeString((char *)list_ptr(pl)); 
  • src/dmd/backend/el.c

    diff -r a61748274812 src/dmd/backend/el.c
    a b  
    13291329    return e; 
    13301330} 
    13311331#endif 
    1332 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     1332#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    13331333 
    13341334elem *el_picvar(symbol *s) 
    13351335{   elem *e; 
    … …  
    15311531 
    15321532    //printf("el_var(s = '%s')\n", s->Sident); 
    15331533    //printf("%x\n", s->Stype->Tty); 
    1534 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1534#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    15351535    // OSX is currently always pic 
    15361536    if (config.flags3 & CFG3pic && 
    1537 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     1537#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    15381538        (!(s->Stype->Tty & mTYthread) || I64) && 
    15391539#endif 
    15401540        !tyfunc(s->ty())) 
    … …  
    15531553        //printf("thread local %s\n", s->Sident); 
    15541554#if TARGET_OSX 
    15551555        ; 
    1556 #elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     1556#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    15571557        /* For 32 bit: 
    15581558         * Generate for var locals: 
    15591559         *      MOV reg,GS:[00000000]   // add GS: override in back end 
    … …  
    16581658{   elem *e; 
    16591659 
    16601660    //printf("el_var(s = '%s')\n", s->Sident); 
    1661 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1661#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    16621662    if (config.flags3 & CFG3pic && !tyfunc(s->ty())) 
    16631663        return el_picvar(s); 
    16641664#endif 
    … …  
    17551755        return e; 
    17561756    } 
    17571757#endif 
    1758 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1758#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    17591759    if (config.flags3 & CFG3pic && tyfunc(s->ty())) 
    17601760        e = el_picvar(s); 
    17611761    else 
  • src/dmd/backend/elfobj.c

    diff -r a61748274812 src/dmd/backend/elfobj.c
    a b  
    18631863            } 
    18641864            break; 
    18651865        case mTYman_std: 
    1866 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     1866#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    18671867            if (tyfunc(s->ty()) && !variadic(s->Stype)) 
    18681868#else 
    18691869            if (!(config.flags4 & CFG4oldstdmangle) && 
  • src/dmd/backend/evalu8.c

    diff -r a61748274812 src/dmd/backend/evalu8.c
    a b  
    4242 
    4343extern void error(const char *filename, unsigned linnum, const char *format, ...); 
    4444 
    45 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     45#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    4646int _status87() 
    4747{ 
    4848    return fetestexcept(FE_ALL_EXCEPT); 
    … …  
    514514                if (e2->Eoper == OPconst) 
    515515                {   targ_int i = e2->EV.Vint; 
    516516 
    517 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     517#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    518518                    if (i && e1->EV.sp.Vsym->Sfl == FLgot) 
    519519                        break; 
    520520#endif 
  • src/dmd/backend/global.h

    diff -r a61748274812 src/dmd/backend/global.h
    a b  
    546546void dwarf_CFA_args_size(size_t sz); 
    547547#endif 
    548548 
    549 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     549#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    550550void elfobj_gotref(symbol *s); 
    551551symbol *elfobj_getGOTsym(); 
    552552void elfobj_refGOTsym(); 
  • src/dmd/backend/machobj.c

    diff -r a61748274812 src/dmd/backend/machobj.c
    a b  
    2121#include        <malloc.h> 
    2222#endif 
    2323 
    24 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     24#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    2525#include        <signal.h> 
    2626#include        <unistd.h> 
    2727#endif 
    … …  
    16151615            strupr(dest);               // to upper case 
    16161616            break; 
    16171617        case mTYman_std: 
    1618 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1618#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    16191619            if (tyfunc(s->ty()) && !variadic(s->Stype)) 
    16201620#else 
    16211621            if (!(config.flags4 & CFG4oldstdmangle) && 
  • src/dmd/backend/nteh.c

    diff -r a61748274812 src/dmd/backend/nteh.c
    a b  
    415415        /* An sindex value of -2 is a magic value that tells the 
    416416         * stack unwinder to skip this frame. 
    417417         */ 
    418         assert(config.exe & (EX_LINUX | EX_LINUX64 | EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | EX_SOLARIS | EX_SOLARIS64)); 
     418        assert(config.exe & (EX_LINUX | EX_LINUX64 | EX_OSX | EX_OSX64 | EX_FREEBSD | EX_FREEBSD64 | EX_SOLARIS | EX_SOLARIS64 | EX_HAIKU)); 
    419419        cs.Iop = 0x68; 
    420420        cs.Iflags = 0; 
    421421        cs.Irex = 0; 
  • src/dmd/backend/optabgen.c

    diff -r a61748274812 src/dmd/backend/optabgen.c
    a b  
    703703                case FLctor:    segfl[i] = -1;  break; 
    704704                case FLdtor:    segfl[i] = -1;  break; 
    705705                case FLdsymbol: segfl[i] = -1;  break; 
    706 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     706#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    707707                case FLgot:     segfl[i] = -1;  break; 
    708708                case FLgotoff:  segfl[i] = -1;  break; 
    709709#endif 
  • src/dmd/backend/os.c

    diff -r a61748274812 src/dmd/backend/os.c
    a b  
    2626#include <sys\stat.h> 
    2727#endif 
    2828 
    29 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     29#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    3030#include <sys/types.h> 
    3131#include <sys/stat.h> 
    3232#include <fcntl.h> 
    … …  
    658658    if (!find) 
    659659        return 0; 
    660660    return (find->attribute & FA_DIREC) ? 2 : 1; 
    661 #elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     661#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    662662    struct stat buf; 
    663663 
    664664    return stat(name,&buf) == 0;        /* file exists if stat succeeded */ 
    … …  
    735735 
    736736int file_write(char *name, void *buffer, unsigned len) 
    737737{ 
    738 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     738#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    739739    int fd; 
    740740    ssize_t numwritten; 
    741741 
    … …  
    811811 
    812812int file_createdirs(char *name) 
    813813{ 
    814 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     814#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    815815    return 1; 
    816816#endif 
    817817#if _WIN32 
    … …  
    861861} 
    862862#endif 
    863863 
    864 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     864#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    865865int os_critsecsize() 
    866866{ 
    867867    return sizeof(pthread_mutex_t); 
  • src/dmd/backend/out.c

    diff -r a61748274812 src/dmd/backend/out.c
    a b  
    408408                    flags = CFoff | CFseg; 
    409409                if (tybasic(dt->Dty) == TYcptr) 
    410410                    reftocodseg(seg,offset,dt->DTabytes); 
    411 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     411#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    412412                else 
    413413                    reftodatseg(seg,offset,dt->DTabytes,dt->DTseg,flags); 
    414414#else 
  • src/dmd/backend/parser.h

    diff -r a61748274812 src/dmd/backend/parser.h
    a b  
    156156#define FQtop           8       // top level file, already open 
    157157#define FQqual          0x10    // filename is already qualified 
    158158#endif 
    159 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     159#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU 
    160160#define FQnext          0x20    // search starts after directory 
    161161#endif                          // of last included file 
    162162 
    … …  
    698698 
    699699extern list_t pathlist;                 // include paths 
    700700extern list_t headers;                  // pre-include files 
    701 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     701#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    702702extern list_t pathsyslist;              // include path for .h file overrides 
    703703#endif 
    704704 
  • src/dmd/backend/strtold.c

    diff -r a61748274812 src/dmd/backend/strtold.c
    a b  
    2020#if _WIN32 
    2121#include        <fltpnt.h> 
    2222#endif 
    23 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     23#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    2424#include        <errno.h> 
    2525#endif 
    2626 
    … …  
    3030void __pascal __set_errno (int an_errno); 
    3131#endif 
    3232 
    33 #if _WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     33#if _WIN32 || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    3434 
    3535#if 0 
    3636/* This is for compilers that don't support hex float literals, 
  • src/dmd/backend/token.h

    diff -r a61748274812 src/dmd/backend/token.h
    a b  
    179179        TK_stdcall, 
    180180        TK_syscall, 
    181181        TK_try, 
    182 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     182#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    183183        TK_attribute, 
    184184        TK_extension, 
    185185        TK_format, 
    … …  
    211211        TKandand,TKshl,TKshr,TKrcur,TKeq,TKaddass,TKminass,TKmulass,TKdivass, 
    212212        TKmodass,TKshrass,TKshlass,TKandass,TKxorass,TKorass,TKsemi, 
    213213        TKadd,TKellipsis, 
    214 #if !TX86 || TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     214#if !TX86 || TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    215215        TKdollar, 
    216216#endif 
    217217 
  • src/dmd/backend/ty.h

    diff -r a61748274812 src/dmd/backend/ty.h
    a b  
    304304/* Array to give the 'relaxed' type for relaxed type checking   */ 
    305305extern unsigned char _tyrelax[]; 
    306306#define type_relax      (config.flags3 & CFG3relax)     // !=0 if relaxed type checking 
    307 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     307#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    308308#define type_semirelax  (config.flags3 & CFG3semirelax) // !=0 if semi-relaxed type checking 
    309309#else 
    310310#define type_semirelax  type_relax 
  • src/dmd/backend/type.h

    diff -r a61748274812 src/dmd/backend/type.h
    a b  
    5454    unsigned short Tflags;      // TFxxxxx 
    5555 
    5656#if TX86 
    57 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     57#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    5858#define mTYnoret        0x010000        // function has no return 
    5959#define mTYtransu       0x010000        // transparent union 
    6060#else 
    … …  
    6868#define mTYsyscall      0x400000 
    6969#define mTYjava         0x800000 
    7070 
    71 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     71#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    7272#define mTYTFF          0xFE0000 
    7373#else 
    7474#define mTYTFF          0xFF0000 
  • src/dmd/backend/var.c

    diff -r a61748274812 src/dmd/backend/var.c
    a b  
    5858#if MEMMODELS == 1 
    5959tym_t functypetab[LINK_MAXDIM] = 
    6060{ 
    61 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     61#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    6262    TYnfunc, 
    6363    TYnpfunc, 
    6464    TYnpfunc, 
  • src/dmd/cond.c

    diff -r a61748274812 src/dmd/cond.c
    a b  
    138138#endif 
    139139        "OSX", "FreeBSD", 
    140140        "Solaris", 
     141        "Haiku", 
    141142        "LittleEndian", "BigEndian", 
    142143        "all", 
    143144        "none", 
  • src/dmd/e2ir.c

    diff -r a61748274812 src/dmd/e2ir.c
    a b  
    174174        if ((global.params.isLinux || 
    175175             global.params.isOSX || 
    176176             global.params.isFreeBSD || 
    177              global.params.isSolaris) && tf->linkage != LINKd) 
     177             global.params.isSolaris || 
     178             global.params.isHaiku) && tf->linkage != LINKd) 
    178179            ;   // ehidden goes last on Linux/OSX C++ 
    179180        else 
    180181        { 
    … …  
    15821583        if (global.params.useInvariants && t1->ty == Tclass && 
    15831584            !((TypeClass *)t1)->sym->isInterfaceDeclaration()) 
    15841585        { 
    1585 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     1586#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    15861587            e = el_bin(OPcall, TYvoid, el_var(rtlsym[RTLSYM__DINVARIANT]), e); 
    15871588#else 
    15881589            e = el_bin(OPcall, TYvoid, el_var(rtlsym[RTLSYM_DINVARIANT]), e); 
  • src/dmd/eh.c

    diff -r a61748274812 src/dmd/eh.c
    a b  
    2626symbol *except_gentables() 
    2727{ 
    2828    //printf("except_gentables()\n"); 
    29 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     29#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    3030    symbol *s; 
    3131    int sz;                     // size so far 
    3232    dt_t **pdt; 
  • src/dmd/expression.c

    diff -r a61748274812 src/dmd/expression.c
    a b  
    16261626#if __APPLE__ 
    16271627    return (__inline_isnan(x1) && __inline_isnan(x2)) || 
    16281628#else 
    1629     return (isnan(x1) && isnan(x2)) || 
     1629    return (__isnan(x1) && __isnan(x2)) || 
    16301630#endif 
    16311631        /* In some cases, the REALPAD bytes get garbage in them, 
    16321632         * so be sure and ignore them. 
    … …  
    17351735#if __APPLE__ 
    17361736    if (__inline_isnan(value)) 
    17371737#else 
    1738     if (isnan(value)) 
     1738    if (__isnan(value)) 
    17391739#endif 
    17401740        buf->writestring("NAN");        // no -NAN bugs 
    17411741    else 
  • src/dmd/glue.c

    diff -r a61748274812 src/dmd/glue.c
    a b  
    610610        // Pull in RTL startup code 
    611611        if (func->isMain()) 
    612612        {   objextdef("_main"); 
    613 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     613#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    614614            obj_ehsections();   // initialize exception handling sections 
    615615#endif 
    616616#if TARGET_WINDOS 
    … …  
    770770        pi++; 
    771771    } 
    772772 
    773     if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris) && 
     773    if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris || global.params.isHaiku) && 
    774774         linkage != LINKd && shidden && sthis) 
    775775    { 
    776776        /* swap shidden and sthis 
    … …  
    10151015        s->toObjFile(0); 
    10161016    } 
    10171017 
    1018 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1018#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    10191019    // A hack to get a pointer to this function put in the .dtors segment 
    10201020    if (ident && memcmp(ident->toChars(), "_STD", 4) == 0) 
    10211021        obj_staticdtor(s); 
    … …  
    10611061        //case Tbit:    t = TYuchar;    break; 
    10621062        case Tbool:     t = TYbool;     break; 
    10631063        case Tchar:     t = TYchar;     break; 
    1064 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1064#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    10651065        case Twchar:    t = TYwchar_t;  break; 
    10661066        case Tdchar:    t = TYdchar;    break; 
    10671067#else 
    … …  
    11511151 
    11521152        case LINKc: 
    11531153            tyf = TYnfunc; 
    1154 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1154#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    11551155            if (retStyle() == RETstack) 
    11561156                tyf = TYhfunc; 
    11571157#endif 
  • src/dmd/inifile.c

    diff -r a61748274812 src/dmd/inifile.c
    a b  
    111111                filename = (char *)FileName::replaceName(argv0, inifile); 
    112112                if (!FileName::exists(filename)) 
    113113                { 
    114 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
    115 #if __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun&&__SVR4   // This fix by Thomas Kuehne 
     114#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
     115#if __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ // This fix by Thomas Kuehne 
    116116                    /* argv0 might be a symbolic link, 
    117117                     * so try again looking past it to the real path 
    118118                     */ 
  • src/dmd/link.c

    diff -r a61748274812 src/dmd/link.c
    a b  
    1919#include        <process.h> 
    2020#endif 
    2121 
    22 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     22#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    2323#include        <sys/types.h> 
    2424#include        <sys/wait.h> 
    2525#include        <unistd.h> 
    … …  
    198198        delete lnkfilename; 
    199199    } 
    200200    return status; 
    201 #elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     201#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    202202    pid_t childpid; 
    203203    int i; 
    204204    int status; 
    … …  
    486486    //printf("spawning '%s'\n",file); 
    487487#if _WIN32 
    488488    return spawnl(0,file,file,args,NULL); 
    489 #elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     489#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    490490    char *full; 
    491491    int cmdl = strlen(cmd); 
    492492 
    … …  
    549549    else 
    550550        ex = global.params.exefile; 
    551551    return spawnv(0,ex,(char **)argv.data); 
    552 #elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     552#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    553553    pid_t childpid; 
    554554    int status; 
    555555 
  • src/dmd/mangle.c

    diff -r a61748274812 src/dmd/mangle.c
    a b  
    2424#include "id.h" 
    2525#include "module.h" 
    2626 
    27 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     27#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    2828char *cpp_mangle(Dsymbol *s); 
    2929#endif 
    3030 
    … …  
    119119                    return ident->toChars(); 
    120120 
    121121                case LINKcpp: 
    122 #if DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS) 
     122#if DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU) 
    123123                    return cpp_mangle(this); 
    124124#else 
    125125                    // Windows C++ mangling is done by C++ back end 
  • src/dmd/mars.c

    diff -r a61748274812 src/dmd/mars.c
    a b  
    1414#include <assert.h> 
    1515#include <limits.h> 
    1616 
    17 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     17#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    1818#include <errno.h> 
    1919#endif 
    2020 
    … …  
    5959 
    6060#if TARGET_WINDOS 
    6161    obj_ext  = "obj"; 
    62 #elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     62#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    6363    obj_ext  = "o"; 
    6464#elif TARGET_NET 
    6565#else 
    … …  
    6868 
    6969#if TARGET_WINDOS 
    7070    lib_ext  = "lib"; 
    71 #elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     71#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    7272    lib_ext  = "a"; 
    7373#elif TARGET_NET 
    7474#else 
    … …  
    7777 
    7878#if TARGET_WINDOS 
    7979    dll_ext  = "dll"; 
    80 #elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     80#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    8181    dll_ext  = "so"; 
    8282#elif TARGET_OSX 
    8383    dll_ext = "dylib"; 
    … …  
    354354 
    355355#if TARGET_WINDOS 
    356356    global.params.defaultlibname = "phobos"; 
    357 #elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     357#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    358358    global.params.defaultlibname = "phobos"; 
    359359#elif TARGET_NET 
    360360#else 
    … …  
    375375    VersionCondition::addPredefinedGlobalIdent("Posix"); 
    376376    VersionCondition::addPredefinedGlobalIdent("linux"); 
    377377    global.params.isLinux = 1; 
     378#elif TARGET_HAIKU 
     379    VersionCondition::addPredefinedGlobalIdent("Haiku"); 
     380    VersionCondition::addPredefinedGlobalIdent("Haiku"); 
     381    global.params.isHaiku = 1; 
    378382#elif TARGET_OSX 
    379383    VersionCondition::addPredefinedGlobalIdent("Posix"); 
    380384    VersionCondition::addPredefinedGlobalIdent("OSX"); 
    … …  
    403407 
    404408#if _WIN32 
    405409    inifilename = inifile(argv[0], "sc.ini"); 
    406 #elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     410#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    407411    inifilename = inifile(argv[0], "dmd.conf"); 
    408412#else 
    409413#error "fix this" 
    … …  
    428432                global.params.link = 0; 
    429433            else if (strcmp(p + 1, "cov") == 0) 
    430434                global.params.cov = 1; 
    431 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     435#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    432436            else if (strcmp(p + 1, "fPIC") == 0) 
    433437                global.params.pic = 1; 
    434438#endif 
  • src/dmd/mars.h

    diff -r a61748274812 src/dmd/mars.h
    a b  
    8686#define MODULEINFO_IS_STRUCT DMDV2   // if ModuleInfo is a struct rather than a class 
    8787 
    8888// Set if C++ mangling is done by the front end 
    89 #define CPP_MANGLE (DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS)) 
     89#define CPP_MANGLE (DMDV2 && (TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU)) 
    9090 
    9191/* Other targets are TARGET_LINUX, TARGET_OSX, TARGET_FREEBSD and 
    9292 * TARGET_SOLARIS, which are 
    … …  
    9898#define OMFOBJ 1 
    9999#endif 
    100100 
    101 #if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     101#if TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    102102#ifndef ELFOBJ 
    103103#define ELFOBJ 1 
    104104#endif 
    … …  
    133133    char cpu;           // target CPU 
    134134    char isX86_64;      // generate X86_64 bit code 
    135135    char isLinux;       // generate code for linux 
     136    char isHaiku;       // generate code for Haiku 
    136137    char isOSX;         // generate code for Mac OSX 
    137138    char isWindows;     // generate code for Windows 
    138139    char isFreeBSD;     // generate code for FreeBSD 
  • src/dmd/msc.c

    diff -r a61748274812 src/dmd/msc.c
    a b  
    8181    if (params->pic) 
    8282        config.flags3 |= CFG3pic; 
    8383#endif 
     84#if TARGET_HAIKU 
     85    config.exe = EX_HAIKU; 
     86    config.flags |= CFGnoebp; 
     87    config.flags |= CFGalwaysframe; 
     88    if (params->pic) 
     89        config.flags3 |= CFG3pic; 
     90#endif 
    8491#if TARGET_OSX 
    8592    if (params->isX86_64) 
    8693        config.exe = EX_OSX64; 
  • src/dmd/mtype.c

    diff -r a61748274812 src/dmd/mtype.c
    a b  
    7171int REALSIZE = 16; 
    7272int REALPAD = 6; 
    7373int REALALIGNSIZE = 16; 
    74 #elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     74#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    7575int REALSIZE = 12; 
    7676int REALPAD = 2; 
    7777int REALALIGNSIZE = 4; 
    … …  
    236236    if (global.params.isX86_64) 
    237237    { 
    238238        PTRSIZE = 8; 
    239         if (global.params.isLinux || global.params.isFreeBSD || global.params.isSolaris) 
     239        if (global.params.isLinux || global.params.isFreeBSD || global.params.isSolaris || global.params.isHaiku) 
    240240        { 
    241241            REALSIZE = 16; 
    242242            REALPAD = 6; 
    … …  
    251251#if TARGET_OSX 
    252252        REALSIZE = 16; 
    253253        REALPAD = 6; 
    254 #elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS 
     254#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    255255        REALSIZE = 12; 
    256256        REALPAD = 2; 
    257257#else 
    … …  
    10771077            sz = REALALIGNSIZE; 
    10781078            break; 
    10791079 
    1080 #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS 
     1080#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS || TARGET_HAIKU 
    10811081        case Tint64: 
    10821082        case Tuns64: 
    10831083        case Tfloat64: 
  • src/dmd/root/man.c

    diff -r a61748274812 src/dmd/root/man.c
    a b  
    2626 
    2727#endif 
    2828 
    29 #if linux || __FreeBSD__ || __sun&&__SVR4 
     29#if linux || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    3030 
    3131#include        <sys/types.h> 
    3232#include        <sys/wait.h> 
  • src/dmd/root/port.c

    diff -r a61748274812 src/dmd/root/port.c
    a b  
    315315 
    316316#endif 
    317317 
    318 #if linux || __APPLE__ || __FreeBSD__ 
     318#if linux || __APPLE__ || __FreeBSD__ || __HAIKU__ 
    319319 
    320320#include <math.h> 
    321321#if linux 
    … …  
    374374#if __APPLE__ 
    375375    return __inline_isnan(r); 
    376376#else 
    377     return ::isnan(r); 
     377    return ::__isnan(r); 
    378378#endif 
    379379} 
    380380 
    … …  
    383383#if __APPLE__ 
    384384    return __inline_isnan(r); 
    385385#else 
    386     return ::isnan(r); 
     386    return ::__isnan(r); 
    387387#endif 
    388388} 
    389389 
    … …  
    415415#if __APPLE__ 
    416416    return fpclassify(r) == FP_INFINITE; 
    417417#else 
    418     return ::isinf(r); 
     418    return ::__isinf(r); 
    419419#endif 
    420420} 
    421421 
  • src/dmd/root/response.c

    diff -r a61748274812 src/dmd/root/response.c
    a b  
    1919#include <io.h> 
    2020#endif 
    2121 
    22 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     22#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    2323#include <sys/stat.h> 
    2424#include <sys/types.h> 
    2525#include <fcntl.h> 
  • src/dmd/root/rmem.c

    diff -r a61748274812 src/dmd/root/rmem.c
    a b  
    66#include <stdlib.h> 
    77#include <string.h> 
    88 
    9 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     9#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    1010#include "../root/rmem.h" 
    1111#else 
    1212#include "rmem.h" 
  • src/dmd/root/root.c

    diff -r a61748274812 src/dmd/root/root.c
    a b  
    77// in artistic.txt, or the GNU General Public License in gnu.txt. 
    88// See the included readme.txt for details. 
    99 
    10 #define POSIX (linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4) 
     10#define POSIX (linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__) 
    1111 
    1212#include <stdio.h> 
    1313#include <stdlib.h> 
  • src/dmd/tk/filespec.c

    diff -r a61748274812 src/dmd/tk/filespec.c
    a b  
    2525#include        <ctype.h> 
    2626#endif 
    2727 
    28 #if M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     28#if M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    2929#include        <stdlib.h> 
    3030#include        <unistd.h> 
    3131#endif 
    … …  
    8787/**********************/ 
    8888char * filespecrootpath(char *filespec) 
    8989{ 
    90 #if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     90#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    9191#define DIRCHAR '/' 
    9292#endif 
    9393#if MSDOS || __OS2__ || __NT__ || _WIN32 
    … …  
    112112#endif 
    113113 
    114114    /* get current working directory path */ 
    115 #if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     115#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    116116    cwd_t = (char *)getcwd(NULL, 256); 
    117117#endif 
    118118#if MSDOS || __OS2__ || __NT__ || _WIN32 
    … …  
    133133    if (cwd[strlen(cwd) - 1] == DIRCHAR) 
    134134        cwd[strlen(cwd) - 1] = '\0'; 
    135135#endif 
    136 #if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     136#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    137137    free(cwd_t); 
    138138#endif 
    139139    p = filespec; 
    … …  
    150150            { 
    151151                cwd_t = cwd; 
    152152                cwd = (char *)mem_calloc(strlen(cwd_t) + 1 + strlen(p) + 1); 
    153 #if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     153#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    154154                sprintf(cwd, "%s/%s", cwd_t, p);  /* add relative directory */ 
    155155#endif 
    156156#if MSDOS || __OS2__ || __NT__ || _WIN32 
    … …  
    171171        {   /* ... save remaining string */ 
    172172            cwd_t = cwd; 
    173173            cwd = (char *)mem_calloc(strlen(cwd_t) + 1 + strlen(p) + 1); 
    174 #if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     174#if SUN || M_UNIX || M_XENIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    175175            sprintf(cwd, "%s/%s", cwd_t, p);  /* add relative directory */ 
    176176#endif 
    177177#if MSDOS || __OS2__ || __NT__ || _WIN32 
    … …  
    402402#if MSDOS || __OS2__ || __NT__ || _WIN32 
    403403    return filespecforceext(filespec,"BAK"); 
    404404#endif 
    405 #if BSDUNIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     405#if BSDUNIX || linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    406406    char *p,*f; 
    407407 
    408408    /* Prepend .B to file name, if it isn't already there       */ 
  • src/dmd/tk/mem.c

    diff -r a61748274812 src/dmd/tk/mem.c
    a b  
    296296        11111, 
    297297        0, 
    298298        BEFOREVAL, 
    299 #if !(linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4) 
     299#if !(linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__) 
    300300        AFTERVAL 
    301301#endif 
    302302}; 
    … …  
    804804                mem_numalloc = 0; 
    805805                mem_maxalloc = 0; 
    806806                mem_alloclist.Mnext = NULL; 
    807 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     807#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    808808                *(long *) &(mem_alloclist.data[0]) = AFTERVAL; 
    809809#endif 
    810810#endif 
  • src/dmd/toir.c

    diff -r a61748274812 src/dmd/toir.c
    a b  
    676676        } 
    677677        return RETstack; 
    678678    } 
    679     else if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris) && 
     679    else if ((global.params.isLinux || global.params.isOSX || global.params.isFreeBSD || global.params.isSolaris || global.params.isHaiku) && 
    680680             linkage == LINKc && 
    681681             tn->iscomplex()) 
    682682    { 
  • src/dmd/util.c

    diff -r a61748274812 src/dmd/util.c
    a b  
    131131 
    132132#endif 
    133133 
    134 #if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 
     134#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __HAIKU__ 
    135135void util_progress() 
    136136{ 
    137137} 

Download in other formats:

  • Original Format

Trac Powered

Powered by Trac 0.13dev-r10686
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/