Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jul 2016 11:30:46 -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:  <341B3611-39DD-4359-9A26-CE4781445D02@dsl-only.net>
In-Reply-To: <73A6C8D3-6733-4E75-9C5C-59F8A5BB5039@dsl-only.net>
References:  <07312336-F627-4372-AEF2-5FA93CF6E4CD@dsl-only.net> <5783A3F5.2030301@freebsd.org> <73A6C8D3-6733-4E75-9C5C-59F8A5BB5039@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2016-Jul-11, at 11:04 AM, Mark Millard <markmi@dsl-only.net> wrote:

> 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

The TARGET_ARCH=3Dpowerpc build completed with the following messages =
(from grep'ing for kboot in the typescript file):

> =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

The compiler involved was clang 3.8.0 . (This was a WITH_META_MODE=3Dyes =
build.)

The TARGET_ARCH=3Dpowerpc64 build also completed. The compiler involved =
was powerpc64-gcc. (This was a WITH_META_MODE=3Dyes 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?341B3611-39DD-4359-9A26-CE4781445D02>