Summary: Bruce's C compiler
Summary(pl.UTF-8): Kompilator C Bruce'a
Name: bcc
-Version: 0.16.19
-Release: 2
+Version: 0.16.21
+Release: 1
License: GPL
Group: Development/Languages
-Source0: http://www.debath.co.uk/dev86/Dev86src-%{version}.tar.gz
-# Source0-md5: 442e98e1afa23fe00d40c5a996385942
+Source0: http://v3.sk/~lkundrak/dev86/Dev86src-%{version}.tar.gz
+# Source0-md5: 6b96fe9d2d1c546842a4d1c7ef387e4c
Patch0: Dev86src-noroot.patch
Patch1: Dev86src-opt.patch
Patch2: dev86-0.16.17-fortify.patch
Patch4: dev86-64bit.patch
Patch5: dev86-noelks.patch
Patch6: dev86-nostrip.patch
-Patch7: dev86-print-overflow.patch
-Patch8: dev86-make.patch
-Patch9: dev86-copt.patch
-Patch10: dev86-format.patch
-URL: http://www.debath.co.uk/
+Patch7: dev86-make.patch
+URL: http://v3.sk/~lkundrak/dev86/
Requires: bin86 >= %{version}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# don't try to strip Linux-8086 objects
%define _noautostrip .*%{_libdir}/bcc/.*\\.[ao]
-
%description
Bcc is a simple C compiler that produces 8086 assembler, in addition
compiler compile time options allow 80386 or 6809 versions. The
%endif
%patch6 -p1
%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-mv -f bootblocks/README README.bootblocks
-mv -f copt/README README.copt
-mv -f dis88/README README.dis88
-mv -f elksemu/README README.elksemu
-mv -f unproto/README README.unproto
+%{__mv} bootblocks/README README.bootblocks
+%{__mv} copt/README README.copt
+%{__mv} dis88/README README.dis88
+%{__mv} elksemu/README README.elksemu
+%{__mv} unproto/README README.unproto
%build
CC="%{__cc}" \
+++ /dev/null
---- linux86-0.16.17/copt/copt.c.orig 2003-10-08 04:46:35.000000000 +0900
-+++ linux86-0.16.17/copt/copt.c 2010-10-12 12:30:25.000000000 +0900
-@@ -174,7 +174,7 @@ static char *readline(FILE *fp)
- /* Delete leading white spaces */
- for (cp = buf; *cp && isspace(*cp); cp++) ;
- if (cp != buf && *cp)
-- strcpy(buf, cp);
-+ memmove(buf, cp, strlen(cp) + 1);
-
- return(buf);
- }
+++ /dev/null
---- dev86-0.16.19/copt/copt.c.orig 2012-10-26 23:51:09.735174869 +0200
-+++ dev86-0.16.19/copt/copt.c 2012-10-26 23:55:09.276050428 +0200
-@@ -803,7 +803,7 @@
- exit(1);
- }
- if (headstr != NULL) {
-- fprintf(fp, headstr);
-+ fprintf(fp, "%s", headstr);
- fprintf(fp, "\n");
- }
- for (lp = infile; lp != NULL; lp = lp->next)
---- dev86-0.16.19/ar/ar.c.orig 2012-08-13 21:15:47.000000000 +0200
-+++ dev86-0.16.19/ar/ar.c 2012-10-26 23:59:23.414647129 +0200
-@@ -2036,7 +2036,7 @@
- struct mapelt *mapelt;
- {
- fprintf (stderr, "%s: ", program_name);
-- fprintf (stderr, string);
-+ fprintf (stderr, "%s", string);
- if (mapelt->info.offset != 0)
- fprintf (stderr, "%s(%s)", archive, mapelt->info.name);
- else
+++ /dev/null
-From: Lubomir Rintel <lkundrak@v3.sk>
-
-There are off-by-one errors when filling the ar headers, the trailing nul
-would overflow the target buffer.
-
-diff -urp dev86-0.16.17/ld/mkar.c dev86-0.16.17.fixed/ld/mkar.c
---- dev86-0.16.17/ld/mkar.c 2004-06-20 09:23:27.000000000 +0200
-+++ dev86-0.16.17.fixed/ld/mkar.c 2010-03-29 23:34:30.351426404 +0200
-@@ -51,12 +51,12 @@ char buf[128];
- memset(&arbuf, ' ', sizeof(arbuf));
- strcpy(buf, ptr); strcat(buf, "/ ");
- strncpy(arbuf.ar_name, buf, sizeof(arbuf.ar_name));
--
-- sprintf(arbuf.ar_date, "%-12ld", (long)st.st_mtime);
-- sprintf(arbuf.ar_uid, "%-6d", (int)(st.st_uid%1000000L));
-- sprintf(arbuf.ar_gid, "%-6d", (int)(st.st_gid%1000000L));
-- sprintf(arbuf.ar_mode, "%-8lo", (long)st.st_mode);
-- sprintf(arbuf.ar_size, "%-10ld", (long)st.st_size);
-+
-+ snprintf(arbuf.ar_date, 12, "%-12ld", (long)st.st_mtime);
-+ snprintf(arbuf.ar_uid, 6, "%-6d", (int)(st.st_uid%1000000L));
-+ snprintf(arbuf.ar_gid, 6, "%-6d", (int)(st.st_gid%1000000L));
-+ snprintf(arbuf.ar_mode, 8, "%-8lo", (long)st.st_mode);
-+ snprintf(arbuf.ar_size, 10, "%-10ld", (long)st.st_size);
- memcpy(arbuf.ar_fmag, ARFMAG, sizeof(arbuf.ar_fmag));
-
- if( fwrite(&arbuf, 1, sizeof(arbuf), fd) != sizeof(arbuf) )