Fix IRA compilation under Cygwin.
This commit is contained in:
parent
9646366d30
commit
dd4fafa9be
|
@ -5,7 +5,7 @@
|
|||
CC = gcc
|
||||
CCOUT = -o
|
||||
-COPTS = -c -O2
|
||||
+COPTS = -c -O2 -Wall -Wno-pointer-sign
|
||||
+COPTS = -c -O2 -Wall -Wno-pointer-sign -Wno-unused-result
|
||||
LD = $(CC)
|
||||
LDOUT = $(CCOUT)
|
||||
LDFLAGS =
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
--- ira/ira.c 2015-09-11 09:25:13.000000000 +0200
|
||||
+++ ira/ira.c 2015-09-11 09:19:33.000000000 +0200
|
||||
+++ ira/ira.c 2015-09-11 10:29:42.000000000 +0200
|
||||
@@ -254,7 +254,7 @@
|
||||
if (baseoff > 0)
|
||||
fprintf(f,"+%hd,A%hu\n",baseoff,basereg);
|
||||
|
@ -36,6 +36,51 @@
|
|||
|
||||
if (!ptr3) base = area1;
|
||||
if (area1<prgstart || area1>prgende || area2<prgstart || area2>prgende)
|
||||
@@ -1269,7 +1269,7 @@
|
||||
for(modulcnt=0;modulcnt<modulcount;modulcnt++) {
|
||||
if (!modultab[modulcnt])
|
||||
if (!(pflags&KEEP_ZEROHUNKS)) continue;
|
||||
- fprintf(targetfile,"\tINCLUDE\t\"%s.S%s\"\n",targetname,itoa(modulcnt));
|
||||
+ fprintf(targetfile,"\tINCLUDE\t\"%s.S%s\"\n",targetname,itostr(modulcnt));
|
||||
}
|
||||
fprintf(targetfile,"\tEND\n");
|
||||
fclose(targetfile);targetfile=0;
|
||||
@@ -1295,7 +1295,7 @@
|
||||
}
|
||||
strcpy(tsname,targetname);
|
||||
strcat(tsname,".S");
|
||||
- strcat(tsname,itoa(modulcnt));
|
||||
+ strcat(tsname,itostr(modulcnt));
|
||||
if (!(targetfile = fopen(tsname,"w")))
|
||||
ExitPrg("Can't open %s\n",tsname);
|
||||
}
|
||||
@@ -1481,7 +1481,7 @@
|
||||
}
|
||||
strcpy(tsname,targetname);
|
||||
strcat(tsname,".S");
|
||||
- strcat(tsname,itoa(modulcnt));
|
||||
+ strcat(tsname,itostr(modulcnt));
|
||||
if (!(targetfile = fopen(tsname,"w")))
|
||||
ExitPrg("Can't open %s\n",tsname);
|
||||
}
|
||||
@@ -1686,7 +1686,7 @@
|
||||
} else {
|
||||
if (tflag==1) {tptr[k++]='\"';tptr[k++]=',';}
|
||||
if (tflag==2) tptr[k++]=',';
|
||||
- strcpy(&tptr[k],itoa((ULONG)buf[j]));
|
||||
+ strcpy(&tptr[k],itostr((ULONG)buf[j]));
|
||||
if (buf[j]>99) k+=3;
|
||||
else if (buf[j]>9) k+=2;
|
||||
else k++;
|
||||
@@ -1726,7 +1726,7 @@
|
||||
longs_per_line=0;
|
||||
for(i=0;(ptr2-ptr1)>=sizeof(ULONG) && be32(buf)==0;ptr1+=sizeof(ULONG),buf+=sizeof(ULONG)) i++;
|
||||
mnecat("DS.L");
|
||||
- adrcat(itoa(i));
|
||||
+ adrcat(itostr(i));
|
||||
Ausgabe();
|
||||
}
|
||||
else {
|
||||
@@ -1833,7 +1833,7 @@
|
||||
}
|
||||
|
||||
|
@ -45,6 +90,289 @@
|
|||
if (LabelAdr2[p2labind]==adr && p2labind<labcount) {
|
||||
flag = 1;index=p2labind;
|
||||
while(LabelAdr2[p2labind]==adr && p2labind<labcount) {
|
||||
@@ -1928,13 +1928,13 @@
|
||||
}
|
||||
if (pflags&OLDSTYLE) {
|
||||
if (getlab) GetLabel(adr,mode);
|
||||
- else adrcat(itoa((BYTE)(buf&0x00FF)));
|
||||
+ else adrcat(itostr((BYTE)(buf&0x00FF)));
|
||||
adrcat("(");
|
||||
}
|
||||
else {
|
||||
adrcat("(");
|
||||
if (getlab) GetLabel(adr,mode);
|
||||
- else adrcat(itoa((BYTE)(buf&0x00FF)));
|
||||
+ else adrcat(itostr((BYTE)(buf&0x00FF)));
|
||||
adrcat(",");
|
||||
}
|
||||
if (mode==6) {
|
||||
@@ -1993,7 +1993,7 @@
|
||||
}
|
||||
else {
|
||||
if (P2WriteReloc()) return((UWORD)0xffff);
|
||||
- adrcat(itoa((WORD)be16(&buffer[prgcount-1])));
|
||||
+ adrcat(itostr((WORD)be16(&buffer[prgcount-1])));
|
||||
}
|
||||
adrcat(".W");
|
||||
}
|
||||
@@ -2052,7 +2052,7 @@
|
||||
else adrcat(".W");
|
||||
if (scale) {
|
||||
adrcat("*");
|
||||
- adrcat(itoa(1<<scale));
|
||||
+ adrcat(itostr(1<<scale));
|
||||
}
|
||||
square1&=~4;
|
||||
operand&=~4;
|
||||
@@ -2063,7 +2063,7 @@
|
||||
if (operand&8) {
|
||||
if (odsize==2) {
|
||||
if (P2WriteReloc()) return((UWORD)0xffff);
|
||||
- adrcat(itoa((WORD)be16(&buffer[prgcount-1])));
|
||||
+ adrcat(itostr((WORD)be16(&buffer[prgcount-1])));
|
||||
adrcat(".W");
|
||||
}
|
||||
if (odsize==3) {
|
||||
@@ -2077,7 +2077,7 @@
|
||||
dtacat(itohex(be16(&buffer[prgcount++]),4));
|
||||
if (P2WriteReloc()) return((UWORD)0xffff);
|
||||
adr=(be16(&buffer[prgcount-2])<<16)+be16(&buffer[prgcount-1]);
|
||||
- adrcat(itoa(adr));
|
||||
+ adrcat(itostr(adr));
|
||||
}
|
||||
adrcat(".L");
|
||||
}
|
||||
@@ -2098,13 +2098,13 @@
|
||||
}
|
||||
if (pflags&OLDSTYLE) {
|
||||
if (getlab) GetLabel(adr,mode);
|
||||
- else adrcat(itoa((BYTE)(buf&0x00FF)));
|
||||
+ else adrcat(itostr((BYTE)(buf&0x00FF)));
|
||||
adrcat("(");
|
||||
}
|
||||
else {
|
||||
adrcat("(");
|
||||
if (getlab) GetLabel(adr,mode);
|
||||
- else adrcat(itoa((BYTE)(buf&0x00FF)));
|
||||
+ else adrcat(itostr((BYTE)(buf&0x00FF)));
|
||||
adrcat(",");
|
||||
}
|
||||
if (mode==6) {
|
||||
@@ -2119,7 +2119,7 @@
|
||||
else adrcat(".W");
|
||||
if (scale) {
|
||||
adrcat("*");
|
||||
- adrcat(itoa(1<<scale));
|
||||
+ adrcat(itostr(1<<scale));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2204,12 +2204,12 @@
|
||||
}
|
||||
else {
|
||||
if (pflags&OLDSTYLE) {
|
||||
- adrcat(itoa((WORD)buf));
|
||||
+ adrcat(itostr((WORD)buf));
|
||||
adrcat("(A");
|
||||
}
|
||||
else {
|
||||
adrcat("(");
|
||||
- adrcat(itoa((WORD)buf));
|
||||
+ adrcat(itostr((WORD)buf));
|
||||
adrcat(",A");
|
||||
}
|
||||
adrcat(itohex(reg,1));
|
||||
@@ -2230,7 +2230,7 @@
|
||||
/* PEA wegen den C-Proggies (Stackuebergabe) */
|
||||
if (opcnumber==OPC_PEA ||
|
||||
(sourcetype==1 && NoPtrsArea(prgcount*2+prgstart)))
|
||||
- adrcat(itoa(adr));
|
||||
+ adrcat(itostr(adr));
|
||||
else {
|
||||
if (sourcetype == 1 && (adr >= prgstart && adr <= prgende))
|
||||
GetLabel(adr,mode);
|
||||
@@ -2409,11 +2409,11 @@
|
||||
break;
|
||||
case 19: /* TRAP */
|
||||
adrcat("#");
|
||||
- adrcat(itoa(sigw&0xF));
|
||||
+ adrcat(itostr(sigw&0xF));
|
||||
break;
|
||||
case 20: /* moveq */
|
||||
adrcat("#");
|
||||
- adrcat(itoa((BYTE)(sigw&0x00FF)));
|
||||
+ adrcat(itostr((BYTE)(sigw&0x00FF)));
|
||||
break;
|
||||
case 21: /* Bcc */
|
||||
if ((sigw&0x00ff)==0x00ff) {
|
||||
@@ -2449,7 +2449,7 @@
|
||||
else {
|
||||
if (P2WriteReloc()) return(-1);
|
||||
adrcat("#");
|
||||
- adrcat(itoa((WORD)buf));
|
||||
+ adrcat(itostr((WORD)buf));
|
||||
}
|
||||
break;
|
||||
case 23: /* BTST,BCLR,... IMMEDIATE®ISTER,SOURCEOP ONLY */
|
||||
@@ -2473,7 +2473,7 @@
|
||||
if (buf&0xFFE0)
|
||||
mode=NOADRMODE;
|
||||
}
|
||||
- adrcat(itoa(buf));
|
||||
+ adrcat(itostr(buf));
|
||||
}
|
||||
extens=0; /* Set extension to BYTE (undefined before) */
|
||||
break;
|
||||
@@ -2489,7 +2489,7 @@
|
||||
if (reg>7) mode=NOADRMODE;
|
||||
adrcat("D");
|
||||
}
|
||||
- adrcat(itoa(reg));
|
||||
+ adrcat(itostr(reg));
|
||||
adrcat(":");
|
||||
reg=(extra&0x001F);
|
||||
if (extra&0x0020) {
|
||||
@@ -2498,14 +2498,14 @@
|
||||
}
|
||||
else
|
||||
if (reg==0) reg = 32;
|
||||
- adrcat(itoa(reg));
|
||||
+ adrcat(itostr(reg));
|
||||
adrcat("}");
|
||||
if (((sigw&0x0700)>>8)&1) {
|
||||
/* BFEXTU, BFEXTS, BFFFO, BFINS */
|
||||
if (extra&0x8000) mode=NOADRMODE;
|
||||
adrcat(",D");
|
||||
reg=(extra&0x7000)>>12;
|
||||
- adrcat(itoa(reg));
|
||||
+ adrcat(itostr(reg));
|
||||
}
|
||||
else {
|
||||
if (extra&0xF000) mode=NOADRMODE;
|
||||
@@ -2514,7 +2514,7 @@
|
||||
case 26: /* RTM */
|
||||
if (sigw&0x0008) adrcat("A");
|
||||
else adrcat("D");
|
||||
- adrcat(itoa(reg2));
|
||||
+ adrcat(itostr(reg2));
|
||||
break;
|
||||
case 27: /* CAS2 SOURCE/DESTINATION */
|
||||
buf = be16(&buffer[prgcount]);
|
||||
@@ -2525,24 +2525,24 @@
|
||||
if (buf&0x0e38 || extra&0x0e38) mode=NOADRMODE;
|
||||
else {
|
||||
adrcat("D");
|
||||
- adrcat(itoa(extra&7));
|
||||
+ adrcat(itostr(extra&7));
|
||||
adrcat(":");
|
||||
adrcat("D");
|
||||
- adrcat(itoa(buf&7));
|
||||
+ adrcat(itostr(buf&7));
|
||||
adrcat(",");
|
||||
adrcat("D");
|
||||
- adrcat(itoa((extra&0x01c0)>>6));
|
||||
+ adrcat(itostr((extra&0x01c0)>>6));
|
||||
adrcat(":");
|
||||
adrcat("D");
|
||||
- adrcat(itoa((buf&0x01c0)>>6));
|
||||
+ adrcat(itostr((buf&0x01c0)>>6));
|
||||
adrcat(",");
|
||||
if (extra&0x8000) adrcat("(A");
|
||||
else adrcat("(D");
|
||||
- adrcat(itoa((extra&0x7000)>>12));
|
||||
+ adrcat(itostr((extra&0x7000)>>12));
|
||||
adrcat("):");
|
||||
if (buf&0x8000) adrcat("(A");
|
||||
else adrcat("(D");
|
||||
- adrcat(itoa((buf&0x7000)>>12));
|
||||
+ adrcat(itostr((buf&0x7000)>>12));
|
||||
adrcat(")");
|
||||
}
|
||||
break;
|
||||
@@ -2553,10 +2553,10 @@
|
||||
if (extra&0xfe38) mode=NOADRMODE;
|
||||
else {
|
||||
adrcat("D");
|
||||
- adrcat(itoa(extra&7));
|
||||
+ adrcat(itostr(extra&7));
|
||||
adrcat(",");
|
||||
adrcat("D");
|
||||
- adrcat(itoa((extra&0x01c0)>>6));
|
||||
+ adrcat(itostr((extra&0x01c0)>>6));
|
||||
}
|
||||
break;
|
||||
case 29: /* DIVIDE/MULTIPLY LONG SIGNED/UNSIGNED */
|
||||
@@ -2569,21 +2569,21 @@
|
||||
if (opcnumber == OPC_DIVL) {
|
||||
if (!(extra&0x0400) && reg!=creg) mnecat("L");
|
||||
adrcat("D");
|
||||
- adrcat(itoa(creg));
|
||||
+ adrcat(itostr(creg));
|
||||
if ((extra&0x0400) ||
|
||||
(!(extra&0x0400) && reg!=creg)) {
|
||||
adrcat(":D");
|
||||
- adrcat(itoa(reg));
|
||||
+ adrcat(itostr(reg));
|
||||
}
|
||||
}
|
||||
else { /* mul?.l */
|
||||
if (extra&0x0400) {
|
||||
adrcat("D");
|
||||
- adrcat(itoa(creg));
|
||||
+ adrcat(itostr(creg));
|
||||
adrcat(":");
|
||||
}
|
||||
adrcat("D");
|
||||
- adrcat(itoa(reg));
|
||||
+ adrcat(itostr(reg));
|
||||
}
|
||||
mnecat(".L");
|
||||
}
|
||||
@@ -2595,7 +2595,7 @@
|
||||
if (P2WriteReloc()) return(-1);
|
||||
if (P2WriteReloc()) return(-1);
|
||||
adrcat("#");
|
||||
- adrcat(itoa(displace));
|
||||
+ adrcat(itostr(displace));
|
||||
}
|
||||
break;
|
||||
case 31: /* MOVE16 POSTINCREMENT ONLY (DESTINATION) */
|
||||
@@ -2603,7 +2603,7 @@
|
||||
else {
|
||||
if (P2WriteReloc()) return(-1);
|
||||
adrcat("(A");
|
||||
- adrcat(itoa((buf&0x7000)>>12));
|
||||
+ adrcat(itostr((buf&0x7000)>>12));
|
||||
adrcat(")+");
|
||||
}
|
||||
break;
|
||||
@@ -2640,7 +2640,7 @@
|
||||
if (sigw&1) {
|
||||
if (buf&0x8000) adrcat("A");
|
||||
else adrcat("D");
|
||||
- adrcat(itoa(reg));
|
||||
+ adrcat(itostr(reg));
|
||||
adrcat(",");
|
||||
}
|
||||
if (creg&0x0800) creg=(creg%8)+9;
|
||||
@@ -2650,7 +2650,7 @@
|
||||
adrcat(",");
|
||||
if (buf&0x8000) adrcat("A");
|
||||
else adrcat("D");
|
||||
- adrcat(itoa(reg));
|
||||
+ adrcat(itostr(reg));
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -2660,7 +2660,7 @@
|
||||
reg=(extra&0x7000)>>12;
|
||||
if (extra&0x8000) adrcat("A");
|
||||
else adrcat("D");
|
||||
- adrcat(itoa(reg));
|
||||
+ adrcat(itostr(reg));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2806,7 +2806,7 @@
|
||||
if (!(strnicmp(odata,"OMPAT=",6))) {
|
||||
char c,*p = odata+6;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- ira/ira_2.c 2015-09-11 09:25:13.000000000 +0200
|
||||
+++ ira/ira_2.c 2015-09-11 09:17:20.000000000 +0200
|
||||
@@ -586,7 +588,7 @@
|
||||
+++ ira/ira_2.c 2015-09-11 10:29:42.000000000 +0200
|
||||
@@ -586,7 +586,7 @@
|
||||
|
||||
ULONG FileLength(UBYTE *name)
|
||||
{
|
||||
|
@ -9,7 +9,21 @@
|
|||
FILE *file;
|
||||
if (name) {
|
||||
if (!(file = fopen(name,"rb")))
|
||||
@@ -828,9 +830,9 @@
|
||||
@@ -811,11 +811,11 @@
|
||||
/* label outside of smalldata section always based on SECSTRT_n */
|
||||
if (!GetSymbol(moduloffs[basesec])) {
|
||||
adrcat("SECSTRT_");
|
||||
- adrcat(itoa(basesec));
|
||||
+ adrcat(itostr(basesec));
|
||||
}
|
||||
if (adr > (LONG)moduloffs[basesec])
|
||||
adrcat("+");
|
||||
- adrcat(itoa(adr-moduloffs[basesec]));
|
||||
+ adrcat(itostr(adr-moduloffs[basesec]));
|
||||
fprintf(stderr,"Base relative label not in section: %s\n",adrbuf);
|
||||
return;
|
||||
}
|
||||
@@ -828,9 +828,9 @@
|
||||
}
|
||||
if (LabelAdr[r]!=adr) {
|
||||
fprintf(stderr,"ADR=%08lx not found! (mode=%d) relocount=%ld nextreloc=%ld\n",(unsigned long)adr,(int)adrmode,(long)relocount,(long)nextreloc);
|
||||
|
@ -22,7 +36,22 @@
|
|||
adrcat("LAB_");
|
||||
adrcat(itohex(adr,8));
|
||||
return;
|
||||
@@ -857,7 +859,7 @@
|
||||
@@ -845,24 +845,24 @@
|
||||
if (LabelAdr2[r] == moduloffs[RelocMod[nextreloc]]) {
|
||||
if (!GetSymbol(LabelAdr[r2])) {
|
||||
adrcat("SECSTRT_");
|
||||
- adrcat(itoa(RelocMod[nextreloc]));
|
||||
+ adrcat(itostr(RelocMod[nextreloc]));
|
||||
}
|
||||
if ((dummy=RelocOff[nextreloc])) {
|
||||
if ((LONG)RelocOff[nextreloc] > 0) adrcat("+");
|
||||
- adrcat(itoa(RelocOff[nextreloc]));
|
||||
+ adrcat(itostr(RelocOff[nextreloc]));
|
||||
}
|
||||
else if ((dummy = LabelAdr[r2]-LabelAdr2[r])) {
|
||||
adrcat("+");
|
||||
- adrcat(itoa(dummy));
|
||||
+ adrcat(itostr(dummy));
|
||||
}
|
||||
} else {
|
||||
if (!GetSymbol(LabelAdr[r2])) {
|
||||
|
@ -31,7 +60,27 @@
|
|||
adrcat(buf);
|
||||
}
|
||||
if ((dummy = LabelAdr[r2]-LabelAdr2[r])) {
|
||||
@@ -892,7 +894,7 @@
|
||||
adrcat("+");
|
||||
- adrcat(itoa(dummy));
|
||||
+ adrcat(itostr(dummy));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -881,23 +881,23 @@
|
||||
if (i >= 0) {
|
||||
if (!GetSymbol(LabelAdr[r2])) {
|
||||
adrcat("SECSTRT_");
|
||||
- adrcat(itoa(i));
|
||||
+ adrcat(itostr(i));
|
||||
}
|
||||
if (adr > (LONG)moduloffs[i]) {
|
||||
adrcat("+");
|
||||
- adrcat(itoa(adr-moduloffs[i]));
|
||||
+ adrcat(itostr(adr-moduloffs[i]));
|
||||
}
|
||||
else if (adr < (LONG)moduloffs[i])
|
||||
- adrcat(itoa(adr-moduloffs[i]));
|
||||
+ adrcat(itostr(adr-moduloffs[i]));
|
||||
}
|
||||
else {
|
||||
if (!GetSymbol(LabelAdr[r2])) {
|
||||
|
@ -40,3 +89,35 @@
|
|||
adrcat(buf);
|
||||
}
|
||||
if ((dummy = LabelAdr[r2]-LabelAdr2[r])) {
|
||||
adrcat("+");
|
||||
- adrcat(itoa(dummy));
|
||||
+ adrcat(itostr(dummy));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1307,7 +1307,7 @@
|
||||
TEXT symbol[32];
|
||||
|
||||
strcpy(symbol,name);
|
||||
- if (number) strcat(symbol,itoa(number));
|
||||
+ if (number) strcat(symbol,itostr(number));
|
||||
InsertReloc(refptr+prgstart,symptr,0L,module);
|
||||
InsertSymbol(symbol,symptr);
|
||||
InsertLabel(symptr);
|
||||
@@ -1410,13 +1410,13 @@
|
||||
if (ptr && (ptr != 0xFFFFFFFF)) {
|
||||
if (k-j > l) {
|
||||
strcpy(name,"LIBFUNC");
|
||||
- if (number) strcat(name,itoa(number));
|
||||
+ if (number) strcat(name,itostr(number));
|
||||
strcat(name,"_");
|
||||
- strcat(name,itoa(k-j-l-1));
|
||||
+ strcat(name,itostr(k-j-l-1));
|
||||
}
|
||||
else {
|
||||
strcpy(name,FuncName[k-j-1-relative]);
|
||||
- if (number) strcat(name,itoa(number));
|
||||
+ if (number) strcat(name,itostr(number));
|
||||
}
|
||||
if (relative==0)
|
||||
InsertReloc(refptr+prgstart,ptr,0L,module);
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
--- ira/supp.c 2015-09-11 09:25:13.000000000 +0200
|
||||
+++ ira/supp.c 2015-09-11 10:29:42.000000000 +0200
|
||||
@@ -10,7 +10,7 @@
|
||||
char adrbuf[64];
|
||||
|
||||
|
||||
-char *itoa(long integer)
|
||||
+char *itostr(long integer)
|
||||
{
|
||||
static char buf[16];
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
--- ira/supp.h 2015-09-11 09:25:13.000000000 +0200
|
||||
+++ ira/supp.h 2015-09-11 10:29:42.000000000 +0200
|
||||
@@ -58,7 +58,7 @@
|
||||
#define lmovmem(x,y,a) memmove(y,x,(a)*sizeof(LONG))
|
||||
|
||||
void ExitPrg(CONST_STRPTR , ...);
|
||||
-char *itoa(long);
|
||||
+char *itostr(long);
|
||||
char *itohex(unsigned long, unsigned long);
|
||||
void mnecat(const char *);
|
||||
void adrcat(const char *);
|
Loading…
Reference in New Issue