svn commit: r325954 - in head: . share/mk sys/conf usr.sbin/config

Pedro Giffuni pfg at FreeBSD.org
Mon Nov 20 01:40:55 UTC 2017


> On Nov 19, 2017, at 19:11, Mark Millard <markmi at dsl-only.net> wrote:
> 
> [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.]
> 
> On 2017-Nov-19, at 3:43 PM, Pedro Giffuni <pfg at FreeBSD.org> wrote:
> 
>> ....
>> 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 :
>>> 
>>>> 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:
>>> 
>>> 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.
>>> 
>>> 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.
>>> 
>>> 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.
> 
> openoffice likely does not depend on lib32 (support of 32-bit
> code under a powerpc64 environment) even being present, much
> less working?
> 

Yes, right: it’s 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’t have access to the platform but patches to build the arch-dependent “bridges” code with clang would be very welcome.

> As far as I know, for powerpc64 WITHOUT_LIB32= buildworld,
> devel/powerpc64-gcc is sufficient. It is WITH_LIB32= coverage
> that makes it insufficient overall. Anything that does not
> depend on lib32 likely works as well as on other architectures.
> 
>>> [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.
> 
> I do not have direct experience for sparc*'s but I'd
> not be surprised.
> 
>> But this is very off-topic to lint issue :).
> 
> 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.
> 

I have no interest in killing any platform but we are reaching a point where, other than being unmaintained, gcc-4.2.1 won’t be able to build newer clang or gcc.

Pedro.




More information about the svn-src-head mailing list