[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

l-k-h - ppc64 support



Hi folks

I hacked ppc64 support into l-k-h, it uses the same hack than sparc.

Bastian

-- 
You canna change the laws of physics, Captain; I've got to have thirty minutes!
=== debian/generate-asm.sh
==================================================================
--- debian/generate-asm.sh   (/linux-kernel-headers/debian/current)   (revision 44)
+++ debian/generate-asm.sh   (/linux-kernel-headers/trunk)   (revision 44)
@@ -2,67 +2,87 @@
 
 # Idea borrowed from RedHat's kernel package
 
-if [ -n "$1" ]; then
-	if [ ! -d "$1" ]; then
-		echo "$1" does not exist, or is not a directory
-		exit 1
-	fi
-	cd $1
-else
-	cd /usr/include
+arch="$1"
+dir_in="$2"
+dir_out="$3"
+
+if [ ! -d "$dir_in" ]; then
+	echo "$dir_in" does not exist, or is not a directory
+	exit 1
 fi
 
-if [ ! -d asm-sparc ] || [ ! -d asm-sparc64 ] ; then
-	echo E: asm-sparc and asm-sparc64 must exist, or you will have problems
+case "$arch" in
+	powerpc)
+		define_biarch="__powerpc64__"
+		kernel_arch="ppc"
+		kernel_arch_biarch="ppc64"
+		;;
+	sparc)
+		define_biarch="__arch64__"
+		kernel_arch="sparc"
+		kernel_arch_biarch="sparc64"
+		;;
+	*)
+		echo Invalid architeture >&2
+		exit 1
+esac
+
+asm_dir="asm-$kernel_arch"
+asm_dir_biarch="asm-$kernel_arch_biarch"
+
+if [ ! -d "$dir_in/$asm_dir" ] || [ ! -d "$dir_in/$asm_dir_biarch" ] ; then
+	echo E: $asm_dir and $asm_dir_biarch must exist, or you will have problems
 	exit 1
 fi
 
-rm -rf asm
-mkdir asm
+mkdir -p $dir_out/asm
+cp -a $dir_in/$asm_dir $dir_out/$asm_dir
+cp -a $dir_in/$asm_dir_biarch $dir_out/$asm_dir_biarch
 
-for h in `( ls asm-sparc; ls asm-sparc64 ) | grep '\.h$' | sort -u`; do
-	name=`echo $h | tr a-z. A-Z_`
+dirs=$((( cd "$dir_in/$asm_dir"; find . -type d ); ( cd "$dir_in/$asm_dir_biarch"; find . -type d )) | sort -u )
+files=$((( cd "$dir_in/$asm_dir"; find . -name "*.h" -type f ); ( cd "$dir_in/$asm_dir_biarch"; find . -name "*.h" -type f )) | sort -u )
+
+for h in $dirs; do
+	mkdir -p "$dir_out/asm/$h"
+done
+
+for h in $files; do
+	name=$(echo $h | tr a-z. A-Z_)
+	file_out="$dir_out/asm/$h"
 	# common header
-	cat > asm/$h << EOF
+	cat > $file_out << EOF
 /* All asm/ files are generated and point to the corresponding
- * file in asm-sparc or asm-sparc64. To regenerate, run "generate-asm"
+ * file in $asm_dir or $asm_dir_biarch.
  */
 
-#ifndef __SPARCSTUB__${name}__
-#define __SPARCSTUB__${name}__
-
 EOF
 
 	# common for sparc and sparc64
-	if [ -f asm-sparc/$h ] && [ -f asm-sparc64/$h ]; then
-		cat >> asm/$h <<EOF
-#ifdef __arch64__
-#include <asm-sparc64/$h>
+	if [ -f $dir_in/$asm_dir/$h ] && [ -f $dir_in/$asm_dir_biarch/$h ]; then
+		cat >> $file_out <<EOF
+#ifdef $define_biarch
+# include <$asm_dir_biarch/$h>
 #else
-#include <asm-sparc/$h>
+# include <$asm_dir/$h>
 #endif
 EOF
 
-	# sparc only
-	elif [ -f asm-sparc/$h ]; then
-		cat >> asm/$h <<EOF
-#ifndef __arch64__
-#include <asm-sparc/$h>
+	elif [ -f $dir_in/$asm_dir/$h ]; then
+		cat >> $file_out <<EOF
+#ifdef $define_biarch
+# error This header is not available for $kernel_arch_biarch
+#else
+# include <$asm_dir/$h>
 #endif
 EOF
-	# sparc64 only
 	else
-		cat >> asm/$h <<EOF
-#ifdef __arch64__
-#include <asm-sparc64/$h>
+		cat >> $file_out <<EOF
+#ifdef $define_biarch
+# include <$asm_dir_biarch/$h>
+#else
+# error This header is not available for $kernel_arch
 #endif
 EOF
 	fi
 
-	# common footer
-	cat >> asm/$h <<EOF
-
-#endif /* !__SPARCSTUB__${name}__ */
-EOF
-
 done
=== debian/changelog
==================================================================
--- debian/changelog   (/linux-kernel-headers/debian/current)   (revision 44)
+++ debian/changelog   (/linux-kernel-headers/trunk)   (revision 44)
@@ -1,3 +1,9 @@
+linux-kernel-headers (2.5.999-test7-bk-17.0powerpc64.1) local; urgency=low
+
+  * Add powerpc64 support.
+
+ -- Bastian Blank <waldi@debian.org>  Tue, 15 Mar 2005 15:29:28 +0000
+
 linux-kernel-headers (2.5.999-test7-bk-17) unstable; urgency=low
 
   * GOTO Masanori <gotom@debian.org>
=== debian/rules
==================================================================
--- debian/rules   (/linux-kernel-headers/debian/current)   (revision 44)
+++ debian/rules   (/linux-kernel-headers/trunk)   (revision 44)
@@ -27,17 +27,13 @@
 
 lkh-install: stamp-lkh-install
 stamp-lkh-install: build
+	rm -rf $(includedir)
 	install -d $(includedir)
 	install -d $(includedir)/linux
 
-ifeq ($(kernel_arch),sparc)
-	# Sparc and Sparc64 have separate headers.  Generate wrappers.
-	cp -a include/asm-sparc $(includedir)/asm-sparc
-	cp -a include/asm-sparc64 $(includedir)/asm-sparc64
-	mkdir include/asm
-	sh debian/generate-asm.sh $(includedir)
+ifneq (,$(findstring $(DEB_HOST_ARCH), powerpc sparc))
+	sh debian/generate-asm.sh $(DEB_HOST_ARCH) include $(includedir)
 else
-	rm -rf $(includedir)/asm
 	cp -a include/asm-$(kernel_arch) $(includedir)/asm
 endif
 

Attachment: signature.asc
Description: Digital signature


Reply to: