[OpenAFS-devel] patch for i386_linux3 (2.2.x + glibc 2.0.x) support

Nathan Neulinger nneul@umr.edu
Thu, 14 Dec 2000 09:53:35 -0600


--h31gzZEtNLTqOjlF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

This was a straightforward copy the 22 stuff patch, with one minor exception.

I added a 'typedef unsigned int uint32_t;' to one of the new param header 
files for i386_linux3 to fix a problem with building kdump.c. 

I have not tested running the kernel module/cache manager for this,
however, it compiled fine, and the user space stuff works. (I might be
able to test it next week some time when I can reboot one of these
machines, can't do that at the moment though.)

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul@umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216

--h31gzZEtNLTqOjlF
Content-Type: text/plain; charset=unknown-8bit
Content-Disposition: attachment; filename="i386_linux3.diff"
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by smtp.umr.edu id JAA32316

Index: BUILDNOTES
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/openafs/src/BUILDNOTES,v
retrieving revision 1.1
diff -u -r1.1 BUILDNOTES
--- BUILDNOTES	2000/12/02 18:17:50	1.1
+++ BUILDNOTES	2000/12/14 15:47:01
@@ -1,5 +1,10 @@
 In this file you'll find notes to help you build OpenAFS on various plat=
forms.
=20
+Redhat 5.2 (i386_linux3):
+	Transarc AFS used i386_linux22 for this, if you're going to build
+	OpenAFS using the @sys links, you need to change the sysname to
+	i386_linux3 first using the 'fs sysname' command.
+
 Redhat 7.0 (i386_linux22):=20
 	src/venus/kdump.c may fail to compile with the gcc included with=20
 	RedHat 7.0; You'll need to use kgcc to compile it.  You should=20
Index: README
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/openafs/src/README,v
retrieving revision 1.4
diff -u -r1.4 README
--- README	2000/12/02 18:06:26	1.4
+++ README	2000/12/14 15:47:01
@@ -20,6 +20,8 @@
=20
       alpha_dux40/
       i386_linux22/
+      i386_linux3/
+      i386_linux24/
       rs_aix42/
       sun4x_56/
       sun4x_57/
@@ -33,6 +35,10 @@
=20
       hp_ux110/
       sgi_65/
+
+	  NOTE: i386_linux22 is 2.2.x kernel with glibc 2.0.x, transarc used
+		i386_linux22 for this, so if building on AFS, you'll need to change
+		your sysname first.
=20
    2. Within each of those directories, create a dest/ and obj/ director=
y.
=20
Index: WINNT/doc/install/Documentation/en_US/html/SysAdminGd/auagd016.htm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/openafs/src/WINNT/doc/install/Documentation/en_US/html/Sys=
AdminGd/auagd016.htm,v
retrieving revision 1.1
diff -u -r1.1 auagd016.htm
--- WINNT/doc/install/Documentation/en_US/html/SysAdminGd/auagd016.htm	20=
00/11/04 02:18:58	1.1
+++ WINNT/doc/install/Documentation/en_US/html/SysAdminGd/auagd016.htm	20=
00/12/14 15:47:04
@@ -753,6 +753,8 @@
               .proto \
               .sun4x_56 \
               .i386_linux22 \
+              .i386_linux3 \
+              .i386_linux24 \
               .hp_ux110
 </PRE>
 <P><H3><A NAME=3D"HDRWQ596" HREF=3D"auagd002.htm#ToC_523">The Makefile I=
nstructions Section</A></H3>
Index: WINNT/doc/install/Documentation/ja_JP/html/SysAdminGd/auagd016.htm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/openafs/src/WINNT/doc/install/Documentation/ja_JP/html/Sys=
AdminGd/auagd016.htm,v
retrieving revision 1.1
diff -u -r1.1 auagd016.htm
--- WINNT/doc/install/Documentation/ja_JP/html/SysAdminGd/auagd016.htm	20=
00/11/04 02:20:29	1.1
+++ WINNT/doc/install/Documentation/ja_JP/html/SysAdminGd/auagd016.htm	20=
00/12/14 15:47:04
@@ -524,6 +524,8 @@
               .proto \
               .sun4x_56 \
               .i386_linux22 \
+              .i386_linux3 \
+              .i386_linux24 \
               .hp_ux110
 </PRE>
 <P><H3><A NAME=3D"HDRWQ597" HREF=3D"auagd002.htm#ToC_523">MAKE =83t=83@=83=
C=83=8B=82=CC=96=BD=97=DF=8B@=94\=83O=83=8B=81[=83v</A></H3>
Index: WINNT/doc/install/Documentation/ko_KR/html/SysAdminGd/auagd016.htm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/openafs/src/WINNT/doc/install/Documentation/ko_KR/html/Sys=
AdminGd/auagd016.htm,v
retrieving revision 1.1
diff -u -r1.1 auagd016.htm
--- WINNT/doc/install/Documentation/ko_KR/html/SysAdminGd/auagd016.htm	20=
00/11/04 02:20:50	1.1
+++ WINNT/doc/install/Documentation/ko_KR/html/SysAdminGd/auagd016.htm	20=
00/12/14 15:47:06
@@ -702,6 +702,8 @@
               .proto \
               .sun4x_56 \
               .i386_linux22 \
+              .i386_linux3 \
+              .i386_linux24 \
               .hp_ux110
 </PRE>
 <P><H3><A NAME=3D"HDRWQ444" HREF=3D"auagd002.htm#ToC_523">Makefile =B8=ED=
=B7=C9 =BC=BD=BC=C7</A></H3>
Index: config/afs_sysnames.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/openafs/src/config/afs_sysnames.h,v
retrieving revision 1.4
diff -u -r1.4 afs_sysnames.h
--- config/afs_sysnames.h	2000/11/06 04:24:47	1.4
+++ config/afs_sysnames.h	2000/12/14 15:47:07
@@ -109,6 +109,7 @@
 #define SYS_NAME_ID_i386_linux2		1500
 #define SYS_NAME_ID_i386_linux22	1501
 #define SYS_NAME_ID_i386_linux24        1502
+#define SYS_NAME_ID_i386_linux3        1503
=20
 #define SYS_NAME_ID_ppc_linux2          1600
 #define SYS_NAME_ID_ppc_linux22         1601
Index: libafs/MakefileProto.LINUX
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/openafs/src/libafs/MakefileProto.LINUX,v
retrieving revision 1.3
diff -u -r1.3 MakefileProto.LINUX
--- libafs/MakefileProto.LINUX	2000/11/05 20:02:57	1.3
+++ libafs/MakefileProto.LINUX	2000/12/14 15:47:08
@@ -36,7 +36,7 @@
 CC =3D gcc
 LD =3D ld
 # -Wall
-<i386_linux22 i386_linux24>
+<i386_linux3 i386_linux22 i386_linux24>
 CCFLAGS =3D   -O2 -fomit-frame-pointer \
 	-fno-strength-reduce -pipe -m486 -malign-loops=3D2 -malign-jumps=3D2 \
 	-malign-functions=3D2
@@ -91,7 +91,7 @@
 		rm -f sys; \
 		ln -s $${IDIR} sys; \
 		rm -f asm; \
-<i386_linux22 i386_linux24>
+<i386_linux3 i386_linux22 i386_linux24>
 		ln -s ${LINUX_SRCDIR}$$v/include/asm-i386 asm ; \
 <ppc_linux22 ppc_linux24>
 		ln -s ${LINUX_SRCDIR}$$v/include/asm-ppc asm ; \

--h31gzZEtNLTqOjlF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Makefile.i386_linux3"

# Copyright 2000, International Business Machines Corporation and others.
# All Rights Reserved.
# 
# This software has been released under the terms of the IBM Public
# License.  For details, see the LICENSE file in the top-level source
# directory or online at http://www.openafs.org/dl/license10.html

# Keep macros within each section in sorted order for clean diff displays.
#
# AFS_OSTYPE used to indicate suffixes and os specific subdirectories.
AFS_OSTYPE = LINUX

# Base directory for linux kernel source. Actually a prefix which is complete
# when LINUX_VERS is appended to it.
LINUX_SRCDIR = /usr/src/linux-
# Default list of Linux kernels to build. Build will run only if all
# can be built. To build a different set, specify LINUX_VERS to make.
LINUX_VERS = 2.2.5-15 2.2.10 2.2.12 2.2.12-20 2.2.13 2.2.14

#
# compilation and link editor flags
DBG=-g
OPTMZ=-O2
PAM_CFLAGS = -O2 -Dlinux -DLINUX_PAM -fPIC
# Put -O2 here to _ensure_ all Makefiles pick it up.
XCFLAGS= -O2
MT_CFLAGS=-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}
XLDFLAGS=
SHARE_LDFLAGS = -shared -Xlinker -x
SHLIB_SUFFIX=so
SHLIB_CFLAGS=
#
# libraries
MTLIBS=-lpthread
TXLIBS= /usr/lib/libncurses.so
XLIBS=
#
# programs
AR=ar
AS=as
CP=cp
INSTALL=${SRCDIR}bin/install
LD=ld   
MT_CC=cc
MV=mv
RANLIB=ranlib
RM=rm
WASHTOOL=${SRCDIR}bin/washtool
#
# Other OS specific requirements
#
YACC = bison -y
LEX = flex -l
# Used in des library.
CRYPT_OBJ = crypt.o

--h31gzZEtNLTqOjlF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="param.i386_linux3.h"

/*
 * Copyright 2000, International Business Machines Corporation and others.
 * All Rights Reserved.
 * 
 * This software has been released under the terms of the IBM Public
 * License.  For details, see the LICENSE file in the top-level source
 * directory or online at http://www.openafs.org/dl/license10.html
 */

#ifndef _PARAM_I386_LINUX3_H_
#define _PARAM_I386_LINUX3_H_

/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel,
 * it's a judgment call. If something is obviously i386 specific, use that
 * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2"
 * in the sysname is the current version of the client. This takes into
 * account the perferred OS user space configuration as well as the kernel.
 */

#define AFS_LINUX20_ENV	1
#define AFS_LINUX22_ENV	1
#define AFS_I386_LINUX20_ENV	1
#define AFS_I386_LINUX3_ENV   1
#define AFS_I386_LINUX22_ENV	1
#define AFS_NONFSTRANS 1

#define AFS_MOUNT_AFS "afs"	/* The name of the filesystem type. */
#define AFS_SYSCALL 137
#define AFS_64BIT_IOPS_ENV  1
#define AFS_NAMEI_ENV     1   /* User space interface to file system */
#include <afs/afs_sysnames.h>

#define AFS_USERSPACE_IP_ADDR 1
#define RXK_LISTENER_ENV 1
#define AFS_GCPAGS		0       /* if nonzero, garbage collect PAGs */


/* Machine / Operating system information */
#define SYS_NAME	"i386_linux3"
#define SYS_NAME_ID	SYS_NAME_ID_i386_linux3
#define AFSLITTLE_ENDIAN    1
#define AFS_HAVE_FFS        1       /* Use system's ffs. */
#define AFS_HAVE_STATVFS    0	/* System doesn't support statvfs */
#define AFS_VM_RDWR_ENV	    1	/* read/write implemented via VM */

#if defined(__KERNEL__) && !defined(KDUMP_KERNEL)
#include <linux/config.h>
#ifdef CONFIG_SMP
#undef CONFIG_SMP
#endif
/* Using "AFS_SMP" to map to however many #define's are required to get
 * MP to compile for Linux
 */
#ifdef AFS_SMP
#define CONFIG_SMP
#ifndef CONFIG_X86_LOCAL_APIC
#define CONFIG_X86_LOCAL_APIC
#endif
#define __SMP__
#define AFS_GLOBAL_SUNLOCK
#endif

#endif /* __KERNEL__  && !DUMP_KERNEL*/

#ifdef KERNEL
#ifndef MIN
#define MIN(A,B) ((A) < (B) ? (A) : (B))
#endif
#ifndef MAX
#define MAX(A,B) ((A) > (B) ? (A) : (B))
#endif
#endif /* KERNEL */

typedef unsigned int uint32_t;

#endif /* _PARAM_I386_LINUX3_H_ */

--h31gzZEtNLTqOjlF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="param.i386_linux3_usr.h"

/*
 * Copyright 2000, International Business Machines Corporation and others.
 * All Rights Reserved.
 * 
 * This software has been released under the terms of the IBM Public
 * License.  For details, see the LICENSE file in the top-level source
 * directory or online at http://www.openafs.org/dl/license10.html
 */

#ifndef _PARAM_USR_I386_LINUX3_H_
#define _PARAM_USR_I386_LINUX3_H_

/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel,
 * it's a judgment call. If something is obviously i386 specific, use that
 * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2"
 * in the sysname is the current version of the client. This takes into
 * account the perferred OS user space configuration as well as the kernel.
 */

#define UKERNEL			1	/* user space kernel */
#define AFS_ENV			1
#define AFS_USR_LINUX20_ENV	1
#define AFS_USR_LINUX3_ENV	1
#define AFS_USR_LINUX22_ENV	1
#define AFS_NONFSTRANS 1

#define AFS_MOUNT_AFS "afs"	/* The name of the filesystem type. */
#define AFS_SYSCALL 137
#define AFS_64BIT_IOPS_ENV  1
#define AFS_NAMEI_ENV     1   /* User space interface to file system */
#include <afs/afs_sysnames.h>

#define AFS_USERSPACE_IP_ADDR 1
#define RXK_LISTENER_ENV 1
#define AFS_GCPAGS		0       /* if nonzero, garbage collect PAGs */


/* Machine / Operating system information */
#define SYS_NAME	"i386_linux3"
#define SYS_NAME_ID	SYS_NAME_ID_i386_linux3
#define AFSLITTLE_ENDIAN    1
#define AFS_HAVE_FFS        1       /* Use system's ffs. */
#define AFS_HAVE_STATVFS    0	/* System doesn't support statvfs */
#define AFS_VM_RDWR_ENV	    1	/* read/write implemented via VM */

#define	afsio_iov	uio_iov
#define	afsio_iovcnt	uio_iovcnt
#define	afsio_offset	uio_offset
#define	afsio_seg	uio_segflg
#define	afsio_fmode	uio_fmode
#define	afsio_resid	uio_resid
#define	AFS_UIOSYS	1
#define	AFS_UIOUSER	UIO_USERSPACE
#define	AFS_CLBYTES	MCLBYTES
#define	AFS_MINCHANGE	2
#define	VATTR_NULL	usr_vattr_null

#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif

#endif /* _PARAM_USR_I386_LINUX3_H_ */

--h31gzZEtNLTqOjlF--