Small plist tweak by ajacoutot@; don't try to use rfork on i386

(noticed by nigel@)
This commit is contained in:
pascal 2012-06-27 10:43:07 +00:00
parent c228ee382b
commit 6ff0df77af
3 changed files with 108 additions and 3 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.1.1.1 2012/06/26 15:07:14 pascal Exp $
# $OpenBSD: Makefile,v 1.2 2012/06/27 10:43:07 pascal Exp $
ONLY_FOR_ARCHS = amd64 i386 powerpc
BROKEN-powerpc = threading issues
@ -6,6 +6,7 @@ BROKEN-powerpc = threading issues
COMMENT = Plan 9 from user space
DISTNAME = plan9port-20120508
REVISION = 0
CATEGORIES = plan9

View File

@ -0,0 +1,104 @@
$OpenBSD: patch-src_libthread_OpenBSD-386-asm_S,v 1.1 2012/06/27 10:43:07 pascal Exp $
--- src/libthread/OpenBSD-386-asm.S.orig Wed Jun 27 12:35:57 2012
+++ src/libthread/OpenBSD-386-asm.S Wed Jun 27 12:36:12 2012
@@ -1,100 +1 @@
#include "FreeBSD-386-asm.s"
-
-/*
- * Copyright (c) 2000 Peter Wemm <peter@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/syscall.h>
-#include <machine/asm.h>
-
-ENTRY(rfork_thread)
- pushl %ebp
- movl %esp, %ebp
- pushl %esi
-
- /*
- * Push thread info onto the new thread's stack
- */
- movl 12(%ebp), %esi # get stack addr
-
- subl $4, %esi
- movl 20(%ebp), %eax # get start argument
- movl %eax, (%esi)
-
- subl $4, %esi
- movl 16(%ebp), %eax # get start thread address
- movl %eax, (%esi)
-
- /*
- * Prepare and execute the thread creation syscall
- */
- pushl 8(%ebp)
- pushl $0
- movl $SYS_rfork, %eax
- int $0x80
- jb 2f
-
- /*
- * Check to see if we are in the parent or child
- */
- cmpl $0, %edx
- jnz 1f
- addl $8, %esp
- popl %esi
- movl %ebp, %esp
- popl %ebp
- ret
- .p2align 2
-
- /*
- * If we are in the child (new thread), then
- * set-up the call to the internal subroutine. If it
- * returns, then call __exit.
- */
-1:
- movl %esi,%esp
- popl %eax
- call *%eax
- addl $4, %esp
-
- /*
- * Exit system call
- */
- pushl %eax
- pushl $0
- movl $SYS_exit, %eax
- int $0x80
-
- /*
- * Branch here if the thread creation fails:
- */
-2:
- addl $8, %esp
- popl %esi
- movl %ebp, %esp
- popl %ebp
- PIC_PROLOGUE
- jmp PIC_PLT(_C_LABEL(__cerror))
-

View File

@ -1,4 +1,5 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2012/06/26 15:07:17 pascal Exp $
@comment $OpenBSD: PLIST,v 1.2 2012/06/27 10:43:07 pascal Exp $
@unexec-delete rm -f ${TRUEPREFIX}/plan9/man/whatis.db
bin/9
plan9/
plan9/CONTRIBUTORS
@ -7773,4 +7774,3 @@ plan9/troff/term/tab.think
plan9/troff/term/tab.thinkbold
plan9/troff/term/tab.thinksmall
plan9/troff/term/tab.utf
@unexec rm -f ${TRUEPREFIX}/plan9/man/whatis.db