Re: svn commit: r308817 - head/sys/powerpc/include [Still have pmap_t and struct pmap ppowerpc64 problems as of -r308860]

From: Mark Millard <markmi_at_dsl-only.net>
Date: Sat, 19 Nov 2016 18:36:39 -0800
[Quick top post I'm afraid.]

I think that I figured out why there is a problem even earlier
--that just did not stop the compiles.

lib/libutil/kinfo_getallproc.c is built here as part of buildworld
(stage 4.2 "building libraries" instead of buildkernel. It does not
have the KERNCONF's AIM vs. BOOKE vs. . . . definitions vs. lack of
them).

So if it includes machine/pmap.h that binds to
sys/powerpc/include/pmap.h which has the structure. . .

. . .
#if defined(AIM)
. . . (definitions here)
#elif defined(BOOKE)
. . . (definitions here)
#endif
. . .

it gets no definition now.

With the older:

. . .
#if defined(AIM)
. . . (definitions here)
#else
. . . (definitions here)
#endif
. . .

It got a definition, just not necessarily the right one.


===
Mark Millard
markmi at dsl-only.net

On 2016-Nov-19, at 6:19 PM, Mark Millard <markmi at dsl-only.net> wrote:

> Author: jhibbits
> Date: Fri Nov 18 22:59:33 2016
> New Revision: 308817
> URL: https://svnweb.freebsd.org/changeset/base/308817
> 
> Log:
>  Fix buildworld
> 
>  Change the pv_tracked flag to an int, just in case userspace decides to include
>  this file and defines BOOKE.
> 
>  Guard this block from unintentional inclusion with ifdef BOOKE.
> 
>  Reported by:	emaste
. . .

(Later quotes are not from the list or from E-mail but from files.)

I'm not targeting BOOKE but GENERIC64 (via include, with AIM but not
ps3). I'm at head -r308860 yet for TARGET_ARCH=powerpc64 I get the
following that did not happen with my older -r308247 builds:

> --- kinfo_getallproc.o ---
. . .
> In file included from /usr/src/sys/sys/user.h:53:0,
>                 from q:34:
> /usr/src/sys/vm/vm_map.h:190:2: error: unknown type name 'pmap_t'
>  pmap_t pmap;   /* (c) Physical map */
>  ^
> /usr/src/sys/vm/vm_map.h:250:14: error: field 'vm_pmap' has incomplete type
>  struct pmap vm_pmap; /* private physical map */
>              ^
> --- kinfo_getfile.o ---
> In file included from /usr/src/sys/sys/user.h:53:0,
>                 from /usr/src/lib/libutil/kinfo_getfile.c:5:
> /usr/src/sys/vm/vm_map.h:190:2: error: unknown type name 'pmap_t'
>  pmap_t pmap;   /* (c) Physical map */
>  ^
> /usr/src/sys/vm/vm_map.h:250:14: error: field 'vm_pmap' has incomplete type
>  struct pmap vm_pmap; /* private physical map */


It is almost like a machine/pmap.h include is missing now so that the
types are not defined. But I've not yet found where the relevant
difference(s) are from -r308247.

Showing a compile command (with -v) with its failure. . .

