Subject: bin/31330: cross-build requires host to have PRId64 define
To: None <gnats-admin@netbsd.org, netbsd-bugs@netbsd.org>
From: None <wiml@hhhh.org>
List: netbsd-bugs
Date: 09/17/2005 06:52:01
>Number:         31330
>Category:       bin
>Synopsis:       cross-build requires host to have PRId64 define
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Sep 17 06:52:00 +0000 2005
>Originator:     Wim Lewis
>Release:        CVS head 14-September-2005
>Organization:
HHHH
>Environment:
OpenBSD underhill.hhhh.org 3.7 UNDERHILL#0 i386

>Description:
The 'fdisk' tool requires the PRId64 format macro; if the host system doesn't have that, the cross-compile fails.
>How-To-Repeat:
Build netbsd on a host system with a not terribly up-to-date C compiler, such as OpenBSD 3.7.

>Fix:
Trivial workaround is to add a definition in tools/compat/compat_defs.h :

#ifndef PRId64
#define PRId64 "%ld"
#endif

but it would probably be better to snarf one of the public-domain inttypes implementations (which use a pile of CPP tests to guess what each PRIxxx string should be) and use it in the cross environment if needed.