mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
linux-26-build-updates-20040601
FIXES 4767 use 2.6 kbuild infrastructure to build modules. updates proc mechanism. ==================== This delta was composed from multiple commits as part of the CVS->Git migration. The checkin message with each commit was inconsistent. The following are the additional commit messages. ==================== FIXES 4888 use 2.6 kbuild infrastructure to build modules. updates proc mechanism.
This commit is contained in:
parent
5d9fcb3034
commit
d5dfb9113b
@ -156,10 +156,9 @@ setpag(cred_t ** cr, afs_uint32 pagvalue, afs_uint32 * newpag,
|
||||
AFS_STATCNT(setpag);
|
||||
|
||||
group_info = afs_getgroups(*cr);
|
||||
g0 = GROUP_AT(group_info, 0);
|
||||
g1 = GROUP_AT(group_info, 1);
|
||||
|
||||
if (afs_get_pag_from_groups(g0, g1) == NOPAG) {
|
||||
if (group_info->ngroups < 2
|
||||
|| afs_get_pag_from_groups(GROUP_AT(group_info, 0),
|
||||
GROUP_AT(group_info, 1)) == NOPAG) {
|
||||
/* We will have to make sure group_info is big enough for pag */
|
||||
struct group_info *tmp;
|
||||
int i;
|
||||
|
@ -147,7 +147,7 @@ afsproc_init()
|
||||
struct proc_dir_entry *entry1;
|
||||
|
||||
openafs_procfs = proc_mkdir(PROC_FSDIRNAME, proc_root_fs);
|
||||
entry1 = create_proc_entry(PROC_SYSCALL_NAME, 0, openafs_procfs);
|
||||
entry1 = create_proc_entry(PROC_SYSCALL_NAME, 0666, openafs_procfs);
|
||||
|
||||
entry1->proc_fops = &afs_syscall_fops;
|
||||
|
||||
|
@ -49,11 +49,6 @@
|
||||
#define AFS_GLOBAL_SUNLOCK
|
||||
#endif
|
||||
|
||||
#if defined(MODULE) && defined(CONFIG_MODVERSIONS)
|
||||
#define MODVERSIONS
|
||||
#include <linux/modversions.h>
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ && !DUMP_KERNEL */
|
||||
|
||||
#include <afs/afs_sysnames.h>
|
||||
|
@ -36,8 +36,10 @@ LINUX_KERNEL_PATH=@LINUX_KERNEL_PATH@
|
||||
|
||||
# System specific build commands and flags
|
||||
<i386_linux26>
|
||||
CCFLAGS = $(COMMON_KERN_CFLAGS) @P5PLUS_KOPTS@ -I../mach
|
||||
DEFINES = $(COMMON_DEFINES) -DCPU=586 -DKBUILD_BASENAME=libafs_$(subst .,_,$(subst -,_,${CLIENT})) -DKBUILD_MODNAME=libafs_$(subst .,_,$(subst -,_,${CLIENT}))
|
||||
# All the platform-specific and kernel-related things are provided by
|
||||
# the kernel build system. So we should _not_ use COMMON_KERN_CFLAGS!
|
||||
CCFLAGS = -Wno-strict-prototypes
|
||||
DEFINES = $(COMMON_DEFINES)
|
||||
|
||||
<i386_linux22 i386_linux24>
|
||||
CCFLAGS = $(COMMON_KERN_CFLAGS) @P5PLUS_KOPTS@
|
||||
@ -86,7 +88,8 @@ CCFLAGS = $(COMMON_KERN_CFLAGS) -ffixed-r13 -mfixed-range=f10-f15,f32-f127 -fali
|
||||
DEFINES = $(COMMON_DEFINES)
|
||||
|
||||
<all>
|
||||
INCLUDES = -I. -I../ -I${TOP_OBJDIR}/src/config
|
||||
INCLUDES = -I. -I../ -I${TOP_OBJDIR}/src/config \
|
||||
-I${TOP_SRCDIR}/rx -I${TOP_SRCDIR}/rxstat
|
||||
|
||||
CFLAGS = $(CCFLAGS) $(DEFINES) $(INCLUDES)
|
||||
|
||||
@ -101,6 +104,12 @@ DESTDIRS=linux_destdirs
|
||||
|
||||
include Makefile.common
|
||||
|
||||
<i386_linux26>
|
||||
LINUX_MODULE_EXT=ko
|
||||
<all -i386_linux26>
|
||||
LINUX_MODULE_EXT=o
|
||||
<all>
|
||||
|
||||
LINUX_MODULE_NAME=
|
||||
LOCAL_SMP_DEF=
|
||||
|
||||
@ -110,7 +119,7 @@ setup:
|
||||
for m in ${MPS} ; do \
|
||||
KDIR=$(KOBJ)-${LINUX_VERSION}${LINUX_MODULE_NAME}-$$m; \
|
||||
mkdir -p $${KDIR}; \
|
||||
ln -fs ../Makefile $${KDIR}/Makefile ; \
|
||||
ln -fs ../Makefile $${KDIR}/Makefile.afs ; \
|
||||
ln -fs ../Makefile.common $${KDIR}/Makefile.common; \
|
||||
ln -fs ../config $${KDIR}/config; \
|
||||
done
|
||||
@ -135,7 +144,7 @@ ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
|
||||
ln -fs ${LINUX_KERNEL_PATH}/include/asm-parisc asm
|
||||
<alpha_linux_22 alpha_linux_24>
|
||||
ln -fs ${LINUX_KERNEL_PATH}/include/asm-alpha asm
|
||||
<i386_linux22 i386_linux24 i386_linux26>
|
||||
<i386_linux22 i386_linux24>
|
||||
ln -fs ${LINUX_KERNEL_PATH}/include/asm-i386 asm
|
||||
<i386_umlinux22 i386_umlinux24>
|
||||
ln -fs ${LINUX_KERNEL_PATH}/include/asm-um asm
|
||||
@ -153,9 +162,6 @@ ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
|
||||
ln -fs ${LINUX_KERNEL_PATH}/include/asm-sparc64 asm
|
||||
<ia64_linux24>
|
||||
ln -fs ${LINUX_KERNEL_PATH}/include/asm-ia64 asm
|
||||
<i386_linux26>
|
||||
$(RM) -f mach
|
||||
ln -fs ${LINUX_KERNEL_PATH}/include/asm-i386/mach-default mach
|
||||
<all>
|
||||
for m in ${MPS} ; do \
|
||||
KDIR=${KOBJ}-${LINUX_VERSION}${LINUX_MODULE_NAME}-$$m ; \
|
||||
@ -174,8 +180,9 @@ ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
|
||||
TARG=libafs ; \
|
||||
fi ; \
|
||||
cd $${KDIR} ; \
|
||||
$(MAKE) SMP_DEF="$${SMP_DEF}" $@_$${TARG} CLIENT=${LINUX_VERSION}${LINUX_MODULE_NAME} || exit $$?; \
|
||||
$(MAKE) -f Makefile.afs SMP_DEF="$${SMP_DEF}" $@_$${TARG} CLIENT=${LINUX_VERSION}${LINUX_MODULE_NAME} KDIR=$${KDIR} || exit $$?; \
|
||||
cd ../ ; \
|
||||
<all>
|
||||
done
|
||||
|
||||
linux_compdirs_libafs: depsrcs libafs
|
||||
@ -194,10 +201,10 @@ linux_destdirs_libafs.bm: dest_libafs.bm
|
||||
|
||||
# Below this line are targets when in the COMMON directory:
|
||||
# For Linux there is no kernel NFS server.
|
||||
LIBAFS = libafs-${CLIENT}.o
|
||||
LIBAFS_MP = libafs-${CLIENT}.mp.o
|
||||
LIBAFS_EP = libafs-${CLIENT}.ep.o
|
||||
LIBAFS_BM = libafs-${CLIENT}.bm.o
|
||||
LIBAFS = libafs-${CLIENT}.${LINUX_MODULE_EXT}
|
||||
LIBAFS_MP = libafs-${CLIENT}.mp.${LINUX_MODULE_EXT}
|
||||
LIBAFS_EP = libafs-${CLIENT}.ep.${LINUX_MODULE_EXT}
|
||||
LIBAFS_BM = libafs-${CLIENT}.bm.${LINUX_MODULE_EXT}
|
||||
|
||||
INST_LIBAFS = ${DESTDIR}${afskerneldir}/${LIBAFS}
|
||||
INST_LIBAFS_MP = ${DESTDIR}${afskerneldir}/${LIBAFS_MP}
|
||||
@ -222,6 +229,17 @@ libafs.ep: $(LIBAFS_EP)
|
||||
libafs.bm: $(LIBAFS_BM)
|
||||
echo BM Build Complete
|
||||
|
||||
<i386_linux26>
|
||||
${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: libafs.ko
|
||||
cp libafs.ko $@
|
||||
|
||||
.FORCE:
|
||||
libafs.ko: .FORCE
|
||||
../make_kbuild_makefile.pl ${KDIR} $@ \
|
||||
@TOP_OBJDIR@/src/config/Makefile.config Makefile.afs Makefile.common
|
||||
$(MAKE) -C ${LINUX_KERNEL_PATH} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules
|
||||
|
||||
<all -i386_linux26>
|
||||
${LIBAFS}: $(AFSAOBJS) $(AFSNONFSOBJS)
|
||||
$(RM) -f $@
|
||||
$(LD) -r -o $@ $(AFSAOBJS) $(AFSNONFSOBJS)
|
||||
@ -237,6 +255,7 @@ ${LIBAFS_EP}: $(AFSAOBJS) $(AFSNONFSOBJS)
|
||||
${LIBAFS_BM}: $(AFSAOBJS) $(AFSNONFSOBJS)
|
||||
$(RM) -f $@
|
||||
$(LD) -r -o $@ $(AFSAOBJS) $(AFSNONFSOBJS)
|
||||
<all>
|
||||
|
||||
install_libafs: $(INST_LIBAFS)
|
||||
echo SP Install Complete
|
||||
|
@ -6,3 +6,4 @@ afs.startup
|
||||
redhat.sh
|
||||
sgi_master
|
||||
sgi_system
|
||||
make_kbuild_makefile.pl
|
||||
|
104
src/libafs/make_kbuild_makefile.pl
Executable file
104
src/libafs/make_kbuild_makefile.pl
Executable file
@ -0,0 +1,104 @@
|
||||
#!/usr/bin/perl
|
||||
# make_kbuild_makefile.pl
|
||||
# Generate a Makefile for use with the Linux 2.6+ kernel build system
|
||||
#
|
||||
# Usage: make_kbuild_makefile.pl ${KDIR} ${TARG} Makefiles...
|
||||
#
|
||||
# The specified makefiles will be scanned for variable values
|
||||
# The module ${TARG} will be built in ${TOP_SRCDIR}/src/libafs/${KDIR}.
|
||||
# It will include objects listed in ${AFSAOBJS} and ${AFSNONFSOBJS}
|
||||
# Appropriate source files for each object will be symlinked into ${KDIR}
|
||||
# EXTRA_CFLAGS will be set to ${CFLAGS} ${COMMON_INCLUDE}
|
||||
|
||||
# Produces ${KDIR}/Makefile, suitable for use with kbuild
|
||||
|
||||
use IO::File;
|
||||
|
||||
|
||||
if (@ARGV < 3) {
|
||||
die "Usage: echo objects... | $0 KDIR TARG Makefiles...\n";
|
||||
}
|
||||
|
||||
($KDIR, $TARG, @Makefiles) = @ARGV;
|
||||
$TARG =~ s/\.k?o$//;
|
||||
|
||||
## Read in all of the Makefiles given on the command line
|
||||
## Our ultimate goal is to find the correct source file for each object.
|
||||
## We make the following assumptions:
|
||||
## - Every variable is defined before it is used.
|
||||
## - Each of our objects has exactly one dependency, which is the name
|
||||
## of the source file that needs to be symlinked into $KDIR
|
||||
foreach $mf (@Makefiles) {
|
||||
$F = new IO::File($mf, O_RDONLY) or die "$mf: $!\n";
|
||||
$text = '';
|
||||
while (<$F>) {
|
||||
chomp;
|
||||
$text .= $_;
|
||||
next if $text =~ s/\\$/ /; ## Continuation
|
||||
if ($text =~ /^#/) { $text = ''; next } ## Comment
|
||||
#print STDERR "<< $text\n";
|
||||
|
||||
$text =~ s/\$\((\w+)\)/$vars{$1}/g; # Substitute variables
|
||||
$text =~ s/\$\{(\w+)\}/$vars{$1}/g;
|
||||
#print STDERR ">> $text\n";
|
||||
|
||||
if ($text =~ /^\s*(\S+)\s*=/) { ## Variable definition
|
||||
($key, $value) = ($1, $');
|
||||
$value =~ s/^\s*//; # Remove leading and
|
||||
$value =~ s/\s*$//; # trailing whitespace
|
||||
$vars{$key} = $value; # Store it
|
||||
}
|
||||
elsif ($text =~ /^(\S+\.o):\s*(\S+\.c)/) { ## Dependency
|
||||
$deps{$1} = $2;
|
||||
}
|
||||
$text = '';
|
||||
}
|
||||
$F->close();
|
||||
}
|
||||
|
||||
|
||||
$KDIR = "$vars{TOP_OBJDIR}/src/libafs/$KDIR";
|
||||
@objects = (split(' ', $vars{AFSAOBJS}), split(' ', $vars{AFSNONFSOBJS}));
|
||||
|
||||
$MV = new IO::File("$vars{TOP_OBJDIR}/src/config/Makefile.version", O_RDONLY)
|
||||
or die "$vars{TOP_OBJDIR}/src/config/Makefile.version: $!\n";
|
||||
while (<$MV>) {
|
||||
s#AFS_component_version_number#$KDIR/AFS_component_version_number#g;
|
||||
$MakefileVersion .= $_;
|
||||
}
|
||||
$MV->close();
|
||||
|
||||
if (! -d $KDIR) {
|
||||
mkdir($KDIR, 0777) or die "$KDIR: $!\n";
|
||||
}
|
||||
|
||||
|
||||
foreach (@objects) {
|
||||
($src = $_) =~ s/\.o$/.c/;
|
||||
die "No source known for $_\n" unless exists $deps{$_};
|
||||
if (-e "$KDIR/$src" || -l "$KDIR/$src") {
|
||||
unlink("$KDIR/$src") or die "$KDIR/$src: $!\n";
|
||||
}
|
||||
next unless $deps{$_} =~ m#/#;
|
||||
symlink($deps{$_}, "$KDIR/$src") or die "$KDIR/$src: $!\n";
|
||||
}
|
||||
|
||||
foreach $src (qw(h sys netinet)) {
|
||||
if (-e "$KDIR/$src" || -l "$KDIR/$src") {
|
||||
unlink("$KDIR/$src") or die "$KDIR/$src: $!\n";
|
||||
}
|
||||
symlink("$vars{LINUX_KERNEL_PATH}/include/linux", "$KDIR/$src")
|
||||
or die "$KDIR/$src: $!\n";
|
||||
}
|
||||
|
||||
$cflags = "$vars{CFLAGS} $vars{COMMON_INCLUDE}";
|
||||
$cflags =~ s#-I(?!/)#-I$KDIR/#g;
|
||||
$cflags =~ s/\s+/ \\\n /g;
|
||||
$F = new IO::File("$KDIR/Makefile", O_WRONLY|O_CREAT|O_TRUNC, 0666)
|
||||
or die "$KDIR/Makefile: $!\n";
|
||||
print $F "EXTRA_CFLAGS=$cflags\n";
|
||||
print $F "obj-m := $TARG.o\n";
|
||||
print $F "$TARG-objs := ", join("\\\n $_", @objects), "\n";
|
||||
print $F "\n$MakefileVersion\n";
|
||||
$F->close() or die "$KDIR/Makefile: $!\n";
|
||||
|
Loading…
Reference in New Issue
Block a user