Thread overview
Upgrading the minimum version of FreeBSD supported
Mar 31, 2017
Walter Bright
Apr 01, 2017
Jonathan M Davis
Apr 03, 2017
Brad Roberts
Apr 03, 2017
Jonathan M Davis
Apr 14, 2017
Brad Roberts
May 07, 2017
Jonathan M Davis
March 31, 2017
The autotester is currently at FreeBSD 8.4. This is rather obsolete. The linker that is standard on 8.4 is causing problems:

  https://github.com/dlang/dmd/pull/6564

The oldest supported version of FreeBSD stands at 10.3:

  https://www.freebsd.org/security/unsupported.html

I know the linker with FreeBSD 11.0 does work correctly. I don't know which FreeBSD version it was fixed on.

So the question is, can we at least move to FreeBSD 10.3 as the minimum supported version? Is anyone very dependent on an older FreeBSD? Is there a case for supporting FreeBSD versions that are officially unsupported?
March 31, 2017
On Friday, March 31, 2017 15:51:33 Walter Bright via Digitalmars-d wrote:
> The autotester is currently at FreeBSD 8.4. This is rather obsolete. The linker that is standard on 8.4 is causing problems:
>
>    https://github.com/dlang/dmd/pull/6564
>
> The oldest supported version of FreeBSD stands at 10.3:
>
>    https://www.freebsd.org/security/unsupported.html
>
> I know the linker with FreeBSD 11.0 does work correctly. I don't know which FreeBSD version it was fixed on.
>
> So the question is, can we at least move to FreeBSD 10.3 as the minimum supported version? Is anyone very dependent on an older FreeBSD? Is there a case for supporting FreeBSD versions that are officially unsupported?

Some work was done a year or two ago to fix FreeBSD 9 and 10, and AFAIK, they both work, though I've never used FreeBSD 9. 10.3 did work the last time I tried it, as did 11.0 (both passed druntime and phobos' unit tests, and I _think_ that I ran dmd's tests and that they passed, but I'm not 100% sure, since I don't run those normally). FreeBSD CURRENT does _not_ currently work properly due to a problem with stack unwinding that results in bus errors when an exception is thrown. I think that there's a decent chance that it's a FreeBSD bug as opposed to ours, but I haven't gotten around to contacting the FreeBSD devs about it yet. However, that problem has not yet made it into an official release, and hopefully it never does.