> --- kinfo_getallproc.o ---
> Using built-in specs.
> COLLECT_GCC=/usr/local/bin/powerpc64-portbld-freebsd12.0-gcc
> Target: powerpc64-portbld-freebsd12.0
> Configured with: /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/gcc-5.3.0/configure --target=powerpc64-portbld-freebsd12.0 --disable-nls --enable-languages=c,c++ --without-headers --with-gmp=/usr/local --with-pkgversion='FreeBSD Ports Collection for powerpc64' --with-system-zlib --with-as=/usr/local/bin/powerpc64-freebsd-as --with-ld=/usr/local/bin/powerpc64-freebsd-ld --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --infodir=/usr/local/info/ --build=x86_64-portbld-freebsd12.0
> Thread model: posix
> gcc version 5.3.0 (FreeBSD Ports Collection for powerpc64) 
> COLLECT_GCC_OPTIONS='-isystem' '/usr/obj/powerpc64vtsc_xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include' '-L/usr/obj/powerpc64vtsc_xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/lib' '-B' '/usr/obj/powerpc64vtsc_xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/lib' '-B' '/usr/local/powerpc64-freebsd/bin/' '-O2' '-pipe' '-D' 'LIBC_SCCS' '-D' 'INET6' '-I' '/usr/src/lib/libutil' '-I' '/usr/src/lib/libutil/../libc/gen/' '-std=gnu99' '-fstack-protector-strong' '-Wsystem-headers' '-Wall' '-Wno-format-y2k' '-Wextra' '-Wstrict-prototypes' '-Wmissing-prototypes' '-Wpointer-arith' '-Wreturn-type' '-Wcast-qual' '-Wwrite-strings' '-Wswitch' '-Wshadow' '-Wunused-parameter' '-Wcast-align' '-Wchar-subscripts' '-Winline' '-Wnested-externs' '-Wredundant-decls' '-Wold-style-definition' '-Wno-pointer-sign' '-Wno-error=address' '-Wno-error=array-bounds' '-Wno-error=attributes' '-Wno-error=bool-compare' '-Wno-error=cast-align' '-Wno-error=clobbered' '-Wno-error=enum-compare' '-Wno-error=extra' '-Wno-error=inline' '-Wno-error=logical-not-parentheses' '-Wno-error=strict-aliasing' '-Wno-error=uninitialized' '-Wno-error=unused-but-set-variable' '-Wno-error=unused-function' '-Wno-error=unused-value' '-Wno-error=strict-overflow' '-v' '-c' '-o' 'kinfo_getallproc.o'
> /usr/local/libexec/gcc/powerpc64-portbld-freebsd12.0/5.3.0/cc1 -quiet -v -I /usr/src/lib/libutil -I /usr/src/lib/libutil/../libc/gen/ -isysroot /usr/obj/powerpc64vtsc_xtoolchain/powerpc.powerpc64/usr/src/tmp -D LIBC_SCCS -D INET6 -isystem /usr/obj/powerpc64vtsc_xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include /usr/src/lib/libutil/kinfo_getallproc.c -quiet -dumpbase kinfo_getallproc.c -auxbase-strip kinfo_getallproc.o -O2 -Wsystem-headers -Wall -Wno-format-y2k -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -Wno-error=address -Wno-error=array-bounds -Wno-error=attributes -Wno-error=bool-compare -Wno-error=cast-align -Wno-error=clobbered -Wno-error=enum-compare -Wno-error=extra -Wno-error=inline -Wno-error=logical-not-parentheses -Wno-error=strict-aliasing -Wno-error=uninitialized -Wno-error=unused-but-set-variable -Wno-error=unused-function -Wno-error=unused-value -Wno-error=strict-overflow -std=gnu99 -version -fstack-protector-strong -o - |
> /usr/local/bin/powerpc64-freebsd-as -v -I /usr/src/lib/libutil -I /usr/src/lib/libutil/../libc/gen/ --traditional-format -a64 -mppc64 -many -o kinfo_getallproc.o
> GNU C99 (FreeBSD Ports Collection for powerpc64) version 5.3.0 (powerpc64-portbld-freebsd12.0)
>        compiled by GNU C version 4.2.1 Compatible FreeBSD Clang 3.8.0 (tags/RELEASE_380/final 262564), GMP version 5.1.3, MPFR version 3.1.5, MPC version 1.0.3
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> ignoring nonexistent directory "/usr/local/lib/gcc/powerpc64-portbld-freebsd12.0/5.3.0/../../../../powerpc64-portbld-freebsd12.0/sys-include"
> ignoring nonexistent directory "/usr/local/lib/gcc/powerpc64-portbld-freebsd12.0/5.3.0/../../../../powerpc64-portbld-freebsd12.0/include"
> #include "..." search starts here:
> #include <...> search starts here:
> /usr/src/lib/libutil
> /usr/src/lib/libutil/../libc/gen/
> /usr/obj/powerpc64vtsc_xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include
> /usr/local/lib/gcc/powerpc64-portbld-freebsd12.0/5.3.0/include
> /usr/local/lib/gcc/powerpc64-portbld-freebsd12.0/5.3.0/include-fixed
> End of search list.
> GNU C99 (FreeBSD Ports Collection for powerpc64) version 5.3.0 (powerpc64-portbld-freebsd12.0)
>        compiled by GNU C version 4.2.1 Compatible FreeBSD Clang 3.8.0 (tags/RELEASE_380/final 262564), GMP version 5.1.3, MPFR version 3.1.5, MPC version 1.0.3
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> GNU assembler version 2.25.1 (powerpc64-freebsd) using BFD version (GNU Binutils) 2.25.1
> Compiler executable checksum: f075193fe6b42ec6fb8ba336147ebe8e
> In file included from /usr/src/sys/sys/user.h:53:0,
>                 from /usr/src/lib/libutil/kinfo_getallproc.c:34:
> /usr/src/sys/vm/vm_map.h:190:2: error: unknown type name 'pmap_t'
>  pmap_t pmap;   /* (c) Physical map */
>  ^
> /usr/src/sys/vm/vm_map.h:250:14: error: field 'vm_pmap' has incomplete type
>  struct pmap vm_pmap; /* private physical map */
>              ^


