Kernel compilation problems

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

 




Hello there,

I'm trying to compile the (2.4.9-37) kernel on our S/390 (G46) in VM mode.

And I'm getting some problems (that I've fixed) but think should be 
fixed at the source, but don't want to do a BugZilla report in case it's 
me being silly.

Anyway, I'm using GCC 3.2 and I've made these changes (displayed in 
sort-of-diff-style):

/usr/src/lxr/linux/2.4.9-37/include/asm/sigp.h, line 132
- #endif __SIGP__
+ #endif // __SIGP__

Ok, someone just forgot the //

/usr/src/lxr/linux/2.4.9-37/drivers/i2c/i2c-pcf8584.h, line 78
- #endif I2C_PCF8584_H
+ #endif // I2C_PCF8584_H

ditto

/usr/src/lxr/linux/2.4.9-37/include/asm/ebcdic.h, lines 24-39
  extern __inline__
  void codepage_convert(const __u8 *codepage, volatile __u8 * addr, int 
nr)
  {
          if (nr <= 0)
                  return;
+         nr--;
          __asm__ __volatile__(
                  "   bras 1,1f\n"
                  "   tr   0(1,%0),0(%2)\n"
                  "0: tr   0(256,%0),0(%2)\n"
                  "   la   %0,256(%0)\n"
                  "1: ahi  %1,-256\n"
                  "   jp   0b\n"
                  "   ex   %1,0(1)"
-                 : "+&a" (addr), "+&a" (nr-1)
+                 : "+&a" (addr), "+&a" (nr)
                  : "a" (codepage) : "cc", "memory", "1" );
  }

gcc doesn't like (nr-1) even though it's an input, because it's not an 
lvalue. So I've changed (nr-1) to (nr) and added "nr--;" before the 
assembly.

/usr/src/lxr/linux/2.4.9-37/Makefile
changed -O2 to -O1 in CFLAGS

because otherwise the assembly code generated from 
arch/s390/kernel/debug.c has STCK instructions (like "STCK 0(%r12,%r2)") 
which are not liked by the assembler, it would rather have something like 
"STCK 0(%r12)".

/usr/src/lxr/linux/2.4.9-37/arch/s390/kernel/s390_ksyms.c:60
- EXPORT_SYMBOL_NOVERS(do_call_softirq);
+ // EXPORT_SYMBOL_NOVERS(do_call_softirq);

Commented this out and everything still works (mmm, hack).

Also, if SMP is ennabled, I get a 
setup.c:508: invalid lvalue in unary `&'
error, which is because something is defined differently for SMP.

So there you go, I hope that makes sense.

One last question, is there a way (CVS maybe) to get the bleeding edge 
kernel as it's being changed by the developers?


Ashley Chaloner.

(Department of Computer Science, Warwick University)



_______________________________________________
Redhat-s390-list mailing list
Redhat-s390-list@redhat.com
https://listman.redhat.com/mailman/listinfo/redhat-s390-list

[Index of Archives]     [Fedora General Discussion]     [LKML]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Linux s390]     [Gimp]     [Yosemite News]

  Powered by Linux