From cfb6182a3f6cbb60ab3cb42f9238e075366bb0ce Mon Sep 17 00:00:00 2001 From: naddy Date: Mon, 3 Nov 2003 01:02:34 +0000 Subject: [PATCH] Import gputils 0.11.7. Submitted by Andrew Dalgleish . GPUTILS is a collection of tools for the Microchip (TM) PIC microcontrollers. It includes gpasm, gplink, and gplib. --- devel/gputils/Makefile | 56 ++ devel/gputils/distinfo | 6 + devel/gputils/patches/patch-configure_ac | 12 + devel/gputils/patches/patch-gpasm_cod_c | 14 + devel/gputils/patches/patch-gpasm_coff_c | 40 ++ devel/gputils/patches/patch-gpasm_directive_c | 165 ++++++ devel/gputils/patches/patch-gpasm_evaluate_c | 83 +++ devel/gputils/patches/patch-gpasm_gpasm_c | 23 + devel/gputils/patches/patch-gpasm_gperror_c | 81 +++ devel/gputils/patches/patch-gpasm_lst_c | 255 +++++++++ devel/gputils/patches/patch-gpasm_macro_c | 53 ++ devel/gputils/patches/patch-gpasm_parse_c | 12 + devel/gputils/patches/patch-gpasm_scan_l | 54 ++ .../patch-gpasm_testsuite_gpasm_old_testall | 18 + .../patches/patch-gpasm_testsuite_test | 88 ++++ devel/gputils/patches/patch-gpasm_util_c | 30 ++ devel/gputils/patches/patch-gplink_cod_c | 14 + devel/gputils/patches/patch-gplink_gplink_c | 79 +++ devel/gputils/patches/patch-gplink_map_c | 21 + devel/gputils/patches/patch-gplink_scan_l | 25 + devel/gputils/patches/patch-gputils_dump_c | 18 + devel/gputils/patches/patch-gputils_gpdasm_c | 12 + devel/gputils/patches/patch-gputils_gpvc_c | 12 + devel/gputils/patches/patch-gputils_gpvo_c | 12 + devel/gputils/patches/patch-include_stdhdr_h | 12 + .../patches/patch-libgputils_gparchive_c | 113 ++++ .../gputils/patches/patch-libgputils_gpcoff_h | 12 + .../patches/patch-libgputils_gpcofflink_c | 34 ++ .../gputils/patches/patch-libgputils_gpdis_c | 95 ++++ .../gputils/patches/patch-libgputils_gpdis_h | 11 + .../patches/patch-libgputils_gpmemory_c | 12 + .../patches/patch-libgputils_gpmessage_c | 39 ++ .../patches/patch-libgputils_gpreadobj_c | 43 ++ .../patches/patch-libgputils_gpsystem_c | 20 + .../patches/patch-libgputils_gpsystem_h | 11 + .../patches/patch-libgputils_gpwritehex_c | 22 + .../patches/patch-libgputils_gpwriteobj_c | 61 +++ devel/gputils/pkg/DESCR | 2 + devel/gputils/pkg/PLIST | 493 ++++++++++++++++++ 39 files changed, 2163 insertions(+) create mode 100644 devel/gputils/Makefile create mode 100644 devel/gputils/distinfo create mode 100644 devel/gputils/patches/patch-configure_ac create mode 100644 devel/gputils/patches/patch-gpasm_cod_c create mode 100644 devel/gputils/patches/patch-gpasm_coff_c create mode 100644 devel/gputils/patches/patch-gpasm_directive_c create mode 100644 devel/gputils/patches/patch-gpasm_evaluate_c create mode 100644 devel/gputils/patches/patch-gpasm_gpasm_c create mode 100644 devel/gputils/patches/patch-gpasm_gperror_c create mode 100644 devel/gputils/patches/patch-gpasm_lst_c create mode 100644 devel/gputils/patches/patch-gpasm_macro_c create mode 100644 devel/gputils/patches/patch-gpasm_parse_c create mode 100644 devel/gputils/patches/patch-gpasm_scan_l create mode 100644 devel/gputils/patches/patch-gpasm_testsuite_gpasm_old_testall create mode 100644 devel/gputils/patches/patch-gpasm_testsuite_test create mode 100644 devel/gputils/patches/patch-gpasm_util_c create mode 100644 devel/gputils/patches/patch-gplink_cod_c create mode 100644 devel/gputils/patches/patch-gplink_gplink_c create mode 100644 devel/gputils/patches/patch-gplink_map_c create mode 100644 devel/gputils/patches/patch-gplink_scan_l create mode 100644 devel/gputils/patches/patch-gputils_dump_c create mode 100644 devel/gputils/patches/patch-gputils_gpdasm_c create mode 100644 devel/gputils/patches/patch-gputils_gpvc_c create mode 100644 devel/gputils/patches/patch-gputils_gpvo_c create mode 100644 devel/gputils/patches/patch-include_stdhdr_h create mode 100644 devel/gputils/patches/patch-libgputils_gparchive_c create mode 100644 devel/gputils/patches/patch-libgputils_gpcoff_h create mode 100644 devel/gputils/patches/patch-libgputils_gpcofflink_c create mode 100644 devel/gputils/patches/patch-libgputils_gpdis_c create mode 100644 devel/gputils/patches/patch-libgputils_gpdis_h create mode 100644 devel/gputils/patches/patch-libgputils_gpmemory_c create mode 100644 devel/gputils/patches/patch-libgputils_gpmessage_c create mode 100644 devel/gputils/patches/patch-libgputils_gpreadobj_c create mode 100644 devel/gputils/patches/patch-libgputils_gpsystem_c create mode 100644 devel/gputils/patches/patch-libgputils_gpsystem_h create mode 100644 devel/gputils/patches/patch-libgputils_gpwritehex_c create mode 100644 devel/gputils/patches/patch-libgputils_gpwriteobj_c create mode 100644 devel/gputils/pkg/DESCR create mode 100644 devel/gputils/pkg/PLIST diff --git a/devel/gputils/Makefile b/devel/gputils/Makefile new file mode 100644 index 00000000000..072d93b3886 --- /dev/null +++ b/devel/gputils/Makefile @@ -0,0 +1,56 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2003/11/03 01:02:34 naddy Exp $ + +COMMENT= "GNU PIC assembler and utilities" + +VERSION= 0.11.7 +DISTNAME= gputils-${VERSION} +DIST_SUBDIR= gputils +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} gputils-testsuite-${VERSION}${EXTRACT_SUFX}:0 + +CATEGORIES= devel + +HOMEPAGE= http://gputils.sourceforge.net/ + +MAINTAINER= Andrew Dalgleish + +# GPL +PERMIT_PACKAGE_CDROM= Yes +PERMIT_PACKAGE_FTP= Yes +PERMIT_DISTFILES_CDROM= Yes +PERMIT_DISTFILES_FTP= Yes + +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=gputils/} +MASTER_SITES0= http://www.ajd.net.au/ports/ + +# From Jolan: +.if ${MACHINE_ARCH:Msparc64} +CFLAGS+= "-O0" +.endif + +CONFIGURE_STYLE= gnu autoconf +AUTOCONF_VERSION= 2.57 +CONFIGURE_ENV= "CC=${CC}" "CPP=${CPP}" "CFLAGS=${CFLAGS}" "CPPFLAGS=${CPPFLAGS}" "LDFLAGS=${LDFLAGS}" + +# Commands used to create the testsuite tarball +# I put these here mainly for documentation, but if you can't fetch +# the tarball from MASTER_SITES0, this should be 100% reproducable. +create-testsuite-tarball: + rm -fr gputils/ gputils-${VERSION} + cvs -z3 -d:pserver:anonymous@cvs.gputils.sourceforge.net:/cvsroot/gputils export -r gputils-${VERSION:S/./_/g} gputils/gpasm/testsuite > /dev/null + mv gputils gputils-${VERSION} + find gputils-${VERSION} -type d -print0 | xargs -0 touch -am -t 0000000000 + tar czf ${FULLDISTDIR}/gputils-testsuite-${VERSION}.tar.gz gputils-${VERSION}/gpasm/testsuite/ + rm -fr gputils/ gputils-${VERSION} + +do-regress: + cd ${WRKSRC}/gpasm/testsuite && sh ./test all + + +DOCFILES= gputils.lyx gputils.pdf gputils.ps +post-install: + ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/gputils +.for FILE in ${DOCFILES} + ${INSTALL_DATA} ${WRKSRC}/doc/${FILE} ${PREFIX}/share/doc/gputils +.endfor + +.include diff --git a/devel/gputils/distinfo b/devel/gputils/distinfo new file mode 100644 index 00000000000..0164caa68ad --- /dev/null +++ b/devel/gputils/distinfo @@ -0,0 +1,6 @@ +MD5 (gputils/gputils-0.11.7.tar.gz) = b050ec0a2797440c266e03994cffffe2 +MD5 (gputils/gputils-testsuite-0.11.7.tar.gz) = 0bbfaf99138237849a433f31cb956f18 +RMD160 (gputils/gputils-0.11.7.tar.gz) = 6414594af4c12856a2d2d3633c207984736aeea8 +RMD160 (gputils/gputils-testsuite-0.11.7.tar.gz) = b2323469c6f0a0c08f3db78155b3605bfd0a6ff3 +SHA1 (gputils/gputils-0.11.7.tar.gz) = 84226bc31b25cc3c3f1b04aa192825f3b7b5daa0 +SHA1 (gputils/gputils-testsuite-0.11.7.tar.gz) = 15b987a9e743b779c68edd47a39caa47c3e2aeb4 diff --git a/devel/gputils/patches/patch-configure_ac b/devel/gputils/patches/patch-configure_ac new file mode 100644 index 00000000000..d148fd46661 --- /dev/null +++ b/devel/gputils/patches/patch-configure_ac @@ -0,0 +1,12 @@ +$OpenBSD: patch-configure_ac,v 1.1.1.1 2003/11/03 01:02:34 naddy Exp $ +--- configure.ac.orig 2003-10-14 20:21:51.000000000 +1000 ++++ configure.ac 2003-10-14 20:22:10.000000000 +1000 +@@ -51,7 +51,7 @@ AC_CHECK_TOOL(AR, ar, :) + + # Checks for header files. + AC_HEADER_STDC +-AC_CHECK_HEADERS(malloc.h unistd.h string.h strings.h) ++AC_CHECK_HEADERS(stdlib.h malloc.h unistd.h string.h strings.h) + + # Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST diff --git a/devel/gputils/patches/patch-gpasm_cod_c b/devel/gputils/patches/patch-gpasm_cod_c new file mode 100644 index 00000000000..74a3ac8b50e --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_cod_c @@ -0,0 +1,14 @@ +$OpenBSD: patch-gpasm_cod_c,v 1.1.1.1 2003/11/03 01:02:34 naddy Exp $ +--- gpasm/cod.c.orig 2003-10-14 20:52:05.000000000 +1000 ++++ gpasm/cod.c 2003-10-14 20:52:59.000000000 +1000 +@@ -75,8 +75,8 @@ cod_init(void) + { + + if (state.codfile != named) { +- strcpy(state.codfilename, state.basefilename); +- strcat(state.codfilename, ".cod"); ++ strlcpy(state.codfilename, state.basefilename, sizeof(state.codfilename)); ++ strlcat(state.codfilename, ".cod", sizeof(state.codfilename)); + } + + if (state.codfile == suppress) { diff --git a/devel/gputils/patches/patch-gpasm_coff_c b/devel/gputils/patches/patch-gpasm_coff_c new file mode 100644 index 00000000000..0c0559ef4d7 --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_coff_c @@ -0,0 +1,40 @@ +$OpenBSD: patch-gpasm_coff_c,v 1.1.1.1 2003/11/03 01:02:34 naddy Exp $ +--- gpasm/coff.c.orig 2003-10-03 15:59:39.000000000 +1000 ++++ gpasm/coff.c 2003-10-19 01:24:54.000000000 +1000 +@@ -32,8 +32,8 @@ void + coff_init(void) + { + if (state.objfile != named) { +- strcpy(state.objfilename, state.basefilename); +- strcat(state.objfilename, ".o"); ++ strlcpy(state.objfilename, state.basefilename, sizeof(state.objfilename)); ++ strlcat(state.objfilename, ".o", sizeof(state.objfilename)); + } + + if (state.objfile == suppress) { +@@ -399,7 +399,7 @@ coff_add_sym(char *name, int value, int + + new = gp_coffgen_findsymbol(state.obj.object, name); + if (new != NULL) { +- sprintf(message, ++ snprintf(message, sizeof(message), + "Duplicate label or redefining symbol that cannot be redefined. (%s)", + name); + gperror(GPE_DUPLAB, message); +@@ -537,14 +537,14 @@ coff_local_name(char *name) + if (local == NULL) { + /* It isn't in the stGlobal so it must be in stTop. It's local. */ + while(1) { +- sprintf(buffer, "_%d%s", count, name); ++ snprintf(buffer, sizeof(buffer), "_%d%s", count, name); + symbol = gp_coffgen_findsymbol(state.obj.object, buffer); + if (symbol == NULL) + break; + count++; + } + } else { +- strcpy(buffer, name); ++ strlcpy(buffer, name, sizeof(buffer)); + } + + return strdup(buffer); diff --git a/devel/gputils/patches/patch-gpasm_directive_c b/devel/gputils/patches/patch-gpasm_directive_c new file mode 100644 index 00000000000..f81f6088bc5 --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_directive_c @@ -0,0 +1,165 @@ +$OpenBSD: patch-gpasm_directive_c,v 1.1.1.1 2003/11/03 01:02:34 naddy Exp $ +--- gpasm/directive.c.orig 2003-10-03 15:44:16.000000000 +1000 ++++ gpasm/directive.c 2003-10-19 01:24:54.000000000 +1000 +@@ -323,7 +323,7 @@ static int list_symbol_member(struct pno + return 0; + } else if (STRCMP(M->value.symbol, HEAD(L)->value.symbol) == 0) { + char buf[BUFSIZ]; +- sprintf(buf, "Duplicate macro parameter (%s).", HEAD(L)->value.symbol); ++ snprintf(buf, sizeof(buf), "Duplicate macro parameter (%s).", HEAD(L)->value.symbol); + gperror(GPE_UNKNOWN, buf); + return 1; + } else { +@@ -524,14 +524,14 @@ static gpasmVal do_code(gpasmVal r, + switch (arity) { + case 0: + /* new relocatable section */ +- strcpy(state.obj.new_sec_name, ".code"); ++ strlcpy(state.obj.new_sec_name, ".code", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = 0; + state.obj.new_sec_flags = STYP_TEXT; + break; + case 1: + /* new absolute section */ + p = HEAD(parms); +- strcpy(state.obj.new_sec_name, ".code"); ++ strlcpy(state.obj.new_sec_name, ".code", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = maybe_evaluate(p) >> _16bit_core; + state.obj.new_sec_flags = STYP_TEXT | STYP_ABS; + break; +@@ -1171,12 +1171,12 @@ static gpasmVal do_global(gpasmVal r, + if (p->tag == symbol) { + s = get_symbol(state.stTop, p->value.symbol); + if (s == NULL) { +- sprintf(buf, "Symbol not previously defined (%s).", p->value.symbol); ++ snprintf(buf, sizeof(buf), "Symbol not previously defined (%s).", p->value.symbol); + gperror(GPE_NOSYM, buf); + } else { + var = get_symbol_annotation(s); + if (var == NULL) { +- sprintf(buf, "Symbol not assigned a value (%s).", p->value.symbol); ++ snprintf(buf, sizeof(buf), "Symbol not assigned a value (%s).", p->value.symbol); + gpwarning(GPW_UNKNOWN, buf); + } else { + if ((var->previous_type == gvt_address) || +@@ -1187,7 +1187,7 @@ static gpasmVal do_global(gpasmVal r, + } else if (var->previous_type == gvt_extern) { + gperror(GPE_DUPLAB, NULL); + } else { +- sprintf(buf, "Operand must be an address label (%s).", ++ snprintf(buf, sizeof(buf), "Operand must be an address label (%s).", + p->value.symbol); + gperror(GPE_MUST_BE_LABEL, buf); + } +@@ -1218,14 +1218,14 @@ static gpasmVal do_idata(gpasmVal r, + switch (arity) { + case 0: + /* new relocatable section */ +- strcpy(state.obj.new_sec_name, ".idata"); ++ strlcpy(state.obj.new_sec_name, ".idata", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = 0; + state.obj.new_sec_flags = STYP_DATA; + break; + case 1: + /* new absolute section */ + p = HEAD(parms); +- strcpy(state.obj.new_sec_name, ".idata"); ++ strlcpy(state.obj.new_sec_name, ".idata", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = maybe_evaluate(p) >> _16bit_core; + state.obj.new_sec_flags = STYP_DATA | STYP_ABS; + break; +@@ -1677,7 +1677,7 @@ static gpasmVal do_org(gpasmVal r, + } else { + /* Default section name, this will be overwritten if a label is + present. */ +- sprintf(state.obj.new_sec_name, ".org_%d", state.obj.org_num++); ++ snprintf(state.obj.new_sec_name, sizeof(state.obj.new_sec_name), ".org_%d", state.obj.org_num++); + state.obj.new_sec_addr = r; + state.obj.new_sec_flags = STYP_TEXT | STYP_ABS; + state.lst.line.linetype = sec; +@@ -1900,14 +1900,14 @@ static gpasmVal do_udata(gpasmVal r, + switch (arity) { + case 0: + /* new relocatable section */ +- strcpy(state.obj.new_sec_name, ".udata"); ++ strlcpy(state.obj.new_sec_name, ".udata", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = 0; + state.obj.new_sec_flags = STYP_BSS; + break; + case 1: + /* new absolute section */ + p = HEAD(parms); +- strcpy(state.obj.new_sec_name, ".udata"); ++ strlcpy(state.obj.new_sec_name, ".udata", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = maybe_evaluate(p) >> _16bit_core; + state.obj.new_sec_flags = STYP_BSS | STYP_ABS; + break; +@@ -1935,14 +1935,14 @@ static gpasmVal do_udata_acs(gpasmVal r, + switch (arity) { + case 0: + /* new relocatable section */ +- strcpy(state.obj.new_sec_name, ".udata_acs"); ++ strlcpy(state.obj.new_sec_name, ".udata_acs", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = 0; + state.obj.new_sec_flags = STYP_BSS | STYP_ACCESS; + break; + case 1: + /* new absolute section */ + p = HEAD(parms); +- strcpy(state.obj.new_sec_name, ".udata_acs"); ++ strlcpy(state.obj.new_sec_name, ".udata_acs", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = maybe_evaluate(p) >> _16bit_core; + state.obj.new_sec_flags = STYP_BSS | STYP_ABS | STYP_ACCESS; + break; +@@ -1970,14 +1970,14 @@ static gpasmVal do_udata_ovr(gpasmVal r, + switch (arity) { + case 0: + /* new relocatable section */ +- strcpy(state.obj.new_sec_name, ".udata_ovr"); ++ strlcpy(state.obj.new_sec_name, ".udata_ovr", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = 0; + state.obj.new_sec_flags = STYP_BSS | STYP_OVERLAY; + break; + case 1: + /* new absolute section */ + p = HEAD(parms); +- strcpy(state.obj.new_sec_name, ".udata_ovr"); ++ strlcpy(state.obj.new_sec_name, ".udata_ovr", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = maybe_evaluate(p) >> _16bit_core; + state.obj.new_sec_flags = STYP_BSS | STYP_ABS | STYP_OVERLAY; + break; +@@ -2005,14 +2005,14 @@ static gpasmVal do_udata_shr(gpasmVal r, + switch (arity) { + case 0: + /* new relocatable section */ +- strcpy(state.obj.new_sec_name, ".udata_shr"); ++ strlcpy(state.obj.new_sec_name, ".udata_shr", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = 0; + state.obj.new_sec_flags = STYP_BSS | STYP_SHARED; + break; + case 1: + /* new absolute section */ + p = HEAD(parms); +- strcpy(state.obj.new_sec_name, ".udata_shr"); ++ strlcpy(state.obj.new_sec_name, ".udata_shr", sizeof(state.obj.new_sec_name)); + state.obj.new_sec_addr = maybe_evaluate(p) >> _16bit_core; + state.obj.new_sec_flags = STYP_BSS | STYP_ABS | STYP_SHARED; + break; +@@ -2190,7 +2190,7 @@ static void emit_check_relative(int insn + + /* If the branch is too far then issue an error */ + if ((argument > range) || (argument < -(range+1))) { +- sprintf(full_message,"Argument out of range (%d not between %d and %d)\n", ++ snprintf(full_message, sizeof(full_message), "Argument out of range (%d not between %d and %d)\n", + argument, + -(range+1), + range); +@@ -2950,7 +2950,7 @@ gpasmVal do_insn(char *name, struct pnod + gperror(GPE_UNDEF_PROC, NULL); + } else { + char mesg[80]; +- sprintf(mesg, "Unknown opcode \"%.40s\"", name); ++ snprintf(mesg, sizeof(mesg), "Unknown opcode \"%.40s\"", name); + gperror(GPE_UNKNOWN, mesg); + } + } diff --git a/devel/gputils/patches/patch-gpasm_evaluate_c b/devel/gputils/patches/patch-gpasm_evaluate_c new file mode 100644 index 00000000000..b40cea99ad2 --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_evaluate_c @@ -0,0 +1,83 @@ +$OpenBSD: patch-gpasm_evaluate_c,v 1.1.1.1 2003/11/03 01:02:34 naddy Exp $ +--- gpasm/evaluate.c.orig 2003-10-14 20:58:03.000000000 +1000 ++++ gpasm/evaluate.c 2003-10-14 21:01:47.000000000 +1000 +@@ -79,7 +79,7 @@ int can_evaluate_concatenation(struct pn + return can_evaluate_concatenation(p->value.binop.p0) + && can_evaluate_concatenation(p->value.binop.p1); + case string: +- sprintf(buf, "Illegal argument (%s).", p->value.string); ++ snprintf(buf, sizeof(buf), "Illegal argument (%s).", p->value.string); + gperror(GPE_ILLEGAL_ARGU, buf); + return 0; + default: +@@ -113,13 +113,13 @@ int can_evaluate(struct pnode *p) + s = get_symbol(state.stTop, p->value.symbol); + + if (s == NULL) { +- sprintf(buf, "Symbol not previously defined (%s).", p->value.symbol); ++ snprintf(buf, sizeof(buf), "Symbol not previously defined (%s).", p->value.symbol); + gperror(GPE_NOSYM, buf); + } else { + var = get_symbol_annotation(s); + + if (var == NULL) { +- sprintf(buf, "Symbol not assigned a value (%s).", p->value.symbol); ++ snprintf(buf, sizeof(buf), "Symbol not assigned a value (%s).", p->value.symbol); + gpwarning(GPW_UNKNOWN, buf); + } + } +@@ -132,7 +132,7 @@ int can_evaluate(struct pnode *p) + case binop: + return can_evaluate(p->value.binop.p0) && can_evaluate(p->value.binop.p1); + case string: +- sprintf(buf, "Illegal argument (%s).", p->value.string); ++ snprintf(buf, sizeof(buf), "Illegal argument (%s).", p->value.string); + gperror(GPE_ILLEGAL_ARGU, buf); + return 0; + default: +@@ -151,19 +151,23 @@ char *evaluate_concatenation(struct pnod + assert(p->value.binop.op == CONCAT); + { + char *s[2], *new; ++ size_t sizeof_new; + + s[0] = evaluate_concatenation(p->value.binop.p0); + s[1] = evaluate_concatenation(p->value.binop.p1); +- new = malloc(strlen(s[0]) + 1 + strlen(s[1]) + 1); +- strcpy(new, s[0]); +- strcat(new, s[1]); ++ sizeof_new =strlen(s[0]) + 1 + strlen(s[1]) + 1; ++ new = malloc(sizeof_new); ++ if (new) { ++ strlcpy(new, s[0], sizeof_new); ++ strlcat(new, s[1], sizeof_new); ++ } + return new; + } + case unop: + assert(p->value.unop.op == VAR); + { + char buf[80]; +- sprintf(buf, "%d", maybe_evaluate(p->value.unop.p0)); ++ snprintf(buf, sizeof(buf), "%d", maybe_evaluate(p->value.unop.p0)); + return (strdup(buf)); + } + default: +@@ -186,7 +190,7 @@ gpasmVal evaluate(struct pnode *p) + s = get_symbol(state.stTop, string); + if (s == NULL) { + char buf[BUFSIZ]; +- sprintf(buf, "Symbol not previously defined (%s).", string); ++ snprintf(buf, sizeof(buf), "Symbol not previously defined (%s).", string); + gperror(GPE_NOSYM, buf); + return 0; + } else { +@@ -389,7 +393,7 @@ add_reloc(struct pnode *p, short offset, + if (strcmp(p->value.symbol, "$") == 0) { + char buffer[BUFSIZ]; + +- sprintf(buffer, "_$_%06x", state.org << _16bit_core); ++ snprintf(buffer, sizeof(buffer), "_$_%06x", state.org << _16bit_core); + set_global(buffer, state.org << _16bit_core, PERMANENT, gvt_static); + s = get_symbol(state.stTop, buffer); + } else { diff --git a/devel/gputils/patches/patch-gpasm_gpasm_c b/devel/gputils/patches/patch-gpasm_gpasm_c new file mode 100644 index 00000000000..f6fd716045f --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_gpasm_c @@ -0,0 +1,23 @@ +$OpenBSD: patch-gpasm_gpasm_c,v 1.1.1.1 2003/11/03 01:02:35 naddy Exp $ +--- gpasm/gpasm.c.orig 2003-10-09 11:29:47.000000000 +1000 ++++ gpasm/gpasm.c 2003-10-19 01:24:54.000000000 +1000 +@@ -255,8 +255,8 @@ process_args( int argc, char *argv[]) + #endif + break; + case 'o': +- strcpy(state.hexfilename, optarg); +- strcpy(state.basefilename, optarg); ++ strlcpy(state.hexfilename, optarg, sizeof(state.hexfilename)); ++ strlcpy(state.basefilename, optarg, sizeof(state.basefilename)); + pc = strrchr(state.basefilename, '.'); + if (pc) + *pc = 0; +@@ -317,7 +317,7 @@ assemble(void) + state.c_memory = state.i_memory = i_memory_create(); + + if(state.basefilename[0] == '\0') { +- strcpy(state.basefilename, state.srcfilename); ++ strlcpy(state.basefilename, state.srcfilename, sizeof(state.basefilename)); + pc = strrchr(state.basefilename, '.'); + if (pc) + *pc = 0; diff --git a/devel/gputils/patches/patch-gpasm_gperror_c b/devel/gputils/patches/patch-gpasm_gperror_c new file mode 100644 index 00000000000..62c02c2619b --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_gperror_c @@ -0,0 +1,81 @@ +$OpenBSD: patch-gpasm_gperror_c,v 1.1.1.1 2003/11/03 01:02:35 naddy Exp $ +--- gpasm/gperror.c.orig 2003-10-14 21:03:30.000000000 +1000 ++++ gpasm/gperror.c 2003-10-14 21:04:57.000000000 +1000 +@@ -172,14 +172,14 @@ void gperror(unsigned int code, + /* standard output */ + if (!state.quiet) { + if (state.src) +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "%s:%d:Error [%03d] %s", + state.src->name, + state.src->line_number, + code, + message); + else +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "Error [%03d] %s", + code, + message); +@@ -191,7 +191,7 @@ void gperror(unsigned int code, + #endif + + /* list file output */ +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "Error [%03d] : %s", + code, + message); +@@ -260,14 +260,14 @@ void gpwarning(unsigned int code, + /* standard output */ + if (!state.quiet) { + if (state.src) +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "%s:%d:Warning [%03d] %s", + state.src->name, + state.src->line_number, + code, + message); + else +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "Warning [%03d] %s", + code, + message); +@@ -279,7 +279,7 @@ void gpwarning(unsigned int code, + #endif + + /* list file output */ +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "Warning [%03d] : %s", + code, + message); +@@ -345,14 +345,14 @@ void gpmessage(unsigned int code, + /* standard output */ + if (!state.quiet) { + if (state.src) +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "%s:%d:Message [%03d] %s", + state.src->name, + state.src->line_number, + code, + message); + else +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "Message [%03d] %s", + code, + message); +@@ -364,7 +364,7 @@ void gpmessage(unsigned int code, + #endif + + /* list file output */ +- sprintf(full_message, ++ snprintf(full_message, sizeof(full_message), + "Message [%03d] : %s", + code, + message); diff --git a/devel/gputils/patches/patch-gpasm_lst_c b/devel/gputils/patches/patch-gpasm_lst_c new file mode 100644 index 00000000000..02b7d813e93 --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_lst_c @@ -0,0 +1,255 @@ +$OpenBSD: patch-gpasm_lst_c,v 1.1.1.1 2003/11/03 01:02:35 naddy Exp $ +--- gpasm/lst.c.orig 2003-07-08 11:40:43.000000000 +1000 ++++ gpasm/lst.c 2003-10-15 00:26:10.000000000 +1000 +@@ -76,7 +76,7 @@ void lst_init() + state.lst.symboltable = 1; + + /* Determine state.startdate */ +- gp_date_string(state.lst.startdate); ++ gp_date_string(state.lst.startdate, sizeof(state.lst.startdate)); + + if (state.cmd_line.macro_expand == 0){ + state.lst.expand = 1; +@@ -93,8 +93,8 @@ void lst_init() + state.lst.tabstop = 8; /* Default tabstop every 8 */ + + if (state.lstfile != named) { +- strcpy(state.lstfilename, state.basefilename); +- strcat(state.lstfilename, ".lst"); ++ strlcpy(state.lstfilename, state.basefilename, sizeof(state.lstfilename)); ++ strlcat(state.lstfilename, ".lst", sizeof(state.lstfilename)); + } + + if (state.lstfile == suppress) { +@@ -118,7 +118,6 @@ void lst_init() + void lst_memory_map(MemBlock *m) + { + char buf[BUFSIZ]; +- char *e; + int i, j, base, row_used; + + lst_line(""); +@@ -139,21 +138,18 @@ void lst_memory_map(MemBlock *m) + row_used = 1; + + if(row_used) { +- e = buf; +- sprintf(e, "%04x :", (i + base)); +- e += strlen(e); ++ snprintf(buf, sizeof(buf), "%04x :", (i + base)); + for(j = 0; j<64; j++) { + if ((j%16) == 0) { +- *e++ = ' '; ++ strlcat(buf, " ", sizeof(buf)); + } + if ((i_memory_get(m, i+j) & MEM_USED_MASK)) { +- *e++ = 'X'; ++ strlcat(buf, "X", sizeof(buf)); + } else { +- *e++ = '-'; ++ strlcat(buf, "-", sizeof(buf)); + } + } + +- *e = '\0'; /* terminate the new string */ + lst_line(buf); + } + } +@@ -165,7 +161,7 @@ void lst_memory_map(MemBlock *m) + lst_line("All other memory blocks unused."); + lst_line(""); + +- sprintf(buf, "Program Memory Words Used: %i", i_memory_used(state.i_memory)); ++ snprintf(buf, sizeof(buf), "Program Memory Words Used: %i", i_memory_used(state.i_memory)); + lst_line(buf); + + } +@@ -195,51 +191,44 @@ void lst_close() + void lst_format_line(char *src_line, int value) + { + char m[BUFSIZ]; +- char *e; ++ char buf[BUFSIZ]; + unsigned int emitted = 0; + + assert(src_line != NULL); + +- e = m; + switch (state.lst.line.linetype) { + case equ: + case set: +- sprintf(e, " %08X", value); +- e += strlen(e); +- strcpy(e, " "); +- e += 5; ++ snprintf(m, sizeof(m), " %08X", value); ++ strlcat(m, " ", sizeof(m)); + break; + case org: +- sprintf(e, "%04X ", state.org << _16bit_core); +- e += strlen(e); +- strcpy(e, " "); +- e += 5; ++ snprintf(m, sizeof(m), "%04X ", state.org << _16bit_core); ++ strlcat(m, " ", sizeof(m)); + break; + case idlocs: + /* not used for 16 bit devices, config is used */ +- sprintf(e, "%04X %04X %04X ", ++ snprintf(m, sizeof(m), "%04X %04X %04X ", + state.device.id_location, + i_memory_get(state.i_memory, state.device.id_location) & 0xffff, + i_memory_get(state.i_memory, + state.device.id_location + 1) & 0xffff); +- e += strlen(e); + break; + case insn: +- sprintf(e, "%04X ", state.lst.line.was_org << _16bit_core); +- e += strlen(e); ++ snprintf(m, sizeof(m), "%04X ", state.lst.line.was_org << _16bit_core); + emitted = state.org - state.lst.line.was_org; +- if (emitted >= 1) +- sprintf(e, "%04X ", i_memory_get(state.i_memory, ++ if (emitted >= 1) { ++ snprintf(buf, sizeof(buf), "%04X ", i_memory_get(state.i_memory, + state.lst.line.was_org) & 0xffff); +- else +- sprintf(e, " "); +- e += strlen(e); +- if (emitted >= 2) +- sprintf(e, "%04X ", i_memory_get(state.i_memory, ++ strlcat(m, buf, sizeof(m)); ++ } else ++ strlcat(m, " ", sizeof(m)); ++ if (emitted >= 2) { ++ snprintf(buf, sizeof(buf), "%04X ", i_memory_get(state.i_memory, + state.lst.line.was_org + 1) & 0xffff); +- else +- sprintf(e, " "); +- e += strlen(e); ++ strlcat(m, buf, sizeof(buf)); ++ } else ++ strlcat(m, " ", sizeof(m)); + break; + case config: + if(_16bit_core) { +@@ -247,33 +236,28 @@ void lst_format_line(char *src_line, int + words in the list file. */ + if (state.lst.config_address == CONFIG4L) { + /* Special case */ +- sprintf(e, "%06X %04X ", ++ snprintf(m, sizeof(m), "%06X %04X ", + state.lst.config_address, + i_memory_get(state.i_memory, + state.lst.config_address >> 1) & 0xffff); +- e += strlen(e); + } else if((state.lst.config_address & 0x1) == 0) { + /* if it is an even address don't print anything */ +- strcpy(e, " "); +- e += 15; ++ strlcpy(m, " ", sizeof(m)); + } else { +- sprintf(e, "%06X %04X ", ++ snprintf(m, sizeof(m), "%06X %04X ", + state.lst.config_address - 1, + i_memory_get(state.i_memory, + (state.lst.config_address - 1) >> 1) & 0xffff); +- e += strlen(e); + } + } else { +- sprintf(e, "%06X %04X ", ++ snprintf(m, sizeof(m), "%06X %04X ", + state.lst.config_address, + i_memory_get(state.i_memory, + state.lst.config_address) & 0xffff); +- e += strlen(e); + } + break; + case res: +- strcpy(e, " "); +- e += 15; ++ strlcpy(m, " ", sizeof(m)); + if (SECTION_FLAGS & STYP_TEXT) { + /* generate line numbers for res directives in program memory */ + emitted = state.org - state.lst.line.was_org; +@@ -283,22 +267,22 @@ void lst_format_line(char *src_line, int + case dir: + case none: + default: +- strcpy(e, " "); +- e += 15; ++ strlcpy(m, " ", sizeof(m)); + break; + } + + if (state.stGlobal == state.stTop) { +- sprintf(e, "%05d ", state.src->line_number); ++ snprintf(buf, sizeof(buf), "%05d ", state.src->line_number); + } else { +- sprintf(e, " M "); ++ snprintf(buf, sizeof(buf), " M "); + } +- e += strlen(e); ++ strlcat(m, buf, sizeof(m)); + + /* Now copy 'l' to 'e', expanding tabs as required */ + { + int column = 0; + char *old; ++ char *e = m + strlen(m); + + old = src_line; + +@@ -335,7 +319,7 @@ void lst_format_line(char *src_line, int + #endif + + if (state.lst.line.linetype == idlocs) { +- sprintf(m, " %04X %04X ", ++ snprintf(m, sizeof(m), " %04X %04X ", + i_memory_get(state.i_memory, + state.device.id_location + 2) & 0xffff, + i_memory_get(state.i_memory, +@@ -348,14 +332,14 @@ void lst_format_line(char *src_line, int + + for (i = 2; i < emitted; i += 2) { + if ((i + 1) < emitted) +- sprintf(m, "%04X %04X %04X", ++ snprintf(m, sizeof(m), "%04X %04X %04X", + ((state.lst.line.was_org + i) << _16bit_core), + i_memory_get(state.i_memory, + state.lst.line.was_org + i) & 0xffff, + i_memory_get(state.i_memory, + state.lst.line.was_org + i + 1) & 0xffff); + else +- sprintf(m, "%04X %04X", ++ snprintf(m, sizeof(m), "%04X %04X", + ((state.lst.line.was_org + i) << _16bit_core), + i_memory_get(state.i_memory, + state.lst.line.was_org + i) & 0xffff); +@@ -376,7 +360,7 @@ void lst_symbol_table(struct symbol_tabl + char buf[BUFSIZ]; + + lst_line("SYMBOL TABLE"); +- sprintf(buf, "%-32s %-8s", " LABEL", " VALUE"); ++ snprintf(buf, sizeof(buf), "%-32s %-8s", " LABEL", " VALUE"); + lst_line(buf); + lst_line(""); + +@@ -394,7 +378,7 @@ void lst_symbol_table(struct symbol_tabl + struct variable *var; + + var = get_symbol_annotation(lst[i]); +- sprintf(buf, ++ snprintf(buf, sizeof(buf), + symbol_format, + get_symbol_name(lst[i]), + var ? var->value : 0); +@@ -424,7 +408,7 @@ void lst_defines_table(struct symbol_tab + char *defined_as; + + defined_as = get_symbol_annotation(lst[i]); +- sprintf(buf, ++ snprintf(buf, sizeof(buf), + symbol_format, + get_symbol_name(lst[i]), + defined_as); diff --git a/devel/gputils/patches/patch-gpasm_macro_c b/devel/gputils/patches/patch-gpasm_macro_c new file mode 100644 index 00000000000..e975981536f --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_macro_c @@ -0,0 +1,53 @@ +$OpenBSD: patch-gpasm_macro_c,v 1.1.1.1 2003/11/03 01:02:35 naddy Exp $ +--- gpasm/macro.c.orig 2003-10-14 21:24:34.000000000 +1000 ++++ gpasm/macro.c 2003-10-14 21:27:13.000000000 +1000 +@@ -59,15 +59,15 @@ void setup_macro(struct macro_head *h, i + if (pToH->tag == symbol) { + annotate_symbol(sym, strdup(pToH->value.symbol)); + } else if (pToH->tag == string) { +- sprintf(buffer, "\"%s\"", pToH->value.string); ++ snprintf(buffer, sizeof(buffer), "\"%s\"", pToH->value.string); + annotate_symbol(sym, strdup(buffer)); + } else { + int value = maybe_evaluate(pToH); + + if (value < 0) +- sprintf(buffer, "-%#x", -value); ++ snprintf(buffer, sizeof(buffer), "-%#x", -value); + else +- sprintf(buffer, "%#x", value); ++ snprintf(buffer, sizeof(buffer), "%#x", value); + annotate_symbol(sym, strdup(buffer)); + } + +@@ -83,12 +83,12 @@ void setup_macro(struct macro_head *h, i + + /* Copy the macro body to a buffer. */ + +-void copy_macro_body(struct macro_body *b, char *buffer) ++void copy_macro_body(struct macro_body *b, char *buffer, size_t sizeof_buffer) + { + while (b) { + if (b->src_line != NULL) { +- strcat(buffer, b->src_line); +- strcat(buffer, "\n"); ++ strlcat(buffer, b->src_line, sizeof_buffer); ++ strlcat(buffer, "\n", sizeof_buffer); + } + b = b->next; + } +@@ -118,10 +118,10 @@ make_macro_buffer(struct macro_head *h) + + /* Allocate memory for the new buffer. yy_delete_buffer frees it */ + macro_src = (char *)calloc(sizeof(char), macro_src_size); +- macro_src[0] = '\0'; +- +- /* build the string to be scanned */ +- copy_macro_body(h->body, macro_src); ++ if (macro_src) { ++ /* build the string to be scanned */ ++ copy_macro_body(h->body, macro_src, macro_src_size); ++ } + + return macro_src; + } diff --git a/devel/gputils/patches/patch-gpasm_parse_c b/devel/gputils/patches/patch-gpasm_parse_c new file mode 100644 index 00000000000..8e9ce4f99d8 --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_parse_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gpasm_parse_c,v 1.1.1.1 2003/11/03 01:02:35 naddy Exp $ +--- gpasm/parse.c.orig 2003-05-06 05:14:46.000000000 +1000 ++++ gpasm/parse.c 2003-10-14 23:17:54.000000000 +1000 +@@ -1369,7 +1369,7 @@ case 9: + /* Outside a macro, just define the label. */ + switch (state.lst.line.linetype) { + case sec: +- strncpy(state.obj.new_sec_name, yyvsp[-1].s, 78); ++ strlcpy(state.obj.new_sec_name, yyvsp[-1].s, sizeof(state.obj.new_sec_name)); + break; + case set: + set_global(yyvsp[-1].s, yyvsp[0].i, TEMPORARY, gvt_constant); diff --git a/devel/gputils/patches/patch-gpasm_scan_l b/devel/gputils/patches/patch-gpasm_scan_l new file mode 100644 index 00000000000..3cde756c3b9 --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_scan_l @@ -0,0 +1,54 @@ +$OpenBSD: patch-gpasm_scan_l,v 1.1.1.1 2003/11/03 01:02:35 naddy Exp $ +--- gpasm/scan.l.orig 2003-10-19 01:28:50.000000000 +1000 ++++ gpasm/scan.l 2003-10-19 01:31:11.000000000 +1000 +@@ -83,8 +83,7 @@ end { + [^<"\r\n]*[>"]? { /* got the title text */ + #define LEN sizeof(state.lst.title_name) + yytext[yyleng - 1] = '\0'; +- strncpy(state.lst.title_name, yytext, LEN - 1); +- state.lst.title_name[LEN - 1] = '\0'; ++ strlcpy(state.lst.title_name, yytext, LEN); + BEGIN(INITIAL); + #undef LEN + } +@@ -94,8 +93,7 @@ end { + <subtitle>[^<"\r\n]*[>"]? { /* got the subtitle text */ + #define LEN sizeof(state.lst.subtitle_name) + yytext[yyleng - 1] = '\0'; +- strncpy(state.lst.subtitle_name, yytext, LEN - 1); +- state.lst.subtitle_name[LEN - 1] = '\0'; ++ strlcpy(state.lst.subtitle_name, yytext, LEN); + BEGIN(INITIAL); + #undef LEN + } +@@ -297,7 +295,7 @@ list { + that way it won't be a label */ + buffer[0] = ' '; + buffer[1] = '\0'; +- strcat(buffer, subst); ++ strlcat(buffer, subst, sizeof(buffer)); + push_string(buffer); + } + } else { +@@ -459,9 +457,9 @@ search_pathes(struct source_context *new + int i; + + for(i = 0; i < state.path_num; i++) { +- strcpy(tryname, state.paths[i]); +- strcat(tryname, COPY_CHAR); +- strcat(tryname, name); ++ strlcpy(tryname, state.paths[i], sizeof(tryname)); ++ strlcat(tryname, COPY_CHAR, sizeof(tryname)); ++ strlcat(tryname, name, sizeof(tryname)); + new->f = fopen(tryname, "rt"); + if(new->f) { + new->name = strdup(tryname); +@@ -507,7 +505,7 @@ void open_src(char *name, int isinclude) + if (state.src) { + char complaint[BUFSIZ]; + +- sprintf(complaint, ++ snprintf(complaint, sizeof(complaint), + "Unable to open file \"%s\" - %s", + name, + strerror(errno)); diff --git a/devel/gputils/patches/patch-gpasm_testsuite_gpasm_old_testall b/devel/gputils/patches/patch-gpasm_testsuite_gpasm_old_testall new file mode 100644 index 00000000000..dfefb54a38b --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_testsuite_gpasm_old_testall @@ -0,0 +1,18 @@ +$OpenBSD: patch-gpasm_testsuite_gpasm_old_testall,v 1.1.1.1 2003/11/03 01:02:35 naddy Exp $ +--- gpasm/testsuite/gpasm.old/testall.orig 2003-10-19 01:50:35.000000000 +1000 ++++ gpasm/testsuite/gpasm.old/testall 2003-10-19 01:51:06.000000000 +1000 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#! /bin/sh + + # testall tests gpasm, these are older tests + # Copyright (C) 2001 Craig Franklin +@@ -37,7 +37,7 @@ fi + case "$1" in + + all) +- if !(test -e $GPASM); then ++ if ! test -e $GPASM; then + echo "$GPASM not found. Aborting." + exit 1 + else diff --git a/devel/gputils/patches/patch-gpasm_testsuite_test b/devel/gputils/patches/patch-gpasm_testsuite_test new file mode 100644 index 00000000000..50246b1d576 --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_testsuite_test @@ -0,0 +1,88 @@ +$OpenBSD: patch-gpasm_testsuite_test,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gpasm/testsuite/test.orig 2003-03-14 17:44:49.000000000 +1100 ++++ gpasm/testsuite/test 2003-10-19 20:15:57.000000000 +1000 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#! /bin/sh + + # test tests gpasm + # Copyright (C) 2001, 2002, 2003 +@@ -48,7 +48,7 @@ binexists() { + return 1 + fi + echo "testing for $1" +- if !(test -e $1); then ++ if ! test -e $1; then + echo "$1 not found. Aborting." + return 1 + else +@@ -106,7 +106,7 @@ test_gpasm_sub() { + return 1 + fi + +- if !(test -d $1); then ++ if ! test -d $1; then + echo "$1 not found. Aborting." + return 1 + fi +@@ -123,11 +123,11 @@ test_gpasm_sub() { + # create the test directory if it doesn't already exist + test -d $TESTDIR || mkdir $TESTDIR || exit 1 + cd $TESTDIR +- rm -f *.asm ++ rm -f *.{asm,inc} + cp ../asmfiles/* . + + # test all of the asm files +- for x in `ls *.asm` ++ for x in `ls *.asm | sort` + do + # split the base file name from the extension + for basefilename in `echo $x | tr -s "." " "` +@@ -176,9 +176,9 @@ test_gpasm_sub() { + echo "$errortested files tested with intentional errors" + echo "$notcompiled generated errors during compilation" + echo +- if !(test $tested=$passed); then ++ if ! test $tested=$passed; then + return 1 +- elif !(test $errrortested=$notcompiled); then ++ elif ! test $errrortested=$notcompiled; then + return 1 + else + return 0 +@@ -199,7 +199,7 @@ test_gpasm_obj() { + return 1 + fi + +- if !(test -d $1); then ++ if ! test -d $1; then + echo "$1 not found. Aborting." + return 1 + fi +@@ -216,11 +216,11 @@ test_gpasm_obj() { + # create the test directory if it doesn't already exist + test -d $TESTDIR || mkdir $TESTDIR || exit 1 + cd $TESTDIR +- rm -f *.asm ++ rm -f *.{asm,inc} + cp ../objasm/* . + + # test all of the asm files +- for x in `ls *.asm` ++ for x in `ls *.asm | sort` + do + # split the base file name from the extension + for basefilename in `echo $x | tr -s "." " "` +@@ -271,9 +271,9 @@ test_gpasm_obj() { + echo "$errortested files tested with intentional errors" + echo "$notcompiled generated errors during compilation" + echo +- if !(test $tested=$passed); then ++ if ! test $tested=$passed; then + return 1 +- elif !(test $errrortested=$notcompiled); then ++ elif ! test $errrortested=$notcompiled; then + return 1 + else + return 0 diff --git a/devel/gputils/patches/patch-gpasm_util_c b/devel/gputils/patches/patch-gpasm_util_c new file mode 100644 index 00000000000..527fcee93f6 --- /dev/null +++ b/devel/gputils/patches/patch-gpasm_util_c @@ -0,0 +1,30 @@ +$OpenBSD: patch-gpasm_util_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gpasm/util.c.orig 2003-05-11 03:55:55.000000000 +1000 ++++ gpasm/util.c 2003-10-14 23:16:18.000000000 +1000 +@@ -39,7 +39,7 @@ stringtolong(char *string, int radix) + if ((endptr == NULL) || (*endptr != '\0')) { + char complaint[80]; + +- sprintf(complaint, ++ snprintf(complaint, sizeof(complaint), + isprint(*endptr) ? + "Illegal character '%c' in numeric constant " : + "Illegal character %#x in numeric constant" , +@@ -120,7 +120,7 @@ convert_escape_chars(char *ps, int *valu + ps[2] = '\0'; + ps += 2; + } else { +- strncpy(buffer, &ps[2], 2); ++ strlcpy(buffer, &ps[2], sizeof(buffer)); + *value = stringtolong(buffer, 16); + ps += 4; + } +@@ -186,7 +186,7 @@ void set_global(char *name, + if (var->value != value) { + char message[BUFSIZ]; + +- sprintf(message, ++ snprintf(message, sizeof(message), + "Value of symbol \"%s\" differs on second pass\n pass 1=%d, pass 2=%d", + name,var->value,value); + gperror(GPE_DIFFLAB, message); diff --git a/devel/gputils/patches/patch-gplink_cod_c b/devel/gputils/patches/patch-gplink_cod_c new file mode 100644 index 00000000000..818e33e9b19 --- /dev/null +++ b/devel/gputils/patches/patch-gplink_cod_c @@ -0,0 +1,14 @@ +$OpenBSD: patch-gplink_cod_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gplink/cod.c.orig 2003-10-14 21:43:06.000000000 +1000 ++++ gplink/cod.c 2003-10-14 21:43:39.000000000 +1000 +@@ -78,8 +78,8 @@ cod_init(void) + { + + if (state.codfile != named) { +- strcpy(state.codfilename, state.basefilename); +- strcat(state.codfilename, ".cod"); ++ strlcpy(state.codfilename, state.basefilename, sizeof(state.codfilename)); ++ strlcat(state.codfilename, ".cod", sizeof(state.codfilename)); + } + + if (state.codfile == suppress) { diff --git a/devel/gputils/patches/patch-gplink_gplink_c b/devel/gputils/patches/patch-gplink_gplink_c new file mode 100644 index 00000000000..a9526342b22 --- /dev/null +++ b/devel/gputils/patches/patch-gplink_gplink_c @@ -0,0 +1,79 @@ +$OpenBSD: patch-gplink_gplink_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gplink/gplink.c.orig 2003-10-14 21:43:55.000000000 +1000 ++++ gplink/gplink.c 2003-10-14 21:50:19.000000000 +1000 +@@ -264,7 +264,7 @@ void gplink_open_coff(char *name) + FILE *coff; + char file_name[BUFSIZ]; + +- strcpy(file_name, name); ++ strlcpy(file_name, name, sizeof(file_name)); + + coff = fopen(file_name, "rb"); + if ((coff == NULL) && (strchr(file_name, PATH_CHAR) == 0)) { +@@ -272,9 +272,9 @@ void gplink_open_coff(char *name) + int i; + + for(i = 0; i < state.numpaths; i++) { +- strcpy(file_name, state.paths[i]); +- strcat(file_name, COPY_CHAR); +- strcat(file_name, name); ++ strlcpy(file_name, state.paths[i], sizeof(file_name)); ++ strlcat(file_name, COPY_CHAR, sizeof(file_name)); ++ strlcat(file_name, name, sizeof(file_name)); + coff = fopen(file_name, "rb"); + if (coff != NULL) { + break; +@@ -446,7 +446,7 @@ int main(int argc, char *argv[]) + state.mapfile = normal; + break; + case 'o': +- strcpy(state.basefilename, optarg); ++ strlcpy(state.basefilename, optarg, sizeof(state.basefilename)); + pc = strrchr(state.basefilename, '.'); + if (pc) + *pc = 0; +@@ -478,18 +478,18 @@ int main(int argc, char *argv[]) + + if(state.basefilename[0] == '\0') { + /* set default output filename to be a.o, a.hex, a.cod, a.map */ +- strcpy(state.basefilename, "a"); ++ strlcpy(state.basefilename, "a", sizeof(state.basefilename)); + } + + /* setup output filenames */ +- strcpy(state.codfilename, state.basefilename); +- strcat(state.codfilename, ".cod"); +- strcpy(state.hexfilename, state.basefilename); +- strcat(state.hexfilename, ".hex"); +- strcpy(state.mapfilename, state.basefilename); +- strcat(state.mapfilename, ".map"); +- strcpy(state.objfilename, state.basefilename); +- strcat(state.objfilename, ".cof"); ++ strlcpy(state.codfilename, state.basefilename, sizeof(state.codfilename)); ++ strlcat(state.codfilename, ".cod", sizeof(state.codfilename)); ++ strlcpy(state.hexfilename, state.basefilename, sizeof(state.hexfilename)); ++ strlcat(state.hexfilename, ".hex", sizeof(state.hexfilename)); ++ strlcpy(state.mapfilename, state.basefilename, sizeof(state.mapfilename)); ++ strlcat(state.mapfilename, ".map", sizeof(state.mapfilename)); ++ strlcpy(state.objfilename, state.basefilename, sizeof(state.objfilename)); ++ strlcat(state.objfilename, ".cof", sizeof(state.objfilename)); + + /* Open all objects and archives in the file list. */ + for ( ; optind < argc; optind++) { +@@ -514,12 +514,12 @@ int main(int argc, char *argv[]) + return EXIT_FAILURE; + } + #ifdef HAVE_DOS_BASED_FILE_SYSTEM +- strcpy(file_name, DOS_LKR_PATH); ++ strlcpy(file_name, DOS_LKR_PATH, sizeof(file_name)); + #else +- strcpy(file_name, GPLINK_LKR_PATH); ++ strlcpy(file_name, GPLINK_LKR_PATH, sizeof(file_name)); + #endif +- strcat(file_name, COPY_CHAR); +- strcat(file_name, script_name); ++ strlcat(file_name, COPY_CHAR, sizeof(file_name)); ++ strlcat(file_name, script_name, sizeof(file_name)); + gp_message("using default linker script \"%s\"", file_name); + open_src(file_name, 0); + yyparse(); diff --git a/devel/gputils/patches/patch-gplink_map_c b/devel/gputils/patches/patch-gplink_map_c new file mode 100644 index 00000000000..22a26cae8aa --- /dev/null +++ b/devel/gputils/patches/patch-gplink_map_c @@ -0,0 +1,21 @@ +$OpenBSD: patch-gplink_map_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gplink/map.c.orig 2003-07-25 12:13:07.000000000 +1000 ++++ gplink/map.c 2003-10-14 23:57:41.000000000 +1000 +@@ -44,7 +44,7 @@ map_line(const char *format, ...) + return; + + va_start(args, format); +- vsprintf(buffer, format, args); ++ vsnprintf(buffer, sizeof(buffer), format, args); + va_end(args); + + fprintf(state.map.f, "%s\n", buffer); +@@ -249,7 +249,7 @@ make_map(void) + } + + /* Determine start date */ +- gp_date_string(state.map.startdate); ++ gp_date_string(state.map.startdate, sizeof(state.map.startdate)); + + map_line("%s", GPLINK_VERSION_STRING); + map_line("Map File - Created %s", state.map.startdate); diff --git a/devel/gputils/patches/patch-gplink_scan_l b/devel/gputils/patches/patch-gplink_scan_l new file mode 100644 index 00000000000..79c9a6b43eb --- /dev/null +++ b/devel/gputils/patches/patch-gplink_scan_l @@ -0,0 +1,25 @@ +$OpenBSD: patch-gplink_scan_l,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gplink/scan.l.orig 2003-10-19 21:16:00.000000000 +1000 ++++ gplink/scan.l 2003-10-19 21:16:51.000000000 +1000 +@@ -88,7 +88,7 @@ static void bad_char(char *character) + { + char complaint[80]; + +- sprintf(complaint, ++ snprintf(complaint, sizeof(complaint), + isprint(*character) ? + "Illegal character '%c' in numeric constant" : + "Illegal character %#x in numeric constant", +@@ -115,9 +115,9 @@ void open_src(char *name, int isinclude) + int i; + + for(i = 0; i < state.numpaths; i++) { +- strcpy(tryname, state.paths[i]); +- strcat(tryname, COPY_CHAR); +- strcat(tryname, name); ++ strlcpy(tryname, state.paths[i], sizeof(tryname)); ++ strlcat(tryname, COPY_CHAR, sizeof(tryname)); ++ strlcat(tryname, name, sizeof(tryname)); + new->f = fopen(tryname, "rt"); + if(new->f) { + new->name = strdup(tryname); diff --git a/devel/gputils/patches/patch-gputils_dump_c b/devel/gputils/patches/patch-gputils_dump_c new file mode 100644 index 00000000000..b1fba8ab8ec --- /dev/null +++ b/devel/gputils/patches/patch-gputils_dump_c @@ -0,0 +1,18 @@ +$OpenBSD: patch-gputils_dump_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gputils/dump.c.orig 2003-10-14 21:56:07.000000000 +1000 ++++ gputils/dump.c 2003-10-14 22:16:52.000000000 +1000 +@@ -336,9 +336,11 @@ void dump_source_files( void ) + substr(b,&temp[offset+1],FILE_SIZE); + + if(temp[offset]) { +- source_file_names[number_of_source_files] = +- (char *)malloc(strlen(b) + 1); +- strcpy(source_file_names[number_of_source_files],b); ++ source_file_names[number_of_source_files] = strdup(b); ++ if (!source_file_names[number_of_source_files]) { ++ err(1, NULL); ++ exit(1); ++ } + printf("%s\n",source_file_names[number_of_source_files]); + source_files[number_of_source_files] = + fopen(source_file_names[number_of_source_files],"rt"); diff --git a/devel/gputils/patches/patch-gputils_gpdasm_c b/devel/gputils/patches/patch-gputils_gpdasm_c new file mode 100644 index 00000000000..9c3e287107c --- /dev/null +++ b/devel/gputils/patches/patch-gputils_gpdasm_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gputils_gpdasm_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gputils/gpdasm.c.orig 2003-10-14 22:31:20.000000000 +1000 ++++ gputils/gpdasm.c 2003-10-14 22:31:45.000000000 +1000 +@@ -131,7 +131,7 @@ void dasm(MemBlock *memory) + } else { + printf(" "); + } +- gp_disassemble(memory, &i, state.class, buffer); ++ gp_disassemble(memory, &i, state.class, buffer, sizeof(buffer)); + printf("%s\n", buffer); + if (i != lastloc) { + /* some 18xx instructions use two words */ diff --git a/devel/gputils/patches/patch-gputils_gpvc_c b/devel/gputils/patches/patch-gputils_gpvc_c new file mode 100644 index 00000000000..e9948900eed --- /dev/null +++ b/devel/gputils/patches/patch-gputils_gpvc_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gputils_gpvc_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gputils/gpvc.c.orig 2003-10-14 22:17:16.000000000 +1000 ++++ gputils/gpvc.c 2003-10-14 22:17:59.000000000 +1000 +@@ -168,7 +168,7 @@ int main(int argc, char *argv[]) + } + + if ((optind + 1) == argc) +- strcpy(filename, argv[optind]); ++ strlcpy(filename, argv[optind], sizeof(filename)); + else + usage = 1; + diff --git a/devel/gputils/patches/patch-gputils_gpvo_c b/devel/gputils/patches/patch-gputils_gpvo_c new file mode 100644 index 00000000000..d742439721b --- /dev/null +++ b/devel/gputils/patches/patch-gputils_gpvo_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-gputils_gpvo_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- gputils/gpvo.c.orig 2003-10-14 22:32:11.000000000 +1000 ++++ gputils/gpvo.c 2003-10-14 22:32:32.000000000 +1000 +@@ -132,7 +132,7 @@ void print_data(enum proc_class class, M + break; + + if (disassemble) +- gp_disassemble(data, &org, class, buffer); ++ gp_disassemble(data, &org, class, buffer, sizeof(buffer)); + + printf("%06x: %04x %s\n", org << byte_addr, memory & 0xffff, buffer); + org++; diff --git a/devel/gputils/patches/patch-include_stdhdr_h b/devel/gputils/patches/patch-include_stdhdr_h new file mode 100644 index 00000000000..b3892314d93 --- /dev/null +++ b/devel/gputils/patches/patch-include_stdhdr_h @@ -0,0 +1,12 @@ +$OpenBSD: patch-include_stdhdr_h,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- include/stdhdr.h.orig 2003-10-14 20:22:25.000000000 +1000 ++++ include/stdhdr.h 2003-10-14 20:23:01.000000000 +1000 +@@ -43,7 +43,7 @@ Boston, MA 02111-1307, USA. */ + + #include "getopt.h" + +-#ifdef HAVE_MALLOC_H ++#if defined(HAVE_MALLOC_H) && !defined(HAVE_STDLIB_H) + #include <malloc.h> + #endif + diff --git a/devel/gputils/patches/patch-libgputils_gparchive_c b/devel/gputils/patches/patch-libgputils_gparchive_c new file mode 100644 index 00000000000..9ddba657828 --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gparchive_c @@ -0,0 +1,113 @@ +$OpenBSD: patch-libgputils_gparchive_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gparchive.c.orig 2003-03-31 16:49:39.000000000 +1000 ++++ libgputils/gparchive.c 2003-10-14 23:08:45.000000000 +1000 +@@ -50,7 +50,7 @@ gp_archive_member_name(gp_archive_type * + char name[256]; + char *end; + +- sscanf(archive->header.ar_name, "%s/", name); ++ sscanf(archive->header.ar_name, "%256s/", name); + end = strchr(&name[0], '/'); + if (end != NULL) + *end = '\0'; +@@ -73,7 +73,7 @@ gp_archive_list_members(gp_archive_type + archive = archive->next; + + while (archive != NULL) { +- sscanf(archive->header.ar_name, "%s/", name); ++ sscanf(archive->header.ar_name, "%256s/", name); + sscanf(archive->header.ar_date, "%il", &date); + sscanf(archive->header.ar_size, "%il", &size); + end = strchr(&name[0], '/'); +@@ -99,7 +99,7 @@ gp_archive_find_member(gp_archive_type * + archive = archive->next; + + while (archive != NULL) { +- sscanf(archive->header.ar_name, "%s/", name); ++ sscanf(archive->header.ar_name, "%256s/", name); + end = strrchr(&name[0], '/'); + if (end != NULL) + *end = '\0'; +@@ -182,16 +182,16 @@ gp_archive_add_member(gp_archive_type *a + + timer = (int)time(NULL); + +- sprintf(name, "%s/", objectname); +- sprintf(date, "%il", timer); +- sprintf(size, "%lil", newobject->size); ++ snprintf(name, sizeof(name), "%s/", objectname); ++ snprintf(date, sizeof(date), "%il", timer); ++ snprintf(size, sizeof(size), "%lil", newobject->size); + + /* FIXME: These functions over right the 0x20 that the header is filled + with. */ +- strncpy(&newmember->header.ar_name[0], &name[0], 256); +- strncpy(&newmember->header.ar_date[0], &date[0], 12); +- strncpy(&newmember->header.ar_size[0], &size[0], 10); +- strncpy(&newmember->header.ar_fmag[0], ARMAG, 2); ++ strlcpy(newmember->header.ar_name, &name[0], sizeof(newmember->header.ar_name)); ++ strlcpy(newmember->header.ar_date, &date[0], sizeof(newmember->header.ar_date)); ++ strlcpy(newmember->header.ar_size, &size[0], sizeof(newmember->header.ar_size)); ++ strlcpy(newmember->header.ar_fmag, ARMAG, sizeof(newmember->header.ar_fmag)); + + oldmember = gp_archive_find_member(archive, objectname); + +@@ -230,9 +230,9 @@ gp_archive_extract_member(gp_archive_typ + /* if the object doesn't have an extension, add one. This is done for + some libs generated with other tools. It should not be necessary + for libs generated by gplib. */ +- strcpy(filename, objectname); ++ strlcpy(filename, objectname, sizeof(filename)); + if (strrchr(filename, '.') == NULL) +- strcat(filename, ".o"); ++ strlcat(filename, ".o", sizeof(filename)); + + output_file = fopen(filename, "wb"); + if (output_file == NULL) { +@@ -412,7 +412,7 @@ gp_archive_make_index(gp_archive_type *a + archive = archive->next; + + while (archive != NULL) { +- sscanf(archive->header.ar_name, "%s/", name); ++ sscanf(archive->header.ar_name, "%256s/", name); + end = strchr(&name[0], '/'); + if (end != NULL) + *end = '\0'; +@@ -460,17 +460,25 @@ gp_archive_add_index(struct symbol_table + + /* create a new member for the index and place it in the archive */ + newmember = (gp_archive_type *)malloc(sizeof(*newmember)); ++ if (!newmember) { ++ err(1, NULL); ++ exit(1); ++ } + newmember->file = (char *)malloc(sizeof(char)*indexsize); ++ if(!newmember->file) { ++ err(1, NULL); ++ exit(1); ++ } + newmember->next = NULL; + + /* fill in the archive header */ + memset(&newmember->header, 0x20, AR_HDR_SIZ); /* fill the header with space */ + + newmember->header.ar_name[0] = '/'; +- sprintf(size, "%lil", indexsize); ++ snprintf(size, sizeof(size), "%lil", indexsize); + +- strncpy(&newmember->header.ar_size[0], &size[0], 10); +- strncpy(&newmember->header.ar_fmag[0], ARMAG, 2); ++ strlcpy(newmember->header.ar_size, &size[0], sizeof(newmember->header.ar_size)); ++ strlcpy(newmember->header.ar_fmag, ARMAG, sizeof(newmember->header.ar_fmag)); + + newmember->next = archive; + archive = newmember; +@@ -601,7 +609,7 @@ gp_archive_print_table(struct symbol_tab + member = get_symbol_annotation(lst[i]); + assert(member != NULL); + /* determine the archive member name */ +- sscanf(member->header.ar_name, "%s/", name); ++ sscanf(member->header.ar_name, "%256s/", name); + end = strchr(&name[0], '/'); + if (end != NULL) + *end = '\0'; diff --git a/devel/gputils/patches/patch-libgputils_gpcoff_h b/devel/gputils/patches/patch-libgputils_gpcoff_h new file mode 100644 index 00000000000..2ea97e1bdf5 --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpcoff_h @@ -0,0 +1,12 @@ +$OpenBSD: patch-libgputils_gpcoff_h,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpcoff.h.orig 2003-10-14 20:33:24.000000000 +1000 ++++ libgputils/gpcoff.h 2003-10-14 20:34:16.000000000 +1000 +@@ -568,7 +568,7 @@ typedef struct gp_object_type + enum proc_class class; + + /* time object was created */ +- long time; ++ time_t time; + + /* flags */ + unsigned short flags; diff --git a/devel/gputils/patches/patch-libgputils_gpcofflink_c b/devel/gputils/patches/patch-libgputils_gpcofflink_c new file mode 100644 index 00000000000..e8d93f7ee76 --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpcofflink_c @@ -0,0 +1,34 @@ +$OpenBSD: patch-libgputils_gpcofflink_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpcofflink.c.orig 2003-09-28 15:20:26.000000000 +1000 ++++ libgputils/gpcofflink.c 2003-10-19 01:24:55.000000000 +1000 +@@ -404,8 +404,8 @@ _create_rom_section(gp_object_type *obje + int last; + + /* create the new section */ +- strcpy(name, section->name); +- strcat(name, "_i"); ++ strlcpy(name, section->name, sizeof(name)); ++ strlcat(name, "_i", sizeof(name)); + new = gp_coffgen_newsection(name); + + /* select "retlw" instruction */ +@@ -536,8 +536,8 @@ gp_add_cinit_section(gp_object_type *obj + while (section != NULL) { + if (section->flags & STYP_DATA) { + /* locate the rom table */ +- strcpy(prog_name, section->name); +- strcat(prog_name, "_i"); ++ strlcpy(prog_name, section->name, sizeof(prog_name)); ++ strlcat(prog_name, "_i", sizeof(prog_name)); + prog_section = gp_coffgen_findsection(object, + object->sections, + prog_name); +@@ -1038,7 +1038,7 @@ gp_cofflink_fill_pages(gp_object_type *o + ¤t_address, + ¤t_size); + if (found == 1) { +- sprintf(fill_name, ".fill_%i", fill_number++); ++ snprintf(fill_name, sizeof(fill_name), ".fill_%i", fill_number++); + gp_debug(" new section \"%s\" at %#x with size %#x and data %#x", + fill_name, + current_address, diff --git a/devel/gputils/patches/patch-libgputils_gpdis_c b/devel/gputils/patches/patch-libgputils_gpdis_c new file mode 100644 index 00000000000..c09e57d4d12 --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpdis_c @@ -0,0 +1,95 @@ +$OpenBSD: patch-libgputils_gpdis_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpdis.c.orig 2003-03-14 17:44:51.000000000 +1100 ++++ libgputils/gpdis.c 2003-10-14 23:01:13.000000000 +1000 +@@ -22,30 +22,30 @@ Boston, MA 02111-1307, USA. */ + #include "stdhdr.h" + #include "libgputils.h" + +-#define DECODE_ARG0 sprintf(buffer, "%s", instruction->name) ++#define DECODE_ARG0 snprintf(buffer, sizeof_buffer, "%s", instruction->name) + +-#define DECODE_ARG1(ARG1) sprintf(buffer, "%s\t%#lx", \ ++#define DECODE_ARG1(ARG1) snprintf(buffer, sizeof_buffer, "%s\t%#lx", \ + instruction->name,\ + ARG1) + +-#define DECODE_ARG1WF(ARG1, ARG2) sprintf(buffer, "%s\t%#lx, %s", \ ++#define DECODE_ARG1WF(ARG1, ARG2) snprintf(buffer, sizeof_buffer, "%s\t%#lx, %s", \ + instruction->name,\ + ARG1, \ + (ARG2 ? "f" : "w")) + +-#define DECODE_ARG2(ARG1, ARG2) sprintf(buffer, "%s\t%#lx, %#lx", \ ++#define DECODE_ARG2(ARG1, ARG2) snprintf(buffer, sizeof_buffer, "%s\t%#lx, %#lx", \ + instruction->name,\ + ARG1, \ + ARG2) + +-#define DECODE_ARG3(ARG1, ARG2, ARG3) sprintf(buffer, "%s\t%#lx, %#lx, %#lx", \ ++#define DECODE_ARG3(ARG1, ARG2, ARG3) snprintf(buffer, sizeof_buffer, "%s\t%#lx, %#lx, %#lx", \ + instruction->name,\ + ARG1, \ + ARG2, \ + ARG3) + + void +-gp_disassemble(MemBlock *m, int *org, enum proc_class class, char *buffer) ++gp_disassemble(MemBlock *m, int *org, enum proc_class class, char *buffer, size_t sizeof_buffer) + { + int i; + long int opcode; +@@ -56,7 +56,7 @@ gp_disassemble(MemBlock *m, int *org, en + switch (class) { + case PROC_CLASS_EEPROM8: + case PROC_CLASS_GENERIC: +- sprintf(buffer, "unsupported processor class"); ++ snprintf(buffer, sizeof_buffer, "unsupported processor class"); + return; + case PROC_CLASS_PIC12: + for(i = 0; i < num_op_12c5xx; i++) +@@ -88,7 +88,7 @@ gp_disassemble(MemBlock *m, int *org, en + } + + if (instruction == NULL) { +- sprintf(buffer, "dw\t%#lx ;unknown opcode", opcode); ++ snprintf(buffer, sizeof_buffer, "dw\t%#lx ;unknown opcode", opcode); + return; + } + +@@ -146,7 +146,7 @@ gp_disassemble(MemBlock *m, int *org, en + *org += 1; + dest = (i_memory_get(m, *org) & 0xfff) << 8; + dest |= opcode & 0xff; +- sprintf(buffer, "%s\t%#lx, %#lx", ++ snprintf(buffer, sizeof_buffer, "%s\t%#lx, %#lx", + instruction->name, + dest * 2, + (opcode >> 8) & 1); +@@ -227,22 +227,22 @@ gp_disassemble(MemBlock *m, int *org, en + switch(opcode & 0x3) + { + case 0: +- strcpy(operator, "*"); ++ strlcpy(operator, "*", sizeof(operator)); + break; + case 1: +- strcpy(operator, "*+"); ++ strlcpy(operator, "*+", sizeof(operator)); + break; + case 2: +- strcpy(operator, "*-"); ++ strlcpy(operator, "*-", sizeof(operator)); + break; + case 3: +- strcpy(operator, "+*"); ++ strlcpy(operator, "+*", sizeof(operator)); + break; + default: + assert(0); + } + +- sprintf(buffer, "%s\t%s", instruction->name, operator); ++ snprintf(buffer, sizeof_buffer, "%s\t%s", instruction->name, operator); + } + break; + case INSN_CLASS_TBL2: diff --git a/devel/gputils/patches/patch-libgputils_gpdis_h b/devel/gputils/patches/patch-libgputils_gpdis_h new file mode 100644 index 00000000000..addea29438f --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpdis_h @@ -0,0 +1,11 @@ +$OpenBSD: patch-libgputils_gpdis_h,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpdis.h.orig 2003-10-14 22:30:40.000000000 +1000 ++++ libgputils/gpdis.h 2003-10-14 22:30:56.000000000 +1000 +@@ -22,6 +22,6 @@ Boston, MA 02111-1307, USA. */ + #ifndef __GPDIS_H__ + #define __GPDIS_H__ + +-void gp_disassemble(MemBlock *m, int *org, enum proc_class class, char *buffer); ++void gp_disassemble(MemBlock *m, int *org, enum proc_class class, char *buffer, size_t sizeof_buffer); + + #endif diff --git a/devel/gputils/patches/patch-libgputils_gpmemory_c b/devel/gputils/patches/patch-libgputils_gpmemory_c new file mode 100644 index 00000000000..93669c11566 --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpmemory_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-libgputils_gpmemory_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpmemory.c.orig 2003-10-19 10:53:32.000000000 +1000 ++++ libgputils/gpmemory.c 2003-10-19 10:53:47.000000000 +1000 +@@ -92,7 +92,7 @@ MemBlock * i_memory_new(MemBlock *m, Mem + + base = base_address >> I_MEM_BITS; + +- mbp->memory = (unsigned int *)malloc(MAX_I_MEM * sizeof(unsigned int)); ++ mbp->memory = (unsigned int *)calloc(MAX_I_MEM * sizeof(unsigned int), 1); + mbp->base = base; + + do { diff --git a/devel/gputils/patches/patch-libgputils_gpmessage_c b/devel/gputils/patches/patch-libgputils_gpmessage_c new file mode 100644 index 00000000000..83934947a12 --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpmessage_c @@ -0,0 +1,39 @@ +$OpenBSD: patch-libgputils_gpmessage_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpmessage.c.orig 2003-10-14 22:33:16.000000000 +1000 ++++ libgputils/gpmessage.c 2003-10-14 22:34:12.000000000 +1000 +@@ -48,7 +48,7 @@ gp_error(const char *format, ...) + return; + + va_start(args, format); +- vsprintf(buffer, format, args); ++ vsnprintf(buffer, sizeof(buffer), format, args); + va_end(args); + + printf("%s %s\n", "error:", buffer); +@@ -71,7 +71,7 @@ gp_warning(const char *format, ...) + return; + + va_start(args, format); +- vsprintf(buffer, format, args); ++ vsnprintf(buffer, sizeof(buffer), format, args); + va_end(args); + + printf("%s %s\n", "warning:", buffer); +@@ -94,7 +94,7 @@ gp_message(const char *format, ...) + return; + + va_start(args, format); +- vsprintf(buffer, format, args); ++ vsnprintf(buffer, sizeof(buffer), format, args); + va_end(args); + + printf("%s %s\n", "message:", buffer); +@@ -115,7 +115,7 @@ gp_debug(const char *format, ...) + return; + + va_start(args, format); +- vsprintf(buffer, format, args); ++ vsnprintf(buffer, sizeof(buffer), format, args); + va_end(args); + + printf("%s %s\n", "debug:", buffer); diff --git a/devel/gputils/patches/patch-libgputils_gpreadobj_c b/devel/gputils/patches/patch-libgputils_gpreadobj_c new file mode 100644 index 00000000000..1c0fe8fc06b --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpreadobj_c @@ -0,0 +1,43 @@ +$OpenBSD: patch-libgputils_gpreadobj_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpreadobj.c.orig 2003-10-14 23:21:51.000000000 +1000 ++++ libgputils/gpreadobj.c 2003-10-14 23:23:07.000000000 +1000 +@@ -142,7 +142,7 @@ _read_section_header(gp_object_type *obj + char *file, + char *string_table) + { +- char buffer[9]; ++ char buffer[9]; /* the name can occupy all 8 chars without a null terminator */ + unsigned int offset; + + if (gp_getl32(&file[0]) == 0) { +@@ -150,9 +150,7 @@ _read_section_header(gp_object_type *obj + offset = gp_getl32(&file[4]); + section->name = strdup(&string_table[offset]); + } else { +- strncpy(buffer, &file[0], 8); +- /* the name can occupy all 8 chars without a null terminator */ +- buffer[8] = '\0'; ++ strlcpy(buffer, &file[0], sizeof(buffer)); + section->name = strdup(buffer); + } + +@@ -322,7 +320,7 @@ _read_aux(gp_aux_type *aux, int aux_type + static void + _read_symbol(gp_symbol_type *symbol, char *file, char *string_table) + { +- char buffer[9]; ++ char buffer[9]; /* the name can occupy all 8 chars without a null terminator */ + unsigned int offset; + + if (gp_getl32(&file[0]) == 0) { +@@ -330,9 +328,7 @@ _read_symbol(gp_symbol_type *symbol, cha + offset = gp_getl32(&file[4]); + symbol->name = strdup(&string_table[offset]); + } else { +- strncpy(buffer, &file[0], 8); +- /* the name can occupy all 8 chars without a null terminator */ +- buffer[8] = '\0'; ++ strlcpy(buffer, &file[0], sizeof(buffer)); + symbol->name = strdup(buffer); + } + diff --git a/devel/gputils/patches/patch-libgputils_gpsystem_c b/devel/gputils/patches/patch-libgputils_gpsystem_c new file mode 100644 index 00000000000..11414924014 --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpsystem_c @@ -0,0 +1,20 @@ +$OpenBSD: patch-libgputils_gpsystem_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpsystem.c.orig 2003-10-14 23:54:47.000000000 +1000 ++++ libgputils/gpsystem.c 2003-10-14 23:55:19.000000000 +1000 +@@ -126,14 +126,14 @@ gp_putb32(char *addr, long data) + } + + void +-gp_date_string(char *buffer) ++gp_date_string(char *buffer, size_t sizeof_buffer) + { + time_t now; + struct tm *now_tm; + + time(&now); + now_tm = localtime(&now); +- sprintf(buffer, ++ snprintf(buffer, sizeof_buffer, + "%d-%d-%d %02d:%02d:%02d", + now_tm->tm_mon + 1, + now_tm->tm_mday, diff --git a/devel/gputils/patches/patch-libgputils_gpsystem_h b/devel/gputils/patches/patch-libgputils_gpsystem_h new file mode 100644 index 00000000000..30f96ecd0ff --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpsystem_h @@ -0,0 +1,11 @@ +$OpenBSD: patch-libgputils_gpsystem_h,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpsystem.h.orig 2003-10-14 23:55:53.000000000 +1000 ++++ libgputils/gpsystem.h 2003-10-14 23:56:12.000000000 +1000 +@@ -33,6 +33,6 @@ void gp_putl32(char *addr, long data); + long gp_getb32(char *addr); + void gp_putb32(char *addr, long data); + +-void gp_date_string(char *buffer); ++void gp_date_string(char *buffer, size_t sizeof_buffer); + + #endif diff --git a/devel/gputils/patches/patch-libgputils_gpwritehex_c b/devel/gputils/patches/patch-libgputils_gpwritehex_c new file mode 100644 index 00000000000..87eade932ec --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpwritehex_c @@ -0,0 +1,22 @@ +$OpenBSD: patch-libgputils_gpwritehex_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpwritehex.c.orig 2003-10-14 22:34:32.000000000 +1000 ++++ libgputils/gpwritehex.c 2003-10-14 22:36:08.000000000 +1000 +@@ -183,12 +183,12 @@ int writehex (char *basefilename, + } + + /* build file names */ +- strcpy(hexfilename, basefilename); +- strcat(hexfilename, ".hex"); +- strcpy(lowhex, basefilename); +- strcat(lowhex, ".hxl"); +- strcpy(highhex, basefilename); +- strcat(highhex, ".hxh"); ++ strlcpy(hexfilename, basefilename, sizeof(hexfilename)); ++ strlcat(hexfilename, ".hex", sizeof(hexfilename)); ++ strlcpy(lowhex, basefilename, sizeof(lowhex)); ++ strlcat(lowhex, ".hxl", sizeof(lowhex)); ++ strlcpy(highhex, basefilename, sizeof(highhex)); ++ strlcat(highhex, ".hxh", sizeof(highhex)); + + if (numerrors) { + /* Remove the hex files (if any) */ diff --git a/devel/gputils/patches/patch-libgputils_gpwriteobj_c b/devel/gputils/patches/patch-libgputils_gpwriteobj_c new file mode 100644 index 00000000000..0655756efaa --- /dev/null +++ b/devel/gputils/patches/patch-libgputils_gpwriteobj_c @@ -0,0 +1,61 @@ +$OpenBSD: patch-libgputils_gpwriteobj_c,v 1.1.1.1 2003/11/03 01:02:36 naddy Exp $ +--- libgputils/gpwriteobj.c.orig 2003-10-14 23:02:28.000000000 +1000 ++++ libgputils/gpwriteobj.c 2003-10-14 23:26:36.000000000 +1000 +@@ -33,6 +33,7 @@ _gp_coffgen_addstring(char *name, char * + { + int nbytes; + int offset; ++ size_t sizeof_name = strlen(name) + 1; + + assert(name != NULL); + +@@ -40,11 +41,11 @@ _gp_coffgen_addstring(char *name, char * + offset = nbytes = gp_getl32(&table[0]); + + /* check the length against the max string table size */ +- nbytes += strlen(name) + 1; ++ nbytes += sizeof_name; + assert(!(nbytes > MAX_STRING_TABLE)); + + /* copy the string to the table */ +- strcpy(&table[offset], name); ++ memmove(&table[offset], name, sizeof_name); + + /* write the new byte count */ + gp_putl32(&table[0], nbytes); +@@ -53,7 +54,7 @@ _gp_coffgen_addstring(char *name, char * + } + + static void +-_gp_coffgen_addname(char *name, char *ptr, char *table) ++_gp_coffgen_addname(char *name, char *ptr, size_t sizeof_ptr, char *table) + { + int length; + int offset; +@@ -65,7 +66,7 @@ _gp_coffgen_addname(char *name, char *pt + + if (length < 9) { + /* The string will fit in the structure. */ +- strncpy(ptr, name, 8); ++ strlcpy(ptr, name, sizeof_ptr); + } else { + offset = _gp_coffgen_addstring(name, table); + +@@ -118,7 +119,7 @@ _gp_coffgen_write_scnhdr(gp_section_type + { + char name[8]; + +- _gp_coffgen_addname(section->name, &name[0], table); ++ _gp_coffgen_addname(section->name, name, sizeof(name), table); + gp_fputvar(&name[0], 8, fp); + gp_fputl32(section->address, fp); + gp_fputl32(section->address, fp); +@@ -266,7 +267,7 @@ _gp_coffgen_write_symbols(gp_object_type + + while(current != NULL) { + +- _gp_coffgen_addname(current->name, &name[0], table); ++ _gp_coffgen_addname(current->name, name, sizeof(name), table); + + gp_fputvar(&name[0], 8, fp); + gp_fputl32(current->value, fp); diff --git a/devel/gputils/pkg/DESCR b/devel/gputils/pkg/DESCR new file mode 100644 index 00000000000..0627fb98dd8 --- /dev/null +++ b/devel/gputils/pkg/DESCR @@ -0,0 +1,2 @@ +GPUTILS is a collection of tools for the Microchip (TM) PIC +microcontrollers. It includes gpasm, gplink, and gplib. diff --git a/devel/gputils/pkg/PLIST b/devel/gputils/pkg/PLIST new file mode 100644 index 00000000000..cc8667a0462 --- /dev/null +++ b/devel/gputils/pkg/PLIST @@ -0,0 +1,493 @@ +@comment $OpenBSD: PLIST,v 1.1.1.1 2003/11/03 01:02:37 naddy Exp $ +bin/gpasm +bin/gpdasm +bin/gplib +bin/gplink +bin/gpvc +bin/gpvo +man/man1/gpasm.1 +man/man1/gpdasm.1 +man/man1/gplib.1 +man/man1/gplink.1 +man/man1/gputils.1 +man/man1/gpvc.1 +man/man1/gpvo.1 +share/doc/gputils/gputils.lyx +share/doc/gputils/gputils.pdf +share/doc/gputils/gputils.ps +share/gputils/header/mcp250xx.inc +share/gputils/header/memory.inc +share/gputils/header/p12c508.inc +share/gputils/header/p12c508a.inc +share/gputils/header/p12c509.inc +share/gputils/header/p12c509a.inc +share/gputils/header/p12c671.inc +share/gputils/header/p12c672.inc +share/gputils/header/p12ce518.inc +share/gputils/header/p12ce519.inc +share/gputils/header/p12ce673.inc +share/gputils/header/p12ce674.inc +share/gputils/header/p12f629.inc +share/gputils/header/p12f675.inc +share/gputils/header/p14000.inc +share/gputils/header/p16c432.inc +share/gputils/header/p16c433.inc +share/gputils/header/p16c505.inc +share/gputils/header/p16c554.inc +share/gputils/header/p16c557.inc +share/gputils/header/p16c558.inc +share/gputils/header/p16c5x.inc +share/gputils/header/p16c61.inc +share/gputils/header/p16c62.inc +share/gputils/header/p16c620.inc +share/gputils/header/p16c620a.inc +share/gputils/header/p16c621.inc +share/gputils/header/p16c621a.inc +share/gputils/header/p16c622.inc +share/gputils/header/p16c622a.inc +share/gputils/header/p16c62a.inc +share/gputils/header/p16c62b.inc +share/gputils/header/p16c63.inc +share/gputils/header/p16c63a.inc +share/gputils/header/p16c64.inc +share/gputils/header/p16c642.inc +share/gputils/header/p16c64a.inc +share/gputils/header/p16c65.inc +share/gputils/header/p16c65a.inc +share/gputils/header/p16c65b.inc +share/gputils/header/p16c66.inc +share/gputils/header/p16c662.inc +share/gputils/header/p16c67.inc +share/gputils/header/p16c71.inc +share/gputils/header/p16c710.inc +share/gputils/header/p16c711.inc +share/gputils/header/p16c712.inc +share/gputils/header/p16c715.inc +share/gputils/header/p16c716.inc +share/gputils/header/p16c717.inc +share/gputils/header/p16c72.inc +share/gputils/header/p16c72a.inc +share/gputils/header/p16c73.inc +share/gputils/header/p16c73a.inc +share/gputils/header/p16c73b.inc +share/gputils/header/p16c74.inc +share/gputils/header/p16c745.inc +share/gputils/header/p16c74a.inc +share/gputils/header/p16c74b.inc +share/gputils/header/p16c76.inc +share/gputils/header/p16c765.inc +share/gputils/header/p16c77.inc +share/gputils/header/p16c770.inc +share/gputils/header/p16c771.inc +share/gputils/header/p16c773.inc +share/gputils/header/p16c774.inc +share/gputils/header/p16c781.inc +share/gputils/header/p16c782.inc +share/gputils/header/p16c84.inc +share/gputils/header/p16c923.inc +share/gputils/header/p16c924.inc +share/gputils/header/p16c925.inc +share/gputils/header/p16c926.inc +share/gputils/header/p16ce623.inc +share/gputils/header/p16ce624.inc +share/gputils/header/p16ce625.inc +share/gputils/header/p16cr62.inc +share/gputils/header/p16cr63.inc +share/gputils/header/p16cr64.inc +share/gputils/header/p16cr65.inc +share/gputils/header/p16cr72.inc +share/gputils/header/p16cr83.inc +share/gputils/header/p16cr84.inc +share/gputils/header/p16f5x.inc +share/gputils/header/p16f627.inc +share/gputils/header/p16f627a.inc +share/gputils/header/p16f628.inc +share/gputils/header/p16f628a.inc +share/gputils/header/p16f630.inc +share/gputils/header/p16f648a.inc +share/gputils/header/p16f676.inc +share/gputils/header/p16f684.inc +share/gputils/header/p16f716.inc +share/gputils/header/p16f72.inc +share/gputils/header/p16f73.inc +share/gputils/header/p16f737.inc +share/gputils/header/p16f74.inc +share/gputils/header/p16f747.inc +share/gputils/header/p16f76.inc +share/gputils/header/p16f767.inc +share/gputils/header/p16f77.inc +share/gputils/header/p16f777.inc +share/gputils/header/p16f818.inc +share/gputils/header/p16f819.inc +share/gputils/header/p16f83.inc +share/gputils/header/p16f84.inc +share/gputils/header/p16f84a.inc +share/gputils/header/p16f87.inc +share/gputils/header/p16f870.inc +share/gputils/header/p16f871.inc +share/gputils/header/p16f872.inc +share/gputils/header/p16f873.inc +share/gputils/header/p16f873a.inc +share/gputils/header/p16f874.inc +share/gputils/header/p16f874a.inc +share/gputils/header/p16f876.inc +share/gputils/header/p16f876a.inc +share/gputils/header/p16f877.inc +share/gputils/header/p16f877a.inc +share/gputils/header/p16f88.inc +share/gputils/header/p16hv540.inc +share/gputils/header/p17c42.inc +share/gputils/header/p17c42a.inc +share/gputils/header/p17c43.inc +share/gputils/header/p17c44.inc +share/gputils/header/p17c752.inc +share/gputils/header/p17c756.inc +share/gputils/header/p17c756a.inc +share/gputils/header/p17c762.inc +share/gputils/header/p17c766.inc +share/gputils/header/p17cr42.inc +share/gputils/header/p17cr43.inc +share/gputils/header/p18c242.inc +share/gputils/header/p18c252.inc +share/gputils/header/p18c442.inc +share/gputils/header/p18c452.inc +share/gputils/header/p18c601.inc +share/gputils/header/p18c658.inc +share/gputils/header/p18c801.inc +share/gputils/header/p18c858.inc +share/gputils/header/p18cxxx.inc +share/gputils/header/p18f1220.inc +share/gputils/header/p18f1320.inc +share/gputils/header/p18f2220.inc +share/gputils/header/p18f2320.inc +share/gputils/header/p18f2331.inc +share/gputils/header/p18f242.inc +share/gputils/header/p18f2431.inc +share/gputils/header/p18f2439.inc +share/gputils/header/p18f248.inc +share/gputils/header/p18f2515.inc +share/gputils/header/p18f252.inc +share/gputils/header/p18f2525.inc +share/gputils/header/p18f2539.inc +share/gputils/header/p18f258.inc +share/gputils/header/p18f2610.inc +share/gputils/header/p18f2620.inc +share/gputils/header/p18f4220.inc +share/gputils/header/p18f4320.inc +share/gputils/header/p18f4331.inc +share/gputils/header/p18f442.inc +share/gputils/header/p18f4431.inc +share/gputils/header/p18f4439.inc +share/gputils/header/p18f448.inc +share/gputils/header/p18f4515.inc +share/gputils/header/p18f452.inc +share/gputils/header/p18f4525.inc +share/gputils/header/p18f4539.inc +share/gputils/header/p18f458.inc +share/gputils/header/p18f4610.inc +share/gputils/header/p18f4620.inc +share/gputils/header/p18f6520.inc +share/gputils/header/p18f6525.inc +share/gputils/header/p18f6585.inc +share/gputils/header/p18f6620.inc +share/gputils/header/p18f6621.inc +share/gputils/header/p18f6680.inc +share/gputils/header/p18f6720.inc +share/gputils/header/p18f8520.inc +share/gputils/header/p18f8525.inc +share/gputils/header/p18f8585.inc +share/gputils/header/p18f8620.inc +share/gputils/header/p18f8621.inc +share/gputils/header/p18f8680.inc +share/gputils/header/p18f8720.inc +share/gputils/header/p18macro.inc +share/gputils/header/rf509af.inc +share/gputils/header/rf509ag.inc +share/gputils/header/rf675f.inc +share/gputils/header/rf675h.inc +share/gputils/header/rf675k.inc +share/gputils/lkr/12c508.lkr +share/gputils/lkr/12c508a.lkr +share/gputils/lkr/12c509.lkr +share/gputils/lkr/12c509a.lkr +share/gputils/lkr/12c671.lkr +share/gputils/lkr/12c672.lkr +share/gputils/lkr/12ce518.lkr +share/gputils/lkr/12ce519.lkr +share/gputils/lkr/12ce673.lkr +share/gputils/lkr/12ce674.lkr +share/gputils/lkr/12cr509a.lkr +share/gputils/lkr/12f629.lkr +share/gputils/lkr/12f629i.lkr +share/gputils/lkr/12f675.lkr +share/gputils/lkr/12f675i.lkr +share/gputils/lkr/14000.lkr +share/gputils/lkr/16c432.lkr +share/gputils/lkr/16c433.lkr +share/gputils/lkr/16c505.lkr +share/gputils/lkr/16c52.lkr +share/gputils/lkr/16c54.lkr +share/gputils/lkr/16c54a.lkr +share/gputils/lkr/16c54b.lkr +share/gputils/lkr/16c54c.lkr +share/gputils/lkr/16c55.lkr +share/gputils/lkr/16c554.lkr +share/gputils/lkr/16c557.lkr +share/gputils/lkr/16c558.lkr +share/gputils/lkr/16c55a.lkr +share/gputils/lkr/16c56.lkr +share/gputils/lkr/16c56a.lkr +share/gputils/lkr/16c57.lkr +share/gputils/lkr/16c57c.lkr +share/gputils/lkr/16c58a.lkr +share/gputils/lkr/16c58b.lkr +share/gputils/lkr/16c61.lkr +share/gputils/lkr/16c62.lkr +share/gputils/lkr/16c620.lkr +share/gputils/lkr/16c620a.lkr +share/gputils/lkr/16c621.lkr +share/gputils/lkr/16c621a.lkr +share/gputils/lkr/16c622.lkr +share/gputils/lkr/16c622a.lkr +share/gputils/lkr/16c62a.lkr +share/gputils/lkr/16c62b.lkr +share/gputils/lkr/16c63.lkr +share/gputils/lkr/16c63a.lkr +share/gputils/lkr/16c64.lkr +share/gputils/lkr/16c642.lkr +share/gputils/lkr/16c64a.lkr +share/gputils/lkr/16c65.lkr +share/gputils/lkr/16c65a.lkr +share/gputils/lkr/16c65b.lkr +share/gputils/lkr/16c66.lkr +share/gputils/lkr/16c662.lkr +share/gputils/lkr/16c67.lkr +share/gputils/lkr/16c71.lkr +share/gputils/lkr/16c710.lkr +share/gputils/lkr/16c711.lkr +share/gputils/lkr/16c712.lkr +share/gputils/lkr/16c715.lkr +share/gputils/lkr/16c716.lkr +share/gputils/lkr/16c717.lkr +share/gputils/lkr/16c72.lkr +share/gputils/lkr/16c72a.lkr +share/gputils/lkr/16c73.lkr +share/gputils/lkr/16c73a.lkr +share/gputils/lkr/16c73b.lkr +share/gputils/lkr/16c74.lkr +share/gputils/lkr/16c745.lkr +share/gputils/lkr/16c74a.lkr +share/gputils/lkr/16c74b.lkr +share/gputils/lkr/16c76.lkr +share/gputils/lkr/16c765.lkr +share/gputils/lkr/16c77.lkr +share/gputils/lkr/16c770.lkr +share/gputils/lkr/16c771.lkr +share/gputils/lkr/16c773.lkr +share/gputils/lkr/16c774.lkr +share/gputils/lkr/16c781.lkr +share/gputils/lkr/16c782.lkr +share/gputils/lkr/16c84.lkr +share/gputils/lkr/16c923.lkr +share/gputils/lkr/16c924.lkr +share/gputils/lkr/16c925.lkr +share/gputils/lkr/16c926.lkr +share/gputils/lkr/16ce623.lkr +share/gputils/lkr/16ce624.lkr +share/gputils/lkr/16ce625.lkr +share/gputils/lkr/16cr54.lkr +share/gputils/lkr/16cr54a.lkr +share/gputils/lkr/16cr54b.lkr +share/gputils/lkr/16cr54c.lkr +share/gputils/lkr/16cr56a.lkr +share/gputils/lkr/16cr57a.lkr +share/gputils/lkr/16cr57b.lkr +share/gputils/lkr/16cr57c.lkr +share/gputils/lkr/16cr58a.lkr +share/gputils/lkr/16cr58b.lkr +share/gputils/lkr/16cr62.lkr +share/gputils/lkr/16cr620a.lkr +share/gputils/lkr/16cr63.lkr +share/gputils/lkr/16cr64.lkr +share/gputils/lkr/16cr65.lkr +share/gputils/lkr/16cr72.lkr +share/gputils/lkr/16cr83.lkr +share/gputils/lkr/16cr84.lkr +share/gputils/lkr/16f54.lkr +share/gputils/lkr/16f57.lkr +share/gputils/lkr/16f627.lkr +share/gputils/lkr/16f627a.lkr +share/gputils/lkr/16f627ai.lkr +share/gputils/lkr/16f628.lkr +share/gputils/lkr/16f628a.lkr +share/gputils/lkr/16f628ai.lkr +share/gputils/lkr/16f630.lkr +share/gputils/lkr/16f630i.lkr +share/gputils/lkr/16f648a.lkr +share/gputils/lkr/16f648ai.lkr +share/gputils/lkr/16f676.lkr +share/gputils/lkr/16f676i.lkr +share/gputils/lkr/16f684.lkr +share/gputils/lkr/16f716.lkr +share/gputils/lkr/16f72.lkr +share/gputils/lkr/16f73.lkr +share/gputils/lkr/16f737.lkr +share/gputils/lkr/16f737i.lkr +share/gputils/lkr/16f74.lkr +share/gputils/lkr/16f747.lkr +share/gputils/lkr/16f747i.lkr +share/gputils/lkr/16f76.lkr +share/gputils/lkr/16f767.lkr +share/gputils/lkr/16f767i.lkr +share/gputils/lkr/16f77.lkr +share/gputils/lkr/16f777.lkr +share/gputils/lkr/16f777i.lkr +share/gputils/lkr/16f818.lkr +share/gputils/lkr/16f818i.lkr +share/gputils/lkr/16f819.lkr +share/gputils/lkr/16f819i.lkr +share/gputils/lkr/16f83.lkr +share/gputils/lkr/16f84.lkr +share/gputils/lkr/16f84a.lkr +share/gputils/lkr/16f85.lkr +share/gputils/lkr/16f86.lkr +share/gputils/lkr/16f87.lkr +share/gputils/lkr/16f870.lkr +share/gputils/lkr/16f870i.lkr +share/gputils/lkr/16f871.lkr +share/gputils/lkr/16f871i.lkr +share/gputils/lkr/16f872.lkr +share/gputils/lkr/16f872i.lkr +share/gputils/lkr/16f873.lkr +share/gputils/lkr/16f873a.lkr +share/gputils/lkr/16f873ai.lkr +share/gputils/lkr/16f873i.lkr +share/gputils/lkr/16f874.lkr +share/gputils/lkr/16f874a.lkr +share/gputils/lkr/16f874ai.lkr +share/gputils/lkr/16f874i.lkr +share/gputils/lkr/16f876.lkr +share/gputils/lkr/16f876a.lkr +share/gputils/lkr/16f876ai.lkr +share/gputils/lkr/16f876i.lkr +share/gputils/lkr/16f877.lkr +share/gputils/lkr/16f877a.lkr +share/gputils/lkr/16f877ai.lkr +share/gputils/lkr/16f877i.lkr +share/gputils/lkr/16f87i.lkr +share/gputils/lkr/16f88.lkr +share/gputils/lkr/16f88i.lkr +share/gputils/lkr/16hv540.lkr +share/gputils/lkr/17c42.lkr +share/gputils/lkr/17c42a.lkr +share/gputils/lkr/17c43.lkr +share/gputils/lkr/17c44.lkr +share/gputils/lkr/17c752.lkr +share/gputils/lkr/17c756.lkr +share/gputils/lkr/17c756a.lkr +share/gputils/lkr/17c762.lkr +share/gputils/lkr/17c766.lkr +share/gputils/lkr/17cr42.lkr +share/gputils/lkr/17cr43.lkr +share/gputils/lkr/18c242.lkr +share/gputils/lkr/18c252.lkr +share/gputils/lkr/18c442.lkr +share/gputils/lkr/18c452.lkr +share/gputils/lkr/18c601.lkr +share/gputils/lkr/18c601i.lkr +share/gputils/lkr/18c658.lkr +share/gputils/lkr/18c801.lkr +share/gputils/lkr/18c801i.lkr +share/gputils/lkr/18c858.lkr +share/gputils/lkr/18f1220.lkr +share/gputils/lkr/18f1220i.lkr +share/gputils/lkr/18f1320.lkr +share/gputils/lkr/18f1320i.lkr +share/gputils/lkr/18f2220.lkr +share/gputils/lkr/18f2220i.lkr +share/gputils/lkr/18f2320.lkr +share/gputils/lkr/18f2320i.lkr +share/gputils/lkr/18f2331.lkr +share/gputils/lkr/18f242.lkr +share/gputils/lkr/18f242i.lkr +share/gputils/lkr/18f2431.lkr +share/gputils/lkr/18f2439.lkr +share/gputils/lkr/18f2439i.lkr +share/gputils/lkr/18f248.lkr +share/gputils/lkr/18f248i.lkr +share/gputils/lkr/18f2515.lkr +share/gputils/lkr/18f252.lkr +share/gputils/lkr/18f2525.lkr +share/gputils/lkr/18f252i.lkr +share/gputils/lkr/18f2539.lkr +share/gputils/lkr/18f2539i.lkr +share/gputils/lkr/18f258.lkr +share/gputils/lkr/18f258i.lkr +share/gputils/lkr/18f2610.lkr +share/gputils/lkr/18f2620.lkr +share/gputils/lkr/18f2620_e.lkr +share/gputils/lkr/18f4220.lkr +share/gputils/lkr/18f4220i.lkr +share/gputils/lkr/18f4320.lkr +share/gputils/lkr/18f4320i.lkr +share/gputils/lkr/18f4331.lkr +share/gputils/lkr/18f442.lkr +share/gputils/lkr/18f442i.lkr +share/gputils/lkr/18f4431.lkr +share/gputils/lkr/18f4439.lkr +share/gputils/lkr/18f4439i.lkr +share/gputils/lkr/18f448.lkr +share/gputils/lkr/18f448i.lkr +share/gputils/lkr/18f4515.lkr +share/gputils/lkr/18f452.lkr +share/gputils/lkr/18f4525.lkr +share/gputils/lkr/18f452i.lkr +share/gputils/lkr/18f4539.lkr +share/gputils/lkr/18f4539i.lkr +share/gputils/lkr/18f458.lkr +share/gputils/lkr/18f458i.lkr +share/gputils/lkr/18f4610.lkr +share/gputils/lkr/18f4620.lkr +share/gputils/lkr/18f4620_e.lkr +share/gputils/lkr/18f6520.lkr +share/gputils/lkr/18f6520i.lkr +share/gputils/lkr/18f6525.lkr +share/gputils/lkr/18f6525i.lkr +share/gputils/lkr/18f6585.lkr +share/gputils/lkr/18f6585i.lkr +share/gputils/lkr/18f6620.lkr +share/gputils/lkr/18f6620i.lkr +share/gputils/lkr/18f6621.lkr +share/gputils/lkr/18f6621i.lkr +share/gputils/lkr/18f6680.lkr +share/gputils/lkr/18f6680i.lkr +share/gputils/lkr/18f6720.lkr +share/gputils/lkr/18f6720i.lkr +share/gputils/lkr/18f8520.lkr +share/gputils/lkr/18f8520i.lkr +share/gputils/lkr/18f8525.lkr +share/gputils/lkr/18f8525i.lkr +share/gputils/lkr/18f8585.lkr +share/gputils/lkr/18f8585i.lkr +share/gputils/lkr/18f8620.lkr +share/gputils/lkr/18f8620i.lkr +share/gputils/lkr/18f8621.lkr +share/gputils/lkr/18f8621i.lkr +share/gputils/lkr/18f8680.lkr +share/gputils/lkr/18f8680i.lkr +share/gputils/lkr/18f8720.lkr +share/gputils/lkr/18f8720i.lkr +share/gputils/lkr/hcs1365.lkr +share/gputils/lkr/hcs1370.lkr +share/gputils/lkr/rf509af.lkr +share/gputils/lkr/rf509ag.lkr +share/gputils/lkr/rf675f.lkr +share/gputils/lkr/rf675fi.lkr +share/gputils/lkr/rf675h.lkr +share/gputils/lkr/rf675hi.lkr +share/gputils/lkr/rf675k.lkr +share/gputils/lkr/rf675ki.lkr +@dirrm share/gputils/lkr +@dirrm share/gputils/header +@dirrm share/gputils +@dirrm share/doc/gputils