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>