lwp-elf-bsd-and-assembly-cleanup-20030924
authorLove Hörnquist-Åstrand <lha@stacken.kth.se>
Wed, 24 Sep 2003 20:02:05 +0000 (20:02 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 24 Sep 2003 20:02:05 +0000 (20:02 +0000)
FIXES 2153

src/lwp/Makefile.in
src/lwp/lwp.c
src/lwp/lwp_elf.h [new file with mode: 0644]
src/lwp/process.i386.s

index 1b107b9..cbefad0 100644 (file)
@@ -47,15 +47,12 @@ process.o   : process.s process.c
                $(RM) process.ss ;; \
        ppc_darwin* ) \
                $(CC) ${LWP_DBG} ${LWP_OPTMZ} -c ${XCFLAGS} -I${TOP_INCDIR} ${srcdir}/process.s;; \
-       i386_obsd31 | i386_obsd32 | i386_obsd33 ) \
+       i386_*bsd*) \
+               echo foo ; \
                cp ${srcdir}/process.i386.s process.S ; \
-               ${CC} -E -I${TOP_INCDIR} process.S >process.ss ; \
+               ${CC} -E -I${srcdir} -I${TOP_INCDIR} process.S >process.ss ; \
                ${AS} process.ss -o process.o ;  \
                $(RM) -f process.S ;;\
-       i386_*bsd* ) \
-               /usr/bin/cpp -P -I${TOP_INCDIR} ${srcdir}/process.i386.s > process.ss; \
-               ${AS} -o process.o process.ss; \
-               $(RM) process.ss ;; \
        ncrx86_* | sunx86_*) \
                /usr/ccs/lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.i386.s process.ss; \
                ${AS} -o process.o process.ss; \
index 69828d3..7426092 100644 (file)
@@ -17,8 +17,7 @@
 #include <afsconfig.h>
 #include <afs/param.h>
 
-RCSID
-    ("$Header$");
+RCSID("$Header$");
 
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/src/lwp/lwp_elf.h b/src/lwp/lwp_elf.h
new file mode 100644 (file)
index 0000000..fd8f8c5
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2000-2002 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * 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.
+ * 
+ * 3. Neither the name of the Institute nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
+ */
+
+/*
+ * For common usage of elf platforms
+ *
+ * $Id$
+ */
+
+#ifndef _C_LABEL
+#if !defined(SYSV) && !defined(__ELF__) && !defined(AFS_SUN5_ENV)
+#ifdef __STDC__
+#define _C_LABEL(name)     _##name
+#else
+#define _C_LABEL(name)  _/**/name
+#endif
+#else /* SYSV || __ELF__ || AFS_SUN5_ENV */
+#define _C_LABEL(name)  name
+#endif
+#endif /* _C_LABEL */
+
+#ifndef ENTRY
+#if !defined(SYSV) && !defined(__ELF__) && !defined(AFS_SUN5_ENV)
+#ifdef __STDC__
+#define ENTRY(name)    _##name##:
+#else
+#define ENTRY(name)     _/**/name/**/:
+#endif
+#else /* SYSV || __ELF__ || AFS_SUN5_ENV */
+#define ENTRY(name)     name:
+#endif
+#endif /* _C_LABEL */
index 105a116..e5635f3 100644 (file)
  * "ojala que es correcto!"
  */
 
-#define IGNORE_STDS_H  1
-/*#ifndef AFS_DJGPP_ENV*/
-#include <afs/param.h>
-/*#endif /* AFS_DJGPP_ENV */
+#include <lwp_elf.h>
 
        .file "process.s"
 
        .set    area1,12
        .set    newsp,16
 
+.globl _C_LABEL(PRE_Block)
+.globl _C_LABEL(savecontext)
 
-#if defined(AFS_DJGPP_ENV) || (defined(AFS_OBSD_ENV) && !defined (AFS_OBSD34_ENV))
-#define PRE_Block      _PRE_Block
-#define savecontext    _savecontext
-#define abort          _abort
-#define returnto       _returnto
-#endif /* AFS_DJGPP_ENV */
-
-.globl PRE_Block
-.globl savecontext
-
-savecontext:
+ENTRY(savecontext)
        pushl   %ebp                    /* New Frame! */
        movl    %esp,%ebp
        pusha                           /* Push all registers */
-       movl    $1,PRE_Block            /* Pre-emption code */
+       movl    $1,_C_LABEL(PRE_Block)  /* Pre-emption code */
        movl    area1(%ebp),%eax        /* eax = base of savearea */
        movl    %esp,(%eax)             /* area->topstack = esp */
        movl    newsp(%ebp),%eax        /* get new sp into eax */
@@ -82,15 +71,15 @@ L1:
 /* stack offset */
        .set    area2,8
 
-.globl returnto
+.globl _C_LABEL(returnto)
 
-returnto:
+ENTRY(returnto)
        pushl   %ebp
        movl    %esp, %ebp              /* New frame, to get correct pointer */
        movl    area2(%ebp),%eax        /* eax = area2 */
        movl    (%eax),%esp             /* restore esp */
        popa 
-       movl    $0,PRE_Block            /* clear it up... */
+       movl    $0,_C_LABEL(PRE_Block)          /* clear it up... */
        popl    %ebp
        ret