diff options
| author | Juergen Lock <nox@FreeBSD.org> | 2014-04-06 15:56:23 +0000 |
|---|---|---|
| committer | Juergen Lock <nox@FreeBSD.org> | 2014-04-06 15:56:23 +0000 |
| commit | 48a18b5a848ac7a9efaf981eb6b34a4fc46e1b85 (patch) | |
| tree | 9490176b0e14a15fb93b94707816db976885ccc4 /emulators | |
| parent | - Port is stage safe (diff) | |
- Add two more bsd-user patches, with these sbruno can now build 32bit
mips packages in poudriere (after adding 32bit qemu-mips support to it),
tho he used his git repo that has the same patches: (and sson's binmisc
code)
https://github.com/seanbruno/qemu/tree/bsd-user/bsd-user
https://wiki.freebsd.org/QemuUserModeHowTo
- Fixup comment s/daddu/addu/g . [1]
- Wrap mmap() allocation search to low memory to avoid another assert.
- Bump PORTREVISION.
Submitted by: sbruno [1]
Obtained from: https://github.com/seanbruno/qemu/commit/6201cb17ad905dffee1b2eb76f58fb032e99b2a1#diff-3ed994b5af908e5063b9d5724056d1b4 [1]
Notes
Notes:
svn path=/head/; revision=350371
Diffstat (limited to 'emulators')
| -rw-r--r-- | emulators/qemu-devel/Makefile | 4 | ||||
| -rw-r--r-- | emulators/qemu-devel/files/extra-patch-6201cb17ad905dffee1b2eb76f58fb032e99b2a1 | 11 | ||||
| -rw-r--r-- | emulators/qemu-devel/files/extra-patch-bsd-user-mmap.c | 18 |
3 files changed, 32 insertions, 1 deletions
diff --git a/emulators/qemu-devel/Makefile b/emulators/qemu-devel/Makefile index 2d0cabd26445..752199f8f6fb 100644 --- a/emulators/qemu-devel/Makefile +++ b/emulators/qemu-devel/Makefile @@ -3,7 +3,7 @@ PORTNAME= qemu PORTVERSION= 1.7.1 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= emulators MASTER_SITES= http://wiki.qemu.org/download/:release \ LOCAL/nox:snapshot @@ -71,9 +71,11 @@ EXTRA_PATCHES+= ${FILESDIR}/extra-patch-05ee8495804599b52a88eb36b13ea9c06b3207cd EXTRA_PATCHES+= ${FILESDIR}/extra-patch-bsd-user-mips-target_arch_vmparam.h EXTRA_PATCHES+= ${FILESDIR}/extra-patch-inherit-interp_prefix EXTRA_PATCHES+= ${FILESDIR}/extra-patch-d62553b108aa27c0c020dbb771d29f8673807a3b +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-6201cb17ad905dffee1b2eb76f58fb032e99b2a1 EXTRA_PATCHES+= ${FILESDIR}/extra-patch-bsd-user-syscall.c EXTRA_PATCHES+= ${FILESDIR}/extra-patch-sysctl-hw-availpages EXTRA_PATCHES+= ${FILESDIR}/extra-patch-sysctl-0oldlen +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-bsd-user-mmap.c .endif CONFIGURE_ARGS+= --extra-ldflags=-L${LOCALBASE}/lib diff --git a/emulators/qemu-devel/files/extra-patch-6201cb17ad905dffee1b2eb76f58fb032e99b2a1 b/emulators/qemu-devel/files/extra-patch-6201cb17ad905dffee1b2eb76f58fb032e99b2a1 new file mode 100644 index 000000000000..93fe4f62bbe5 --- /dev/null +++ b/emulators/qemu-devel/files/extra-patch-6201cb17ad905dffee1b2eb76f58fb032e99b2a1 @@ -0,0 +1,11 @@ +--- a/bsd-user/mips/target_arch_sigtramp.h ++++ b/bsd-user/mips/target_arch_sigtramp.h +@@ -8,7 +8,7 @@ static inline abi_long setup_sigtramp(abi_ulong offset, unsigned sigf_uc, + { + int i; + uint32_t sigtramp_code[TARGET_SZSIGCODE/TARGET_INSN_SIZE] = { +- /* 1 */ 0x27A40000 + sigf_uc, /* daddu $a0, $sp, (sigf_uc) */ ++ /* 1 */ 0x27A40000 + sigf_uc, /* addu $a0, $sp, (sigf_uc) */ + /* 2 */ 0x24020000 + sys_sigreturn, /* li $v0, (sys_sigreturn) */ + /* 3 */ 0x0000000C, /* syscall */ + /* 4 */ 0x0000000D /* break */ diff --git a/emulators/qemu-devel/files/extra-patch-bsd-user-mmap.c b/emulators/qemu-devel/files/extra-patch-bsd-user-mmap.c new file mode 100644 index 000000000000..9370e5bd7fd3 --- /dev/null +++ b/emulators/qemu-devel/files/extra-patch-bsd-user-mmap.c @@ -0,0 +1,18 @@ +--- a/bsd-user/mmap.c ++++ b/bsd-user/mmap.c +@@ -238,8 +238,13 @@ abi_ulong mmap_find_vma(abi_ulong start, + for (addr1 = addr; addr1 < (addr + size); addr1 += TARGET_PAGE_SIZE) { + prot |= page_get_flags(addr1); + } +- if (prot == 0) +- break; ++ if (prot == 0) { ++ if (reserved_va && addr + size >= reserved_va) { ++ addr = 0; ++ } else { ++ break; ++ } ++ } + addr += qemu_host_page_size; + /* we found nothing */ + if (addr == addr_start) |
