Commit Graph

31 Commits

Author SHA1 Message Date
jmc b2f782612f Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
2004-06-20 22:20:14 +00:00
thorpej b45be21f86 Use ${_TOOL_PREFIX} as appropriate. 2004-06-18 20:26:51 +00:00
jmc 7a3a50551c Make this build on non-NetBSD again (specifically linux). Exclude __ndbm13.c
from the imported db sources as well
2004-05-03 03:20:20 +00:00
lukem 171d653219 Overhaul how `build.sh tools' are used:
*	Rename "config.h" to "nbtool_config.h" and
	HAVE_CONFIG_H to HAVE_NBTOOL_CONFIG_H.
	This makes in more obvious in the source when we're using
	tools/compat/config.h versus "standard autoconf" config.h

    *	Consistently move the inclusion of nbtool_config.h to before
    	<sys/cdefs.h> so that the former can provide __RCSID() (et al),
    	and there's no need to protect those macros any more.

These changes should make it easier to "tool-ify" a program by adding:
	#if HAVE_NBTOOL_CONFIG_H
	#include "nbtool_config.h"
	#endif
to the top of the source files (for the general case).
2003-10-27 00:12:41 +00:00
lukem f85d2d1c14 Use ${HOST_SH} instead of `sh'.
If necessary, pull in <bsd.sys.mk> to get the definition of HOST_SH;
Makefiles that pull in one of (most of) <bsd.*.mk> will get this anyway.
2003-10-26 07:25:33 +00:00
lukem a93ea220fc Rework how dependency generation is performed:
* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES.
  This is a change of behaviour.  If a Makefile wants the clean semantics
  it must specifically append to CLEANFILES.
  Resolves PR toolchain/5204.

* To recap: .d (depend) files are generated for all files in SRCS and DPSRCS
  that have a suffix of: .c .m .s .S .C .cc .cpp .cxx

* If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES

* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d  depend upon ${DPSRCS}

* Deprecate the (short lived) DEPENDSRCS


Update the various Makefiles to these new semantics; generally either
adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing
specific .o dependencies with DPSRCS entries.

Tested with "make -j 8 distribution" and "make distribution".
2003-08-01 17:03:41 +00:00
fredb b92132145c Must add "configure.lineno" to CLEANFILES after updating to autoconf 2.57. 2003-07-29 19:25:02 +00:00
uwe 0bbb587407 Add atoll(3) to libnbcompat. We need it when building target's gcc
for a 64-bit target on a 32-bit host.

NB: There seems to be a bug in either gcc itself or the way we import
it, b/c the incorrect #define HAVE_ATOLL is picked from (e.g. for
sparc64) gnu/usr.bin/gcc/arch/sparc64/auto-host.h - so when gen*
auxilary (host) programs are built in gnu/usr.bin/gcc/backend, they
incorrectly pick-up target's HAVE_ATOLL.

For now providing atoll(3) in libnbcompat is a simple and sufficient
workaround.
2003-06-03 03:16:48 +00:00
bjh21 4be7a2dcf3 Add a new feature-test macro, _NETBSD_SOURCE. If this is defined
by the application, all NetBSD interfaces are made visible, even
if some other feature-test macro (like _POSIX_C_SOURCE) is defined.
<sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE,
_POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve
existing behaviour.

This has two major advantages:
+ Programs that require non-POSIX facilities but define _POSIX_C_SOURCE
  can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS.