This is a powerpc64-xtoolchain-gcc based cross build:
(I build with libc++ capable materials, not with gcc 4.2.1 .)

> # uname -apKU
> FreeBSD FreeBSDx64 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r308860M: Sat Nov 19 14:00:24 PST 2016     markmi_at_FreeBSDx64:/usr/obj/amd64_clang/amd64_amd64/usr/src/sys/GENERIC-NODBG  amd64 amd64 1200014 1200014

> # svnlite info /usr/src/ | grep "Re[lpv]"
> Relative URL: ^/head
> Repository Root: svn://svn.freebsd.org/base
> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
> Revision: 308860
> Last Changed Rev: 308860


> # more /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODBG 
> #
> # GENERIC -- Custom configuration for the powerpc/powerpc64
> #
> 
> include "GENERIC64"
> 
> ident   GENERIC64vtsc-NODGB
> 
> makeoptions     DEBUG=-g                # Build kernel with gdb(1) debug symbols
> 
> nooptions       PS3                     # Sony Playstation 3               HACK!!! to allow sc
> 
> options         KDB                     # Enable kernel debugger support
> 
> # For minimum debugger support (stable branch) use:
> options         KDB_TRACE               # Print a stack trace for a panic
> options         DDB                     # Enable the kernel debugger
> options         GDB                     # HACK!!! ...
> 
> # Extra stuff:
> #options        VERBOSE_SYSINIT         # Enable verbose sysinit messages
> #options        BOOTVERBOSE=1
> #options        BOOTHOWTO=RB_VERBOSE
> #options        KTR
> #options        KTR_MASK=KTR_TRAP
> ##options       KTR_CPUMASK=0xF
> #options        KTR_VERBOSE
> 
> # HACK!!! to allow sc for 2560x1440 display on Radeon X1950 that vt historically mishandled during booting
> device          sc
> #device                 kbdmux          # HACK: already listed by vt
> options         SC_OFWFB        # OFW frame buffer
> options         SC_DFLT_FONT    # compile font in
> makeoptions     SC_DFLT_FONT=cp437
> 
> 
> # Disable any extra checking for. . .
> nooptions       DEADLKRES               # Enable the deadlock resolver
> nooptions       INVARIANTS              # Enable calls of extra sanity checking
> nooptions       INVARIANT_SUPPORT       # Extra sanity checks of internal structures, required by INVARIANTS
> nooptions       WITNESS                 # Enable checks to detect deadlocks and cycles
> nooptions       WITNESS_SKIPSPIN        # Don't run witness on spinlocks for speed
> nooptions       DIAGNOSTIC
> nooptions       MALLOC_DEBUG_MAXZONES   # Separate malloc(9) zones

Its SRC_ENV_CONF binding is to. . .

