Subject: namespace issues
To: None <tech-userlevel@NetBSD.ORG>
From: J.T. Conklin <jtc@cygnus.com>
List: tech-userlevel
Date: 01/27/1995 11:00:12
I have decided that no effort to provide an ANSI clean namespace for
ports without weak references will be made at this time.  libc.a will
still be able to be compiled and used on those ports, but it will not
be strictly conforming.

The implementation is as follows:

	* A library private header file, libc/include/namespace.h,
	  will contain #defines that map traditional identifier names
	  to their namespace-clean equivalents

		#define isinf	_isinf
		#define isnan	_isnan
		.
		.
		.

	* All C library source files will include namespace.h first.

	* The implementations of each function that has been moved to
	  the ansi clean namespace will have a __weak_reference() call
	  that instructs the assembler to emit one.

		#include "namespace.h"
		#include < >

		__weak_reference(_isinf,isinf)
	
		int
		isinf(d)
			double d;
		{
		}

namespace.h will define __weak_reference() so it expands to nothing,
and will not map identifier names on systems without weak references.

--

There still may be a little bit of work to handle assembly versions of
the functions, but I thought I'd ask you all what you think of my plan
so far.

Thanks,

	--jtc