1
0
mirror of https://github.com/cahirwpz/amigaos-cross-toolchain synced 2025-11-21 10:15:10 +00:00

Upgrade to IRA 2.09

This commit is contained in:
Krystian Bacławski
2018-03-10 13:13:44 +01:00
parent 5460b34e66
commit e8996ad23e
8 changed files with 2 additions and 570 deletions

View File

@ -1 +1 @@
20171112-2
20180310-1

View File

@ -1,11 +0,0 @@
--- ira/Makefile 2015-09-11 09:25:13.000000000 +0200
+++ ira/Makefile 2015-09-11 09:21:37.000000000 +0200
@@ -2,7 +2,7 @@
EXT =
CC = gcc
CCOUT = -o
-COPTS = -c -O2
+COPTS = -c -O2 -Wall -Wno-pointer-sign -Wno-unused-result
LD = $(CC)
LDOUT = $(CCOUT)
LDFLAGS =

View File

@ -1,401 +0,0 @@
--- ira/ira.c 2015-09-11 09:25:13.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);
else if (baseoff < 0)
- fprintf(f,"-%hd,A%hu\n",-baseoff,basereg);
+ fprintf(f,"-%hd,A%hu\n",(WORD)-baseoff,basereg);
else
fprintf(f,",A%hu\n",basereg);
}
@@ -479,7 +479,7 @@
FILE *configfile;
ULONG machine;
- if (configfile=fopen(configname,"r")) {
+ if ((configfile=fopen(configname,"r"))) {
fclose(configfile);
ExitPrg("Config file \"%s\" is already present! Remove it first.",
configname);
@@ -508,7 +508,7 @@
if (pflags&BASEREG2) {
fprintf(configfile,"BASEREG %u\n",(unsigned)basereg);
fprintf(configfile,"BASEADR $%lX\n",(unsigned long)baseadr);
- fprintf(configfile,"BASEOFF %h\n",baseoff);
+ fprintf(configfile,"BASEOFF %hu\n",baseoff);
}
for(i=0;i<SymbolCount;i++)
@@ -648,7 +648,7 @@
if (ptr1 && (ptr2 = strchr(ptr1+1,'$'))) stch_l(ptr2+1,&area2);
if (ptr1 && ptr2 && (ptr3 = strchr(ptr2+1,'$'))) stch_l(ptr3+1,&base);
if (ptr1 && ptr2) {
- int sz;
+ int sz = 0;
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 @@
}
/* Labels fuer aktuelle Adresse schreiben */
- if (LabelAdr2[p2labind]<adr && p2labind<labcount) fprintf(stderr,"%lx adr=%lx This=%?x\n",(unsigned long)p2labind,(unsigned long)adr,(unsigned long)LabelAdr2[p2labind]);
+ if (LabelAdr2[p2labind]<adr && p2labind<labcount) fprintf(stderr,"%lx adr=%lx This=%lx\n",(unsigned long)p2labind,(unsigned long)adr,(unsigned long)LabelAdr2[p2labind]);
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&REGISTER,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;
- while (c = *p++) {
+ while ((c = *p++)) {
switch (tolower((unsigned)c)) {
case 'b': bitrange=1; break;
case 'i': immedbyte=1; break;
@@ -3657,7 +3657,6 @@
STATIC int AutoScan(void)
{
FILE *file;
-ULONG seg;
ULONG dummy;
if (!(file = fopen(sourcename,"rb")))
@@ -3710,7 +3709,7 @@
if (pflags&SHOW_RELOCINFO) printf(" Unit : %s\n",StdName);
- while (hunk = readbe32(sourcefile)) { /* Modulart (Code,Data,...) */
+ while ((hunk = readbe32(sourcefile))) { /* Modulart (Code,Data,...) */
if ((hunk>>30) == 3)
length = readbe32(sourcefile); /* Aufwaertskompatibel */

View File

@ -1,123 +0,0 @@
--- ira/ira_2.c 2015-09-11 09:25:13.000000000 +0200
+++ ira/ira_2.c 2015-09-11 10:29:42.000000000 +0200
@@ -586,7 +586,7 @@
ULONG FileLength(UBYTE *name)
{
- LONG len;
+ LONG len = 0;
FILE *file;
if (name) {
if (!(file = fopen(name,"rb")))
@@ -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);
- fprintf(stderr,"LabelAdr[l=%lu]=%08lx\n",l,(unsigned long)LabelAdr[l]);
- fprintf(stderr,"LabelAdr[m=%lu]=%08lx\n",m,(unsigned long)LabelAdr[m]);
- fprintf(stderr,"LabelAdr[r=%lu]=%08lx\n\n",r,(unsigned long)LabelAdr[r]);
+ fprintf(stderr,"LabelAdr[l=%u]=%08lx\n",l,(unsigned long)LabelAdr[l]);
+ fprintf(stderr,"LabelAdr[m=%u]=%08lx\n",m,(unsigned long)LabelAdr[m]);
+ fprintf(stderr,"LabelAdr[r=%u]=%08lx\n\n",r,(unsigned long)LabelAdr[r]);
adrcat("LAB_");
adrcat(itohex(adr,8));
return;
@@ -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])) {
- sprintf(buf,"LAB_%04lX",(unsigned)r);
+ sprintf(buf,"LAB_%04X",(unsigned)r);
adrcat(buf);
}
if ((dummy = LabelAdr[r2]-LabelAdr2[r])) {
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])) {
- sprintf(buf,"LAB_%04lX",(unsigned)r);
+ sprintf(buf,"LAB_%04X",(unsigned)r);
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);

View File

@ -1,10 +0,0 @@
--- ira/make.rules 2015-09-11 09:25:13.000000000 +0200
+++ ira/make.rules 2015-09-11 09:22:43.000000000 +0200
@@ -18,6 +18,7 @@
clean:
$(RM) ira$(OS)$(EXT) $(OBJS)
+ $(RM) *~
FILES = ira_68k ira_mos ira_os4 ira.readme ira.doc ira.c ira.h ira_2.c \
make.rules Makefile Makefile.mos Makefile.os3 Makefile.os4 \

View File

@ -1,11 +0,0 @@
--- 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];

View File

@ -1,11 +0,0 @@
--- 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 *);

View File

@ -508,8 +508,7 @@ def build():
make('{gcc}', 'install-target',
MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
unpack('ira', top_dir='.', work_dir='{build}')
patch('ira', work_dir='{build}')
unpack('ira', top_dir='ira', work_dir='{build}')
make('ira')
unpack('vdam68k', top_dir='vda/M68k', work_dir='{build}')