mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 05:10:05 +02:00
SDCC: update to latest release
- Perform an out of source build - Fix some build issues - This version builds with an up to date GCC host
This commit is contained in:
@@ -1,194 +0,0 @@
|
||||
From 8dabca703681d397595e7076c19f07f523104f69 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 14 Sep 2014 12:25:39 +0200
|
||||
Subject: let sdbinutils know about Haiku.
|
||||
|
||||
|
||||
diff --git a/support/sdbinutils/bfd/config.bfd b/support/sdbinutils/bfd/config.bfd
|
||||
index a812403..31363e2 100644
|
||||
--- a/support/sdbinutils/bfd/config.bfd
|
||||
+++ b/support/sdbinutils/bfd/config.bfd
|
||||
@@ -693,6 +693,9 @@ case "${targ}" in
|
||||
targ_defvec=bfd_elf32_i386_vec
|
||||
targ_selvecs="i386pe_vec i386pei_vec"
|
||||
;;
|
||||
+ i[3-7]86-*-haiku*)
|
||||
+ targ_defvec=bfd_elf32_i386_vec
|
||||
+ ;;
|
||||
i[3-7]86-*-interix*)
|
||||
targ_defvec=i386pei_vec
|
||||
targ_selvecs="i386pe_vec"
|
||||
--
|
||||
1.8.3.4
|
||||
|
||||
|
||||
From 850a29c40087948fdf36dc80b30a8870fc6858c3 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 14 Sep 2014 12:26:14 +0200
|
||||
Subject: Missing include.
|
||||
|
||||
|
||||
diff --git a/sim/ucsim/cmd.src/newcmdposixcl.h b/sim/ucsim/cmd.src/newcmdposixcl.h
|
||||
index 5050d2f..ef3ed70 100644
|
||||
--- a/sim/ucsim/cmd.src/newcmdposixcl.h
|
||||
+++ b/sim/ucsim/cmd.src/newcmdposixcl.h
|
||||
@@ -32,6 +32,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
#include "newcmdcl.h"
|
||||
#include "cmdutil.h"
|
||||
|
||||
+#include <sys/select.h>
|
||||
|
||||
/*
|
||||
* Command fd console
|
||||
--
|
||||
1.8.3.4
|
||||
|
||||
|
||||
From 8f059ca65eac475ce5c80852a6f6a4b499f80b06 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 14 Sep 2014 12:59:31 +0200
|
||||
Subject: strings.h fix.
|
||||
|
||||
|
||||
diff --git a/sim/ucsim/pobj.cc b/sim/ucsim/pobj.cc
|
||||
index e809980..166d8b1 100644
|
||||
--- a/sim/ucsim/pobj.cc
|
||||
+++ b/sim/ucsim/pobj.cc
|
||||
@@ -29,6 +29,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <strings.h>
|
||||
|
||||
#include "pstr.h"
|
||||
/*#include "pobjt.h"*/
|
||||
--
|
||||
1.8.3.4
|
||||
|
||||
|
||||
From d35e5495bb9e7ebf00de26030fe91fe302b80700 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 14 Sep 2014 12:59:16 +0200
|
||||
Subject: Remove hardcoded -lm
|
||||
|
||||
|
||||
diff --git a/sdas/as6808/Makefile.in b/sdas/as6808/Makefile.in
|
||||
index 04cf34f..dfac987 100644
|
||||
--- a/sdas/as6808/Makefile.in
|
||||
+++ b/sdas/as6808/Makefile.in
|
||||
@@ -37,7 +37,7 @@ VPATH = @srcdir@
|
||||
CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/util
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS)
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-LIBS = -lm
|
||||
+LIBS =
|
||||
|
||||
OBJDIR = obj
|
||||
|
||||
diff --git a/sdas/as8051/Makefile.in b/sdas/as8051/Makefile.in
|
||||
index e2d092a..3d92634 100644
|
||||
--- a/sdas/as8051/Makefile.in
|
||||
+++ b/sdas/as8051/Makefile.in
|
||||
@@ -37,7 +37,7 @@ VPATH = @srcdir@
|
||||
CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/util
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS)
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-LIBS = -lm
|
||||
+LIBS =
|
||||
|
||||
OBJDIR = obj
|
||||
|
||||
diff --git a/sdas/as8xcxxx/Makefile.in b/sdas/as8xcxxx/Makefile.in
|
||||
index 9ba2572..7e6f9ce 100644
|
||||
--- a/sdas/as8xcxxx/Makefile.in
|
||||
+++ b/sdas/as8xcxxx/Makefile.in
|
||||
@@ -37,7 +37,7 @@ VPATH = @srcdir@
|
||||
CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/util
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS)
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-LIBS = -lm
|
||||
+LIBS =
|
||||
|
||||
OBJDIR = obj
|
||||
|
||||
diff --git a/sdas/asgb/Makefile.in b/sdas/asgb/Makefile.in
|
||||
index e15d878..af34749 100644
|
||||
--- a/sdas/asgb/Makefile.in
|
||||
+++ b/sdas/asgb/Makefile.in
|
||||
@@ -37,7 +37,7 @@ VPATH = @srcdir@
|
||||
CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/util
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS)
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-LIBS = -lm
|
||||
+LIBS =
|
||||
|
||||
OBJDIR = obj
|
||||
|
||||
diff --git a/sdas/asrab/Makefile.in b/sdas/asrab/Makefile.in
|
||||
index 2518544..10ecc85 100644
|
||||
--- a/sdas/asrab/Makefile.in
|
||||
+++ b/sdas/asrab/Makefile.in
|
||||
@@ -37,7 +37,7 @@ VPATH = @srcdir@
|
||||
CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/util
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS)
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-LIBS = -lm
|
||||
+LIBS =
|
||||
|
||||
OBJDIR = obj
|
||||
|
||||
diff --git a/sdas/asstm8/Makefile.in b/sdas/asstm8/Makefile.in
|
||||
index ef2accb..06b0c48 100755
|
||||
--- a/sdas/asstm8/Makefile.in
|
||||
+++ b/sdas/asstm8/Makefile.in
|
||||
@@ -37,7 +37,7 @@ VPATH = @srcdir@
|
||||
CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/util
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS)
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-LIBS = -lm
|
||||
+LIBS =
|
||||
|
||||
OBJDIR = obj
|
||||
|
||||
diff --git a/sdas/astlcs90/Makefile.in b/sdas/astlcs90/Makefile.in
|
||||
index 8c299c4..dba0454 100644
|
||||
--- a/sdas/astlcs90/Makefile.in
|
||||
+++ b/sdas/astlcs90/Makefile.in
|
||||
@@ -37,7 +37,7 @@ VPATH = @srcdir@
|
||||
CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/util
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS)
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-LIBS = -lm
|
||||
+LIBS =
|
||||
|
||||
OBJDIR = obj
|
||||
|
||||
diff --git a/sdas/asz80/Makefile.in b/sdas/asz80/Makefile.in
|
||||
index 5de4cc8..f4bf6d2 100644
|
||||
--- a/sdas/asz80/Makefile.in
|
||||
+++ b/sdas/asz80/Makefile.in
|
||||
@@ -37,7 +37,7 @@ VPATH = @srcdir@
|
||||
CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/util
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS)
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-LIBS = -lm
|
||||
+LIBS =
|
||||
|
||||
OBJDIR = obj
|
||||
|
||||
diff --git a/src/Makefile.in b/src/Makefile.in
|
||||
index 5f18ab6..782f5be 100644
|
||||
--- a/src/Makefile.in
|
||||
+++ b/src/Makefile.in
|
||||
@@ -15,7 +15,7 @@ PORTS = $(shell cat ../ports.build)
|
||||
ALLPORTS = $(shell cat ../ports.all)
|
||||
PORT_LIBS = $(PORTS:%=%/port.a)
|
||||
|
||||
-LIBS = -lm @LIBS@
|
||||
+LIBS = @LIBS@
|
||||
|
||||
CFLAGS = @CFLAGS@ @WALL_FLAG@
|
||||
CXXFLAGS = @CXXFLAGS@ @WALL_FLAG@
|
||||
--
|
||||
1.8.3.4
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
From 1bd79b2e8b02c9147ee3fcbeae69ece7e7070687 Mon Sep 17 00:00:00 2001
|
||||
From a95501e57f35c71394748a6656e52581ab2a4932 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 14 Sep 2014 12:25:39 +0200
|
||||
Subject: let sdbinutils know about Haiku.
|
||||
|
||||
|
||||
diff --git a/support/sdbinutils/bfd/config.bfd b/support/sdbinutils/bfd/config.bfd
|
||||
index ee1d39d..386faab 100644
|
||||
index a1a8311..2e2f99d 100644
|
||||
--- a/support/sdbinutils/bfd/config.bfd
|
||||
+++ b/support/sdbinutils/bfd/config.bfd
|
||||
@@ -693,6 +693,9 @@ case "${targ}" in
|
||||
targ_defvec=bfd_elf32_i386_vec
|
||||
targ_selvecs="i386pe_vec i386pei_vec"
|
||||
@@ -725,6 +725,9 @@ case "${targ}" in
|
||||
targ_defvec=i386_elf32_vec
|
||||
targ_selvecs="i386_pe_vec i386_pei_vec"
|
||||
;;
|
||||
+ i[3-7]86-*-haiku*)
|
||||
+ targ_defvec=bfd_elf32_i386_vec
|
||||
+ targ_defvec=i386_elf32_vec
|
||||
+ ;;
|
||||
i[3-7]86-*-interix*)
|
||||
targ_defvec=i386pei_vec
|
||||
targ_selvecs="i386pe_vec"
|
||||
targ_defvec=i386_pei_vec
|
||||
targ_selvecs="i386_pe_vec"
|
||||
--
|
||||
2.7.0
|
||||
|
||||
|
||||
From 1109aa92552ca00f54c3e9a980562f3a789104bc Mon Sep 17 00:00:00 2001
|
||||
From 33d4dfa0af15f64b9ef9313f53fd1594907814e7 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 14 Sep 2014 12:26:14 +0200
|
||||
Subject: Missing include.
|
||||
@@ -44,7 +44,7 @@ index 5050d2f..ef3ed70 100644
|
||||
2.7.0
|
||||
|
||||
|
||||
From c7067504f4e06e5905f253ac6597f611794ab8e9 Mon Sep 17 00:00:00 2001
|
||||
From 75bb84c28fb9bcee9236d5490112e5a5a0edb3be Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 14 Sep 2014 12:59:31 +0200
|
||||
Subject: strings.h fix.
|
||||
@@ -66,7 +66,7 @@ index e809980..166d8b1 100644
|
||||
2.7.0
|
||||
|
||||
|
||||
From 93c2311eb84b19e333946332959d4fbf6bc7a975 Mon Sep 17 00:00:00 2001
|
||||
From aa034f022a15f189c4d20c36578e8423b77ba5ea Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 14 Sep 2014 12:59:16 +0200
|
||||
Subject: Remove hardcoded -lm
|
||||
@@ -193,7 +193,7 @@ index fc22c22..ebf63f1 100644
|
||||
2.7.0
|
||||
|
||||
|
||||
From aef811431a7cf3d20e26da1302c5fbfc6d6dd1a0 Mon Sep 17 00:00:00 2001
|
||||
From f28f97241c95b6434d9a326d8349f25cd16bebfb Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Fri, 22 Jan 2016 21:01:19 +0100
|
||||
Subject: Import Kevin Thacker patch for runtime relocation support.
|
||||
@@ -240,7 +240,7 @@ index bb83900..bfaa197 100644
|
||||
int jflag; /* NoICE output flag
|
||||
*/
|
||||
diff --git a/sdas/linksrc/lkmain.c b/sdas/linksrc/lkmain.c
|
||||
index f68e8f9..bd426dd 100644
|
||||
index 1cc7a45..9d6f916 100644
|
||||
--- a/sdas/linksrc/lkmain.c
|
||||
+++ b/sdas/linksrc/lkmain.c
|
||||
@@ -233,6 +233,7 @@ main(int argc, char *argv[])
|
||||
@@ -394,6 +394,311 @@ index cf184f2..6f11cdc 100644
|
||||
if (oflag != 0) {
|
||||
lkflush();
|
||||
lkfclose();
|
||||
diff --git a/sdas/linksrc/lkrrel.c b/sdas/linksrc/lkrrel.c
|
||||
new file mode 100644
|
||||
index 0000000..e9e8383
|
||||
--- /dev/null
|
||||
+++ b/sdas/linksrc/lkrrel.c
|
||||
@@ -0,0 +1,251 @@
|
||||
+/* (c) Kevin Thacker, May 2005 */
|
||||
+#include <stdio.h>
|
||||
+#include <string.h>
|
||||
+#include <stdlib.h>
|
||||
+#include "aslink.h"
|
||||
+#include "lkrrel.h"
|
||||
+
|
||||
+struct relrechead
|
||||
+{
|
||||
+ int count;
|
||||
+ struct relrec *head;
|
||||
+};
|
||||
+
|
||||
+/* 16-bit values, add full 16-bit base address */
|
||||
+
|
||||
+static struct relrechead head16= {0,NULL};
|
||||
+/* 8-bit, but add high byte of 16-bit base address */
|
||||
+static struct relrechead head8hi = {0,NULL};
|
||||
+/* 8-bit, but add low byte of 16-bit base address */
|
||||
+static struct relrechead head8lo = {0,NULL};
|
||||
+
|
||||
+/* internal; free's list */
|
||||
+static void relrecfree(struct relrechead *head)
|
||||
+{
|
||||
+ struct relrec *cur = head->head;
|
||||
+
|
||||
+ while (cur!=NULL)
|
||||
+ {
|
||||
+ struct relrec *next = cur->next;
|
||||
+ free(cur);
|
||||
+
|
||||
+ cur = next;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/* free relocation record list; e.g. on exit */
|
||||
+void freerelrec()
|
||||
+{
|
||||
+ relrecfree(&head16);
|
||||
+ relrecfree(&head8hi);
|
||||
+ relrecfree(&head8lo);
|
||||
+}
|
||||
+
|
||||
+/* internal; allocate a relocation record */
|
||||
+static void newrelrec(struct relrechead *head, a_uint addr, a_uint symaddr)
|
||||
+{
|
||||
+ struct relrec *rec;
|
||||
+
|
||||
+ rec = (struct relrec *) malloc(sizeof(struct relrec));
|
||||
+
|
||||
+ /* error if allocation failed */
|
||||
+ if (rec==NULL)
|
||||
+ return;
|
||||
+
|
||||
+ rec->addr = addr;
|
||||
+ rec->symaddr = symaddr;
|
||||
+
|
||||
+ /* add to start of list */
|
||||
+ rec->next = head->head;
|
||||
+ head->head = rec;
|
||||
+ head->count++;
|
||||
+}
|
||||
+
|
||||
+/* add item to 16-bit relocation record list */
|
||||
+void relrec16(a_uint addr)
|
||||
+{
|
||||
+ newrelrec(&head16, addr,0);
|
||||
+}
|
||||
+
|
||||
+/* add item to 8-bit (high) relocation record list */
|
||||
+void relrec8hi(a_uint addr, a_uint symaddr)
|
||||
+{
|
||||
+ newrelrec(&head8hi, addr,symaddr);
|
||||
+}
|
||||
+
|
||||
+/* add address to 8-bit (low) relocation list */
|
||||
+void relrec8lo(a_uint addr, a_uint symaddr)
|
||||
+{
|
||||
+ newrelrec(&head8lo, addr,symaddr);
|
||||
+}
|
||||
+
|
||||
+/* internal; compare two addresses within two relocate records */
|
||||
+static int relreccompare(const void *a, const void *b)
|
||||
+{
|
||||
+ const struct relrec *relreca = (const struct relrec *)a;
|
||||
+ const struct relrec *relrecb = (const struct relrec *)b;
|
||||
+
|
||||
+ return (relreca->addr-relrecb->addr);
|
||||
+}
|
||||
+
|
||||
+/* sort a list of relocate records and return an array of the records */
|
||||
+static struct relrec *relrecsort(struct relrechead *head)
|
||||
+{
|
||||
+ int count;
|
||||
+ struct relrec *reclist;
|
||||
+ struct relrec *cur;
|
||||
+
|
||||
+ if (head->count==0)
|
||||
+ return NULL;
|
||||
+
|
||||
+ /* allocate list to hold all items */
|
||||
+ reclist = (struct relrec *)malloc(sizeof(struct relrec)*head->count);
|
||||
+
|
||||
+ if (reclist==NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ /* fill list */
|
||||
+ count = 0;
|
||||
+ cur = head->head;
|
||||
+ while (cur!=NULL)
|
||||
+ {
|
||||
+ memcpy(&reclist[count],cur,sizeof(struct relrec));
|
||||
+ count++;
|
||||
+ cur = cur->next;
|
||||
+ }
|
||||
+
|
||||
+ /* sort into ascending address order */
|
||||
+ qsort(reclist, count, sizeof(struct relrec),relreccompare);
|
||||
+
|
||||
+ return reclist;
|
||||
+}
|
||||
+
|
||||
+int outbyte(int addr, char byte)
|
||||
+{
|
||||
+ rtval[0] = addr&0x0ff;
|
||||
+ rtval[1] = (addr>>8)&0x0ff;
|
||||
+ rtval[2] = byte&0x0ff;
|
||||
+ addr+=1;
|
||||
+ rtflg[0] = 1;
|
||||
+ rtflg[1] = 1;
|
||||
+ rtflg[2] = 1;
|
||||
+ rtcnt = 3;
|
||||
+ ixx(1);
|
||||
+ return addr;
|
||||
+}
|
||||
+
|
||||
+void relrecwritelist1(struct relrechead *list,int *addrptr)
|
||||
+{
|
||||
+ int i;
|
||||
+ struct relrec *relreclist;
|
||||
+ int addr;
|
||||
+
|
||||
+ addr = *addrptr;
|
||||
+
|
||||
+ relreclist = relrecsort(list);
|
||||
+
|
||||
+ if (relreclist!=NULL)
|
||||
+ {
|
||||
+ int prevaddr = 0;
|
||||
+ for (i=0; i<list->count; i++)
|
||||
+ {
|
||||
+ struct relrec *cur = &relreclist[i];
|
||||
+
|
||||
+ int delta = cur->addr-prevaddr;
|
||||
+
|
||||
+ if (delta>254)
|
||||
+ {
|
||||
+ int largedelta = delta-1;
|
||||
+ addr = outbyte(addr,0x0ff);
|
||||
+ addr = outbyte(addr,largedelta&0x0ff);
|
||||
+ addr = outbyte(addr,(largedelta>>8)&0x0ff);
|
||||
+ delta = 1;
|
||||
+ }
|
||||
+ prevaddr = cur->addr;
|
||||
+ addr = outbyte(addr,delta&0x0ff);
|
||||
+ }
|
||||
+
|
||||
+ free(relreclist);
|
||||
+ }
|
||||
+
|
||||
+ addr = outbyte(addr, 0);
|
||||
+
|
||||
+ *addrptr = addr;
|
||||
+
|
||||
+}
|
||||
+
|
||||
+void relrecwritelist2(struct relrechead *list,int *addrptr)
|
||||
+{
|
||||
+ int i;
|
||||
+ struct relrec *relreclist;
|
||||
+ int addr;
|
||||
+
|
||||
+ addr = *addrptr;
|
||||
+
|
||||
+ relreclist = relrecsort(list);
|
||||
+
|
||||
+ if (relreclist!=NULL)
|
||||
+ {
|
||||
+ int prevaddr = 0;
|
||||
+ for (i=0; i<list->count; i++)
|
||||
+ {
|
||||
+ struct relrec *cur = &relreclist[i];
|
||||
+ int delta = cur->addr-prevaddr;
|
||||
+ prevaddr = cur->addr;
|
||||
+
|
||||
+ if (delta>254)
|
||||
+ {
|
||||
+ int largedelta = delta-1;
|
||||
+ addr = outbyte(addr,0x0ff);
|
||||
+ addr = outbyte(addr,largedelta&0x0ff);
|
||||
+ addr = outbyte(addr,(largedelta>>8)&0x0ff);
|
||||
+ delta = 1;
|
||||
+ }
|
||||
+
|
||||
+ addr = outbyte(addr,delta&0x0ff);
|
||||
+ addr = outbyte(addr,cur->symaddr&0x0ff);
|
||||
+ }
|
||||
+
|
||||
+ free(relreclist);
|
||||
+ }
|
||||
+
|
||||
+ addr = outbyte(addr,0);
|
||||
+
|
||||
+ *addrptr = addr;
|
||||
+
|
||||
+}
|
||||
+
|
||||
+
|
||||
+void relrecwrite()
|
||||
+{
|
||||
+ int areasize = 0;
|
||||
+
|
||||
+ struct area *cur = areap;
|
||||
+ while (cur!=NULL)
|
||||
+ {
|
||||
+ areasize+=cur->a_size;
|
||||
+ cur=cur->a_ap;
|
||||
+ }
|
||||
+
|
||||
+ //printf("total length before relocation records: %04x\n",areasize);
|
||||
+
|
||||
+ /* re-write offset to relocation records */
|
||||
+ rtval[0] = 0;
|
||||
+ rtval[1] = 0;
|
||||
+ rtval[2] = areasize&0x0ff;
|
||||
+ rtval[3] = (areasize>>8)&0x0ff;
|
||||
+ rtflg[0] = 1;
|
||||
+ rtflg[1] = 1;
|
||||
+ rtflg[2] = 1;
|
||||
+ rtflg[3] = 1;
|
||||
+ rtcnt = 4;
|
||||
+ ixx(1);
|
||||
+
|
||||
+
|
||||
+ int addr = areasize;
|
||||
+
|
||||
+
|
||||
+ relrecwritelist1(&head16,&addr);
|
||||
+ relrecwritelist1(&head8lo,&addr);
|
||||
+ relrecwritelist2(&head8hi,&addr);
|
||||
+}
|
||||
diff --git a/sdas/linksrc/lkrrel.h b/sdas/linksrc/lkrrel.h
|
||||
new file mode 100644
|
||||
index 0000000..ca1cfd4
|
||||
--- /dev/null
|
||||
+++ b/sdas/linksrc/lkrrel.h
|
||||
@@ -0,0 +1,17 @@
|
||||
+/* relocation record */
|
||||
+struct relrec
|
||||
+{
|
||||
+ /* next item */
|
||||
+ struct relrec *next;
|
||||
+
|
||||
+ /* address of relocate */
|
||||
+ a_uint addr;
|
||||
+
|
||||
+ a_uint symaddr;
|
||||
+};
|
||||
+
|
||||
+void relrec16(a_uint addr);
|
||||
+void relrec8lo(a_uint addr, a_uint symaddr);
|
||||
+void relrec8hi(a_uint addr, a_uint symaddr);
|
||||
+void freerelrec();
|
||||
+void relrecwrite();
|
||||
--
|
||||
2.7.0
|
||||
|
||||
|
||||
From b56f61aea4312e943ecf79e65846f55f4a83827e Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sun, 15 Jan 2017 20:50:32 +0100
|
||||
Subject: sdcpp: add missing include path
|
||||
|
||||
This prevents the configure script from detecting some things, and later
|
||||
on the build fails.
|
||||
|
||||
diff --git a/support/cpp/configure.ac b/support/cpp/configure.ac
|
||||
index cbf4e07..34435cb 100644
|
||||
--- a/support/cpp/configure.ac
|
||||
+++ b/support/cpp/configure.ac
|
||||
@@ -217,7 +217,7 @@ AC_FUNC_MMAP_FILE
|
||||
|
||||
# We will need to find libiberty.h and ansidecl.h
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
-CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/libiberty -I${srcdir}/libcpp/include"
|
||||
+CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../libiberty -I${srcdir}/libcpp/include -I${srcdir}/../sdbinutils/include"
|
||||
gcc_AC_CHECK_DECLS(getenv abort strsignal errno \
|
||||
malloc realloc calloc free clock, , ,[
|
||||
#include "ansidecl.h"
|
||||
--
|
||||
2.7.0
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
SUMMARY="A retargettable, optimizing ANSI - C compiler suite"
|
||||
DESCRIPTION="
|
||||
SDCC is a retargettable, optimizing ANSI - C compiler suite that targets the \
|
||||
Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim \
|
||||
(formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based \
|
||||
(hc08, s08), Zilog Z80 based MCUs (z80, z180, gbz80, Rabbit 2000/3000, Rabbit \
|
||||
3000A, TLCS-90) and STMicroelectronics STM8. Work is in progress on supporting \
|
||||
the Microchip PIC16 and PIC18 targets. It can be retargeted for other \
|
||||
microprocessors."
|
||||
HOMEPAGE="http://sdcc.sourceforge.net"
|
||||
COPYRIGHT="1999-2013 Sandeep Dutta"
|
||||
LICENSE="GNU GPL v2"
|
||||
REVISION="1"
|
||||
SOURCE_URI="http://sourceforge.net/projects/sdcc/files/sdcc/3.4.0/sdcc-src-3.4.0.tar.bz2"
|
||||
CHECKSUM_SHA256="cf6af862b94d5f259f11afa0a1b86304f3047b3723a9df96f20dba869deb5bf9"
|
||||
PATCHES="sdcc-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="!x86_gcc2 x86 x86_64"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
|
||||
PROVIDES="
|
||||
sdcc$secondaryArchSuffix = $portVersion
|
||||
cmd:sdcc$secondaryArchSuffix = $portVersion
|
||||
cmd:as2gbmap$secondaryArchSuffix
|
||||
cmd:makebin$secondaryArchSuffix
|
||||
cmd:packihx$secondaryArchSuffix
|
||||
cmd:s51$secondaryArchSuffix
|
||||
cmd:savr$secondaryArchSuffix
|
||||
cmd:sdar$secondaryArchSuffix
|
||||
cmd:sdas390$secondaryArchSuffix
|
||||
cmd:sdas6808$secondaryArchSuffix
|
||||
cmd:sdas8051$secondaryArchSuffix
|
||||
cmd:sdasgb$secondaryArchSuffix
|
||||
cmd:sdasrab$secondaryArchSuffix
|
||||
cmd:sdasstm8$secondaryArchSuffix
|
||||
cmd:sdastlcs90$secondaryArchSuffix
|
||||
cmd:sdasz80$secondaryArchSuffix
|
||||
cmd:sdcclib$secondaryArchSuffix
|
||||
cmd:sdcdb$secondaryArchSuffix
|
||||
cmd:sdcdb.el$secondaryArchSuffix
|
||||
cmd:sdcdbsrc.el$secondaryArchSuffix
|
||||
cmd:sdcpp$secondaryArchSuffix
|
||||
cmd:sdld$secondaryArchSuffix
|
||||
cmd:sdld6808$secondaryArchSuffix
|
||||
cmd:sdldgb$secondaryArchSuffix
|
||||
cmd:sdldz80$secondaryArchSuffix
|
||||
cmd:sdnm$secondaryArchSuffix
|
||||
cmd:sdobjcopy$secondaryArchSuffix
|
||||
cmd:sdranlib$secondaryArchSuffix
|
||||
cmd:shc08$secondaryArchSuffix
|
||||
cmd:sst7$secondaryArchSuffix
|
||||
cmd:sstm8$secondaryArchSuffix
|
||||
cmd:sz80$secondaryArchSuffix
|
||||
devel:libiberty$secondaryArchSuffix
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
devel:libboost_graph$secondaryArchSuffix
|
||||
devel:libiconv$secondaryArchSuffix
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:ld$secondaryArchSuffix
|
||||
cmd:automake
|
||||
cmd:autoconf
|
||||
cmd:bison
|
||||
cmd:flex
|
||||
cmd:make
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
# The PIC14/16 ports need gputils. Enable them when we have a recipe for it.
|
||||
CFLAGS="-DO_ASYNC=0" \
|
||||
runConfigure ./configure --disable-pic14-port --disable-pic16-port
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make install
|
||||
|
||||
prepareInstalledDevelLib libiberty
|
||||
}
|
||||
@@ -7,12 +7,12 @@ Rabbit 3000A, TLCS-90) and STMicroelectronics STM8. Work is in progress on \
|
||||
supporting the Microchip PIC16 and PIC18 targets. It can be retargeted for \
|
||||
other microprocessors."
|
||||
HOMEPAGE="http://sdcc.sourceforge.net"
|
||||
COPYRIGHT="1999-2013 Sandeep Dutta"
|
||||
COPYRIGHT="1999-2016 Sandeep Dutta"
|
||||
LICENSE="GNU GPL v2"
|
||||
REVISION="1"
|
||||
SOURCE_URI="http://sourceforge.net/projects/sdcc/files/sdcc/$portVersion/sdcc-src-$portVersion.tar.bz2"
|
||||
CHECKSUM_SHA256="f82978d1614244b22e093402c0a4de1f688a07c807b2980126c964eb3df85fa9"
|
||||
PATCHES="sdcc-3.5.0.patchset"
|
||||
CHECKSUM_SHA256="e85dceb11e01ffefb545ec389da91265130c91953589392dddd2e5ec0b7ca374"
|
||||
PATCHES="sdcc-3.6.0.patchset"
|
||||
|
||||
ARCHITECTURES="!x86_gcc2 x86 x86_64"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
@@ -69,17 +69,27 @@ BUILD_PREREQUIRES="
|
||||
cmd:bison
|
||||
cmd:flex
|
||||
cmd:make
|
||||
cmd:makeinfo
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
pushd support/cpp
|
||||
autoconf
|
||||
popd
|
||||
|
||||
mkdir -p build
|
||||
pushd build
|
||||
# The PIC14/16 ports need gputils. Enable them when we have a recipe for it.
|
||||
CFLAGS="-DO_ASYNC=0" \
|
||||
runConfigure ./configure --disable-pic14-port --disable-pic16-port --bindir=$prefix/bin
|
||||
runConfigure ../configure --disable-pic14-port --disable-pic16-port --bindir=$prefix/bin
|
||||
make $jobArgs
|
||||
popd
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
pushd build
|
||||
make install
|
||||
popd
|
||||
}
|
||||
Reference in New Issue
Block a user