+ It makes most of the #ifs simpler, in that they're all now ORs of the
  various macros, rather than having checks for (!defined(_ANSI_SOURCE) ||
  !defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.

I've tried not to change the semantics of the headers in any case where
_NETBSD_SOURCE wasn't defined, but there were some places where the
current semantics were clearly mad, and retaining them was harder than
correcting them.  In particular, I've mostly normalised things so that
_ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE,
_XOPEN_SOURCE and _NETBSD_SOURCE in that order.

Tested by building for vax, encouraged by thorpej, and uncontested in
tech-userlevel for a week.
2003-04-28 23:16:11 +00:00
thorpej 241ed6a4c1 Add a putc_unlocked(). 2003-03-14 03:38:42 +00:00
thorpej 8b1707fd43 Disable pre-compiled headers on Darwin. 2003-03-13 05:00:28 +00:00
lukem 90af8ac79d Tweak dependencies so that defs.mk depends upon config.cache, and
config.cache depends upon 'include/.stamp configure config.h.in defs.mk.in'
and runs configure.  Forcebly remove config.cache before running configure.

This change means that config.cache is (still) retained between "make clean"
(but not "make cleandir") runs, but is flushed if configure or config.h.in
is changed, as the cache may contain incorrect information in that case.
2002-12-04 23:27:54 +00:00
lukem b1e79510cf - Migrate fparseln(3) from libutil to libc, where it should have been in
the first place...
- Bump libutil major (to 7.0) and libc minor (to 12.91).
2002-11-30 03:04:44 +00:00
lukem 336730e201 replace missing strsuftoll(3) 2002-11-29 13:00:22 +00:00
lukem dba0caccee Implement replacements for lchflags(), lchmod(), and lchown(),
which first lstat(2) the target and return EINVAL if it's a symlink,
and then call ch{flags,mod,own} as appropriate.
Removes the need for hokey code inside the tools themselves...
2002-10-08 00:28:36 +00:00
lukem 8b42f7b9d9 Provide strtoll() in libnbcompat.
Should fix relevant build issue on HP-UX and MacOS X hosts.
2002-10-06 12:09:34 +00:00
thorpej d92d489497 * Check for mkstemp() and mkdtemp(), and build them into libnbcompat
if necessary.
* mktemp is now a host-tool, so nuke the lame script (which isn't even
  properly installed during the tools bootstrap).
2002-09-14 04:30:27 +00:00
thorpej f54ca60093 * Always include the NetBSD glob(3) in libnbcompat, as the host
tools use some features of glob(3) that are not available on
  all systems.
* Always include the NetBSD vis(3) in libnbcompat, since vis(3)
  is not really standardized, and the vis(3) present on some systems
  is different from ours.
* Always include the NetBSD MD2, MD4, MD5, RMD160, and SHA1 implementations
  in libnbcompat.  The host tools use features of the NetBSD versions
  which aren't present on all systems that include those functions.
* Add a check for random(3) -- the Heimdal host tools want it.
* Add a check for termios.h -- the Heimdal host tools want it.
* Update the README to indicate the current state of building the
  host tools on Solaris 8 (for SPARC).
2002-09-13 19:07:01 +00:00
tv 42f04dab1c Actually put the include directory timestamp under the "include" directory,
such that nuking the dir by hand also nukes the timestamp.
2002-04-18 21:15:08 +00:00
bjh21 6619533896 Add a stub issetugid() for platforms that don't have it. For now, we assume
that no host program will be installed set-id, so the stub function always
returns 0.
2002-04-18 15:31:51 +00:00
bjh21 c9e4965681 Revert addition of mkdtemp() to libnbcompat. I don't think we need mktemp(1)
after all.
2002-04-01 13:59:34 +00:00
bjh21 58017a564d Add mkdtemp to libnbcompat, since glibc doesn't have it an mktemp(1) will
need it.
2002-03-31 18:04:11 +00:00
bjh21 bcaedc129c Add the md[245], sha1 and rmd160 functions to libnbcompat, conditional on their
not being in the host libc.
This will be necessary to make cksum into a host tool.
2002-03-31 12:58:54 +00:00
tv 259a2ab95f Add some more bits of host compatibility. 2002-02-26 22:29:38 +00:00
tv 9fbd88883c Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
round has been tested on Solaris/x86 and Linux hosts.

* Add host tools cap_mkdb, ctags, m4, uudecode.
* Protect __RCSID() and __COPYRIGHT() better.
* Reduce the number of places that need to include "config.h", to keep
  sources closer to their "vanilla" versions.
* Add more compat #defines and autoconf-checked functions.
2002-01-31 22:43:33 +00:00
tv a328e34106 Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)
2002-01-29 10:20:28 +00:00
lukem 2b616edfca - Replace pwcache(3) if necessary (pwcache_userdb(3) is checked for).
Tested on -current and 1.5.3.
- Wrap some long lines.
2002-01-24 04:05:27 +00:00
lukem 60eebeccec reachover to ../../lib/libutil for fparseln.c 2002-01-21 23:35:14 +00:00
tv 9d5d28c26f Make many host tools compile on non-NetBSD hosts. Not complete, but
very nearly there.
2002-01-21 20:04:36 +00:00
lukem 07fae6dedd Add replacement fgetln(3) (from lukemftp/libukem), as fparseln(3) uses it 2002-01-04 14:39:06 +00:00
tv 87d14ee4ac Add the framework for autoconf-based src/tools/compat structure. This will
(after it is more fleshed out) allow the host tools to work more cleanly
on non-NetBSD hosts.
2001-12-11 21:17:56 +00:00