As for the minimum version to support, I'd be very much inclined to argue that we only officially support the versions that the FreeBSD folks currently support, or we're just asking for trouble. And honestly, I think that we should do the same on all platforms. If someone wants to run an unsupported version of an OS, they're just begging for trouble anyway, and they can always use an older version of the compiler that did support that OS. And actually, the last time I checked, the official FreeBSD port for dmd claimed that we don't officially support FreeBSD, even though we theoretically do (probably because support for it hasn't been as good - e.g. we test on an outdated version of the OS and took quite a while to fix druntime for newer versions of FreeBSD). Sadly, I think that the primary reason that druntime works correctly on FreeBSD 10 and 11 now is because I switched to using it as my primary OS and complained when it didn't work. It seems to have primarily gone under the radar otherwise.

- Jonathan M Davis

April 02, 2017
On 3/31/2017 6:30 PM, Jonathan M Davis via Digitalmars-d wrote:
> On Friday, March 31, 2017 15:51:33 Walter Bright via Digitalmars-d wrote:
>> The autotester is currently at FreeBSD 8.4. This is rather obsolete. The
>> linker that is standard on 8.4 is causing problems:
>>
>>     https://github.com/dlang/dmd/pull/6564
>>
>> The oldest supported version of FreeBSD stands at 10.3:
>>
>>     https://www.freebsd.org/security/unsupported.html
>>
>> I know the linker with FreeBSD 11.0 does work correctly. I don't know
>> which FreeBSD version it was fixed on.
>>
>> So the question is, can we at least move to FreeBSD 10.3 as the minimum
>> supported version? Is anyone very dependent on an older FreeBSD? Is there
>> a case for supporting FreeBSD versions that are officially unsupported?
> Some work was done a year or two ago to fix FreeBSD 9 and 10, and AFAIK,
> they both work, though I've never used FreeBSD 9. 10.3 did work the last
> time I tried it, as did 11.0 (both passed druntime and phobos' unit tests,
> and I _think_ that I ran dmd's tests and that they passed, but I'm not 100%
> sure, since I don't run those normally). FreeBSD CURRENT does _not_
> currently work properly due to a problem with stack unwinding that results
> in bus errors when an exception is thrown. I think that there's a decent
> chance that it's a FreeBSD bug as opposed to ours, but I haven't gotten
> around to contacting the FreeBSD devs about it yet. However, that problem
> has not yet made it into an official release, and hopefully it never does.
>
> As for the minimum version to support, I'd be very much inclined to argue
> that we only officially support the versions that the FreeBSD folks
> currently support, or we're just asking for trouble. And honestly, I think
> that we should do the same on all platforms. If someone wants to run an
> unsupported version of an OS, they're just begging for trouble anyway, and
> they can always use an older version of the compiler that did support that
> OS. And actually, the last time I checked, the official FreeBSD port for dmd
> claimed that we don't officially support FreeBSD, even though we
> theoretically do (probably because support for it hasn't been as good - e.g.
> we test on an outdated version of the OS and took quite a while to fix
> druntime for newer versions of FreeBSD). Sadly, I think that the primary
> reason that druntime works correctly on FreeBSD 10 and 11 now is because I
> switched to using it as my primary OS and complained when it didn't work. It
> seems to have primarily gone under the radar otherwise.
>
> - Jonathan M Davis

I grabbed the official 10.3-CURRENT vm image from the freebsd website and gave it a whirl.  For the 64 bit test run, the only failure was std.datetime unit tests failure.  Apparently LocalTime().stdName is null and the assert at line 28248 fails. There's at least one additional failure on 32 bits in allocator/building_blocks/region.d line 652.  I ran out of time to dig for today, but the bottom line is that 10.3 isn't ready to be the base platform for dmd as is.  Chances are it could be with only a little work though.

I haven't tried 11 yet either.

Later,
Brad

April 02, 2017
On Sunday, April 02, 2017 20:40:15 Brad Roberts via Digitalmars-d wrote:
> I grabbed the official 10.3-CURRENT vm image from the freebsd website and gave it a whirl.  For the 64 bit test run, the only failure was std.datetime unit tests failure.  Apparently LocalTime().stdName is null and the assert at line 28248 fails.

Weird. I was running on PC-BSD 10.3 for a while (which should be the same as FreeBSD 10.3 proper for everything that matters), and I never saw that failure. I guess that I'll have to find some time to look into it.

- Jonathan M Davis

April 14, 2017
On 4/2/2017 9:20 PM, Jonathan M Davis via Digitalmars-d wrote:
> On Sunday, April 02, 2017 20:40:15 Brad Roberts via Digitalmars-d wrote:
>> I grabbed the official 10.3-CURRENT vm image from the freebsd website
>> and gave it a whirl.  For the 64 bit test run, the only failure was
>> std.datetime unit tests failure.  Apparently LocalTime().stdName is null
>> and the assert at line 28248 fails.
> 
> Weird. I was running on PC-BSD 10.3 for a while (which should be the same as
> FreeBSD 10.3 proper for everything that matters), and I never saw that
> failure. I guess that I'll have to find some time to look into it.
> 
> - Jonathan M Davis

Following up on this thread, I've setup another auto-tester project with just two new freebsd machines, 10.3 and 11.0.  The purpose is to allow anyone who has the time and desire to help fix the issues to have a place to view the results.  So please, submit pull requests so we can get the issues fixed and retire the old 8.x machines.

The github project they're building is github.com/braddr/dmd|druntime|phobos/tree/freebsd-update.
May 07, 2017
On Sunday, April 2, 2017 8:40:15 PM CEST Brad Roberts via Digitalmars-d wrote:
> I grabbed the official 10.3-CURRENT vm image from the freebsd website and gave it a whirl.  For the 64 bit test run, the only failure was std.datetime unit tests failure.  Apparently LocalTime().stdName is null and the assert at line 28248 fails. There's at least one additional failure on 32 bits in allocator/building_blocks/region.d line 652.  I ran out of time to dig for today, but the bottom line is that 10.3 isn't ready to be the base platform for dmd as is.  Chances are it could be with only a little work though.

The std.datetime failure is due to known FreeBSD bug, but it's affected by the local time, and apparently, it works in America/Los_Angeles but not in UTC (which is why I wasn't seeing it). I'll commit a workaround shortly, though I still need to figure out how to push the fix in FreeBSD through so that FreeBSD doesn't have the bug anymore...

- Jonathan M Davis