[rtems commit] tools: Delete unused binpatch
Sebastian Huber
sebh at rtems.org
Mon Jun 6 12:48:13 UTC 2016
Module: rtems
Branch: master
Commit: 2f3d8040cad8c0dbf45647a695dc86b46fc13350
Changeset: http://git.rtems.org/rtems/commit/?id=2f3d8040cad8c0dbf45647a695dc86b46fc13350
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Mon Jun 6 13:49:54 2016 +0200
tools: Delete unused binpatch
This was a no-install binary apparently unused.
Update #2730.
---
tools/build/Makefile.am | 3 -
tools/build/binpatch.c | 145 ------------------------------------------------
2 files changed, 148 deletions(-)
diff --git a/tools/build/Makefile.am b/tools/build/Makefile.am
index 8231ad1..7927a30 100644
--- a/tools/build/Makefile.am
+++ b/tools/build/Makefile.am
@@ -2,13 +2,10 @@ ACLOCAL_AMFLAGS = -I ../../aclocal
bin_PROGRAMS = cklength eolstrip packhex unhex rtems-bin2c
-noinst_PROGRAMS = binpatch
-
cklength_SOURCES = cklength.c
eolstrip_SOURCES = eolstrip.c compat.c
packhex_SOURCES = packhex.c
unhex_SOURCES = unhex.c compat.c
-binpatch_SOURCES = binpatch.c
rtems_bin2c_SOURCES = rtems-bin2c.c compat.c
bin_SCRIPTS = install-if-change
diff --git a/tools/build/binpatch.c b/tools/build/binpatch.c
deleted file mode 100644
index 9c0a899..0000000
--- a/tools/build/binpatch.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * This function will patch binary file
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <unistd.h>
-
-static char buf[512];
-
-static void
-usage(void)
-{
- printf("usage: binpatch [-h] <ofile> <ifile> <reloc> <off> <byte0> "
- "[<byte1> [<byte2> [<byte3>]]]\n");
- printf("this function patches binary file at specified offset with\n");
- printf("up to 4 bytes provided on command line \n");
- printf("-h - prints this message\n\n");
- printf("<ofile> - output file\n");
- printf("<ifile> - input ifile\n");
- printf("<reloc> - relocation address of image\n");
- printf("<off> - offset of patch, offset in file is at off - reloc\n");
- printf("<byte0> - byte 0 of patch\n");
- printf("<byte1> - byte 1 of patch\n");
- printf("<byte2> - byte 1 of patch\n");
- printf("<byte3> - byte 1 of patch\n");
-}
-
-int
-main(int argc, char **argv)
-{
- int c;
- FILE *ofp, *ifp;
- char *patch, *end;
- int patchLen, tmp, i, off, cnt, patched, len, reloc;
-
- /* parse command line options */
- while ((c = getopt(argc, argv, "h")) >= 0) {
- switch (c) {
- case 'h':
- usage();
- return 0;
- default:
- usage();
- return 1;
- }
- }
-
- if(argc < 6) {
- usage();
- return 1;
- }
-
- /* Let us get offset in file */
- reloc = strtol(argv[3], &end, 0);
- if (end == argv[3] || reloc < 0) {
- fprintf(stderr, "bad reloc value %s\n", argv[3]);
- return 1;
- }
-
- off = strtol(argv[4], &end, 0);
- if (end == argv[4] || off < 0 || off < reloc) {
- fprintf(stderr, "bad offset value %s\n", argv[4]);
- return 1;
- }
-
- off -= reloc;
-
- /* Let us get patch */
- patchLen = argc - 5;
- patch = calloc( patchLen, sizeof(char) );
- assert( patch );
-
- for (i=0; i<patchLen; i++) {
- tmp = strtol(argv[5+i], &end, 0);
-
- if (end == argv[4+i]) {
- fprintf(stderr, "bad byte value %s\n", argv[5+i]);
- free(patch);
- return 1;
- }
- if (tmp < 0 || tmp > 0xff) {
- fprintf(stderr, "not a byte value %s\n", argv[5+i]);
- free(patch);
- return 1;
- }
- patch[i] = (tmp & 0xff);
- }
-
- ifp = fopen(argv[2], "r");
- if (ifp == NULL) {
- fprintf(stderr, "unable to open file %s\n", argv[2]);
- free(patch);
- return 1;
- }
-
- ofp = fopen(argv[1], "w");
- if (ofp == NULL) {
- fprintf(stderr, "unable to open file %s\n", argv[1]);
- fclose(ifp);
- free(patch);
- return 1;
- }
-
- cnt = 0;
- patched = 0;
- for(;;) {
- len = fread(buf, 1, sizeof(buf), ifp);
-
- if(len == 0) {
- break;
- }
-
- if (cnt <= off && (cnt + len) > off) {
- /* Perform patch */
- for(i=0; i<patchLen && (off+i)<(cnt+len); i++)
- {
- buf[off-cnt+i] = patch[i];
- }
- patched = 1;
- } else if(cnt > off && cnt < (off + patchLen)) {
- /* Perform patch */
- for(i=cnt-off; i<patchLen; i++) {
- buf[off-cnt+i] = patch[i];
- }
- patched = 1;
- }
-
- fwrite(buf, 1, len, ofp);
-
- cnt += len;
- }
-
- fclose(ifp);
- fclose(ofp);
- free(patch);
-
- if (!patched) {
- fprintf(stderr, "warning: offset is beyond input file length\n");
- fprintf(stderr, " no patch is performed\n");
- }
-
- return 0;
-}
More information about the vc
mailing list