Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Apr 2018 12:42:30 -0700
From:      John Baldwin <jhb@freebsd.org>
To:        Ian Lepore <ian@freebsd.org>
Cc:        Li-Wen Hsu <lwhsu@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r333010 - head/sys/mips/mips
Message-ID:  <25448250.A6B4XqlUaS@ralph.baldwin.cx>
In-Reply-To: <1524756570.57768.115.camel@freebsd.org>
References:  <201804251946.w3PJkdkH040243@repo.freebsd.org> <CAKBkRUxNEaM0oAd3GepXCJrhCNf5Nym0YH%2BsLk2K7ao4J_WDCQ@mail.gmail.com> <1524756570.57768.115.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, April 26, 2018 09:29:30 AM Ian Lepore wrote:
> On Thu, 2018-04-26 at 19:01 +0800, Li-Wen Hsu wrote:
> > On Thu, Apr 26, 2018 at 7:59 AM, Ian Lepore <ian@freebsd.org> wrote:
> > > 
> > > On Wed, 2018-04-25 at 19:46 +0000, Li-Wen Hsu wrote:
> > > > 
> > > > Author: lwhsu (ports committer)
> > > > Date: Wed Apr 25 19:46:39 2018
> > > > New Revision: 333010
> > > > URL: https://svnweb.freebsd.org/changeset/base/333010
> > > > 
> > > > Log:
> > > >   Fix mips32 build after r332951.
> > > > 
> > > >   Approved by:        jhb
> > > > 
> > > > Modified:
> > > >   head/sys/mips/mips/pm_machdep.c
> > > > 
> > > > Modified: head/sys/mips/mips/pm_machdep.c
> > > > ==============================================================================
> > > > --- head/sys/mips/mips/pm_machdep.c   Wed Apr 25 18:59:29 2018        (r333009)
> > > > +++ head/sys/mips/mips/pm_machdep.c   Wed Apr 25 19:46:39 2018        (r333010)
> > > > @@ -264,7 +264,7 @@ ptrace_single_step(struct thread *td)
> > > >               va = locr0->pc + 4;
> > > >       }
> > > >       if (td->td_md.md_ss_addr) {
> > > > -             printf("SS %s (%d): breakpoint already set at %lx (va %lx)\n",
> > > > +             printf("SS %s (%d): breakpoint already set at %zx (va %zx)\n",
> > > >                   p->p_comm, p->p_pid, td->td_md.md_ss_addr, va); /* XXX */
> > > >               error = EFAULT;
> > > >               goto out;
> > > > @@ -500,7 +500,7 @@ ptrace_clear_single_step(struct thread *td)
> > > > 
> > > >       if (error != 0) {
> > > >               log(LOG_ERR,
> > > > -                 "SS %s %d: can't restore instruction at %lx: %x\n",
> > > > +                 "SS %s %d: can't restore instruction at %zx: %x\n",
> > > >                   p->p_comm, p->p_pid, td->td_md.md_ss_addr,
> > > >                   td->td_md.md_ss_instr);
> > > >       }
> > > > 
> > > This isn't right either.  %z is for size_t values, both md_ss_addr and
> > > va are integers and a plain %x should be the right format.
> > But it will break mips64:
> > 
> > cc1: warnings being treated as errors
> > /home/lwhsu/src/sys/mips/mips/pm_machdep.c: In function 'ptrace_single_step':
> > /home/lwhsu/src/sys/mips/mips/pm_machdep.c:268: warning: format '%x'
> > expects type 'unsigned int', but argument 4 has type 'uintptr_t'
> > [-Wformat]
> > /home/lwhsu/src/sys/mips/mips/pm_machdep.c:268: warning: format '%x'
> > expects type 'unsigned int', but argument 5 has type 'uintptr_t'
> > [-Wformat]
> > /home/lwhsu/src/sys/mips/mips/pm_machdep.c: In function
> > 'ptrace_clear_single_step':
> > /home/lwhsu/src/sys/mips/mips/pm_machdep.c:505: warning: format '%x'
> > expects type 'unsigned int', but argument 5 has type 'uintptr_t'
> > [-Wformat]
> > *** [pm_machdep.o] Error code 1
> > 
> > Another way is cast arguments to uintmax_t and use %jx.  Will that be better?
> > 
> > Li-Wen
> > 
> 
> Oh, my bad, my source was out of date. Now I see that the types are not
> plain integers anymore. In that case, I think the only options are to
> cast to uintmax_t and use %jx, or cast to void* and use %p.

The %z does happen to work in this case since size_t == uintptr_t on MIPS,
but I think %p is the best route since these really are pointers.  I've
build-tested a patch to use %p and will commit it in a bit.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?25448250.A6B4XqlUaS>