[parisc-linux] 2.6.17-rc1-pa0 attempt to build for 64bit ;-)

Joel Soete soete.joel at tiscali.be
Tue Apr 4 06:20:34 MDT 2006


Hello all, 

Try to build this new kernel for my 64bit n4k system, as for a500 config, I
encountered:
[snip]
  hppa64-linux-gnu-gcc -Wp,-MD,arch/parisc/kernel/.signal.o.d  -nostdinc
-isystem /usr/lib/gcc/hppa64-linux-gnu/4.0.3/include -D__KERNEL__ -Iinclude
-Iinclude2 -I/usr/src/linux-2.6.17-rc1-pa0/include -include
include/linux/autoconf.h -I/usr/src/linux-2.6.17-rc1-pa0/arch/parisc/kernel
-Iarch/parisc/kernel -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
-fno-strict-aliasing -fno-common -O2 -fomit-frame-pointer -pipe
-mno-space-regs -mfast-indirect-calls -mdisable-fpregs -ffunction-sections
-march=2.0 -mschedule=8000 -Wdeclaration-after-statement -Wno-pointer-sign 
-D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(signal)" 
-D"KBUILD_MODNAME=KBUILD_STR(signal)" -c -o arch/parisc/kernel/signal.o
/usr/src/linux-2.6.17-rc1-pa0/arch/parisc/kernel/signal.c
In file included from
/usr/src/linux-2.6.17-rc1-pa0/arch/parisc/kernel/signal.c:39:
/usr/src/linux-2.6.17-rc1-pa0/arch/parisc/kernel/signal32.h:52: error:
redefinition of 'union compat_sigval'
/usr/src/linux-2.6.17-rc1-pa0/arch/parisc/kernel/signal32.h:55: error:
redefinition of typedef 'compat_sigval_t'
/usr/src/linux-2.6.17-rc1-pa0/include/linux/compat.h:142: error: previous
declaration of 'compat_sigval_t' was here
make[2]: *** [arch/parisc/kernel/signal.o] Error 1
make[1]: *** [arch/parisc/kernel] Error 2
make: *** [vmlinux] Error 2

which I can easily (and safely?) fixed with:
--- ./arch/parisc/kernel/signal32.h.Orig        2006-04-04 08:02:18.000000000
+0200
+++ ./arch/parisc/kernel/signal32.h     2006-04-04 13:58:14.000000000 +0200
@@ -49,11 +49,6 @@
         compat_sigset_t uc_sigmask;     /* mask last for extensibility */
 };
 
-typedef union compat_sigval {
-       compat_int_t sival_int;
-       compat_uptr_t sival_ptr;
-} compat_sigval_t;
-
 /* ELF32 signal handling */
 
 struct k_sigaction32 {
====<>====

Unfortuantely not enough because this type is define a third time so:
[snip]
  hppa64-linux-gnu-gcc -Wp,-MD,kernel/.signal.o.d  -nostdinc -isystem
/usr/lib/gcc/hppa64-linux-gnu/4.0.3/include -D__KERNEL__ -Iinclude -Iinclude2
-I/usr/src/linux-2.6.17-rc1-pa0/include -include include/linux/autoconf.h
-I/usr/src/linux-2.6.17-rc1-pa0/kernel -Ikernel -Wall -Wundef
-Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -O2
-fomit-frame-pointer -pipe -mno-space-regs -mfast-indirect-calls
-mdisable-fpregs -ffunction-sections -march=2.0 -mschedule=8000
-Wdeclaration-after-statement -Wno-pointer-sign  -D"KBUILD_STR(s)=#s"
-D"KBUILD_BASENAME=KBUILD_STR(signal)"  -D"KBUILD_MODNAME=KBUILD_STR(signal)"
-c -o kernel/signal.o /usr/src/linux-2.6.17-rc1-pa0/kernel/signal.c
In file included from /usr/src/linux-2.6.17-rc1-pa0/kernel/signal.c:25:
/usr/src/linux-2.6.17-rc1-pa0/include/linux/compat_siginfo.h:32: error:
redefinition of 'union compat_sigval'
/usr/src/linux-2.6.17-rc1-pa0/include/linux/compat_siginfo.h:35: error:
redefinition of typedef 'compat_sigval_t'
/usr/src/linux-2.6.17-rc1-pa0/include/linux/compat.h:142: error: previous
declaration of 'compat_sigval_t' was here
/usr/src/linux-2.6.17-rc1-pa0/include/linux/compat_siginfo.h:142: error:
redefinition of 'struct compat_sigevent'
/usr/src/linux-2.6.17-rc1-pa0/include/linux/compat_siginfo.h:155: error:
redefinition of typedef 'compat_sigevent_t'
/usr/src/linux-2.6.17-rc1-pa0/include/linux/compat.h:159: error: previous
declaration of 'compat_sigevent_t' was here
make[2]: *** [kernel/signal.o] Error 1
make[1]: *** [kernel] Error 2
make: *** [vmlinux] Error 2

As it affected upstream files I tried to figure out what said Linus tree (grab
with git at
<http://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git>) but
there is no compat_siginfo.h?

so I made this test:
--- ./include/linux/compat_siginfo.h.Orig       2006-04-04 08:29:30.000000000
+0200
+++ ./include/linux/compat_siginfo.h    2006-04-04 09:17:48.000000000 +0200
@@ -28,12 +28,6 @@
 #include <linux/compiler.h>
 #include <asm/siginfo.h>
 
-/* compat view of sigval_t */
-typedef union compat_sigval {
-       compat_int_t sival_int;
-       compat_uptr_t sival_ptr;
-} compat_sigval_t;
-
 /*
  * This is the size (including padding) of the part of the
  * struct siginfo that is before the union.
@@ -134,28 +128,6 @@
 #define __ARCH_SIGEV_COMPAT_PREAMBLE_SIZE (sizeof(compat_int_t) * 2 +
sizeof(compat_sigval_t))
 #endif
 
-#define COMPAT_SIGEV_PAD_SIZE  ((SIGEV_MAX_SIZE/sizeof(int)) - 3)
-
-#ifndef HAVE_ARCH_COMPAT_SIGEVENT_T
-
-/* 32-bit view of sigevent_t */
-typedef struct compat_sigevent {
-       compat_sigval_t sigev_value;
-       compat_int_t sigev_signo;
-       compat_int_t sigev_notify;
-       union {
-               compat_int_t _pad[COMPAT_SIGEV_PAD_SIZE];
-               compat_int_t _tid;
-
-               struct {
-                       compat_uptr_t _function;
-                       compat_uptr_t _attribute;  /* really pthread_attr_t */
-               } _sigev_thread;
-       } _sigev_un;
-} compat_sigevent_t;
-
-#endif /* HAVE_ARCH_COMPAT_SIGEVENT_T */
-
 #ifndef HAVE_ARCH_COMPAT_COPY_SIGINFO
 
 #include <linux/string.h>
====<>====

It builds and boots fine on n4k (64bit smp kernel) and the same for b2k (32bit
up kernel).

Hth,
    Joel

-------------------------------------------------------
NOTE! My email address is changing to ... @scarlet.be
Please make the necessary changes in your address book. 






More information about the parisc-linux mailing list