diff --git a/dev-embedded/sdcc/patches/sdcc-4.0.0.patchset b/dev-embedded/sdcc/patches/sdcc-4.0.0.patchset index 8d00a570b..8c4bdc644 100644 --- a/dev-embedded/sdcc/patches/sdcc-4.0.0.patchset +++ b/dev-embedded/sdcc/patches/sdcc-4.0.0.patchset @@ -1,4 +1,4 @@ -From 9421b1eb4a2587be35b5c491d84649296df53f83 Mon Sep 17 00:00:00 2001 +From 829667eafa493858c979f9f7e8ff23d07f80289c Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 14 Sep 2014 12:25:39 +0200 Subject: let sdbinutils know about Haiku. @@ -22,7 +22,7 @@ index 6d34c6d..5ae2396 100644 2.28.0 -From 217b64d2826422ea2e093d676c631a0c55204230 Mon Sep 17 00:00:00 2001 +From a0d0065ff28aa8b5821aaa4656c8cbebc01d0a48 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 14 Sep 2014 12:26:14 +0200 Subject: Missing include. @@ -44,7 +44,7 @@ index b76fa1f..f6ba7d4 100644 2.28.0 -From db63032c9179edd11a1480b188697617fa866b1d Mon Sep 17 00:00:00 2001 +From b38fb6711fbdf9cd381346848227e3e8ccb6d347 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 14 Sep 2014 12:59:31 +0200 Subject: strings.h fix. @@ -66,14 +66,62 @@ index dbf8d84..16775a2 100644 2.28.0 -From cf7f9990c4d823ebe164ce636bebe69d7b3b5095 Mon Sep 17 00:00:00 2001 +From 30925c99d430b10611c0617858f316221cdac777 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 15 Jan 2017 20:50:32 +0100 +Subject: sdcpp: add missing include path + + +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.28.0 + + +From dd2c3f9e753ef4b48b9ebe3f78eb0ccb0a8b3389 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 30 Sep 2020 19:00:21 +1000 +Subject: Add x64 support + + +diff --git a/support/sdbinutils/bfd/config.bfd b/support/sdbinutils/bfd/config.bfd +index 5ae2396..52c91b0 100644 +--- a/support/sdbinutils/bfd/config.bfd ++++ b/support/sdbinutils/bfd/config.bfd +@@ -811,6 +811,10 @@ case "${targ}" in + want64=true + targ_underscore=no + ;; ++ x86_64-*-haiku*) ++ targ_defvec=x86_64_elf64_vec ++ want64=true ++ ;; + x86_64-*-rdos*) + targ_defvec=x86_64_elf64_vec + want64=true +-- +2.28.0 + + +From 64c8f32ebb624c1b58a0ab5683eed7577d38a29d Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Fri, 22 Jan 2016 21:01:19 +0100 Subject: Import Kevin Thacker patch for runtime relocation support. diff --git a/sdas/linksrc/Makefile.in b/sdas/linksrc/Makefile.in -index baea80e..51d2330 100644 +index 43e16f5..e37b167 100644 --- a/sdas/linksrc/Makefile.in +++ b/sdas/linksrc/Makefile.in @@ -47,7 +47,7 @@ ASXXLIBSRC = strcmpi.c @@ -86,7 +134,7 @@ index baea80e..51d2330 100644 LKSOURCES = $(SRC) $(ASXXLIBSRC:%.c=$(ASXXLIB)/%.c) diff --git a/sdas/linksrc/aslink.h b/sdas/linksrc/aslink.h -index e0865f8..d9f6316 100644 +index ebad061..7dce058 100644 --- a/sdas/linksrc/aslink.h +++ b/sdas/linksrc/aslink.h @@ -1033,6 +1033,8 @@ extern int yflag; /* -y, enable SDCC Debug output @@ -99,7 +147,7 @@ index e0865f8..d9f6316 100644 */ extern int uflag; /* Listing relocation flag diff --git a/sdas/linksrc/lkdata.c b/sdas/linksrc/lkdata.c -index bb83900..bfaa197 100644 +index e03cd6a..db7c8ff 100644 --- a/sdas/linksrc/lkdata.c +++ b/sdas/linksrc/lkdata.c @@ -66,6 +66,9 @@ int oflag; /* Output file type flag @@ -113,7 +161,7 @@ index bb83900..bfaa197 100644 int jflag; /* NoICE output flag */ diff --git a/sdas/linksrc/lkmain.c b/sdas/linksrc/lkmain.c -index 4938268..fb2591c 100644 +index fcf7242..5535b95 100644 --- a/sdas/linksrc/lkmain.c +++ b/sdas/linksrc/lkmain.c @@ -233,6 +233,7 @@ main(int argc, char *argv[]) @@ -124,7 +172,7 @@ index 4938268..fb2591c 100644 for(i=1; i -Date: Sun, 15 Jan 2017 20:50:32 +0100 -Subject: sdcpp: add missing include path - - -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.28.0 - - -From 480f4b5aa7e4eec82149acc01e47a072ff1847c9 Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Wed, 30 Sep 2020 19:00:21 +1000 -Subject: Add x64 support - - -diff --git a/support/sdbinutils/bfd/config.bfd b/support/sdbinutils/bfd/config.bfd -index 5ae2396..52c91b0 100644 ---- a/support/sdbinutils/bfd/config.bfd -+++ b/support/sdbinutils/bfd/config.bfd -@@ -811,6 +811,10 @@ case "${targ}" in - want64=true - targ_underscore=no - ;; -+ x86_64-*-haiku*) -+ targ_defvec=x86_64_elf64_vec -+ want64=true -+ ;; - x86_64-*-rdos*) - targ_defvec=x86_64_elf64_vec - want64=true --- -2.28.0 - diff --git a/dev-embedded/sdcc/patches/sdcc_x86-4.0.0.patchset b/dev-embedded/sdcc/patches/sdcc_x86-4.0.0.patchset deleted file mode 100644 index 8c4bdc644..000000000 --- a/dev-embedded/sdcc/patches/sdcc_x86-4.0.0.patchset +++ /dev/null @@ -1,598 +0,0 @@ -From 829667eafa493858c979f9f7e8ff23d07f80289c Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -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 6d34c6d..5ae2396 100644 ---- a/support/sdbinutils/bfd/config.bfd -+++ b/support/sdbinutils/bfd/config.bfd -@@ -853,6 +853,9 @@ case "${targ}" in - targ_defvec=i386_elf32_vec - targ_selvecs="iamcu_elf32_vec i386_pe_vec i386_pei_vec" - ;; -+ i[3-7]86-*-haiku*) -+ targ_defvec=i386_elf32_vec -+ ;; - i[3-7]86-*-interix*) - targ_defvec=i386_pei_vec - targ_selvecs="i386_pe_vec" --- -2.28.0 - - -From a0d0065ff28aa8b5821aaa4656c8cbebc01d0a48 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -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 b76fa1f..f6ba7d4 100644 ---- a/sim/ucsim/cmd.src/newcmdposixcl.h -+++ b/sim/ucsim/cmd.src/newcmdposixcl.h -@@ -33,6 +33,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA - #include "newcmdcl.h" - #include "cmdutil.h" - -+#include - - /* - * Command fd console --- -2.28.0 - - -From b38fb6711fbdf9cd381346848227e3e8ccb6d347 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -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 dbf8d84..16775a2 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 - #include -+#include - - #include "pstr.h" - /*#include "pobjt.h"*/ --- -2.28.0 - - -From 30925c99d430b10611c0617858f316221cdac777 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Sun, 15 Jan 2017 20:50:32 +0100 -Subject: sdcpp: add missing include path - - -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.28.0 - - -From dd2c3f9e753ef4b48b9ebe3f78eb0ccb0a8b3389 Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Wed, 30 Sep 2020 19:00:21 +1000 -Subject: Add x64 support - - -diff --git a/support/sdbinutils/bfd/config.bfd b/support/sdbinutils/bfd/config.bfd -index 5ae2396..52c91b0 100644 ---- a/support/sdbinutils/bfd/config.bfd -+++ b/support/sdbinutils/bfd/config.bfd -@@ -811,6 +811,10 @@ case "${targ}" in - want64=true - targ_underscore=no - ;; -+ x86_64-*-haiku*) -+ targ_defvec=x86_64_elf64_vec -+ want64=true -+ ;; - x86_64-*-rdos*) - targ_defvec=x86_64_elf64_vec - want64=true --- -2.28.0 - - -From 64c8f32ebb624c1b58a0ab5683eed7577d38a29d Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Fri, 22 Jan 2016 21:01:19 +0100 -Subject: Import Kevin Thacker patch for runtime relocation support. - - -diff --git a/sdas/linksrc/Makefile.in b/sdas/linksrc/Makefile.in -index 43e16f5..e37b167 100644 ---- a/sdas/linksrc/Makefile.in -+++ b/sdas/linksrc/Makefile.in -@@ -47,7 +47,7 @@ ASXXLIBSRC = strcmpi.c - SRC = lk_readnl.c lkaomf51.c lkar.c lkarea.c lkdata.c lkelf.c lkeval.c \ - lkhead.c lklex.c lklib.c lklibr.c lklist.c lkmain.c lkmem.c \ - lknoice.c lkout.c lkrel.c lkrloc.c lkrloc3.c lks19.c lksdcclib.c \ -- lksym.c sdld.c lksdcdb.c lkbank.c -+ lksym.c sdld.c lksdcdb.c lkbank.c lkrrel.c - - LKSOURCES = $(SRC) $(ASXXLIBSRC:%.c=$(ASXXLIB)/%.c) - -diff --git a/sdas/linksrc/aslink.h b/sdas/linksrc/aslink.h -index ebad061..7dce058 100644 ---- a/sdas/linksrc/aslink.h -+++ b/sdas/linksrc/aslink.h -@@ -1033,6 +1033,8 @@ extern int yflag; /* -y, enable SDCC Debug output - */ - #endif - -+extern int hflag; /* Generate relocatable executable -+ */ - extern int pflag; /* print linker command file flag - */ - extern int uflag; /* Listing relocation flag -diff --git a/sdas/linksrc/lkdata.c b/sdas/linksrc/lkdata.c -index e03cd6a..db7c8ff 100644 ---- a/sdas/linksrc/lkdata.c -+++ b/sdas/linksrc/lkdata.c -@@ -66,6 +66,9 @@ int oflag; /* Output file type flag - int objflg; /* Linked file/library object output flag - */ - -+int hflag; /* Generate relocatable executable -+ */ -+ - #if NOICE - int jflag; /* NoICE output flag - */ -diff --git a/sdas/linksrc/lkmain.c b/sdas/linksrc/lkmain.c -index fcf7242..5535b95 100644 ---- a/sdas/linksrc/lkmain.c -+++ b/sdas/linksrc/lkmain.c -@@ -233,6 +233,7 @@ main(int argc, char *argv[]) - startp->f_idp = ""; - - pflag = 1; -+ hflag = 0; - - for(i=1; is_id); */ -+ if ((s[rindex]->s_axp->a_bap->a_flag & A4_ABS)==0) -+ { -+ output_relocation_record=1; -+ } -+ } -+ else -+ { -+ /* If the area is absolute then we do not output a record. -+ This allows us to reference absolute memory, but still the code -+ can be relocated. */ -+ /* If the area is relative, it refers to data that is part of the -+ relocatable program */ -+ -+ /* printf("Area: %s\n",a[rindex]->a_bap->a_id); */ -+ if ((a[rindex]->a_bap->a_flag & A4_ABS)==0) -+ { -+ output_relocation_record=1; -+ } -+ } -+ -+ if (output_relocation_record) -+ { -+ a_uint relocate_address = pc+(rtp-rtofst); -+ if (hilo) -+ { -+ raddr = reli + ((rtval[rtp]&0x0ff)<<8) + (rtval[rtp+1]&0x0ff); -+ } -+ else -+ { -+ raddr = reli + ((rtval[rtp+1]&0x0ff)<<8) + (rtval[rtp]&0x0ff); -+ } -+ /*printf("Relocation modify address: %04x\n",relocate_address); */ -+ /*printf("Relocation address: %04x\n",raddr); */ -+ if (mode & R3_BYTE) -+ { -+ if (mode & R3_BYTX) -+ { -+ if (mode & R3_MSB) -+ { -+ -+relrec8hi(relocate_address,raddr); -+ } -+ else -+ { -+ -+relrec8lo(relocate_address,raddr); -+ } -+ } -+ else -+ { -+ printf("not supported"); -+ } -+ } -+ else -+ { -+ if (mode & R3_BYTX) -+ { -+ if (mode & R3_MSB) -+ { -+ printf("not supported"); -+ } -+ else -+ { -+ printf("not supported"); -+ } -+ } -+ else -+ { -+ relrec16(relocate_address); -+ } -+ } -+ } -+ } - - /* pdk instruction fusion */ - if (TARGET_IS_PDK) { -@@ -856,6 +947,12 @@ rele3() - if (uflag != 0) { - lkulist(0); - } -+ -+ /* output relocation data */ -+ if (hflag) { -+ relrecwrite(); -+ } -+ - 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 -+#include -+#include -+#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; icount; 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; icount; 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.28.0 -