Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 May 2019 08:46:19 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        James Shuriff <james@opentech.cc>
Cc:        ports-list freebsd <freebsd-ports@freebsd.org>, "bapt@FreeBSD.org" <bapt@FreeBSD.org>, "jhb@FreeBSD.org" <jhb@FreeBSD.org>
Subject:   Re: maintenance of gcc cross ports
Message-ID:  <2A90CC78-117B-4988-9022-1687872B6C59@yahoo.com>
In-Reply-To: <BN7PR06MB518758AEC18571D655453F05AA050@BN7PR06MB5187.namprd06.prod.outlook.com>
References:  <0BDF4BD8-EF07-4226-A2BA-4ACE476CD6FC@yahoo.com> <BN7PR06MB518758AEC18571D655453F05AA050@BN7PR06MB5187.namprd06.prod.outlook.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2019-May-19, at 07:40, James Shuriff <james at opentech.cc> wrote:

> I didn't/don't plan on touching binutils. Binutils is okay. I made new =
patches as well. What I'm really concerned with bringing up to date is =
aarch64-none-elf-gcc.

> The GNU toolchain is unfortunately required for building an Aarch64 =
system

Are you specifically referencing contexts that need to build
u-boot? (My guess is: yes.)

I've done buildworld buildkernel based on system clang and lld many =
times
in the past, though not very recently. (I currently do not have access =
to
the environment but will again, eventually.)

For aarch64 I'd mostly recently built for and used:

A) a Pine64+ 2GB (needs: sysutils/u-boot-pine64 )
B) an OverDrive 1000 (no u-boot build needed)

I've done amd64->aarch64 cross builds and self hosted ones for/on
such. The OverDrive 1000 builds did not involve
devel/aarch64-none-elf-gcc at all as far as I can remember.

> and is a prereq for a bunch of sysutils arm ports.

Yep.

Are there sysutils/u-boot-* 's that no longer build under gcc 6.4.0?
Other things?

> At worst we can do something like what's done with the lang ports =
gcc6, gcc7, gcc8. I've CC'd the maintainers so hopefully they can give =
us some input and we can come up with a solution.
>=20
> As for Makefile issues, this is only an issue for the =
arm-none-eabi-gcc and aarch64-none-elf-gcc ports because they have =
multiple hyphens. It's mostly a cosmetic issue. Each port has its own =
plist because gcc generates different headers depending on the platform =
so the PLIST TARGETARCH regex doesn't really affect all that much. There =
are some clang flags dependent on TARGETARCH but whoever wrote the =
aarch64-none-elf-gcc port must have known it wasn't working in the =
master because the check is in the bare metal port as well. The =
stripping out of all hyphens causes things like "gcc version 6.4.0 =
(FreeBSD Ports Collection for aarch64noneelf)". I use =
${PKGNAMEPREFIX:C/-$//} for the comment and version and =
${PKGNAMEPREFIX:C/-.*//} for TARGETARCH. The original regex for all of =
those is ${PKGNAMEPREFIX:C/-//g} and I'm sure you can see how that's a =
problem when there's multiple hyphens.

Thanks for the notes.

> - James Shuriff
>=20
> -----Original Message-----
> From: Mark Millard <marklmi@yahoo.com>
> Sent: Sunday, May 19, 2019 1:33 AM
> To: James Shuriff <james@opentech.cc>; ports-list freebsd =
<freebsd-ports@freebsd.org>
> Subject: Re: maintenance of gcc cross ports
>=20
> James Shuriff james at opentech.cc wrote on Sat May 18 12:29:22 UTC =
2019 :
>=20
>> The powerpc64-gcc port and all the ports that use it as a master =
(aarch64-gcc, aarch64-none-elf-gcc, amd64-gcc, arm-none-eabi-gcc, =
i386-gcc, mips-gcc, mips64-gcc, and sparc64-gcc) are very old and use =
buggy makefiles. I would like to take over maintenance of these ports. =
Powerpc64-gcc uses an old version of gcc and the makefile is buggy. =
Certain variables use bad regular expressions thus don't do what they're =
supposed to do. I've fixed up the makefiles and made new plists with a =
newer version of gcc.
>=20
> Be aware that:
>=20
> /[ports]/head/base/binutils depends on devel/binutils via:
>=20
> MASTERDIR=3D${.CURDIR}/../../devel/binutils
>=20
> /[ports]/head/base/gcc depends on devel/powerpc64-gcc via:
>=20
> EXTRA_PATCHES+=3D =
${.CURDIR}/../../devel/powerpc64-gcc/files/freebsd-format-extensions
> EXTRA_PATCHES+=3D =
${.CURDIR}/../../devel/powerpc64-gcc/files/freebsd-libdir
> EXTRA_PATCHES+=3D =
${.CURDIR}/../../devel/powerpc64-gcc/files/patch-gcc-freebsd-mips
>=20
> The maintainer is listed as: bapt@FreeBSD.org but the activity tends =
to be jhb@FreeBSD.org . There are other, more overall FreeBSD toolchain =
efforts that these various ports are tied to. That may constrain what =
can be done when. You would probably need to consult with these folks =
about any changes.
>=20
> I use these ports for doing alternate toolchain buildworld buildkernel =
activities, including using, say, devel/powerpc64-gcc on a powerpc64 =
machine to self host with more modern tools than gcc 4.2.1 based ones.
> As I understand, being in devel/ instead of lang/ for gcc tools is =
tied to being constructed for the system-building activities instead of =
for general use.
>=20
> You might want to show your Makefile updates so that that the problems =
are fully explicit.
>=20


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2A90CC78-117B-4988-9022-1687872B6C59>