Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Feb 2016 21:59:36 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        Konstantin Belousov <kib@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   I've submitted bug 207148 for buildworld using the old /usr/include/sys/proc.h (so 'P_KPROC' undeclared)
Message-ID:  <6076DED9-14B4-4DC1-AB21-7C6CA8FF3CF6@dsl-only.net>

next in thread | raw e-mail | index | archive | help
A minor variation on what I wrote in the bug description is:

This traces back to the build using /usr/include instead of (in my =
context) /usr/obj/gcc421/powerpc.powerpc/usr/src/tmp/usr/include (or an =
equivalent) and so picking up an old sys/proc.h file. The detailed =
evidence follows. Note the lack of any -I or -isysroot or other such in =
the cc command below.

svnlite update -r295453 /usr/src (for an ^/head context) then a =
buildworld buildkernel got:

> --- all_subdir_bin ---
> --- pkill.o ---
> cc  -O2 -pipe   -g -MD -MP -MF.depend.pkill.o -MTpkill.o -std=3Dgnu99 =
-fstack-protector-strong -Wsystem-headers -Wall -Wno-format-y2k -W =
-Wno-unused-parameter -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    -c /usr/src/bin/pkill/pkill.c -o pkill.o
> . . .
> --- all_subdir_bin ---
> /usr/src/bin/pkill/pkill.c: In function 'main':
> /usr/src/bin/pkill/pkill.c:353: error: 'P_KPROC' undeclared (first use =
in this function)
> /usr/src/bin/pkill/pkill.c:353: error: (Each undeclared identifier is =
reported only once
> /usr/src/bin/pkill/pkill.c:353: error: for each function it appears =
in.)
> *** [pkill.o] Error code 1
>=20
> make[4]: stopped in /usr/src/bin/pkill
> 1 error
>=20
> make[4]: stopped in /usr/src/bin/pkill
> *** [all_subdir_pkill] Error code 2

What is happening is:

/usr/include/sys/proc.h still has P_KTHREAD (buildworld used this)
/usr/obj/gcc421/powerpc.powerpc/usr/src/tmp/usr/include/sys/proc.h has =
P_KPROC

/usr/src/bin/pkill/Makefile has no CFLAGS+=3D SOMETHING_FOR_INCLUDE_PATH =
. So it depends completely on context for directing where to find the =
file for:

> #include <sys/proc.h>

but that context ends up contributing nothing and so pure default path =
rules are used --which picks up the still-old /usr/include/sys/proc.h =
file.


Stop reading here unless you want more context details.

src.conf content (make.conf empty):

> TO_TYPE=3Dpowerpc
> KERNCONF=3DGENERICvtsc-NODEBUG
> TARGET=3Dpowerpc
> .if ${.MAKE.LEVEL} =3D=3D 0
> TARGET_ARCH=3D${TO_TYPE}
> .export TARGET_ARCH
> .endif
> WITH_FAST_DEPEND=3D
> WITH_LIB32=3D
> WITH_BOOT=3D
> COMPILER_TYPE=3Dgcc
> WITHOUT_GCC_BOOTSTRAP=3D
> WITH_GCC=3D
> WITH_GCC_IS_CC=3D
> WITH_GNUCXX=3D
> WITHOUT_LIBCPLUSPLUS=3D
> WITHOUT_CLANG_BOOTSTRAP=3D
> WITHOUT_CLANG=3D
> WITHOUT_CLANG_IS_CC=3D
> WITHOUT_CLANG_FULL=3D
> WITHOUT_CLANG_EXTRAS=3D
> NO_WERROR=3D
> MALLOC_PRODUCTION=3D
> WITH_DEBUG_FILES=3D

> # freebsd-version -ku; uname -aKU
> 11.0-CURRENT
> 11.0-CURRENT
> FreeBSD FBSDG4C0 11.0-CURRENT FreeBSD 11.0-CURRENT #6 r295350M: Sat =
Feb  6 13:54:57 PST 2016     =
root@FBSDG4C0:/usr/obj/gcc421/powerpc.powerpc/usr/src/sys/GENERICvtsc-NODE=
BUG  powerpc 1100097 1100097

Command used to buildworld buildkernel:

> env __MAKE_CONF=3D/root/src.configs/make.conf =
SRC_ENV_CONF=3D/root/src.configs/src.conf.powerpc-gcc421.powerpc-host =
MAKEOBJDIRPREFIX=3D/usr/obj/gcc421/powerpc.powerpc make -j 6 buildworld =
buildkernel

(This is a classic self-hosted gcc 4.2.1 TARGET_ARCH=3Dpowerpc context, =
not a clang 3.8.0 based experiment and not a cross build.)

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6076DED9-14B4-4DC1-AB21-7C6CA8FF3CF6>