Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Jun 2017 21:50:05 -0500
From:      Justin Hibbits <jrh29@alumni.cwru.edu>
To:        Mark Millard <markmi@dsl-only.net>
Cc:        "ppc@freebsd.org" <ppc@freebsd.org>
Subject:   Re: 64-bit time_t on 32-bit powerpc
Message-ID:  <CAHSQbTAkTgJ7G4OQDRa-hQm5vhjpPv4VixKOHowXgM2bPJ%2BO-w@mail.gmail.com>
In-Reply-To: <B5D57905-7DCB-450A-B414-D27D9D979EDD@dsl-only.net>
References:  <CAHSQbTC9UgCnpbpMj5dukY%2BGMwOpDy5FQACHGmb8EmU%2BdyQOuw@mail.gmail.com> <CAHSQbTDbQaK2k_q0OkpoCEwQF1v-XRrA8kg%2BPzYyhBY=UTQExQ@mail.gmail.com> <B5D57905-7DCB-450A-B414-D27D9D979EDD@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday, June 5, 2017, Mark Millard <markmi@dsl-only.net> wrote:

>
> On 2017-Jun-5, at 1:54 PM, Justin Hibbits <jhibbits@freebsd.org
> <javascript:;>> wrote:
>
> > On Fri, Jun 2, 2017 at 11:45 PM, Justin Hibbits <jhibbits@freebsd.org
> <javascript:;>> wrote:
> >> Calling all powerpc(32) users,
> >>
> >> Attached is a patch which changes the size of time_t from 32-bit to
> 64-bit
> >> on powerpc.  ARM and MIPS already use 64-bit time_t, the only other
> holdout
> >> is i386, which cannot be changed.  I want to get this in soon so there's
> >> plenty of soak time before 12 is branched.  It works well enough for my
> >> cases, but I want others to poke, prod, and try to break it.
> Especially try
> >> your favorite ports builds, and make sure things still a) build, and b)
> work
> >> as expected.
> >>
> >> Almost forgot, too... With powerpc64 users, the compat32 has been
> updated as
> >> well, obviously.  So, some testing of that is needed, too.
> >>
> >> - Justin
> >
> > I was just informed I forgot a very crucial part of the patch -- the
> > update to UPDATING:
> >
> > 20170612:
> >        The FreeBSD/powerpc platform now uses a 64-bit type for time_t.
> This is
> >        a very major incompatible change, so users of FreeBSD/powerpc
> must be
> >        careful when performing source upgrades.  It is best to run 'make
> >        installworld' from an alternate root system, either a live
> CD/memory
> >        stick, or a temporary root partition.  Additionally, all ports
> must be
> >        recompiled.
> >
> > In short: Do _not_ try to reboot to the new kernel with existing
> > userland.  Boot to an alternate userland and install from there.
>
> What timing as far as live-update contexts go. . .
>
> ino64 requires a new kernel boot with an old world still
> in use: world must not have been updated first.
>
> So it appears one should not try to jump from pre-ino64
> to post-powerpc-64-bit-time_t in one step via a
> live-system update sequence.
>

Correct.  You cannot migrate to 64-bit time_t with a live system update
anyway, it's an ABI/KBI/syscall change, so you have to perform a two-stage
upgrade with this.  You can migrate along with the ino64 change, but you
have to use an alternate root regardless of any other changes made.


>
> > Also, shortly after I sent out the patch, I realized I hadn't tested
> > with TARGET_ARCH=powerpc64, which broke.  I'll send out an updated
> > patch later tonight.
>

As promised, you can find the updated patch at
https://people.freebsd.org/~jhibbits/time_t_32.diff

- Justin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHSQbTAkTgJ7G4OQDRa-hQm5vhjpPv4VixKOHowXgM2bPJ%2BO-w>