dev86: update to 0.16.18 and make it build on x86_64 FINALLY!
This commit is contained in:
parent
9ed593871e
commit
01d0b9ae52
7 changed files with 120 additions and 37 deletions
17
srcpkgs/dev86/patches/dev86-long.patch
Normal file
17
srcpkgs/dev86/patches/dev86-long.patch
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
diff -up dev86-0.16.17/ld/x86_aout.h.long dev86-0.16.17/ld/x86_aout.h
|
||||||
|
--- dev86-0.16.17/ld/x86_aout.h.long 2003-01-28 23:17:14.000000000 +0100
|
||||||
|
+++ dev86-0.16.17/ld/x86_aout.h 2009-02-19 11:37:10.000000000 +0100
|
||||||
|
@@ -11,10 +11,11 @@
|
||||||
|
/* If the host isn't an x86 all bets are off, use chars. */
|
||||||
|
#if defined(i386) || defined(__BCC__) || defined(MSDOS)
|
||||||
|
typedef long Long;
|
||||||
|
-#define __OUT_OK 1
|
||||||
|
#else
|
||||||
|
-typedef char Long[4];
|
||||||
|
+#include <stdint.h>
|
||||||
|
+typedef int32_t Long;
|
||||||
|
#endif
|
||||||
|
+#define __OUT_OK 1
|
||||||
|
|
||||||
|
struct exec { /* a.out header */
|
||||||
|
unsigned char a_magic[2]; /* magic number */
|
26
srcpkgs/dev86/patches/dev86-noelks.patch
Normal file
26
srcpkgs/dev86/patches/dev86-noelks.patch
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
--- orig/makefile.in 2010-12-22 12:56:31.610881756 +0100
|
||||||
|
+++ new/makefile.in 2010-12-22 12:57:12.344232346 +0100
|
||||||
|
@@ -89,10 +89,10 @@ EXE=
|
||||||
|
|
||||||
|
#ifdef GNUMAKE
|
||||||
|
all: check_config bcc86 cpp unproto copt as86 ar86 ld86 objdump86 \
|
||||||
|
- library lib-bsd alt-libs elksemu
|
||||||
|
+ library lib-bsd alt-libs
|
||||||
|
|
||||||
|
install: check_config install-bcc install-man \
|
||||||
|
- install-lib install-emu
|
||||||
|
+ install-lib
|
||||||
|
|
||||||
|
install-all: install install-other
|
||||||
|
|
||||||
|
@@ -123,10 +123,6 @@ INCLDIR= %INCLDIR%
|
||||||
|
ASLDDIR= %ASLDDIR%
|
||||||
|
MANDIR= %MANDIR%
|
||||||
|
|
||||||
|
-#ifdef GNUMAKE
|
||||||
|
-export ELKSSRC
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
DISTBIN= $(DIST)$(BINDIR)
|
||||||
|
DISTLIB= $(DIST)$(LIBDIR)
|
||||||
|
DISTASLD=$(DIST)$(ASLDDIR)
|
11
srcpkgs/dev86/patches/dev86-nostrip.patch
Normal file
11
srcpkgs/dev86/patches/dev86-nostrip.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- dev86-0.16.17/makefile.in.nostrip 2007-01-30 14:28:38.000000000 +0100
|
||||||
|
+++ dev86-0.16.17/makefile.in 2007-01-30 14:40:56.000000000 +0100
|
||||||
|
@@ -78,7 +78,7 @@
|
||||||
|
|
||||||
|
# Install files with the userid of the currently running process.
|
||||||
|
INDAT=-m 644
|
||||||
|
-INEXE=-m 755 -s
|
||||||
|
+INEXE=-m 755
|
||||||
|
INSCR=-m 755
|
||||||
|
|
||||||
|
#ifdef __CYGWIN__
|
24
srcpkgs/dev86/patches/dev86-overflow.patch
Normal file
24
srcpkgs/dev86/patches/dev86-overflow.patch
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
diff -up dev86-0.16.17/bcc/bcc.c.overflow dev86-0.16.17/bcc/bcc.c
|
||||||
|
--- dev86-0.16.17/bcc/bcc.c.overflow 2005-01-03 23:41:55.000000000 +0100
|
||||||
|
+++ dev86-0.16.17/bcc/bcc.c 2009-02-19 10:49:32.000000000 +0100
|
||||||
|
@@ -16,6 +16,7 @@
|
||||||
|
* -M0 A framework for the -B option.
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
+#include <limits.h>
|
||||||
|
#ifdef __STDC__
|
||||||
|
#include <stdlib.h>
|
||||||
|
#ifndef MSDOS
|
||||||
|
@@ -1308,11 +1309,7 @@ void reset_prefix_path()
|
||||||
|
|
||||||
|
for(d=s=ptr; d && *s; s=d)
|
||||||
|
{
|
||||||
|
-#ifdef MAXPATHLEN
|
||||||
|
- char buf[MAXPATHLEN];
|
||||||
|
-#else
|
||||||
|
- char buf[1024];
|
||||||
|
-#endif
|
||||||
|
+ char buf[PATH_MAX];
|
||||||
|
|
||||||
|
free(temp);
|
||||||
|
d=strchr(s, ':');
|
|
@ -1,20 +0,0 @@
|
||||||
--- elksemu/elks.c.orig 2005-11-04 01:35:37.000000000 +0100
|
|
||||||
+++ elksemu/elks.c 2005-11-04 01:45:28.000000000 +0100
|
|
||||||
@@ -129,8 +129,17 @@
|
|
||||||
static inline int vm86_mine(struct vm86_struct* v86)
|
|
||||||
{
|
|
||||||
int __res;
|
|
||||||
+#ifndef __PIC__
|
|
||||||
__asm__ __volatile__("int $0x80\n"
|
|
||||||
:"=a" (__res):"a" ((int)OLD_SYS_vm86), "b" ((int)v86));
|
|
||||||
+#else
|
|
||||||
+ __asm__ __volatile__(
|
|
||||||
+ "movl %%ebx,%%ecx\n\t"
|
|
||||||
+ "movl %2,%%ebx\n\t"
|
|
||||||
+ "int $0x80\n\t"
|
|
||||||
+ "movl %%ecx,%%ebx\n\t"
|
|
||||||
+ :"=a" (__res):"a" ((int)OLD_SYS_vm86), "r" ((int)v86) : "ecx");
|
|
||||||
+#endif
|
|
||||||
return __res;
|
|
||||||
}
|
|
||||||
#endif
|
|
27
srcpkgs/dev86/patches/dev86-print-overflow.patch
Normal file
27
srcpkgs/dev86/patches/dev86-print-overflow.patch
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
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) )
|
|
@ -1,36 +1,34 @@
|
||||||
# Template file for 'dev86'
|
# Template file for 'dev86'
|
||||||
pkgname=dev86
|
pkgname=dev86
|
||||||
version=0.16.17
|
version=0.16.18
|
||||||
|
patch_args="-Np1"
|
||||||
distfiles="http://www.debath.co.uk/dev86/Dev86src-$version.tar.gz"
|
distfiles="http://www.debath.co.uk/dev86/Dev86src-$version.tar.gz"
|
||||||
build_style=gnu_makefile
|
build_style=custom-install
|
||||||
make_build_args="PREFIX=/usr DIST=$XBPS_DESTDIR/$pkgname-$version"
|
|
||||||
make_install_target="DIST=$XBPS_DESTDIR/$pkgname-$version install-all"
|
|
||||||
short_desc="8086 cross development compiler, assembler and linker"
|
short_desc="8086 cross development compiler, assembler and linker"
|
||||||
maintainer="Juan RP <xtraeme@gmail.com>"
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||||
checksum=52ed4980c0e4b68d2624aadb0ceb0339cb3fd8dd7c2175419d4f77a451846cbe
|
checksum=049852a83898d3ee0ba97b88e526897ec6eaf0a051f4af1e9e073b1151178ff1
|
||||||
long_desc="
|
long_desc="
|
||||||
This package provides a cross development C compiler, assembler and linker
|
This package provides a cross development C compiler, assembler and linker
|
||||||
environment for the production of 8086 executables (Optionally MSDOS COM)."
|
environment for the production of 8086 executables (Optionally MSDOS COM)."
|
||||||
|
|
||||||
nostrip=yes
|
nostrip=yes
|
||||||
disable_parallel_build=yes
|
|
||||||
|
|
||||||
Add_dependency run glibc
|
Add_dependency run glibc
|
||||||
Add_dependency build bin86
|
Add_dependency full bin86
|
||||||
|
|
||||||
pre_build()
|
do_build()
|
||||||
{
|
{
|
||||||
if [ "${xbps_machine}" = "x86_64" ]; then
|
for f in libc/bcc libc/misc libc/msdos libc/string libc/syscall \
|
||||||
sed -i -e 's,alt-libs elksemu,alt-libs,' \
|
libc/bios; do
|
||||||
-e 's,install-lib install-emu,install-lib,' \
|
sed -i -e "s|\$(CCFLAGS) ||g" ${wrksrc}/${f}/Makefile
|
||||||
${wrksrc}/makefile.in
|
done
|
||||||
fi
|
make DIST=${DESTDIR}
|
||||||
}
|
}
|
||||||
|
|
||||||
post_install()
|
do_install()
|
||||||
{
|
{
|
||||||
install -d ${DESTDIR}/usr/share
|
make DIST=${DESTDIR} MANDIR=/usr/share/man \
|
||||||
mv ${DESTDIR}/usr/man ${DESTDIR}/usr/share
|
install install-man
|
||||||
|
|
||||||
# Remove stuff supplied by bin86
|
# Remove stuff supplied by bin86
|
||||||
rm -f ${DESTDIR}/usr/bin/{as,ld,nm,objdump,size}86
|
rm -f ${DESTDIR}/usr/bin/{as,ld,nm,objdump,size}86
|
||||||
rm -f ${DESTDIR}/usr/share/man/man1/{as,ld}86.1
|
rm -f ${DESTDIR}/usr/share/man/man1/{as,ld}86.1
|
||||||
|
|
Loading…
Reference in a new issue