Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jul 2016 14:10:12 -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:  <E1533F32-FD3E-42A2-98CD-1607259149B3@dsl-only.net>
In-Reply-To: <43415D81-F83A-445A-9409-5771D2B858C4@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> <5B3BC302-70DE-4FDA-A442-AC317E146B46@dsl-only.net> <43415D81-F83A-445A-9409-5771D2B858C4@dsl-only.net>

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

> Quick top-post just to indicate that I just did gcc 4.2.1 based =
cross-builds for TARGET_ARCH=3Dpowerpc and TARGET_ARCH=3Dpowerpc64 and =
they completed. They had analogous warnings to what clang (powerpc) and =
powerpc64-gcc (powerpc64) produced.
>=20
> I do not have a context to test powerpc64 or powerpc kboot in.
>=20
> I'll enter a report showing the sys/boot/powerpc/kboot/Makefile change =
that I tried.
>=20
> =3D=3D=3D
> Mark Millard
> markmi at dsl-only.net

I've updated 206303 ( =
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D206303 ) with =
Comment 2 and 206303's Version is now set to 11.0-BETA1 since the odd =
powerpc64 options are present in 11.0-BETA1 (-r302457 is where I'm =
currently synchronized to).

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

On 2016-Jul-11, at 11:43 AM, Mark Millard <markmi at dsl-only.net> =
wrote:

> On 2016-Jul-11, at 11:30 AM, Mark Millard <markmi at dsl-only.net> =
wrote:
>=20
>> On 2016-Jul-11, at 11:04 AM, Mark Millard <markmi at 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
>=20
> 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:
>=20
>> # 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]
>=20
> =3D=3D=3D
> Mark Millard
> markmi at dsl-only.net
>=20
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1533F32-FD3E-42A2-98CD-1607259149B3>