tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Portable type definitions for tools



On Wed, Sep 10, 2008 at 09:22:12PM +0200, Alan Barrett wrote:
  | On Wed, 10 Sep 2008, Joerg Sonnenberger wrote:
  | > Not included is configure itself as it is 300KB by itself due to the
  | > different version.
  | 
  | Are you using the nbautoconf that gets built with MKMAINTAINERTOOLS=YES ?

I suspect not; the AC_TYPE_INT8_T (et al) macros appear to have
been introduced in autoconf 2.60 and some fixed in 2.60b,
and gnu/dist/autoconf is 2.52.

A while ago I considered updating gnu/dist/autoconf from 2.52 to 2.60 +,
and updating tools/compat/configure.ac to suit.  However, the newer
version is even more stringent about requiring features in GNU m4 1.4.11+.

I see that autoconf 2.63 is now available, and has used GPLv3 since 2.62.
There's no entry in the NEWS file stating when the license changed;
I had to trawl through the git repository to determine this.


  | > The patch does three things:
  | > (a) It uses the normal autoconf macros to find or define if needed
  | > the various fixed size types, [u]intmax_t and [u]intptr_t.
  | > (b) It defines u_int{8,16,32,64}_t to uint{8,16,32,64}_t if the former
  | > don't exist.
  | > (c) Include strtoull, strtoimax and strtoumax if needed.
  | 
  | (a) and (c) look reasonable, in principle but I haven't dona a build
  | with your patch.  Why do you want (b)?
  | 
  | > -/* Define if you have uint16_t, but not u_int16_t. */
  | > +/* Define u_int16 in terms of uint16_t. */
  | >  #undef u_int16_t
  | 
  | Do we have tools that rely on u_intNNT?  If so, I think we should fix
  | them to use uintNN_t instead, and rip these definitions out of the
  | compat headers.

I agree with Alan; let's remove the u_intNN_t stuff from tools
to reduce the amount of portability foo we need to deal with
in tools/compat.


Comments:

 * Joerg's proposal requires a newer version of autoconf (2.60+)
   than we have in gnu/dist/autoconf as a MKMAINTAINERTOOLS item.
   (for AC_TYPE_INT8_T, etc)

 * New autoconf has improved tests for other issues that may
   help improve the portability of src/tools.

 * autoconf 2.60+ needs GNU m4 1.4.5 and prefers 1.4.11.
   We don't have GNU m4 in-tree.

 * autoconf 2.62+ and m4 1.4.10+ is licensed under GPLv3.

 * The general directive has been to avoid GPLv3 in-tree
   before NetBSD 5.0.
   However, these two programs are "maintainer tools" not built
   by default and only necessary to ensure that
   tools/compat/configure.ac can be locally modified and
   built to tools/compat/configure, without requiring other
   third-party tools.


In light of this, we need to decide whether the costs of
importing a newer autoconf & GNU m4 into the tree
(under src/external/gpl3/ ) this close the the 5.0 branch
are outweighed by the benefits of building tools/compat/configure
with a more modern autoconf.

The answer to this may need direction from core%NetBSD.org.@localhost

cheers,
Luke.

Attachment: pgpWvuGDvec66.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index