Date: Mon, 11 Jul 2016 11:43:06 -0700 From: Mark Millard <markmi@dsl-only.net> To: Nathan Whitehorn <nwhitehorn@freebsd.org> Cc: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, freebsd-stable@freebsd.org, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: stable/11 question: kboot vs. powerpc: only powerpc64? Message-ID: <5B3BC302-70DE-4FDA-A442-AC317E146B46@dsl-only.net> In-Reply-To: <341B3611-39DD-4359-9A26-CE4781445D02@dsl-only.net> References: <07312336-F627-4372-AEF2-5FA93CF6E4CD@dsl-only.net> <5783A3F5.2030301@freebsd.org> <73A6C8D3-6733-4E75-9C5C-59F8A5BB5039@dsl-only.net> <341B3611-39DD-4359-9A26-CE4781445D02@dsl-only.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2016-Jul-11, at 11:30 AM, Mark Millard <markmi@dsl-only.net> wrote: > On 2016-Jul-11, at 11:04 AM, Mark Millard <markmi@dsl-only.net> wrote: >=20 >> On 2016-Jul-11, at 6:49 AM, Nathan Whitehorn <nwhitehorn@freebsd.org> = wrote: >>>=20 >>> It is not 64-bit only; like the normal loader, it can load both = 32-bit and 64-bit kernels. Those two flags are probably obsolete at this = point and were for compatibility with pre-2.17.5 versions of binutils. = Can you do a test build with the -CFLAGS+=3D -Wa,-mppc64bridge line = removed? >>> -Nathan >>>=20 >>> On 07/11/16 03:55, Mark Millard wrote: >>>> Is the following something that should be updated something like is = indicated below for 11.0-BETA1? Is kboot powerpc64 specific? >>>>=20 >>>> # svnlite diff /usr/src/sys/boot/powerpc/Makefile >>>> Index: /usr/src/sys/boot/powerpc/Makefile >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>> --- /usr/src/sys/boot/powerpc/Makefile (revision 302457) >>>> +++ /usr/src/sys/boot/powerpc/Makefile (working copy) >>>> @@ -1,5 +1,9 @@ >>>> # $FreeBSD$ >>>> -SUBDIR=3D boot1.chrp kboot ofw ps3 uboot >>>> +SUBDIR=3D boot1.chrp >>>> +.if ${MACHINE_ARCH} =3D=3D "powerpc64" >>>> +SUBDIR+=3D kboot >>>> +.endif >>>> +SUBDIR+=3D ofw ps3 uboot >>>> .include <bsd.subdir.mk> >>>>=20 >>>>=20 >>>>=20 >>>> I ask because I'd submitted 206303 back on 2016-jan-16 reporting = that TARGET_ARCH=3Dpowerpc WITH_BOOT=3D was stopped by getting a = -Wc,-mppc64bride and a -mcpu=3Dpowerpc64 (one of the = base/head/sys/boot/powerpc/kboot/Makefile SRCS being = ppc64_elf_freebsd.c). >>>>=20 >>>> =3D=3D=3D >>>> Mark Millard >>>> markmi at dsl-only.net >>=20 >> I do not have access to powerpc's currently so I'm just going to be = doing cross-build tests for TARGET_ARCH=3Dpowerpc and = TARGET_ARCH=3Dpowerpc64 (from amd64) based on the below updates. >>=20 >> You initially mention "two flags" but then only explicitly request = removal of one (the -CFLAGS+=3D -Wa,-mppc64bridge line). >>=20 >> I'm assuming that the -mcpu=3Dpowerpc64 is also to be removed if = powerpc (non-64) is to be covered. See my intended test below. Let me = know if it is not what you want.=20 >>=20 >>> # svnlite diff sys/boot/powerpc/kboot/Makefile >>> Index: sys/boot/powerpc/kboot/Makefile >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> --- sys/boot/powerpc/kboot/Makefile (revision 302457) >>> +++ sys/boot/powerpc/kboot/Makefile (working copy) >>> @@ -71,7 +71,7 @@ >>> # Avoid the open-close-dance for every file access as some firmwares = perform >>> # an auto-negotiation on every open of the network interface and = thus causes >>> # netbooting to take horribly long. >>> -CFLAGS+=3D -DNETIF_OPEN_CLOSE_ONCE -mcpu=3Dpowerpc64 >>> +CFLAGS+=3D -DNETIF_OPEN_CLOSE_ONCE >>>=20 >>> # Always add MI sources >>> .PATH: ${.CURDIR}/../../common = ${.CURDIR}/../../../libkern >>> @@ -88,9 +88,6 @@ >>>=20 >>> LDFLAGS=3D -nostdlib -static -T ${.CURDIR}/ldscript.powerpc >>>=20 >>> -# 64-bit bridge extensions >>> -CFLAGS+=3D -Wa,-mppc64bridge >>> - >>> # Pull in common loader code >>> #.PATH: ${.CURDIR}/../../ofw/common >>> #.include "${.CURDIR}/../../ofw/common/Makefile.inc" >>=20 >>> # svnlite diff sys/boot/powerpc/Makefile >>> #=20 >>=20 >> (I.e., I reverted sys/boot/powerpc/Makefile.) >>=20 >> =3D=3D=3D >> Mark Millard >> markmi at dsl-only.net >=20 > The TARGET_ARCH=3Dpowerpc build completed with the following messages = (from grep'ing for kboot in the typescript file): >=20 >> =3D=3D=3D> sys/boot/powerpc/kboot (all) >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/vers.c >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/conf.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/metadata.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/vers.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/main.o >> /usr/src/sys/boot/powerpc/kboot/main.c:307:12: warning: variable 'sp' = is uninitialized when used here [-Wuninitialized] >> /usr/src/sys/boot/powerpc/kboot/main.c:306:29: note: initialize the = variable 'sp' to silence this warning >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/ppc64_elf_fr= eebsd.o >> /usr/src/sys/boot/powerpc/kboot/ppc64_elf_freebsd.c:94:15: warning: = implicit declaration of function 'md_load64' is invalid in C99 = [-Wimplicit-function-declaration] >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/host_syscall= .o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/hostcons.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/hostdisk.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/kerneltramp.= o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/kbootfdt.o >> --- kbootfdt.o --- >> /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:54:17: warning: passing = 'const char *' to parameter of type 'char *' discards qualifiers = [-Wincompatible-pointer-types-discards-qualifiers] >> /usr/src/sys/boot/powerpc/kboot/host_syscall.h:36:21: note: passing = argument to parameter 'path' here >> /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:123:8: warning: assigning = to 'uint64_t *' (aka 'unsigned long long *') from 'const void *' = discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] >> /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:125:8: warning: assigning = to 'uint64_t *' (aka 'unsigned long long *') from 'const void *' = discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] >> /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:134:8: warning: assigning = to 'uint32_t *' (aka 'unsigned int *') from 'const void *' discards = qualifiers [-Wincompatible-pointer-types-discards-qualifiers] >> /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:135:8: warning: assigning = to 'uint32_t *' (aka 'unsigned int *') from 'const void *' discards = qualifiers [-Wincompatible-pointer-types-discards-qualifiers] >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/ucmpdi2.o >> In file included from = /usr/src/sys/boot/powerpc/kboot/../../../libkern/ucmpdi2.c:37: >> In file included from = /usr/src/sys/boot/powerpc/kboot/../../../libkern/quad.h:59: >> /usr/src/sys/boot/powerpc/kboot/../../../sys/syslimits.h:41:2: = warning: "No user-serviceable parts inside." [-W#warnings] >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/boot.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/commands.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/console.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/devopen.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/interp.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/interp_backs= lash.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/interp_parse= .o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/ls.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/misc.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/module.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/panic.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/load_elf32.o= >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/reloc_elf32.= o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/load_elf64.o= >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/reloc_elf64.= o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/dev_net.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/disk.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/part.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/crc32.o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/interp_forth= .o >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/loader.kboot= >> Building = /usr/obj/clang/powerpc.powerpc/usr/src/sys/boot/powerpc/kboot/loader.help >=20 > The compiler involved was clang 3.8.0 . (This was a WITH_META_MODE=3Dyes= build.) >=20 > The TARGET_ARCH=3Dpowerpc64 build also completed. The compiler = involved was powerpc64-gcc. (This was a WITH_META_MODE=3Dyes build.) >=20 > =3D=3D=3D > Mark Millard > markmi at dsl-only.net I just noticed at least one additional warning (for hostdisk.c) from the = TARGET_ARCH=3Dpowerpc64 so here is the list via grep for that context: > # grep kboot = ~/sys_typescripts/typescript_make_powerpc64vtsc_nodebug_incl_clang_xtoolch= ain-amd64-host-2016-07-11:11:02:56 | grep -i warning: > /usr/src/sys/boot/powerpc/kboot/ppc64_elf_freebsd.c:94:15: warning: = implicit declaration of function 'md_load64' = [-Wimplicit-function-declaration] > /usr/src/sys/boot/powerpc/kboot/hostdisk.c:96:10: warning: format '%s' = expects argument of type 'char *', but argument 2 has type 'void *' = [-Wformat=3D] > /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:54:17: warning: passing = argument 1 of 'host_open' discards 'const' qualifier from pointer target = type [-Wdiscarded-qualifiers] > /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:123:8: warning: assignment = discards 'const' qualifier from pointer target type = [-Wdiscarded-qualifiers] > /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:125:8: warning: assignment = discards 'const' qualifier from pointer target type = [-Wdiscarded-qualifiers] > /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:134:8: warning: assignment = discards 'const' qualifier from pointer target type = [-Wdiscarded-qualifiers] > /usr/src/sys/boot/powerpc/kboot/kbootfdt.c:135:8: warning: assignment = discards 'const' qualifier from pointer target type = [-Wdiscarded-qualifiers] > /usr/src/sys/boot/powerpc/kboot/../../../sys/syslimits.h:41:2: = warning: #warning "No user-serviceable parts inside." [-Wcpp] > /usr/src/sys/boot/powerpc/kboot/../../common/ls.c:142:18: warning: = variable 'tail' set but not used [-Wunused-but-set-variable] =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?5B3BC302-70DE-4FDA-A442-AC317E146B46>