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

Context Navigation

  • Back to Ticket #280

Ticket #280: dmd164.2.patch

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

full patch (previous was not full)

  • src/dmd/backend/cc.h

    diff -r a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 
  • new file src/dmd/haiku.mak

    diff -r a70a7cead6f1 src/dmd/haiku.mak
    - +  
     1 
     2C=backend 
     3TK=tk 
     4ROOT=root 
     5 
     6MODEL=-m32 
     7 
     8CC=g++ $(MODEL) 
     9 
     10#OPT=-g -g3 
     11#OPT=-O2 
     12 
     13#COV=-fprofile-arcs -ftest-coverage 
     14 
     15WARNINGS=-Wno-deprecated -Wstrict-aliasing 
     16 
     17#GFLAGS = $(WARNINGS) -D__near= -D__pascal= -fno-exceptions -g -DDEBUG=1 $(COV) 
     18GFLAGS = $(WARNINGS) -D__near= -D__pascal= -fno-exceptions -O2 
     19 
     20CFLAGS = $(GFLAGS) -I$(ROOT) -D__I86__=1 -DMARS=1 -DTARGET_HAIKU=1 -D_DH 
     21MFLAGS = $(GFLAGS) -I$C -I$(TK) -D__I86__=1 -DMARS=1 -DTARGET_HAIKU=1 -D_DH 
     22 
     23CH= $C/cc.h $C/global.h $C/parser.h $C/oper.h $C/code.h $C/type.h \ 
     24        $C/dt.h $C/cgcv.h $C/el.h $C/iasm.h 
     25TOTALH= 
     26 
     27DMD_OBJS = \ 
     28        access.o array.o attrib.o bcomplex.o bit.o blockopt.o \ 
     29        cast.o code.o cg.o cg87.o cgcod.o cgcs.o cgelem.o cgen.o \ 
     30        cgreg.o cgsched.o class.o cod1.o cod2.o cod3.o cod4.o cod5.o \ 
     31        constfold.o irstate.o dchar.o cond.o debug.o \ 
     32        declaration.o dsymbol.o dt.o dump.o e2ir.o ee.o eh.o el.o \ 
     33        dwarf.o enum.o evalu8.o expression.o func.o gdag.o gflow.o \ 
     34        glocal.o gloop.o glue.o gnuc.o go.o gother.o html.o iasm.o id.o \ 
     35        identifier.o impcnvtab.o import.o inifile.o init.o inline.o \ 
     36        lexer.o link.o lstring.o mangle.o mars.o rmem.o module.o msc.o mtype.o \ 
     37        nteh.o cppmangle.o opover.o optimize.o os.o out.o outbuf.o \ 
     38        parse.o ph.o ptrntab.o root.o rtlsym.o s2ir.o scope.o statement.o \ 
     39        stringtable.o struct.o csymbol.o template.o tk.o tocsym.o todt.o \ 
     40        type.o typinf.o util.o var.o version.o strtold.o utf.o staticassert.o \ 
     41        unialpha.o toobj.o toctype.o toelfdebug.o entity.o doc.o macro.o \ 
     42        hdrgen.o delegatize.o aa.o ti_achar.o toir.o interpret.o traits.o \ 
     43        builtin.o clone.o aliasthis.o \ 
     44        man.o arrayop.o port.o response.o async.o json.o speller.o aav.o unittests.o \ 
     45        imphint.o \ 
     46        libelf.o elfobj.o 
     47 
     48SRC = win32.mak linux.mak osx.mak freebsd.mak solaris.mak haiku.mak \ 
     49        mars.c enum.c struct.c dsymbol.c import.c idgen.c impcnvgen.c \ 
     50        identifier.c mtype.c expression.c optimize.c template.h \ 
     51        template.c lexer.c declaration.c cast.c cond.h cond.c link.c \ 
     52        aggregate.h parse.c statement.c constfold.c version.h version.c \ 
     53        inifile.c iasm.c module.c scope.c dump.c init.h init.c attrib.h \ 
     54        attrib.c opover.c class.c mangle.c bit.c tocsym.c func.c inline.c \ 
     55        access.c complex_t.h irstate.h irstate.c glue.c msc.c ph.c tk.c \ 
     56        s2ir.c todt.c e2ir.c util.c identifier.h parse.h \ 
     57        scope.h enum.h import.h mars.h module.h mtype.h dsymbol.h \ 
     58        declaration.h lexer.h expression.h irstate.h statement.h eh.c \ 
     59        utf.h utf.c staticassert.h staticassert.c unialpha.c \ 
     60        typinf.c toobj.c toctype.c tocvdebug.c toelfdebug.c entity.c \ 
     61        doc.h doc.c macro.h macro.c hdrgen.h hdrgen.c arraytypes.h \ 
     62        delegatize.c toir.h toir.c interpret.c traits.c cppmangle.c \ 
     63        builtin.c clone.c lib.h libomf.c libelf.c libmach.c arrayop.c \ 
     64        aliasthis.h aliasthis.c json.h json.c unittests.c imphint.c \ 
     65        $C/cdef.h $C/cc.h $C/oper.h $C/ty.h $C/optabgen.c \ 
     66        $C/global.h $C/parser.h $C/code.h $C/type.h $C/dt.h $C/cgcv.h \ 
     67        $C/el.h $C/iasm.h $C/rtlsym.h $C/html.h \ 
     68        $C/bcomplex.c $C/blockopt.c $C/cg.c $C/cg87.c \ 
     69        $C/cgcod.c $C/cgcs.c $C/cgcv.c $C/cgelem.c $C/cgen.c $C/cgobj.c \ 
     70        $C/cgreg.c $C/var.c $C/strtold.c \ 
     71        $C/cgsched.c $C/cod1.c $C/cod2.c $C/cod3.c $C/cod4.c $C/cod5.c \ 
     72        $C/code.c $C/symbol.c $C/debug.c $C/dt.c $C/ee.c $C/el.c \ 
     73        $C/evalu8.c $C/go.c $C/gflow.c $C/gdag.c \ 
     74        $C/gother.c $C/glocal.c $C/gloop.c $C/html.c $C/newman.c \ 
     75        $C/nteh.c $C/os.c $C/out.c $C/outbuf.c $C/ptrntab.c $C/rtlsym.c \ 
     76        $C/type.c $C/melf.h $C/mach.h $C/bcomplex.h \ 
     77        $C/cdeflnx.h $C/outbuf.h $C/token.h $C/tassert.h \ 
     78        $C/elfobj.c $C/cv4.h $C/dwarf2.h $C/cpp.h $C/exh.h $C/go.h \ 
     79        $C/dwarf.c $C/dwarf.h $C/aa.h $C/aa.c $C/tinfo.h $C/ti_achar.c \ 
     80        $C/machobj.c \ 
     81        $(TK)/filespec.h $(TK)/mem.h $(TK)/list.h $(TK)/vec.h \ 
     82        $(TK)/filespec.c $(TK)/mem.c $(TK)/vec.c $(TK)/list.c \ 
     83        $(ROOT)/dchar.h $(ROOT)/dchar.c $(ROOT)/lstring.h \ 
     84        $(ROOT)/lstring.c $(ROOT)/root.h $(ROOT)/root.c $(ROOT)/array.c \ 
     85        $(ROOT)/rmem.h $(ROOT)/rmem.c $(ROOT)/port.h $(ROOT)/port.c \ 
     86        $(ROOT)/gnuc.h $(ROOT)/gnuc.c $(ROOT)/man.c \ 
     87        $(ROOT)/stringtable.h $(ROOT)/stringtable.c \ 
     88        $(ROOT)/response.c $(ROOT)/async.h $(ROOT)/async.c \ 
     89        $(ROOT)/aav.h $(ROOT)/aav.c \ 
     90        $(ROOT)/speller.h $(ROOT)/speller.c 
     91 
     92 
     93all: dmd 
     94 
     95dmd: $(DMD_OBJS) 
     96        gcc $(MODEL) -lstdc++ -lroot $(COV) $(DMD_OBJS) -o dmd 
     97 
     98clean: 
     99        rm -f $(DMD_OBJS) dmd optab.o id.o impcnvgen idgen id.c id.h \ 
     100        impcnvtab.c optabgen debtab.c optab.c cdxxx.c elxxx.c fltables.c \ 
     101        tytab.c core \ 
     102        *.cov *.gcda *.gcno 
     103 
     104######## optabgen generates some source 
     105 
     106optabgen: $C/optabgen.c $C/cc.h $C/oper.h 
     107        $(CC) $(MFLAGS) $< -o optabgen 
     108        ./optabgen 
     109 
     110optabgen_output = debtab.c optab.c cdxxx.c elxxx.c fltables.c tytab.c 
     111$(optabgen_output) : optabgen 
     112 
     113######## idgen generates some source 
     114 
     115idgen_output = id.h id.c 
     116$(idgen_output) : idgen 
     117 
     118idgen : idgen.c 
     119        $(CC) idgen.c -o idgen 
     120        ./idgen 
     121 
     122######### impcnvgen generates some source 
     123 
     124impcnvtab_output = impcnvtab.c 
     125$(impcnvtab_output) : impcnvgen 
     126 
     127impcnvgen : mtype.h impcnvgen.c 
     128        $(CC) $(CFLAGS) impcnvgen.c -o impcnvgen 
     129        ./impcnvgen 
     130 
     131######### 
     132 
     133$(DMD_OBJS) : $(idgen_output) $(optabgen_output) $(impcnvgen_output) 
     134 
     135aa.o: $C/aa.h $C/tinfo.h $C/aa.c 
     136        $(CC) -c $(MFLAGS) -I. $C/aa.c 
     137 
     138aav.o: $(ROOT)/aav.c 
     139        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     140 
     141access.o: access.c 
     142        $(CC) -c $(CFLAGS) $< 
     143 
     144aliasthis.o: aliasthis.c 
     145        $(CC) -c $(CFLAGS) $< 
     146 
     147array.o: $(ROOT)/array.c 
     148        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     149 
     150arrayop.o: arrayop.c 
     151        $(CC) -c $(CFLAGS) $< 
     152 
     153async.o: $(ROOT)/async.c 
     154        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     155 
     156attrib.o: attrib.c 
     157        $(CC) -c $(CFLAGS) $< 
     158 
     159bcomplex.o: $C/bcomplex.c 
     160        $(CC) -c $(MFLAGS) $< 
     161 
     162bit.o: expression.h bit.c 
     163        $(CC) -c -I$(ROOT) $(MFLAGS) bit.c 
     164 
     165blockopt.o: $C/blockopt.c 
     166        $(CC) -c $(MFLAGS) $C/blockopt.c 
     167 
     168builtin.o: builtin.c 
     169        $(CC) -c $(CFLAGS) $< 
     170 
     171cast.o: cast.c 
     172        $(CC) -c $(CFLAGS) $<  
     173 
     174cg.o: fltables.c $C/cg.c 
     175        $(CC) -c $(MFLAGS) -I. $C/cg.c 
     176 
     177cg87.o: $C/cg87.c 
     178        $(CC) -c $(MFLAGS) $< 
     179 
     180cgcod.o: $C/cgcod.c 
     181        $(CC) -c $(MFLAGS) -I. $< 
     182 
     183cgcs.o: $C/cgcs.c 
     184        $(CC) -c $(MFLAGS) $< 
     185 
     186cgcv.o: $C/cgcv.c 
     187        $(CC) -c $(MFLAGS) $< 
     188 
     189cgelem.o: $C/rtlsym.h $C/cgelem.c 
     190        $(CC) -c $(MFLAGS) -I. $C/cgelem.c 
     191 
     192cgen.o: $C/rtlsym.h $C/cgen.c 
     193        $(CC) -c $(MFLAGS) $C/cgen.c 
     194 
     195cgobj.o: $C/cgobj.c 
     196        $(CC) -c $(MFLAGS) $< 
     197 
     198cgreg.o: $C/cgreg.c 
     199        $(CC) -c $(MFLAGS) $< 
     200 
     201cgsched.o: $C/rtlsym.h $C/cgsched.c 
     202        $(CC) -c $(MFLAGS) $C/cgsched.c 
     203 
     204class.o: class.c 
     205        $(CC) -c $(CFLAGS) $< 
     206 
     207clone.o: clone.c 
     208        $(CC) -c $(CFLAGS) $< 
     209 
     210cod1.o: $C/rtlsym.h $C/cod1.c 
     211        $(CC) -c $(MFLAGS) $C/cod1.c 
     212 
     213cod2.o: $C/rtlsym.h $C/cod2.c 
     214        $(CC) -c $(MFLAGS) $C/cod2.c 
     215 
     216cod3.o: $C/rtlsym.h $C/cod3.c 
     217        $(CC) -c $(MFLAGS) $C/cod3.c 
     218 
     219cod4.o: $C/cod4.c 
     220        $(CC) -c $(MFLAGS) $< 
     221 
     222cod5.o: $C/cod5.c 
     223        $(CC) -c $(MFLAGS) $< 
     224 
     225code.o: $C/code.c 
     226        $(CC) -c $(MFLAGS) $< 
     227 
     228constfold.o: constfold.c 
     229        $(CC) -c $(CFLAGS) $< 
     230 
     231irstate.o: irstate.h irstate.c 
     232        $(CC) -c $(MFLAGS) -I$(ROOT) irstate.c 
     233 
     234csymbol.o : $C/symbol.c 
     235        $(CC) -c $(MFLAGS) $C/symbol.c -o csymbol.o 
     236 
     237dchar.o: $(ROOT)/dchar.c 
     238        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     239 
     240cond.o: cond.c 
     241        $(CC) -c $(CFLAGS) $< 
     242 
     243cppmangle.o: cppmangle.c 
     244        $(CC) -c $(CFLAGS) $< 
     245 
     246debug.o: $C/debug.c 
     247        $(CC) -c $(MFLAGS) -I. $< 
     248 
     249declaration.o: declaration.c 
     250        $(CC) -c $(CFLAGS) $< 
     251 
     252delegatize.o: delegatize.c 
     253        $(CC) -c $(CFLAGS) $< 
     254 
     255doc.o: doc.c 
     256        $(CC) -c $(CFLAGS) $< 
     257 
     258dsymbol.o: dsymbol.c 
     259        $(CC) -c $(CFLAGS) $< 
     260 
     261dt.o: $C/dt.h $C/dt.c 
     262        $(CC) -c $(MFLAGS) $C/dt.c 
     263 
     264dump.o: dump.c 
     265        $(CC) -c $(CFLAGS) $< 
     266 
     267dwarf.o: $C/dwarf.h $C/dwarf.c 
     268        $(CC) -c $(MFLAGS) -I. $C/dwarf.c 
     269 
     270e2ir.o: $C/rtlsym.h expression.h toir.h e2ir.c 
     271        $(CC) -c -I$(ROOT) $(MFLAGS) e2ir.c 
     272 
     273ee.o: $C/ee.c 
     274        $(CC) -c $(MFLAGS) $< 
     275 
     276eh.o : $C/cc.h $C/code.h $C/type.h $C/dt.h eh.c 
     277        $(CC) -c $(MFLAGS) eh.c 
     278 
     279el.o: $C/rtlsym.h $C/el.h $C/el.c 
     280        $(CC) -c $(MFLAGS) $C/el.c 
     281 
     282elfobj.o: $C/elfobj.c 
     283        $(CC) -c $(MFLAGS) $< 
     284 
     285entity.o: entity.c 
     286        $(CC) -c $(CFLAGS) $< 
     287 
     288enum.o: enum.c 
     289        $(CC) -c $(CFLAGS) $< 
     290 
     291evalu8.o: $C/evalu8.c 
     292        $(CC) -c $(MFLAGS) $< 
     293 
     294expression.o: expression.c 
     295        $(CC) -c $(CFLAGS) $< 
     296 
     297func.o: func.c 
     298        $(CC) -c $(CFLAGS) $< 
     299 
     300gdag.o: $C/gdag.c 
     301        $(CC) -c $(MFLAGS) $< 
     302 
     303gflow.o: $C/gflow.c 
     304        $(CC) -c $(MFLAGS) $< 
     305 
     306#globals.o: globals.c 
     307#       $(CC) -c $(CFLAGS) $< 
     308 
     309glocal.o: $C/rtlsym.h $C/glocal.c 
     310        $(CC) -c $(MFLAGS) $C/glocal.c 
     311 
     312gloop.o: $C/gloop.c 
     313        $(CC) -c $(MFLAGS) $< 
     314 
     315glue.o: $(CH) $(TOTALH) $C/rtlsym.h mars.h module.h glue.c 
     316        $(CC) -c $(MFLAGS) -I$(ROOT) glue.c 
     317 
     318gnuc.o: $(ROOT)/gnuc.h $(ROOT)/gnuc.c 
     319        $(CC) -c $(GFLAGS) $(ROOT)/gnuc.c 
     320 
     321go.o: $C/go.c 
     322        $(CC) -c $(MFLAGS) $< 
     323 
     324gother.o: $C/gother.c 
     325        $(CC) -c $(MFLAGS) $< 
     326 
     327hdrgen.o: hdrgen.c 
     328        $(CC) -c $(CFLAGS) $< 
     329 
     330html.o: $(CH) $(TOTALH) $C/html.h $C/html.c 
     331        $(CC) -c -I$(ROOT) $(MFLAGS) $C/html.c 
     332 
     333iasm.o : $(CH) $(TOTALH) $C/iasm.h iasm.c 
     334        $(CC) -c $(MFLAGS) -I$(ROOT) iasm.c 
     335 
     336id.o : id.h id.c 
     337        $(CC) -c $(CFLAGS) id.c 
     338 
     339identifier.o: identifier.c 
     340        $(CC) -c $(CFLAGS) $< 
     341 
     342impcnvtab.o: mtype.h impcnvtab.c 
     343        $(CC) -c $(CFLAGS) -I$(ROOT) impcnvtab.c 
     344 
     345imphint.o: imphint.c 
     346        $(CC) -c $(CFLAGS) $< 
     347 
     348import.o: import.c 
     349        $(CC) -c $(CFLAGS) $< 
     350 
     351inifile.o: inifile.c 
     352        $(CC) -c $(CFLAGS) $< 
     353 
     354init.o: init.c 
     355        $(CC) -c $(CFLAGS) $< 
     356 
     357inline.o: inline.c 
     358        $(CC) -c $(CFLAGS) $< 
     359 
     360interpret.o: interpret.c 
     361        $(CC) -c $(CFLAGS) $< 
     362 
     363json.o: json.c 
     364        $(CC) -c $(CFLAGS) $< 
     365 
     366lexer.o: lexer.c 
     367        $(CC) -c $(CFLAGS) $< 
     368 
     369libelf.o: libelf.c $C/melf.h 
     370        $(CC) -c $(CFLAGS) -I$C $< 
     371 
     372libmach.o: libmach.c $C/mach.h 
     373        $(CC) -c $(CFLAGS) -I$C $< 
     374 
     375link.o: link.c 
     376        $(CC) -c $(CFLAGS) $< 
     377 
     378lstring.o: $(ROOT)/lstring.c 
     379        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     380 
     381machobj.o: $C/machobj.c 
     382        $(CC) -c $(MFLAGS) $< 
     383 
     384macro.o: macro.c 
     385        $(CC) -c $(CFLAGS) $< 
     386 
     387man.o: $(ROOT)/man.c 
     388        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     389 
     390mangle.o: mangle.c 
     391        $(CC) -c $(CFLAGS) $< 
     392 
     393mars.o: mars.c 
     394        $(CC) -c $(CFLAGS) $< 
     395 
     396rmem.o: $(ROOT)/rmem.c 
     397        $(CC) -c $(GFLAGS) -I$(ROOT) $(ROOT)/rmem.c 
     398         
     399module.o: $(TOTALH) $C/html.h module.c 
     400        $(CC) -c $(CFLAGS) -I$C module.c 
     401 
     402msc.o: $(CH) mars.h msc.c 
     403        $(CC) -c $(MFLAGS) msc.c 
     404 
     405mtype.o: mtype.c 
     406        $(CC) -c $(CFLAGS) $< 
     407 
     408nteh.o: $C/rtlsym.h $C/nteh.c 
     409        $(CC) -c $(MFLAGS) $C/nteh.c 
     410 
     411opover.o: opover.c 
     412        $(CC) -c $(CFLAGS) $< 
     413 
     414optimize.o: optimize.c 
     415        $(CC) -c $(CFLAGS) $< 
     416 
     417os.o: $C/os.c 
     418        $(CC) -c $(MFLAGS) $< 
     419 
     420out.o: $C/out.c 
     421        $(CC) -c $(MFLAGS) $< 
     422 
     423outbuf.o : $C/outbuf.h $C/outbuf.c 
     424        $(CC) -c $(MFLAGS) $C/outbuf.c 
     425 
     426parse.o: parse.c 
     427        $(CC) -c $(CFLAGS) $< 
     428 
     429ph.o: ph.c 
     430        $(CC) -c $(MFLAGS) $< 
     431 
     432port.o: $(ROOT)/port.c 
     433        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     434 
     435ptrntab.o: $C/iasm.h $C/ptrntab.c 
     436        $(CC) -c $(MFLAGS) $C/ptrntab.c 
     437 
     438response.o: $(ROOT)/response.c 
     439        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     440 
     441root.o: $(ROOT)/root.c 
     442        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     443 
     444rtlsym.o: $C/rtlsym.h $C/rtlsym.c 
     445        $(CC) -c $(MFLAGS) $C/rtlsym.c 
     446 
     447s2ir.o : $C/rtlsym.h statement.h s2ir.c 
     448        $(CC) -c -I$(ROOT) $(MFLAGS) s2ir.c 
     449 
     450scope.o: scope.c 
     451        $(CC) -c $(CFLAGS) $< 
     452 
     453speller.o: $(ROOT)/speller.c 
     454        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     455 
     456statement.o: statement.c 
     457        $(CC) -c $(CFLAGS) $< 
     458 
     459staticassert.o: staticassert.h staticassert.c 
     460        $(CC) -c $(CFLAGS) staticassert.c 
     461 
     462stringtable.o: $(ROOT)/stringtable.c 
     463        $(CC) -c $(GFLAGS) -I$(ROOT) $< 
     464 
     465strtold.o: $C/strtold.c 
     466        gcc $(MODEL) -c $C/strtold.c 
     467 
     468struct.o: struct.c 
     469        $(CC) -c $(CFLAGS) $< 
     470 
     471template.o: template.c 
     472        $(CC) -c $(CFLAGS) $< 
     473 
     474ti_achar.o: $C/tinfo.h $C/ti_achar.c 
     475        $(CC) -c $(MFLAGS) -I. $C/ti_achar.c 
     476 
     477tk.o: tk.c 
     478        $(CC) -c $(MFLAGS) tk.c 
     479 
     480tocsym.o: $(CH) $(TOTALH) mars.h module.h tocsym.c 
     481        $(CC) -c $(MFLAGS) -I$(ROOT) tocsym.c 
     482 
     483toctype.o: $(CH) $(TOTALH) $C/rtlsym.h mars.h module.h toctype.c 
     484        $(CC) -c $(MFLAGS) -I$(ROOT) toctype.c 
     485 
     486todt.o : mtype.h expression.h $C/dt.h todt.c 
     487        $(CC) -c -I$(ROOT) $(MFLAGS) todt.c 
     488 
     489toelfdebug.o: $(CH) $(TOTALH) mars.h toelfdebug.c 
     490        $(CC) -c $(MFLAGS) -I$(ROOT) toelfdebug.c 
     491 
     492toir.o: $C/rtlsym.h expression.h toir.h toir.c 
     493        $(CC) -c -I$(ROOT) $(MFLAGS) toir.c 
     494 
     495toobj.o: $(CH) $(TOTALH) mars.h module.h toobj.c 
     496        $(CC) -c $(MFLAGS) -I$(ROOT) toobj.c 
     497 
     498traits.o: $(TOTALH) traits.c 
     499        $(CC) -c $(CFLAGS) $< 
     500 
     501type.o: $C/type.c 
     502        $(CC) -c $(MFLAGS) $C/type.c 
     503 
     504typinf.o: $(CH) $(TOTALH) mars.h module.h mtype.h typinf.c 
     505        $(CC) -c $(MFLAGS) -I$(ROOT) typinf.c 
     506 
     507util.o: util.c 
     508        $(CC) -c $(MFLAGS) $< 
     509 
     510utf.o: utf.h utf.c 
     511        $(CC) -c $(CFLAGS) utf.c 
     512 
     513unialpha.o: unialpha.c 
     514        $(CC) -c $(CFLAGS) $< 
     515 
     516unittests.o: unittests.c 
     517        $(CC) -c $(CFLAGS) $< 
     518 
     519var.o: $C/var.c optab.c 
     520        $(CC) -c $(MFLAGS) -I. $C/var.c 
     521 
     522version.o: version.c 
     523        $(CC) -c $(CFLAGS) $< 
     524 
     525###################################################### 
     526 
     527gcov: 
     528        gcov access.c 
     529        gcov aliasthis.c 
     530        gcov arrayop.c 
     531        gcov attrib.c 
     532        gcov bit.c 
     533        gcov builtin.c 
     534        gcov cast.c 
     535        gcov class.c 
     536        gcov clone.c 
     537        gcov cond.c 
     538        gcov constfold.c 
     539        gcov declaration.c 
     540        gcov delegatize.c 
     541        gcov doc.c 
     542        gcov dsymbol.c 
     543        gcov dump.c 
     544        gcov e2ir.c 
     545        gcov eh.c 
     546        gcov entity.c 
     547        gcov enum.c 
     548        gcov expression.c 
     549        gcov func.c 
     550        gcov glue.c 
     551        gcov iasm.c 
     552        gcov identifier.c 
     553        gcov imphint.c 
     554        gcov import.c 
     555        gcov inifile.c 
     556        gcov init.c 
     557        gcov inline.c 
     558        gcov interpret.c 
     559        gcov irstate.c 
     560        gcov json.c 
     561        gcov lexer.c 
     562        gcov libelf.c 
     563        gcov link.c 
     564        gcov macro.c 
     565        gcov mangle.c 
     566        gcov mars.c 
     567        gcov module.c 
     568        gcov msc.c 
     569        gcov mtype.c 
     570        gcov opover.c 
     571        gcov optimize.c 
     572        gcov parse.c 
     573        gcov ph.c 
     574        gcov scope.c 
     575        gcov statement.c 
     576        gcov staticassert.c 
     577        gcov s2ir.c 
     578        gcov struct.c 
     579        gcov template.c 
     580        gcov tk.c 
     581        gcov tocsym.c 
     582        gcov todt.c 
     583        gcov toobj.c 
     584        gcov toctype.c 
     585        gcov toelfdebug.c 
     586        gcov typinf.c 
     587        gcov unialpha.c 
     588        gcov utf.c 
     589        gcov util.c 
     590        gcov version.c 
     591 
     592#       gcov hdrgen.c 
     593#       gcov tocvdebug.c 
     594 
     595###################################################### 
     596 
     597zip: 
     598        -rm -f dmdsrc.zip 
     599        zip dmdsrc $(SRC) 
  • src/dmd/inifile.c

    diff -r a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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 a70a7cead6f1 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/