Import gputils 0.11.7.

Submitted by Andrew Dalgleish <openbsd@ajd.net.au>.

GPUTILS is a collection of tools for the Microchip (TM) PIC
microcontrollers. It includes gpasm, gplink, and gplib.
This commit is contained in:
naddy 2003-11-03 01:02:34 +00:00
parent 1054a33e47
commit cfb6182a3f
39 changed files with 2163 additions and 0 deletions

56
devel/gputils/Makefile Normal file
View File

@ -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 <openbsd@ajd.net.au>
# 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 <bsd.port.mk>

6
devel/gputils/distinfo Normal file
View File

@ -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

View File

@ -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

View File

@ -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) {

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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 {

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;
}

View File

@ -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);

View File

@ -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 {
<title>[^<"\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));

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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) {

View File

@ -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();

View File

@ -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);

View File

@ -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);

View File

@ -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");

View File

@ -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 */

View File

@ -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;

View File

@ -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++;

View File

@ -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

View File

@ -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';

View File

@ -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;

View File

@ -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
&current_address,
&current_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,

View File

@ -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:

View File

@ -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

View File

@ -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 {

View File

@ -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);

View File

@ -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);
}

View File

@ -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,

View File

@ -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

View File

@ -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) */

View File

@ -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);

2
devel/gputils/pkg/DESCR Normal file
View File

@ -0,0 +1,2 @@
GPUTILS is a collection of tools for the Microchip (TM) PIC
microcontrollers. It includes gpasm, gplink, and gplib.

493
devel/gputils/pkg/PLIST Normal file
View File

@ -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