+++ /dev/null
-#!/bin/awk -f
-BEGIN {
- nsects = 0
-}
-{
- ARCH = $1
- ARCHES[ARCH] = 1
- TYPE = $2
- TYPES[TYPE] = 1
- NTOTAL++
- ARCHTYPES[ARCH ":" TYPE] = 1
- NARCHES[TYPE]++
- if (NARCHES[TYPE] == 1)
- NTOTALTYPES++
- NTYPES[ARCH]++
- if (NTYPES[ARCH] == 1)
- NTOTALARCHES++
- FILE = $3
- cursects = nsects
- while ((getline < FILE) > 0) {
- if ($0 ~ /^\/\*/ || $0 ~ /^ \*\// || $0 ~ /^[ ]*$/)
- continue
- if ($0 ~ /^ * /) {
- SECTION = gensub(/^ \* /,"",$0)
- if (!(SECTION in sectno)) {
- sectno[SECTION] = nsects
- counts[SECTION] = 0
- nsects++
- } else if (cursects && cursects != nsects) {
- no = sectno[SECTION]
- diff = nsects - cursects
- for (s in sectno) {
- if (sectno[s] >= cursects)
- sectno[s] = sectno[s] - cursects + no
- else if (sectno[s] >= no)
- sectno[s] += diff
- }
- }
- cursects = nsect
- cursym[SECTION] = counts[SECTION]
- continue
- }
- if ($1 != "#define" && $1 != "#undef")
- exit 1
- SYMBOL = $2
- n = index($0,SYMBOL)+length(SYMBOL)
- if ($1 == "#define") {
- n = index($0,SYMBOL)+length(SYMBOL)
- VALUE = gensub(/^[ ]*/,"","",substr($0,n))
- if (VALUE == "") VALUE = "__novalue__"
- } else
- VALUE = "__undefined__"
- if (values[SYMBOL]) {
- if (present[SYMBOL,ARCH,TYPE]) continue
- present[SYMBOL,ARCH,TYPE] = 1
- values[SYMBOL] = values[SYMBOL] SUBSEP ARCH ":" TYPE ":" VALUE
- if (SECTION == sections[SYMBOL] && cursym[SECTION] && cursym[SECTION] != counts[SECTION]) {
- no = pos[SYMBOL]
- diff = counts[SECTION]-cursym[SECTION]
- for (s in pos)
- if (sections[s] == SECTION) {
- if (pos[s] >= cursym[SECTION])
- pos[s] = pos[s] - cursym[SECTION] + no
- else if (pos[s] >= no)
- pos[s] += diff
- }
- cursym[SECTION] = counts[SECTION]
- }
- } else {
- present[SYMBOL,ARCH,TYPE] = 1
- values[SYMBOL] = ARCH ":" TYPE ":" VALUE
- sections[SYMBOL] = SECTION
- pos[SYMBOL] = counts[SECTION]
- counts[SECTION]++
- }
- }
- close(FILE)
-}
-END {
- for (SECTION in sectno)
- x[sectno[SECTION]] = SECTION
- for (i = 0; i < nsects; i++) {
- SECTION = x[i]
- if (i > 0)
- printf "\n"
- printf "/*\n * %s\n */\n", SECTION
- split("",lines)
- lastelse = ""
- for (SYMBOL in sections)
- if (sections[SYMBOL] == SECTION)
- y[pos[SYMBOL]] = SYMBOL
- for (j = 0; j < counts[SECTION]; j++) {
- SYMBOL = y[j]
- split("",ntype)
- split("",total)
- split(values[SYMBOL],z,SUBSEP)
- split("",val)
- totalsum = 0
- for (k in z) {
- split(z[k],l,":")
- ARCH = l[1]
- TYPE = l[2]
- VALUE = substr(z[k],length(ARCH)+length(TYPE)+3)
- if (val[VALUE])
- val[VALUE] = val[VALUE] " "
- val[VALUE] = val[VALUE] ARCH ":" TYPE
- ntype[VALUE,TYPE] += 1
- total[VALUE] += 1
- totalsum += 1
- }
- split("",curlines)
- append = 1
- for (VALUE in val) {
- if (total[VALUE] == NTOTAL) {
- if (VALUE == "__undefined__")
- curlines["1"] = "#undef " SYMBOL "\n"
- else if (VALUE == "__novalue__")
- curlines["1"] = "#define " SYMBOL "\n"
- else
- curlines["1"] = "#define " SYMBOL " " VALUE "\n"
- if (!lines["1"])
- append = 0
- break
- }
- shorteststr = ""
- curcount = 0
- for (m = 0; m < 4; m++) {
- str = ""
- split(val[VALUE],yy)
- if (total[VALUE] > 1 && total[VALUE] == NTOTAL - 1) {
- found = 0
- for (arch in ARCHES) {
- for (type in TYPES) {
- archtype = arch ":" type
- if (ARCHTYPES [archtype] == 1) {
- for (n in yy)
- if (yy[n] == archtype)
- break
- if (yy[n] != archtype) {
- found = 1
- break
- }
- }
- }
- if (found)
- break
- }
- if (NARCHES[type] > 1 && NTYPES[arch] > 1) {
- str = "!defined(__module__" arch "_" type ")"
- shorteststr = str
- break
- }
- }
- if (m == 0 || m == 2) {
- nfull = 0
- split("",yysave)
- for (type in TYPES)
- if (ntype[VALUE,type] == NARCHES[type]) {
- if (str) str = str " || "
- str = str "defined(__module__" type ")"
- for (k in yy) {
- split(yy[k], z, ":")
- if (z[2] == type) {
- yysave[k] = yy[k]
- delete yy[k]
- }
- }
- nfull++
- } else
- NOTYPE = type
- if (m < 2 && nfull > 1 && nfull == NTOTALTYPES - 1) {
- str = "!defined(__module__" NOTYPE ")"
- for (k in yysave)
- yy[k] = yysave[k]
- for (k in yy) {
- split(yy[k], z, ":")
- if (z[2] != NOTYPE)
- delete yy[k]
- }
- }
- }
- savestr = str
- nfull = 0
- split("",yysave)
- for (arch in ARCHES) {
- narch = 0
- for (k in yy) {
- split(yy[k], z, ":")
- if (z[1] == arch)
- narch++
- }
- if (narch == NTYPES[arch]) {
- if (str) str = str " || "
- str = str "defined(__module__" arch ")"
- for (k in yy) {
- split(yy[k], z, ":")
- if (z[1] == arch) {
- yysave[k] = yy[k]
- delete yy[k]
- }
- }
- nfull++
- } else
- NOARCH = arch
- }
- if (m < 2 && nfull > 1 && nfull == NTOTALARCHES - 1) {
- str = savestr
- for (k in yysave)
- yy[k] = yysave[k]
- if (str) str = str " || "
- str = str "!defined(__module__" NOARCH ")"
- for (k in yy) {
- split(yy[k], z, ":")
- if (z[1] != NOARCH)
- delete yy[k]
- }
- }
- if (m == 1 || m == 3) {
- savestr = str
- nfull = 0
- split("",yysave)
- for (type in TYPES) {
- ntypex = 0
- for (k in yy) {
- split(yy[k], z, ":")
- if (z[2] == type)
- ntypex++
- }
- if (ntypex == NARCHES[type]) {
- if (str) str = str " || "
- str = str "defined(__module__" type ")"
- for (k in yy) {
- split(yy[k], z, ":")
- if (z[2] == type) {
- yysave[k] = yy[k]
- delete yy[k]
- }
- }
- nfull++
- } else
- NOTYPE = type
- }
- if (m < 2 && nfull > 1 && nfull == NTOTALTYPES - 1) {
- str = savestr
- for (k in yysave)
- yy[k] = yysave[k]
- if (str) str = str " || "
- str = "!defined(__module__" NOTYPE ")"
- for (k in yy) {
- split(yy[k], z, ":")
- if (z[2] != NOTYPE)
- delete yy[k]
- }
- }
- }
- for (k in yy) {
- split(yy[k], z, ":")
- if (str) str = str " || "
- str = str "defined(__module__" z[1] "_" z[2] ")"
- }
- if (m == 0 || length(str) < length(shorteststr))
- shorteststr = str
- }
- str = shorteststr
- if (VALUE == "__undefined__")
- curlines[str] = "#undef " SYMBOL "\n"
- else if (VALUE == "__novalue__")
- curlines[str] = "#define " SYMBOL "\n"
- else
- curlines[str] = "#define " SYMBOL " " VALUE "\n"
- if (!lines[str])
- append = 0
- }
- if (append) {
- for (str in curlines)
- if (curlines[str])
- lines[str] = lines[str] curlines[str]
- } else {
- if (lines["1"])
- printf "%s", lines["1"]
- else if (j > 0) {
- ifstr = "#if "
- for (str in lines)
- if (lines[str] && str != lastelse) {
- printf "%s %s\n%s", ifstr, str, lines[str]
- ifstr = "#elif "
- }
- if (lastelse != "")
- printf "#else\n%s", lines[lastelse]
- printf "#endif\n"
- }
- split("",lines)
- lastelse = ""
- for (str in curlines)
- if (curlines[str]) {
- lines[str] = curlines[str]
- if (totalsum == NTOTAL && length(str) > length(lastelse)) {
- lastelse = str
- }
- }
- }
- }
- if (lines["1"])
- printf "%s", lines["1"]
- else if (j > 0) {
- ifstr = "#if "
- for (str in lines)
- if (lines[str] && str != lastelse) {
- printf "%s %s\n%s", ifstr, str, lines[str]
- ifstr = "#elif "
- }
- if (lastelse != "")
- printf "#else\n%s", lines[lastelse]
- printf "#endif\n"
- }
- }
-}
+++ /dev/null
-#!/bin/awk -f
-{
- # lines in input look like ARCH TYPE path/to/TYPE/ARCH/modules/foo.ver
- ARCH=$1
- ARCHES[ARCH]=1
- TYPE=$2
- TYPES[TYPE]=1
- NTOTAL++
- NARCHES[TYPE]++
- NTYPES[ARCH]++
- FILE=$3
-
- # read files that look like pairs of repeating
- # #define __ver_foo hexstring
- # #define foo _set_ver(foo)
- while ((getline < FILE) > 0) {
- if ($0 ~ /^[ ]*$/)
- continue
- if ($1 != "#define" || $2 !~ /^__ver_/)
- exit 1
-
- # this is a "#define __ver_foo somehex" line
- SYMBOL=gensub(/^__ver_/,"","",$2)
- VALUE=gensub(/^(smp_|2gig_|smp2gig_)/,"","",$3)
- VALUE=gensub(/^(smp|2gig|smp2gig)/,"","",VALUE)
- values[SYMBOL,ARCH,TYPE]=VALUE
-
- # skip the "#define foo _set_ver(foo)" line
- if ((getline < FILE) <= 0)
- exit 2
- if ($1 != "#define" || $2 != SYMBOL || $3 != "_set_ver(" SYMBOL ")")
- exit 3
- }
- close(FILE)
-}
-END {
- count=0
- for (key in values)
- if (values[key]) {
- count++
- split(key,x,SUBSEP)
- SYMBOL=x[1]
- ARCH=x[2]
- TYPE=x[3]
-
- # (re)initialize a few arrays to have no elements
- split("",x)
- split("",ntype)
- split("",total)
-
- totalsum=0
- for (arch in ARCHES)
- for (type in TYPES)
- if (values[SYMBOL,arch,type]) {
- VALUE = values[SYMBOL,arch,type]
- values[SYMBOL,arch,type] = ""
- ntype[VALUE,type] += 1
- total[VALUE] += 1
- if (x[VALUE])
- x[VALUE] = x[VALUE] " "
- x[VALUE] = x[VALUE] arch ":" type
- }
- ifstr="#if "
- for (VALUE in x) {
- if (total[VALUE] == NTOTAL) {
- # there is only one checksum for this symbol
- printf "#define __ver_%s\t_ver_str(%s)\n", SYMBOL, VALUE
- printf "#define %s _set_ver(%s)\n", SYMBOL, SYMBOL
- break
- }
-
- totalsum += total[VALUE]
- if (totalsum == NTOTAL && ifstr == "#elif") {
- # this is the last unique checksum for this symbol
- printf "#else\n#define __ver_%s\t_ver_str(%s)\n", SYMBOL, VALUE
- printf "#define %s _set_ver(%s)\n", SYMBOL, SYMBOL
- break
- }
-
- # there must be more than one checksum still to
- # print for this symbol
- str=""
- split(x[VALUE],y)
- for (type in TYPES)
- if (ntype[VALUE,type] == NARCHES[type]) {
- if (str) str = str " || "
- str = str "defined(__module__" type ")"
- for (k in y) {
- split(y[k], z, ":")
- if (z[2] == type)
- delete y[k]
- }
- }
- for (arch in ARCHES) {
- narch=0
- for (k in y) {
- split(y[k], z, ":")
- if (z[1] == arch)
- narch++
- }
- if (narch == NTYPES[arch]) {
- if (str) str = str " || "
- str = str "defined(__module__" arch ")"
- for (k in y) {
- split(y[k], z, ":")
- if (z[1] == arch)
- delete y[k]
- }
- }
- }
- for (k in y) {
- split(y[k], z, ":")
- if (str) str = str " || "
- str = str "defined(__module__" z[1] "_" z[2] ")"
- }
- printf "%s %s\n#define __ver_%s\t_ver_str(%s)\n", ifstr, str, SYMBOL, VALUE
- printf "#define %s _set_ver(%s)\n", SYMBOL, SYMBOL
- ifstr="#elif "
- }
- if (ifstr == "#elif ")
- printf "#endif\n"
- }
- if (!count)
- printf "\n"
-}
+++ /dev/null
-/*
- * Try to be a little smarter about which kernel are we currently running
- */
-
-#ifndef __rh_config_h__
-#define __rh_config_h__
-
-/*
- * First, get the version string for the running kernel from
- * /boot/kernel.h - initscripts should create it for us
- */
-
-#include "/boot/kernel.h"
-
-#if defined(__BOOT_KERNEL_SMP) && (__BOOT_KERNEL_SMP == 1)
-#define __module__smp
-#endif /* __BOOT_KERNEL_SMP */
-
-#if defined(__BOOT_KERNEL_BOOT) && (__BOOT_KERNEL_BOOT == 1)
-#define __module__BOOT
-#endif /* __BOOT_KERNEL_BOOT */
-
-#if defined(__BOOT_KERNEL_BOOTSMP) && (__BOOT_KERNEL_BOOTSMP == 1)
-#define __module__BOOTsmp
-#endif /* __BOOT_KERNEL_BOOTSMP */
-
-#if defined(__BOOT_KERNEL_ENTERPRISE) && (__BOOT_KERNEL_ENTERPRISE == 1)
-#define __module__enterprise
-#endif /* __BOOT_KERNEL_ENTERPRISE */
-
-#if defined(__BOOT_KERNEL_BIGMEM) && (__BOOT_KERNEL_BIGMEM == 1)
-#define __module__bigmem
-#endif /* __BOOT_KERNEL_BIGMEM */
-
-#if defined(__BOOT_KERNEL_DEBUG) && (__BOOT_KERNEL_DEBUG == 1)
-#define __module__debug
-#endif /* __BOOT_KERNEL_DEBUG */
-
-#if !defined(__module__smp) && !defined(__module__BOOT) && !defined(__module__BOOTsmp) && !defined(__module__enterprise) && !defined(__module__bigmem) && !defined(__module__debug)
-#define __module__up
-#endif /* default (BOOT_KERNEL_UP) */
-
-#ifdef __i386__
-# if defined(__MODULE_KERNEL_i586) && (__MODULE_KERNEL_i586 == 1)
-# define __module__i586
-# ifdef __module__up
-# define __module__i586_up
-# endif
-# ifdef __module__smp
-# define __module__i586_smp
-# endif
-# ifdef __module__BOOT
-# define __module__i586_BOOT
-# endif
-# ifdef __module__BOOTsmp
-# define __module__i586_BOOTsmp
-# endif
-# ifdef __module__enterprise
-# define __module__i586_enterprise
-# endif
-# ifdef __module__debug
-# define __module_i586_debug
-# endif
-# elif defined(__MODULE_KERNEL_i686) && (__MODULE_KERNEL_i686 == 1)
-# define __module__i686
-# ifdef __module__up
-# define __module__i686_up
-# endif
-# ifdef __module__smp
-# define __module__i686_smp
-# endif
-# ifdef __module__BOOT
-# define __module__i686_BOOT
-# endif
-# ifdef __module__BOOTsmp
-# define __module__i686_BOOTsmp
-# endif
-# ifdef __module__enterprise
-# define __module__i686_enterprise
-# endif
-# ifdef __module__bigmem
-# define __module__i686_bigmem
-# endif
-# ifdef __module__debug
-# define __module_i686_debug
-# endif
-# elif defined(__MODULE_KERNEL_athlon) && (__MODULE_KERNEL_athlon == 1)
-# define __module__athlon
-# ifdef __module__up
-# define __module__athlon_up
-# endif
-# ifdef __module__smp
-# define __module__athlon_smp
-# endif
-# ifdef __module__BOOT
-# define __module__athlon_BOOT
-# endif
-# ifdef __module__BOOTsmp
-# define __module__athlon_BOOTsmp
-# endif
-# ifdef __module__enterprise
-# define __module__athlon_enterprise
-# endif
-# ifdef __module__bigmem
-# define __module__athlon_bigmem
-# endif
-# ifdef __module__debug
-# define __module__athlon_debug
-# endif
-# else
-# define __module__i386
-# ifdef __module__up
-# define __module__i386_up
-# endif
-# ifdef __module__smp
-# define __module__i386_smp
-# endif
-# ifdef __module__BOOT
-# define __module__i386_BOOT
-# endif
-# ifdef __module__BOOTsmp
-# define __module__i386_BOOTsmp
-# endif
-# ifdef __module__enterprise
-# define __module__i386_enterprise
-# endif
-# ifdef __module__debug
-# define __module__i386_debug
-# endif
-# endif
-#endif
-
-#ifdef __sparc__
-# ifdef __arch64__
-# define __module__sparc64
-# ifdef __module__up
-# define __module__sparc64_up
-# endif
-# ifdef __module__smp
-# define __module__sparc64_smp
-# endif
-# ifdef __module__BOOT
-# define __module__sparc64_BOOT
-# endif
-# ifdef __module__BOOTsmp
-# define __module__sparc64_BOOTsmp
-# endif
-# ifdef __module__enterprise
-# define __module__sparc64_enterprise
-# endif
-# ifdef __module__debug
-# define __module__sparc64_debug
-# endif
-# else
-# define __module__sparc
-# ifdef __module__up
-# define __module__sparc_up
-# endif
-# ifdef __module__smp
-# define __module__sparc_smp
-# endif
-# ifdef __module__BOOT
-# define __module__sparc_BOOT
-# endif
-# ifdef __module__BOOTsmp
-# define __module__sparc_BOOTsmp
-# endif
-# ifdef __module__enterprise
-# define __module__sparc_enterprise
-# endif
-# ifdef __module__debug
-# define __module__sparc_debug
-# endif
-# endif
-#endif
-
-#ifdef __alpha__
-# define __module__alpha
-# ifdef __module__up
-# define __module__alpha_up
-# endif
-# ifdef __module__smp
-# define __module__alpha_smp
-# endif
-# ifdef __module__BOOT
-# define __module__alpha_BOOT
-# endif
-# ifdef __module__BOOTsmp
-# define __module__alpha_BOOTsmp
-# endif
-# ifdef __module__enterprise
-# define __module__alpha_enterprise
-# endif
-# ifdef __module__debug
-# define __module__alpha_debug
-# endif
-#endif
-
-#ifdef __ia64__
-# define __module__ia64
-# ifdef __module__up
-# define __module__ia64_up
-# endif
-# ifdef __module__smp
-# define __module__ia64_smp
-# endif
-# ifdef __module__BOOT
-# define __module__ia64_BOOT
-# endif
-# ifdef __module__BOOTsmp
-# define __module__ia64_BOOTsmp
-# endif
-# ifdef __module__enterprise
-# define __module__ia64_enterprise
-# endif
-# ifdef __module__debug
-# define __module__ia64_debug
-# endif
-#endif
-
-#if defined(__module__smp) || defined(__module__BOOTsmp) || defined(__module__enterprise) || defined(__module__bigmem)
-#define _ver_str(x) smp_ ## x
-#else
-#define _ver_str(x) x
-#endif
-
-#define RED_HAT_LINUX_KERNEL 1
-
-#endif /* __rh_config_h__ */