> # more ~/src.configs/src.conf.powerpc64-xtoolchain.amd64-host 
> TO_TYPE=powerpc64
> TOOLS_TO_TYPE=${TO_TYPE}
> VERSION_CONTEXT=12.0
> #
> KERNCONF=GENERIC64vtsc-NODBG
> TARGET=powerpc
> .if ${.MAKE.LEVEL} == 0
> TARGET_ARCH=${TO_TYPE}
> .export TARGET_ARCH
> .endif
> #
> WITHOUT_CROSS_COMPILER=
> WITHOUT_SYSTEM_COMPILER=
> #
> WITH_LIBCPLUSPLUS=
> WITHOUT_BINUTILS_BOOTSTRAP=
> WITHOUT_CLANG_BOOTSTRAP=
> WITH_CLANG=
> WITH_CLANG_IS_CC=
> WITH_CLANG_FULL=
> WITH_CLANG_EXTRAS=
> WITH_LLDB=
> #
> WITH_BOOT=
> # powerpc64 LIB32 builds via gcc 4.9 or later variants that I've tried
> # but the LIB32 does not work [crtbeginS code problem(s)]
> WITHOUT_LIB32=
> #
> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
> WITHOUT_GCC_BOOTSTRAP=
> WITHOUT_GCC=
> WITHOUT_GCC_IS_CC=
> WITHOUT_GNUCXX=
> #
> NO_WERROR=
> #WERROR=
> MALLOC_PRODUCTION=
> #
> WITH_DEBUG_FILES=
> #
> #
> # For TO (so-called "cross") stages . . .
> # So-called-cross via ${TO_TYPE}-xtoolchain-gcc/${TO_TYPE}-gcc. . .
> # TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related binutils. . .
> #
> CROSS_TOOLCHAIN=${TO_TYPE}-gcc
> X_COMPILER_TYPE=gcc
> CROSS_BINUTILS_PREFIX=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
> .if ${.MAKE.LEVEL} == 0
> XCC=/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-gcc
> XCXX=/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-g++
> XCPP=/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-cpp
> .export XCC
> .export XCXX
> .export XCPP
> XAS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as
> XAR=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar
> XLD=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld
> XNM=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm
> XOBJCOPY=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy
> XOBJDUMP=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump
> XRANLIB=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib
> XSIZE=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size
> #NO-SUCH: XSTRINGS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings
> XSTRINGS=/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings
> .export XAS
> .export XAR
> .export XLD
> .export XNM
> .export XOBJCOPY
> .export XOBJDUMP
> .export XRANLIB
> .export XSIZE
> .export XSTRINGS
> .endif
> #
> #
> # From based on clang (via system). . .
> #
> .if ${.MAKE.LEVEL} == 0
> CC=/usr/bin/clang
> CXX=/usr/bin/clang++
> CPP=/usr/bin/clang-cpp
> .export CC
> .export CXX
> .export CPP
> .endif

> # svnlite status /usr/src/
> M       /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
> M       /usr/src/lib/csu/powerpc64/Makefile
> ?       /usr/src/sys/amd64/conf/GENERIC-DBG
> ?       /usr/src/sys/amd64/conf/GENERIC-NODBG
> ?       /usr/src/sys/arm/conf/BPIM3-DBG
> ?       /usr/src/sys/arm/conf/BPIM3-NODBG
> ?       /usr/src/sys/arm/conf/RPI2-DBG
> ?       /usr/src/sys/arm/conf/RPI2-NODBG
> ?       /usr/src/sys/arm64/conf/GENERIC-DBG
> ?       /usr/src/sys/arm64/conf/GENERIC-NODBG
> M       /usr/src/sys/boot/ofw/Makefile.inc
> M       /usr/src/sys/boot/powerpc/Makefile.inc
> M       /usr/src/sys/boot/powerpc/kboot/Makefile
> M       /usr/src/sys/boot/uboot/Makefile.inc
> M       /usr/src/sys/conf/Makefile.powerpc
> M       /usr/src/sys/conf/kern.mk
> M       /usr/src/sys/conf/kmod.mk
> M       /usr/src/sys/ddb/db_main.c
> M       /usr/src/sys/ddb/db_script.c
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-DBG
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODBG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-DBG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-NODBG
> M       /usr/src/sys/powerpc/ofw/ofw_machdep.c
> M       /usr/src/sys/powerpc/powerpc/exec_machdep.c


===
Mark Millard
markmi at dsl-only.net
Received on Sun Nov 20 2016 - 01:36:43 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:08 UTC