[OpenAFS] RedHat Enterprise 3 srpm compile errors

John Koyle jkoyle@rfpdepot.com
Fri, 24 Oct 2003 10:25:06 -0600


I noticed I had cut and pasted the wrong redhat-fix.h file (The previous
message had one I was playing around with).

The correct one has:

#undef __BOOT_KERNEL_ENTERPRISE
#define __BOOT_KERNEL_ENTERPRISE 0

and

#undef __BOOT_KERNEL_UP
#define __BOOT_KERNEL_UP 1

John

On Fri, 2003-10-24 at 10:02, John Koyle wrote:
> I've included lots of info.
> 
> Looking at /boot/kernel.h shows this:
> 
> /* This file is automatically generated at boot time. */
> #ifndef __BOOT_KERNEL_H_
> #define __BOOT_KERNEL_H_
> 
> /* Kernel type i686 */
> 
> #ifndef __MODULE_KERNEL_i686
> #define __MODULE_KERNEL_i686 1
> #endif
> 
> #ifndef __BOOT_KERNEL_ENTERPRISE
> #define __BOOT_KERNEL_ENTERPRISE 0
> #endif
> 
> #ifndef __BOOT_KERNEL_BIGMEM
> #define __BOOT_KERNEL_BIGMEM 0
> #endif
> 
> #ifndef __BOOT_KERNEL_HUGEMEM
> #define __BOOT_KERNEL_HUGEMEM 0
> #endif
> 
> #ifndef __BOOT_KERNEL_SMP
> #define __BOOT_KERNEL_SMP 0
> #endif
> 
> #ifndef __BOOT_KERNEL_UP
> #define __BOOT_KERNEL_UP 1
> #endif
> 
> #endif
> 
> 
> This conflicts with the included rehda-fix.h which #undef's i686 and
> #defines i386 like this:
> 
> #ifndef REDHAT_FIX_H
> #define REDHAT_FIX_H
> 
> #undef __BOOT_KERNEL_ENTERPRISE
> #define __BOOT_KERNEL_ENTERPRISE 1
> 
> #undef __BOOT_KERNEL_BIGMEM
> #define __BOOT_KERNEL_BIGMEM 0
> 
> #undef __BOOT_KERNEL_SMP
> #define __BOOT_KERNEL_SMP 0
> 
> #undef __BOOT_KERNEL_UP
> #define __BOOT_KERNEL_UP 0
> 
> #undef __BOOT_KERNEL_BOOT
> #define __BOOT_KERNEL_BOOT 0
> 
> #undef __BOOT_KERNEL_BOOTSMP
> #define __BOOT_KERNEL_BOOTSMP 0
> 
> #include "/boot/kernel.h"
> 
> #ifndef __MODULE_KERNEL_i386
> #define __MODULE_KERNEL_i386 1
> #endif
> #undef __MODULE_KERNEL_i586
> #undef __MODULE_KERNEL_i686
> #undef __MODULE_KERNEL_athlon
> 
> #endif
> 
> When I modified the redhat-fix.h to #undef i386 and #define i686 then it
> was able to compile.  So it may just be some logic in the SPEC file. 
> Here's the relevent parts of mm.h
> 
>         union {
>                 struct pte_chain *chain;/* Reverse pte mapping pointer.
>                                          * protected by PG_chainlock */
>                 pte_addr_t direct;
>         } pte;
>         unsigned char age;              /* Page aging counter. */
>         struct page **pprev_hash;       /* Complement to *next_hash. */
>         struct buffer_head * buffers;   /* Buffer maps us to a disk 
> block. */
> 
> [joe@test include]# uname -a
> Linux test.localhost 2.4.21-3.EL #1 Fri Sep 19 14:14:57 EDT 2003 i686
> i686 i386 GNU/Linux
> 
> 
> Thanks,
> John
> 
> On Fri, 2003-10-24 at 09:52, Derek Atkins wrote:
> > John Koyle <jkoyle@rfpdepot.com> writes:
> > 
> > > In file included from ../afs/sysincludes.h:71,
> > >                  from ../afs/afs_analyze.c:19:
> > > linux/mm.h:203: syntax error before "pte_addr_t"
> > 
> > What's around lines 200-205 in linux/mm.h?
> > 
> > > Removing the REDHAT_FIX define allows the system to compile without
> > > errors, but I assume that it's there for a reason, and given that it's
> > > causing an error in the memory mapping I don't want to assume anything.
> > 
> > Well, REDHAT_FIX is used because with RHL we needed to define our own
> > "/boot/kernel.h" to build for different kernels other than the
> > currenly-running version.  It's QUITE possible that the enterprise
> > distribution does things somewhat differently such that this RHL
> > workaround no longer works, or works differently.
> > 
> > Another thing to do is take a look at /boot/kernel.h on your system
> > and see what it says?
> > 
> > > Any ideas?
> > > Thanks,
> > > John
> > 
> > -derek
> 
> _______________________________________________
> OpenAFS-info mailing list
> OpenAFS-info@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-info