NetBSD-Bugs archive

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

port-powerpc/43021: librump* build procedures don't get along with powerpc64 builds



>Number:         43021
>Category:       port-powerpc
>Synopsis:       librump* build procedures don't get along with powerpc64 builds
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-powerpc-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 20 11:25:00 +0000 2010
>Originator:     Dennis Ferguson
>Release:        very recent 5.99.24
>Organization:
>Environment:
NetBSD acer.hk.akit-ferguson.com 5.99.24 NetBSD 5.99.24 (GENERIC) #0: Sun Mar 
14 17:25:30 HKT 2010  
dennis%acer.hk.akit-ferguson.com@localhost:/usr/obj/sys/arch/amd64/compile/GENERIC
 amd64

>Description:
Doing a macppc64 build results in the following when
it gets to doing dependencies in a librump directory
(anyone will do):

#    create  librump/__cmsg_alignbytes.d
CC=/usr/src/obj/tooldir.NetBSD-5.99.24-amd64/bin/powerpc64--netbsd-gcc 
/usr/src/obj/tooldir.NetBSD-5.99.24-amd64/bin/nbmkdep -f __cmsg_alignbytes.d -- 
    -I/usr/src/lib/librump/../../sys/rump/include  -D_RUMPKERNEL -D_KERNEL 
-DMULTIPROCESSOR -D_MODULE -DMODULAR -DMAXUSERS=32 -DDIAGNOSTIC -DCOMPAT_50 
-DDEBUGPRINT -I/usr/src/lib/librump -I. 
-I/usr/src/lib/librump/../../sys/rump/../../common/include 
-I/usr/src/lib/librump/../../sys/rump/../arch 
-I/usr/src/lib/librump/../../sys/rump/include 
-I/usr/src/lib/librump/../../sys/rump/librump/rumpkern/opt -nostdinc 
-I/usr/src/lib/librump/../../sys/rump/.. -D__NetBSD__ 
-I/usr/src/lib/librump/../../sys/rump/librump/rumpkern 
-I/usr/src/lib/librump/../../sys/rump/librump/rumpvfs 
-I/usr/src/lib/librump/../../sys/rump/librump/rumpnet 
-I/usr/src/lib/librump/../../sys/rump/librump/rumpdev 
-I/usr/src/lib/librump/../../sys/rump/../lib/libkern/arch/   
-I/usr/src/lib/librump/../../sys/rump/../lib/libkern/../../../common/lib/libc/quad
 -I/usr/src/li
 b/librump/../../sys/rump/../lib/libkern/../../../common/lib/libc/string 
-I/usr/src/lib/librump/../../sys/rump/../lib/libkern/../../../common/lib/libc/arch/powerpc64/string
 -I/usr/src/lib/librump/../../sys/rump/../lib/libkern/../../../common/include   
/usr/src/lib/librump/../../sys/rump/../lib/libkern/../../../common/lib/libc/net/__cmsg_alignbytes.c
In file included from /usr/src/lib/librump/../../sys/rump/../sys/types.h:45,
        from 
/usr/src/lib/librump/../../sys/rump/../lib/libkern/../../../common/lib/libc/net/__cmsg_alignbytes.c:44:
        ./machine/types.h:3:27: error: powerpc/types.h: No such file or 
directory
 In file included from /usr/src/lib/librump/../../sys/rump/../sys/types.h:47,
          from 
/usr/src/lib/librump/../../sys/rump/../lib/libkern/../../../common/lib/libc/net/__cmsg_alignbytes.c:44:
          ./machine/ansi.h:3:26: error: powerpc/ansi.h: No such file or 
directory

and so on.  It can't find include files like <powerpc/anything.h>.

Note that a macppc64 build ends up with the following settings:

    MACHINE=macppc
    MACHINE_ARCH=powerpc64

As far as I can tell, librump doesn't want to use the target include
files in destdir.x/usr/include but does want to include stuff from
the arch-specific parts of the kernel.  To do so it appears to try
to make two symbolic links in its obj/ directories:

    machine/ -> sys/arch/$MACHINE/include/
    $MACHINE_ARCH/ -> sys/arch/$MACHINE_ARCH/include/

For powerpc64 it doesn't bother making the second link since there
is no arch/powerpc64 directory.

It then #includes stuff like <machine/types.h> and <machine/ansi.h>
via the first link.  Unfortunately, <macppc/types.h> and
<macppc/ansi.h>, along with pretty much <macppc/anything.h>,
recursively include <powerpc/anything.h>, but a link named
"powerpc" doesn't exist and the above happens.
>How-To-Repeat:
Do a

    MACHINE=macppc64 ./build.sh distribution

in a clean source tree.
>Fix:
I don't know.  I get around it now by doing a regular macppc
build in the source tree before trying macppc64; apparently
the librump makefiles don't clean up the old links before
doing the new build.



Home | Main Index | Thread Index | Old Index