error: while loading streams_timod
"kishore" <[email protected]> Sat, 7 Jan 2006 14:40:24 +0530
| Newsgroups | gmane.linux.kernel.streams |
|---|---|
| Message-ID | <002e01c6136a$32585a30$3b01a8c0@kishore> |
hi all,
I used LiS-2.18.0.tgz (downloaded from gcom.com) along with the patch
file ( attached with this mail).
I merged my drivers along with streams.
Its working fine on
LinuxVersion : Red Hat Enterprise Linux WS release 4 (Nahant Update
2)
Kernel Version : 2.6.9-16.EL
I am able to work with my drivers.
When I used the same (LiS-2.18 and patch) on the following distribution,
LinuxVersion : Red Hat Enterprise Linux ES release 4 (Nahant Update
2)
Kernel Version : 2.6.9-22.EL
it raised the following message and my drivers are not working.
LiS-RunQ-2.18.0r4 running on CPU 0 pid=5161
streams_timod: no version magic, tainting kernel.
STREAMS module "timod" registered, id 5.
I am not aware of this issue. Can any one tell me why it will arise.
Let me know, " Is streams_timod need the file /etc/modprobe.conf ".
Before, the same driver is working fine on ES4 with 2.6.9-22.EL; but
after some modifications in /etc/modprobe.conf, this problem was arised ?
Thanks in advance.
regards,
kishore,packetware.
LiS-2.18.0-RHEL4.patch
(application/octet-stream, 34.3 KB)
diff -Naur LiS-2.18-orig/config.mk LiS-2.18-RHEL4/config.mk
--- LiS-2.18-orig/config.mk 2004-10-11 11:40:44.000000000 -0400
+++ LiS-2.18-RHEL4/config.mk 2005-04-13 05:54:21.093568464 -0400
@@ -61,6 +61,9 @@
AS =$(CROSS_COMPILE)as
LD =$(CROSS_COMPILE)ld
+ifeq ($(ARCH),ppc64)
+LD =$(CROSS_COMPILE)ld -m elf64ppc
+endif
CPP =$(CC_NAME) -E
AR =$(CROSS_COMPILE)ar
NM =$(CROSS_COMPILE)nm
@@ -141,7 +141,8 @@
#
PROBLEMS = -Wpointer-arith
PROBLEMS =
-XOPTS = -Wall -Wstrict-prototypes $(PROBLEMS)
+# Added -D__KERNGLUE__ to keep RHEL4 happy
+XOPTS = -Wall -Wstrict-prototypes $(PROBLEMS) -D__KERNGLUE__
XOPTS+= -fno-strict-aliasing -Wno-sign-compare -fno-common
#
@@ -170,6 +171,9 @@
ifeq ($(ARCH),ppc)
XOPTS += -D__powerpc__ -fno-builtin -pipe -D_PPC_LIS_
endif
+ifeq ($(ARCH),ppc64)
+XOPTS += -D_PPC_LIS_ -D_PPC64_LIS_ -m64 -msoft-float -pipe -Wno-uninitialized -mminimal-toc -mtraceback=none -mcall-aixdesc -mtune=power4 -fno-unit-at-a-time
+endif
# For s390 & s390x architecture we need some bypasses
ifeq ($(ARCH),s390)
XOPTS += -D_S390_LIS_
diff -Naur LiS-2.18-orig/Configure LiS-2.18-RHEL4/Configure
--- LiS-2.18-orig/Configure 2004-10-11 16:20:49.000000000 -0400
+++ LiS-2.18-RHEL4/Configure 2005-04-11 02:46:49.335246168 -0400
@@ -464,7 +464,7 @@
ac_get_config()
{
if [ -f $KSRC/include/linux/config.h ]; then
- cc -I$KSRC/include -E -dM \
+ cc -D__KERNGLUE__ -I$KSRC/include -E -dM \
-include $KSRC/include/linux/config.h dummy.c >kconfig
x=`grep $1 kconfig 2>&1`
if [ $? -eq 0 ]; then # found it
@@ -600,7 +600,7 @@
get_vers_h()
{
if [ -f $1 ]; then
- cc -I$KSRC/include -E -dM -include $1 dummy.c > kver
+ cc -D__KERNGLUE__ -I$KSRC/include -E -dM -include $1 dummy.c > kver
KVER_H=`grep UTS_RELEASE kver | \
sed -e 's/^.*UTS_RELEASE.//' -e's/"//g' -e's/ *$//'`
NKVER_H=`echo $KVER_H | sed -e 's/-.*//'`
@@ -1332,10 +1332,19 @@
if [ "$MACHINE" = "s390" -o "$MACHINE" = "s390x" ]; then
SMP_GREP_ID='smp_num_cpus'
+elif [ "$MACHINE" = "ppc64" ]; then
+ SMP_GREP_ID='smp_cpus_done'
else
SMP_GREP_ID='cpu_online_map'
fi
+if [ "$MACHINE" = "s390x" ]; then
+ INT_PSW=n
+fi
+if [ "$MACHINE" = "ppc64" ]; then
+ INT_PSW=n
+fi
+
#
# TARGET
#
diff -Naur LiS-2.18-orig/Makefile LiS-2.18-RHEL4/Makefile
--- LiS-2.18-orig/Makefile 2004-09-10 10:28:47.000000000 -0400
+++ LiS-2.18-RHEL4/Makefile 2005-04-11 02:49:00.192352864 -0400
@@ -74,12 +74,15 @@
endif
#
-# If building on 64-bit s390 then build libc for 32-bit applications
+# If building on 64-bit s390x or ppc64 then build libc for 32-bit applications
# running over 64-bit kernel.
#
ifeq ($(ARCH),s390x)
ALL_TARGETS += libc32over64
endif
+ifeq ($(ARCH),ppc64)
+ALL_TARGETS += libc32over64
+endif
#
# Does the user want us to install streams.o in the official
@@ -161,6 +164,9 @@
ifeq ($(ARCH),s390x)
$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
endif
+ifeq ($(ARCH),ppc64)
+ $(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
+endif
$(Q)$(MAKE) -C $(UTILOBJ) $@
$(Q)$(MAKE) -C $(DRVROBJ) $@
$(Q)$(MAKE) -C $(HEADOBJ) $@
@@ -275,6 +281,9 @@
ifeq ($(ARCH),s390x)
-$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
endif
+ifeq ($(ARCH),ppc64)
+ -$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
+endif
-$(Q)$(MAKE) -C $(UTILOBJ) $@
-$(Q)$(MAKE) -C $(DRVROBJ) $@
-$(Q)$(MAKE) -C man $@
@@ -282,6 +282,7 @@
ifeq ($(CONFIG_STREAMS),m)
-$(Q) scripts/update_conf.modules
-$(Q) (cd $(MOD_INST_DIR); rm -f streams.o streams-*.o)
+ -$(Q) (cd $(MOD_INST_DIR); rm -f streams.ko streams-*.ko)
endif
endif # .config_mk
$(nothing)
@@ -363,7 +363,11 @@
#
streams.o: $(DRVROBJ)/drivers.o $(HEADOBJ)/streamshead.o pkg/drivers.o
$(Q_ECHO) $(qtag_LDm)$(reltarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -r -d -m elf64ppc -o $@ $^
+else
$(Q)$(LD) -r -d -o $@ $^
+endif
$(HEADOBJ)/streamshead.o: config
$(Q)$(MAKE) -C $(HEADOBJ)
@@ -559,6 +568,9 @@
ifeq ($(ARCH),s390x)
-$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
endif
+ifeq ($(ARCH),ppc64)
+ -$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
+endif
-$(Q)$(MAKE) -C $(HEADOBJ) $@
-$(Q)$(MAKE) -C $(DRVROBJ) $@
-$(Q)$(MAKE) -C $(UTILOBJ) $@
@@ -576,6 +588,9 @@
ifeq ($(ARCH),s390x)
$(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
endif
+ifeq ($(ARCH),ppc64)
+ $(Q)$(MAKE) -C $(LIBOBJ32OVER64) $@
+endif
$(Q)$(MAKE) -C $(HEADOBJ) $@
$(Q)$(MAKE) -C $(DRVROBJ) $@
$(Q)$(MAKE) -C $(UTILOBJ) $@
diff -Naur LiS-2.18-orig/drivers/str/Config LiS-2.18-RHEL4/drivers/str/Config
--- LiS-2.18-orig/drivers/str/Config 2004-09-02 12:42:46.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/Config 2005-04-11 02:40:01.106306400 -0400
@@ -36,7 +36,7 @@
module connld connld_
module relay relay_
module relay2 relay2_
-module ip_strms ip_to_streams_
+#module ip_strms ip_to_streams_
module timod timod_
module tirdwr tirdwr_
@@ -72,7 +72,7 @@
objname module pipemod pipemod
objname module connld connld
objname module relay2 relay
-objname module ip_strms ip_strm_mod
+#objname module ip_strms ip_strm_mod
objname module timod timod
objname module tirdwr tirdwr
diff -Naur LiS-2.18-orig/drivers/str/loop.c LiS-2.18-RHEL4/drivers/str/loop.c
--- LiS-2.18-orig/drivers/str/loop.c 2004-09-13 11:12:31.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/loop.c 2005-04-12 08:43:19.235999680 -0400
@@ -145,7 +145,9 @@
if (rtn < 0 && rtn != -ENOENT)
{
printk("unlink %s: error %d\n", name, rtn);
+#if !defined(__ppc64__)
return ;
+#endif
}
if (maj == 0) /* don't make the node */
diff -Naur LiS-2.18-orig/drivers/str/mk.bdy LiS-2.18-RHEL4/drivers/str/mk.bdy
--- LiS-2.18-orig/drivers/str/mk.bdy 2004-06-06 17:05:25.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/mk.bdy 2005-04-12 08:49:15.441028864 -0400
@@ -28,7 +28,11 @@
drivers.o: $(DRVRS) $(TDRVRS)
$(Q_ECHO) $(qtag_LD)$(relpwdtarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -r -m elf64ppc -o $@ $^
+else
$(Q)$(LD) -r -o $@ $^
+endif
# Compiling a target-specific object ( $(TDRVRS) )
%.o: %.c
diff -Naur LiS-2.18-orig/drivers/str/linux/liskmod.c LiS-2.18-RHEL4/drivers/str/linux/liskmod.c
--- LiS-2.18-orig/drivers/str/linux/liskmod.c 2004-06-06 17:05:25.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/linux/liskmod.c 2005-04-11 02:40:01.107306248 -0400
@@ -49,7 +49,9 @@
# ifdef LISMODVERS
# include <sys/modversions.h> /* /usr/src/LiS/include/sys */
# else
-# include <linux/modversions.h> /* BEFORE module.h, kernel.h, ... */
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
+# include <linux/modversions.h> /* BEFORE module.h, kernel.h, ... */
+# endif
# endif
#endif
diff -Naur LiS-2.18-orig/drivers/str/linux/Makefile LiS-2.18-RHEL4/drivers/str/linux/Makefile
--- LiS-2.18-orig/drivers/str/linux/Makefile 2004-09-10 10:52:18.000000000 -0400
+++ LiS-2.18-RHEL4/drivers/str/linux/Makefile 2005-04-11 02:40:01.107306248 -0400
@@ -47,10 +47,10 @@
TOBJS += ip_to_dlpi
endif
ifeq ($(ARCH),s390)
-TOBJS := connld
+TOBJS := connld mtdrv
endif
ifeq ($(ARCH),s390x)
-TOBJS := connld
+TOBJS := connld mtdrv
endif
# Similar to TOBJS, but non-streams modules
diff -Naur LiS-2.18-orig/head/linux/exports.c LiS-2.18-RHEL4/head/linux/exports.c
--- LiS-2.18-orig/head/linux/exports.c 2004-09-16 12:42:48.000000000 -0400
+++ LiS-2.18-RHEL4/head/linux/exports.c 2005-04-13 02:40:01.107306248 -0400
@@ -34,7 +34,9 @@
# ifdef LISMODVERS
# include <sys/modversions.h> /* /usr/src/LiS/include/sys */
# else
-# include <linux/modversions.h>
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
+# include <linux/modversions.h>
+# endif
# endif
#endif
#define CONFIG_MODULES 1
@@ -172,9 +174,9 @@
EXPORT_SYMBOL_NOVERS(lis_major);
EXPORT_SYMBOL_NOVERS(lis_malloc);
EXPORT_SYMBOL_NOVERS(lis_mark_mem_fcn);
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
EXPORT_SYMBOL_NOVERS(lis_membar);
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
EXPORT_SYMBOL_NOVERS(lis_milli_to_ticks);
EXPORT_SYMBOL_NOVERS(lis_mknod);
#if 0 && defined(CONFIG_DEV)
@@ -205,7 +207,7 @@
EXPORT_SYMBOL_NOVERS(lis_osif_pci_write_config_word);
EXPORT_SYMBOL_NOVERS(lis_osif_sti);
EXPORT_SYMBOL_NOVERS(lis_own_spl);
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
EXPORT_SYMBOL_NOVERS(lis_pcibios_find_class);
EXPORT_SYMBOL_NOVERS(lis_pcibios_find_device);
EXPORT_SYMBOL_NOVERS(lis_pcibios_init);
@@ -238,7 +240,7 @@
EXPORT_SYMBOL_NOVERS(lis_pci_write_config_byte);
EXPORT_SYMBOL_NOVERS(lis_pci_write_config_dword);
EXPORT_SYMBOL_NOVERS(lis_pci_write_config_word);
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
EXPORT_SYMBOL_NOVERS(lis_phys_to_virt);
EXPORT_SYMBOL_NOVERS(lis_print_block);
EXPORT_SYMBOL_NOVERS(lis_print_data);
@@ -351,7 +353,7 @@
EXPORT_SYMBOL_NOVERS(lis_xmsgsize);
EXPORT_SYMBOL_NOVERS(lis_zmalloc);
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
EXPORT_SYMBOL_NOVERS(lis_osif_pci_alloc_consistent);
EXPORT_SYMBOL_NOVERS(lis_osif_pci_dma_supported);
@@ -395,4 +397,4 @@
EXPORT_SYMBOL_NOVERS(__wrap_memcmp);
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
diff -Naur LiS-2.18-orig/head/linux-mdep.c LiS-2.18-RHEL4/head/linux-mdep.c
--- LiS-2.18-orig/head/linux-mdep.c 2004-10-13 12:07:36.000000000 -0400
+++ LiS-2.18-RHEL4/head/linux-mdep.c 2005-04-13 06:46:59.859912072 -0400
@@ -53,6 +53,9 @@
#include <linux/module.h>
#include <sys/LiS/modcnt.h> /* after linux-mdep.h & module.h */
#include <linux/version.h>
+#if defined(KERNEL_2_5)
+#include <linux/init.h>
+#endif
#include <linux/sched.h>
#define __KERNEL_SYSCALLS__ 1 /* to make kernel_thread visible */
@@ -94,7 +97,7 @@
*/
#if ( defined(__s390__) || defined(__s390x__) ) && defined(KERNEL_2_4)
#define NUM_CPUS smp_num_cpus
-#elif defined(KERNEL_2_5)
+#elif defined(KERNEL_2_5) /*? really ?*/
#define NUM_CPUS num_online_cpus()
#else
#define NUM_CPUS smp_num_cpus
@@ -194,7 +197,7 @@
static struct inode * lis_get_inode( mode_t mode, dev_t dev );
void lis_print_dentry(struct dentry *d, char *comment) ;
-#ifdef _S390X_LIS_
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
extern long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
extern int register_ioctl32_conversion(unsigned int fd,
int (*handler)(unsigned int fd,
@@ -998,7 +1001,11 @@
if (inode && inode->i_cdev)
printk(">> i->i_cdev: c@0x%p/%d/%x \"%s\"\n",
inode->i_cdev,
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,8)
K_ATOMIC_READ(&inode->i_cdev->kobj.refcount),
+#else
+ K_ATOMIC_READ(&inode->i_cdev->kobj.kref.refcount),
+#endif
DEV_TO_INT(inode->i_cdev->dev),
(inode->i_cdev->owner ?
inode->i_cdev->owner->name : "No-Owner")) ;
@@ -1020,6 +1027,16 @@
#endif
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9)
+void cdev_put (struct cdev *p)
+{
+ if (p) {
+ kobject_put(&p->kobj);
+ module_put(p->owner);
+ }
+}
+#endif
+
void lis_dput(struct dentry *d)
{
struct super_block *sb = NULL ;
@@ -3621,7 +3638,7 @@
}
-#ifdef _S390X_LIS_
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
int lis_ioctl32_str (unsigned int fd, unsigned int cmd, unsigned long arg)
{
strioctl_t par64;
@@ -3774,7 +3791,7 @@
lis_start_qsched() ; /* ensure q running process going */
-#ifdef _S390X_LIS_
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
register_ioctl32_conversion(I_SETSIG,sys_ioctl);
register_ioctl32_conversion(I_SRDOPT,sys_ioctl);
register_ioctl32_conversion(I_PUSH,sys_ioctl);
@@ -3805,7 +3822,7 @@
* Magic named routine called by kernel module support code.
*/
#ifdef KERNEL_2_5
-int _lis_init_module( void )
+static int __init _lis_init_module( void )
#else
int init_module( void )
#endif
@@ -3817,7 +3834,7 @@
* Magic named routine called by kernel module support code.
*/
#ifdef KERNEL_2_5
-void _lis_cleanup_module( void )
+static void __exit _lis_cleanup_module( void )
#else
void cleanup_module( void )
#endif
@@ -3851,12 +3868,12 @@
lis_kill_qsched() ; /* drivers/str/runq.c */
lis_terminate_head();
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS))
{
extern void lis_pci_cleanup(void) ;
lis_pci_cleanup() ;
}
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
unregister_chrdev(lis_major,"streams");
MNTSYNC();
@@ -3885,7 +3902,7 @@
lis_terminate_final() ; /* LiS internal memory */
lis_mem_terminate() ; /* LiS use of slab allocator */
-#ifdef _S390X_LIS_
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
unregister_ioctl32_conversion(I_SETSIG);
unregister_ioctl32_conversion(I_SRDOPT);
unregister_ioctl32_conversion(I_PUSH);
diff -Naur LiS-2.18-orig/head/mk.bdy LiS-2.18-RHEL4/head/mk.bdy
--- LiS-2.18-orig/head/mk.bdy 2004-10-11 11:40:44.000000000 -0400
+++ LiS-2.18-RHEL4/head/mk.bdy 2005-04-12 08:50:00.564091792 -0400
@@ -51,7 +51,11 @@
streamshead.o: $(OBJS) $(XOBJS) $(ASMOBJS)
$(Q_ECHO) $(qtag_LD)$(relpwdtarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -r -m elf64ppc -o $@ $^
+else
$(Q)$(LD) -r -o $@ $^
+endif
#
# Some rules to make object files
diff -Naur LiS-2.18-orig/head/mod.c LiS-2.18-RHEL4/head/mod.c
--- LiS-2.18-orig/head/mod.c 2004-10-11 11:40:44.000000000 -0400
+++ LiS-2.18-RHEL4/head/mod.c 2005-04-13 06:47:42.641931072 -0400
@@ -1022,7 +1022,7 @@
if (devptr->irq <= 0)
return ;
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
retval = request_irq(devptr->irq, devptr->handler, 0, name, NULL);
if (retval)
{
@@ -1169,7 +1169,7 @@
devptr = &lis_device_config[i] ;
if (devptr->irq > 0)
{
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
free_irq(devptr->irq, NULL) ;
#endif
diff -Naur LiS-2.18-orig/head/osif.c LiS-2.18-RHEL4/head/osif.c
--- LiS-2.18-orig/head/osif.c 2004-10-11 17:49:31.000000000 -0400
+++ LiS-2.18-RHEL4/head/osif.c 2005-04-13 06:48:09.149895440 -0400
@@ -335,7 +335,7 @@
#endif
#if LINUX_VERSION_CODE >= 0x020400 /* 2.4 kernel */
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
/***************************************
* PCI DMA Mapping Fcns *
@@ -473,7 +473,7 @@
#endif /* 2.4.13 */
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
#endif /* LINUX_VERSION_CODE >= 0x020400 */
@@ -536,7 +536,9 @@
if (dv->handler && dv->dev_id && dv->irq)
{
printk("LiS freeing IRQ%u\n", dv->irq) ;
+#if !defined(__s390__)
free_irq(dv->irq, dv) ;
+#endif
}
FREE(dv) ;
dv = nxt ;
@@ -879,7 +881,11 @@
************************************************************************/
void _RP lis_sleep_on(OSIF_WAIT_Q_ARG)
{
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8)
sleep_on(wq) ;
+#else
+ wait_event(wq,0) ;
+#endif
}
void _RP lis_interruptible_sleep_on(OSIF_WAIT_Q_ARG)
diff -Naur LiS-2.18-orig/head/stream.c LiS-2.18-RHEL4/head/stream.c
--- LiS-2.18-orig/head/stream.c 2004-09-10 17:34:18.000000000 -0400
+++ LiS-2.18-RHEL4/head/stream.c 2005-05-12 13:01:52.838008472 -0400
@@ -142,10 +142,7 @@
lis_currq[cpu_id] = q ; /* for debugging */
if (!LIS_CHECK_Q_MAGIC(q))
{
- printk("queuerun: scan queue is broken\n") ;
- lis_scanqhead = NULL ;
- lis_scanqtail = NULL ;
- K_ATOMIC_SET(&lis_runq_req_cnt, 0) ;
+ printk("queuerun: queue flags are 0x%lx\n",q->q_flag) ;
goto scan_loop_bottom ;
}
@@ -245,10 +242,7 @@
lis_currq[cpu_id] = q ; /* for debugging */
if (!LIS_CHECK_Q_MAGIC(q))
{
- printk("queuerun: service queue is broken\n") ;
- lis_qhead = NULL ;
- lis_qtail = NULL ;
- K_ATOMIC_SET(&lis_runq_req_cnt, 0) ;
+ printk("queuerun(2): queue flags are 0x%lx\n",q->q_flag) ;
goto qsched_loop_bottom ;
}
diff -Naur LiS-2.18-orig/include/sys/osif.h LiS-2.18-RHEL4/include/sys/osif.h
--- LiS-2.18-orig/include/sys/osif.h 2004-09-16 14:50:09.000000000 -0400
+++ LiS-2.18-RHEL4/include/sys/osif.h 2005-04-13 06:50:34.702997496 -0400
@@ -173,7 +173,7 @@
#if LINUX_VERSION_CODE >= 0x020400 /* 2.4 kernel */
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
#ifdef pci_alloc_consistent
#undef pci_alloc_consistent
#endif
@@ -255,7 +255,7 @@
#endif
#define sg_dma_len lis_osif_sg_dma_len
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
#endif
@@ -526,7 +526,7 @@
extern size_t lis_osif_sg_dma_len(struct scatterlist *sg)_RP;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,13) /* 2.4.13 or later */
-#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_))
+#if (!defined(_S390_LIS_) && !defined(_S390X_LIS_) && !defined(_PPC64_LIS_))
extern void lis_osif_pci_unmap_page(struct pci_dev *hwdev,
dma_addr_t dma_address, size_t size,
int direction)_RP;
@@ -544,7 +544,7 @@
dma64_addr_t dma_addr)_RP;
extern void lis_osif_pci_dac_dma_sync_single(struct pci_dev *pdev,
dma64_addr_t dma_addr, size_t len, int direction)_RP;
-#endif /* S390 or S390X */
+#endif /* S390 or S390X or PPC64 */
#endif /* 2.4.13 */
diff -Naur LiS-2.18-orig/include/sys/gnu.stropts.h LiS-2.18-RHEL4/include/sys/gnu.stropts.h
--- LiS-2.18-orig/include/sys/gnu.stropts.h 1999-12-04 15:00:31.000000000 -0500
+++ LiS-2.18-RHEL4/include/sys/gnu.stropts.h 2005-04-11 02:40:01.113305336 -0400
@@ -22,7 +22,7 @@
#include <bits/types.h>
/* Macros used as `request' argument to `ioctl'. */
-#define __SID ('S' << 8)
+#define __SID (0xdc << 8)
#define I_NREAD (__SID | 1) /* Counts the number of data bytes in the data
block in the first message. */
diff -Naur LiS-2.18-orig/include/sys/LiS/linux-mdep.h LiS-2.18-RHEL4/include/sys/LiS/linux-mdep.h
--- LiS-2.18-orig/include/sys/LiS/linux-mdep.h 2004-09-16 12:41:59.000000000 -0400
+++ LiS-2.18-RHEL4/include/sys/LiS/linux-mdep.h 2005-04-11 02:40:01.111305640 -0400
@@ -82,14 +82,16 @@
* versions.
*/
#define queue_t irda_queue_t
+#include <linux/version.h>
#ifdef MODVERSIONS
# ifdef LISMODVERS
# include <sys/modversions.h> /* /usr/src/LiS/include/sys */
# else
-# include <linux/modversions.h>
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
+# include <linux/modversions.h>
+# endif
# endif
#endif
-#include <linux/version.h>
#ifndef KERNEL_VERSION
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#endif
diff -Naur LiS-2.18-orig/include/sys/LiS/module.h LiS-2.18-RHEL4/include/sys/LiS/module.h
--- LiS-2.18-orig/include/sys/LiS/module.h 2004-09-08 11:48:31.000000000 -0400
+++ LiS-2.18-RHEL4/include/sys/LiS/module.h 2005-04-11 02:40:01.111305640 -0400
@@ -40,7 +40,9 @@
# ifdef LISMODVERS
# include <sys/modversions.h> /* /usr/src/LiS/include/sys */
# else
-# include <linux/modversions.h>
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
+# include <linux/modversions.h>
+# endif
# endif
# endif
# include <linux/module.h>
diff -Naur LiS-2.18-orig/include/sys/strmsg.h LiS-2.18-RHEL4/include/sys/strmsg.h
--- LiS-2.18-orig/include/sys/strmsg.h 2004-02-19 16:24:24.000000000 -0500
+++ LiS-2.18-RHEL4/include/sys/strmsg.h 2005-04-11 02:40:01.111305640 -0400
@@ -92,34 +92,33 @@
QNORM = 0x00, /* - S U O A H M L */
M_DATA = 0x00, /* | S U O A H M L */
M_PROTO = 0x01, /* | S U O A H M L */
- M_BREAK = 0x08, /* v S U O(0x10) A H M L(0x02) */
- M_PASSFP = 0x09, /* | S U O(0x11) A H M L(0x06) */
- M_EVENT = 0x0a, /* ? S */
- M_SIG = 0x0b, /* ^ S U O(0x13) A H M L(0x09) */
- M_DELAY = 0x0c, /* v S U O(0x14) A H M L(0x04) */
- M_CTL = 0x0d, /* | S U O(0x15) A H M L(0x03) */
- M_IOCTL = 0x0e, /* v S U O(0x16) A H M L(0x05) */
- M_SETOPTS = 0x10, /* ^ S U O(0x20) A H M L(0x08) */
- M_RSE = 0x11, /* | S U O(0x21) A H M L(0x07) */
+ M_BREAK = 0x02, /* v S U O(0x10) A H M L(0x02) */
+ M_PASSFP = 0x06, /* | S U O(0x11) A H M L(0x06) */
+ M_SIG = 0x09, /* ^ S U O(0x13) A H M L(0x09) */
+ M_DELAY = 0x04, /* v S U O(0x14) A H M L(0x04) */
+ M_CTL = 0x03, /* | S U O(0x15) A H M L(0x03) */
+ M_IOCTL = 0x05, /* v S U O(0x16) A H M L(0x05) */
+ M_SETOPTS = 0x08, /* ^ S U O(0x20) A H M L(0x08) */
+ M_RSE = 0x07, /* | S U O(0x21) A H M L(0x07) */
M_TRAIL = 0x12, /* ? U */
M_BACKWASH = 0x13, /* v A */
- QPCTL = 0x80, /* - S U O A H M L(0x0a) */
- M_IOCACK = 0x81, /* ^ S U O A H M L(0x0f) */
- M_IOCNAK = 0x82, /* ^ S U O A H M L(0x10) */
- M_PCPROTO = 0x83, /* | S U O A H M L(0x12) */
- M_PCSIG = 0x84, /* ^ S U O A H M L(0x14) */
- M_READ = 0x85, /* v S U O(0x8b) A H(0x8b) M(0x8b) L(0x15) */
- M_FLUSH = 0x86, /* | S U O A H M L(0x0d) */
- M_STOP = 0x87, /* v S U O A H M L(0x16) */
- M_START = 0x88, /* v S U O A H M L(0x17) */
- M_HANGUP = 0x89, /* ^ S U O A H M L(0x0e) */
- M_ERROR = 0x8a, /* ^ S U O A H M L(0x0c) */
- M_COPYIN = 0x8b, /* ^ S U O(0x8d) A H(0x8d) M(0x8c) L(0x0a) */
- M_COPYOUT = 0x8c, /* ^ S U O(0x8e) A H(0x8e) M(0x8d) L(0x0b) */
- M_IOCDATA = 0x8d, /* v S U O(0x8f) A H(0x8f) M(0x8e) L(0x11) */
- M_PCRSE = 0x8e, /* | S U O(0x90) A H(0x90) M(0x90) L(0x13) */
- M_STOPI = 0x8f, /* v S U O(0x91) A H(0x91) M(0x91) L(0x19) */
- M_STARTI = 0x90, /* v S U O(0x92) A H(0x92) M(0x92) L(0x18) */
+ QPCTL = 0x0a, /* - S U O A H M L(0x0a) */
+ M_IOCACK = 0x0f, /* ^ S U O A H M L(0x0f) */
+ M_IOCNAK = 0x10, /* ^ S U O A H M L(0x10) */
+ M_PCPROTO = 0x12, /* | S U O A H M L(0x12) */
+ M_PCSIG = 0x14, /* ^ S U O A H M L(0x14) */
+ M_READ = 0x15, /* v S U O(0x8b) A H(0x8b) M(0x8b) L(0x15) */
+ M_FLUSH = 0x0d, /* | S U O A H M L(0x0d) */
+ M_STOP = 0x16, /* v S U O A H M L(0x16) */
+ M_START = 0x17, /* v S U O A H M L(0x17) */
+ M_HANGUP = 0x0e, /* ^ S U O A H M L(0x0e) */
+ M_ERROR = 0x0c, /* ^ S U O A H M L(0x0c) */
+ M_COPYIN = 0x0a, /* ^ S U O(0x8d) A H(0x8d) M(0x8c) L(0x0a) */
+ M_COPYOUT = 0x0b, /* ^ S U O(0x8e) A H(0x8e) M(0x8d) L(0x0b) */
+ M_IOCDATA = 0x11, /* v S U O(0x8f) A H(0x8f) M(0x8e) L(0x11) */
+ M_PCRSE = 0x13, /* | S U O(0x90) A H(0x90) M(0x90) L(0x13) */
+ M_STOPI = 0x19, /* v S U O(0x91) A H(0x91) M(0x91) L(0x19) */
+ M_STARTI = 0x18, /* v S U O(0x92) A H(0x92) M(0x92) L(0x18) */
/* the rest of these are all over the board, only M_UNHANGUP is common,
* they have been renumbered so that at least they don't overlap
diff -Naur LiS-2.18-orig/include/sys/stropts.h LiS-2.18-RHEL4/include/sys/stropts.h
--- LiS-2.18-orig/include/sys/stropts.h 2004-07-30 11:52:59.000000000 -0400
+++ LiS-2.18-RHEL4/include/sys/stropts.h 2005-04-11 02:40:01.113305336 -0400
@@ -260,8 +260,8 @@
#undef STR
#endif
-#define __SID ('S'<<8) /* for GNU libc compatibility */
-#define STR ('S'<<8) /* for UnixWare/Solaris compatibility */
+#define __SID (0xdc<<8) /* for GNU libc compatibility */
+#define STR (0xdc<<8) /* for UnixWare/Solaris compatibility */
#define I_NREAD (__SID | 1)
#define I_PUSH (__SID | 2)
#define I_POP (__SID | 3)
diff -Naur LiS-2.18-orig/libc/linux/Makefile LiS-2.18-RHEL4/libc/linux/Makefile
--- LiS-2.18-orig/libc/linux/Makefile 2004-09-09 16:14:13.000000000 -0400
+++ LiS-2.18-RHEL4/libc/linux/Makefile 2005-04-11 02:56:49.932941440 -0400
@@ -13,6 +13,11 @@
# For 64-bit zSeries, specify use of position independent code
XOPTS += -fPIC
endif
+# For 64-bit ppc64, specify use of position independent code
+ifeq ($(ARCH), ppc64)
+XOPTS += -fPIC -m64
+endif
+
include $(LIBDIR)/mk.bdy
diff -Naur LiS-2.18-orig/libc/mk.bdy LiS-2.18-RHEL4/libc/mk.bdy
--- LiS-2.18-orig/libc/mk.bdy 2005-04-12 08:39:09.827976880 -0400
+++ LiS-2.18-RHEL4/libc/mk.bdy 2005-04-12 09:04:40.416987608 -0400
@@ -28,11 +28,19 @@
$(LIB_SHARED): $(LIBOBJS)
$(Q_ECHO) $(qtag_LD)$(reltarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -shared -m elf64ppc -o $@ $^ -lc
+else
$(Q)$(LD) -shared -o $@ $^ -lc
+endif
$(LIB_PSHARED): $(PRELDOBJS)
$(Q_ECHO) $(qtag_LD)$(reltarget)
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -shared -m elf64ppc -o $@ $^ -lc
+else
$(Q)$(LD) -shared -o $@ $^ -lc
+endif
$(LIB_STATIC): $(LIBOBJS)
-$(Q)rm -f $@
@@ -63,18 +71,22 @@
install: .compiler all
$(Q_ECHO) $(qtag_INSTALL)$(relpwd)
-ifneq ($(ARCH),s390x)
- $(Q)install -d $(DEST_LIBDIR)
- $(Q)install -m 0755 $(LIB_SHARED) $(DEST_LIBDIR)/$(LIBFILE_SHARED)
- $(Q)install -m 0755 $(LIB_PSHARED) $(DEST_LIBDIR)/$(LIBFILE_PSHARED)
- $(Q)install -m 0644 $(LIB_STATIC) $(DEST_LIBDIR)/$(LIBFILE_STATIC)
+ifeq ($(ARCH),s390x)
+ $(Q)install -d $(DEST_LIB64DIR)
+ $(Q)install -m 0755 $(LIB_SHARED) $(DEST_LIB64DIR)/$(LIBFILE_SHARED)
+ $(Q)install -m 0755 $(LIB_PSHARED) $(DEST_LIB64DIR)/$(LIBFILE_PSHARED)
+ $(Q)install -m 0644 $(LIB_STATIC) $(DEST_LIB64DIR)/$(LIBFILE_STATIC)
else
-# FIXME - someone should define this directory
-ifneq ($(lib64dir),)
+ifeq ($(ARCH),ppc64)
$(Q)install -d $(DEST_LIB64DIR)
$(Q)install -m 0755 $(LIB_SHARED) $(DEST_LIB64DIR)/$(LIBFILE_SHARED)
$(Q)install -m 0755 $(LIB_PSHARED) $(DEST_LIB64DIR)/$(LIBFILE_PSHARED)
$(Q)install -m 0644 $(LIB_STATIC) $(DEST_LIB64DIR)/$(LIBFILE_STATIC)
+else
+ $(Q)install -d $(DEST_LIBDIR)
+ $(Q)install -m 0755 $(LIB_SHARED) $(DEST_LIBDIR)/$(LIBFILE_SHARED)
+ $(Q)install -m 0755 $(LIB_PSHARED) $(DEST_LIBDIR)/$(LIBFILE_PSHARED)
+ $(Q)install -m 0644 $(LIB_STATIC) $(DEST_LIBDIR)/$(LIBFILE_STATIC)
endif
endif
ifeq ($(DESTDIR),)
diff -Naur LiS-2.18-orig/libc/getpmsg.c LiS-2.18-RHEL4/libc/getpmsg.c
--- LiS-2.18-orig/libc/getpmsg.c 2004-03-11 15:16:14.000000000 -0500
+++ LiS-2.18-RHEL4/libc/getpmsg.c 2005-04-11 02:40:01.112305488 -0400
@@ -6,16 +6,16 @@
typedef struct strbuf6 {
int maxlen;
int len;
- long long buf;
+ unsigned long long buf;
} strbuf6_t;
typedef struct getpmsg_args6
{
int fd ;
- long long ctl ;
- long long dat ;
- long long bandp ;
- long long flagsp ;
+ unsigned long long ctl ;
+ unsigned long long dat ;
+ unsigned long long bandp ;
+ unsigned long long flagsp ;
} getpmsg_args6_t ;
@@ -33,7 +33,7 @@
{
ctl6.maxlen = ctlptr->maxlen;
ctl6.len = ctlptr->len;
- ctl6.buf = (long long)ctlptr->buf;
+ ctl6.buf = (unsigned long long)(unsigned long)ctlptr->buf;
ptrc6 = &ctl6;
}
@@ -41,16 +41,16 @@
{
dat6.maxlen = dataptr->maxlen;
dat6.len = dataptr->len;
- dat6.buf = (long long)dataptr->buf;
+ dat6.buf = (unsigned long long)(unsigned long)dataptr->buf;
ptrd6 = &dat6;
}
memset((void*)&args,0,sizeof(getpmsg_args6_t));
args.fd = fd ;
- args.ctl = (long long)ptrc6 ;
- args.dat = (long long)ptrd6 ;
- args.bandp = (long long)bandp ;
- args.flagsp = (long long)flagsp ;
+ args.ctl = (unsigned long long)(unsigned long)ptrc6 ;
+ args.dat = (unsigned long long)(unsigned long)ptrd6 ;
+ args.bandp = (unsigned long long)(unsigned long)bandp ;
+ args.flagsp = (unsigned long long)(unsigned long)flagsp ;
rc = read(fd, &args, LIS_GETMSG_PUTMSG_ULEN);
diff -Naur LiS-2.18-orig/libc/putpmsg.c LiS-2.18-RHEL4/libc/putpmsg.c
--- LiS-2.18-orig/libc/putpmsg.c 2004-03-11 15:16:14.000000000 -0500
+++ LiS-2.18-RHEL4/libc/putpmsg.c 2005-04-11 02:40:01.112305488 -0400
@@ -6,14 +6,14 @@
typedef struct strbuf6 {
int maxlen;
int len;
- long long buf;
+ unsigned long long buf;
} strbuf6_t;
typedef struct putpmsg_args6
{
int fd ;
- long long ctl ;
- long long dat ;
+ unsigned long long ctl ;
+ unsigned long long dat ;
int band ;
int flags ;
@@ -32,7 +32,7 @@
{
ctl6.maxlen = ctlptr->maxlen;
ctl6.len = ctlptr->len;
- ctl6.buf = (long long)ctlptr->buf;
+ ctl6.buf = (unsigned long long)(unsigned long)ctlptr->buf;
ptrc6 = &ctl6;
}
@@ -40,14 +40,14 @@
{
dat6.maxlen = dataptr->maxlen;
dat6.len = dataptr->len;
- dat6.buf = (long long)dataptr->buf;
+ dat6.buf = (unsigned long long)(unsigned long)dataptr->buf;
ptrd6 = &dat6;
}
memset((void*)&args,0,sizeof(putpmsg_args6_t));
args.fd = fd ;
- args.ctl = (long long)ptrc6 ;
- args.dat = (long long)ptrd6 ;
+ args.ctl = (unsigned long long)(unsigned long)ptrc6 ;
+ args.dat = (unsigned long long)(unsigned long)ptrd6 ;
args.band = band ;
args.flags = flags ;
diff -Naur LiS-2.18-orig/libc32over64/linux/Makefile LiS-2.18-RHEL4/libc32over64/linux/Makefile
--- LiS-2.18-orig/libc32over64/linux/Makefile 2004-09-09 16:14:13.000000000 -0400
+++ LiS-2.18-RHEL4/libc32over64/linux/Makefile 2005-04-12 09:26:56.903074248 -0400
@@ -7,8 +7,21 @@
CP_OPTS = -f
XOPTS += -D__KERNEL_SYSCALLS__
+ifeq ($(ARCH),s390x)
XOPTS += -DBLD32OVER64 -m31
LDOPTS = -melf_s390
+endif
+ifeq ($(ARCH),ppc64)
+XOPTS = -D__KERNEL_SYSCALLS__
+XOPTS += -DBLD32OVER64 -m32 -msoft-float -pipe -ffixed-r2 -mmultiple -mstring
+XOPTS += -Wall -Wstrict-prototypes $(PROBLEMS)
+XOPTS += -fno-strict-aliasing -Wno-sign-compare -fno-common
+XOPTS += -D__powerpc__ -fno-builtin -pipe -D_PPC_LIS_
+XOPTS += -D__SMP__
+XOPTS += -I$(LIS_INCL)
+XOPTS += -I$(KINCL) $(KINCL_MACH_GENERIC) $(KINCL_MACH_DEFAULT)
+LDOPTS = -m elf32ppc
+endif
include $(LIBDIR32OVER64)/mk.bdy
diff -Naur LiS-2.18-orig/libc32over64/mk.bdy LiS-2.18-RHEL4/libc32over64/mk.bdy
--- LiS-2.18-orig/libc32over64/mk.bdy 2004-10-11 11:40:44.000000000 -0400
+++ LiS-2.18-RHEL4/libc32over64/mk.bdy 2005-04-12 11:50:30.379984136 -0400
@@ -20,7 +20,13 @@
LIB_PSHARED = $(LIBDIR32OVER64)/$(LIBFILE_PSHARED)
LIB_STATIC = $(LIBDIR32OVER64)/$(LIBFILE_STATIC)
+ifeq ($(ARCH),s390x)
CC += -c $(XOPTS)
+endif
+ifeq ($(ARCH),ppc64)
+CC += -c $(XOPTS) -fPIC -m32 -msoft-float -pipe -ffixed-r2 -mmultiple -mstring
+LD = ld -m elf32ppc
+endif
all: compiler $(LIB_SHARED) $(LIB_PSHARED) $(LIB_STATIC)
diff -Naur LiS-2.18-orig/pkg/Makefile LiS-2.18-RHEL4/pkg/Makefile
--- LiS-2.18-orig/pkg/Makefile 2004-09-09 16:14:13.000000000 -0400
+++ LiS-2.18-RHEL4/pkg/Makefile 2005-04-12 09:03:25.143983048 -0400
@@ -60,7 +60,11 @@
# file.
#
$(Q_ECHO) $(qtag_continue) */*.o
- $(Q)$(LD) -r -o $@ */*.o
+ifeq ($(ARCH),ppc64)
+ $(Q)$(LD) -r -m elf64ppc -o $@ */*.o
+else
+ $(Q)$(LD) -r -o $@ */*.o
+endif
.objects: $(OBJECTS)
$(Q)echo $(relpwddeps) > $@
diff -Naur LiS-2.18-orig/scripts/update_conf.modules LiS-2.18-RHEL4/scripts/update_conf.modules
--- LiS-2.18-orig/scripts/update_conf.modules 2004-06-06 17:06:55.000000000 -0400
+++ LiS-2.18-RHEL4/scripts/update_conf.modules 2005-04-12 08:11:06.686000048 -0400
@@ -54,9 +54,12 @@
fi
}
-CONF=modules.conf # new name
+CONF=modprobe.conf.streams # newest name
if [ ! -f /etc/$CONF ]; then
- CONF=conf.modules # old name
+ CONF=modules.conf # new name
+ if [ ! -f /etc/$CONF ]; then
+ CONF=conf.modules # old name
+ fi
fi
cp /etc/$CONF ${CONF}.save && \
diff -Naur LiS-2.18-orig/util/streams.c LiS-2.18-RHEL4/util/streams.c
--- LiS-2.18-orig/util/streams.c 2004-07-30 11:52:59.000000000 -0400
+++ LiS-2.18-RHEL4/util/streams.c 2005-04-13 02:40:01.113305336 -0400
@@ -152,7 +152,11 @@
printf("%-28s: ", lis_itemnames[i].name);
for (j = 0; j < 4; j++)
+#if (defined(_S390X_LIS_) || defined(_PPC64_LIS_))
+ printf("%12lu", strstats[inx][j]/4294967296);
+#else
printf("%12lu", strstats[inx][j]);
+#endif
printf("\n");
}
diff -Naur LiS-2.18-orig/util/strtst.c LiS-2.18-RHEL4/util/strtst.c
--- LiS-2.18-orig/util/strtst.c 2004-10-05 10:37:05.000000000 -0400
+++ LiS-2.18-RHEL4/util/strtst.c 2005-04-11 02:40:01.106306400 -0400
@@ -5411,7 +5411,11 @@
print("band_test: band 2 full (%d msgs), write band 1\n", n_sent) ;
send_band(fd1, 1, 23, _M_DATA) ;
+#if defined(__s390__) || defined(__s390x__)
+ sleep(2) ; /* allow messages to flow */
+#else
sleep(1) ; /* allow messages to flow */
+#endif
print(" %d messages available to read\n", nread_wait_msgs(fd2, 1)) ;
flow_ok = 0 ;
for (i = 0; i < n_sent; i++)
diff -Naur LiS-2.18-orig/util/linux/Makefile LiS-2.18-RHEL4/util/linux/Makefile
--- LiS-2.18-orig/util/linux/Makefile 2004-09-09 16:14:13.000000000 -0400
+++ LiS-2.18-RHEL4/util/linux/Makefile 2005-04-12 09:08:13.672047560 -0400
@@ -1,8 +1,13 @@
include .config_mk
OPT = -DLINUX
+ifeq ($(ARCH),ppc64)
+XUTILS = ldlconfig test test2 fattach fdetach \
+ oc rwf mkfifo psfd pafd thrtst
+else
XUTILS = ldltest ldlconfig test test2 fattach fdetach \
oc rwf mkfifo psfd pafd thrtst
+endif
XINST = install_xutils
XUNINST = uninstall_xutils
XCLEAN = makenodes.c
@@ -19,7 +24,11 @@
#strtst: ../strtst.c
# $(CC) -o $@ $^ $(ULOPTS) -lpthread
+ifeq ($(ARCH),ppc64)
+install_xutils: ldlconfig fattach fdetach
+else
install_xutils: ldltest ldlconfig fattach fdetach
+endif
$(Q)install -d $(DESTDIR)$(sbindir)
$(Q)install $^ $(DESTDIR)$(sbindir)
diff -Naur LiS-2.18-orig/modules/.config LiS-2.18-RHEL4/modules/.config
--- LiS-2.18-orig/modules/.config 2004-09-10 13:06:49.000000000 -0400
+++ LiS-2.18-RHEL4/modules/.config 2005-04-11 16:39:53.758957792 -0400
@@ -36,6 +36,9 @@
CPPFLAGS += -D__KERNEL__ -I$(KSRC)/include
CFLAGS := $(subst -Iinclude,-I$(KSRC)/include,$(CFLAGS))
CFLAGS += -O2
+ifeq ($(ARCH),ppc64)
+CFLAGS += -m64 -msoft-float -pipe -Wno-uninitialized -mminimal-toc -mtraceback=none -mcall-aixdesc -mtune=power4 -fno-unit-at-a-time
+endif
c_flags += $(CPPFLAGS) $(CFLAGS) -I$(KSRC)/include
LDFLAGS_MODULE = -r
diff -Naur LiS-2.18-orig/head/version.c LiS-2.18-RHEL4/head/version.c
--- LiS-2.18-orig/head/version.c 2004-10-13 12:31:15.000000000 -0400
+++ LiS-2.18-RHEL4/head/version.c 2005-05-12 07:07:07.070707070 -0400
@@ -34,8 +34,8 @@
#ident "@(#) LiS version.c 2.18 10/12/04 16:25:34 "
-char lis_version[] = "2.18.0" ;
-char lis_date[] = "10/13/04" ;
+char lis_version[] = "2.18.0r4" ;
+char lis_date[] = "12/12/05" ;
#if 0