Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Nov 2017 18:19:04 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        Pedro Giffuni <pfg@FreeBSD.org>
Cc:        svn-src-head@freebsd.org
Subject:   Re: svn commit: r325954 - in head: . share/mk sys/conf usr.sbin/config
Message-ID:  <7230AC67-7F9A-4FE2-BC32-B2BA8091206D@dsl-only.net>
In-Reply-To: <297A2FDE-6105-4F64-921B-9510066F0420@FreeBSD.org>
References:  <59284FA3-1659-49D0-A860-366B98B02209@dsl-only.net> <26aaac2e-01d5-a11c-1182-39363d5cafc5@FreeBSD.org> <4DCBA4BA-1803-4B8F-B232-7558227E4002@dsl-only.net> <297A2FDE-6105-4F64-921B-9510066F0420@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
[Continuing the gcc 4.2.1 side issue a bit.]

On 2017-Nov-19, at 5:40 PM, Pedro Giffuni <pfg@FreeBSD.org> wrote:

>> On Nov 19, 2017, at 19:11, Mark Millard <markmi@dsl-only.net> wrote:
>>=20
>> [As long as things do not go the direction of
>> eliminating gcc 4.2.1 being able to do buildworld
>> and buildkernel for certain architectures, I
>> agree that this would stay an off-topic subject.]
>>=20
>> On 2017-Nov-19, at 3:43 PM, Pedro Giffuni <pfg at FreeBSD.org> wrote:
>>=20
>>> ....
>>> On 19/11/2017 17:38, Mark Millard wrote:
>>>> Pedro Giffuni pfg at FreeBSD.org wrote on
>>>> Sun Nov 19 15:29:33 UTC 2017 :
>>>>=20
>>>>> Yes, we should
>>>>> avoid breaking existing stuff (however old) in ports but no one is
>>>>> expecting to build modern FreeBSD with gcc 3.4 or even gcc 4.1. We =
did
>>>>> what we could with gcc 4.2.1 but it's time is also over.
>>>> Unfortunately for powerpc64 no alternative
>>>> works fully. For example:
>>>>=20
>>>> A) With a buildworld by clang and C++ programs linked against
>>>>  the system libraries, any C++ exception thrown causes the
>>>>  program to crash: clang generates bad code in the library.
>>>>=20
>>>> B) Modern gcc's build a lib32 based on generating a messed up
>>>>  crtbeginS.o content (bad register usage) and so 32-bit
>>>>  programs crash.
>>>>=20
>>>> As far as I know gcc 4.2.1 is still the only environment that
>>>> generally works for powerpc64.
>>> Hmm ...
>>> At some point some of the newer GCC was generating good code.
>>> I have had reports of openoffice-devel working on FreeBSD powerpc64 =
and,
>>> even on x86, openoffice stopped building with our base gcc.
>>=20
>> openoffice likely does not depend on lib32 (support of 32-bit
>> code under a powerpc64 environment) even being present, much
>> less working?
>>=20
>=20
> Yes, right: it=E2=80=99s pretty native: either all 64 bit or all 32 =
bit..
> The port had endianness issues but once Curtis Hamilton fixed those =
the port worked.
> For the record: AOO generally needs two things: working java and a =
low-level "bridges" code.
> I don=E2=80=99t have access to the platform but patches to build the =
arch-dependent =E2=80=9Cbridges=E2=80=9D code with clang would be very =
welcome.
>=20
>> As far as I know, for powerpc64 WITHOUT_LIB32=3D buildworld,
>> devel/powerpc64-gcc is sufficient. It is WITH_LIB32=3D coverage
>> that makes it insufficient overall. Anything that does not
>> depend on lib32 likely works as well as on other architectures.
>>=20
>>>> [There is no devel/powerpc-gcc like there is a devel/powerpc64-gcc
>>>> and I've never managed to to make a working powerpc build from a
>>>> gcc other than 4.2.1 . (A) prevents clang from counting as working
>>>> overall. So powerpc may be in the same boat as powerpc64 as far as
>>>> having a known way to build without gcc 4.2.1 goes.]
>>> At least PPC64 is alive, I am afraid that I don't see a solution for =
sparc64.
>>=20
>> I do not have direct experience for sparc*'s but I'd
>> not be surprised.
>>=20
>>> But this is very off-topic to lint issue :).
>>=20
>> As long as things do not go the direction of
>> eliminating gcc 4.2.1 being able to do buildworld
>> and buildkernel for certain architectures, I
>> agree that this would stay an off-topic subject.
>>=20
>=20
> I have no interest in killing any platform but we are reaching a point =
where, other than being unmaintained, gcc-4.2.1 won=E2=80=99t be able to =
build newer clang or gcc.

gcc 4.2.1 has not been able to build the system clang
for a long time. Getting from a gcc 4.2.1 powerpc64 or
powerpc to a clang-based one is a pain when self hosting.
Cross building with clang in use is handier when one
has a supporting context for such.

gcc* tends to have a bootstrapping stage available
that builds xgcc (as I remember the name), avoiding
modern stuff to get xgcc built. xgcc builds the full
gcc* build, avoiding the original host compiler.
This may still work with gcc 4.2.1 . I've not tried
in a long time.

Avoiding a full-bootstrap for a gcc* requires something
more modern than gcc 4.2.1 .


=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?7230AC67-7F9A-4FE2-BC32-B2BA8091206D>