NetBSD/tools/compat
christos a043955316 Patch the build script and toolchain to allow passing through
HOST_CPPFLAGS, HOST_CXXFLAGS, but not LIBRARY_PATH because it breaks
the build. These variables are necessary to support building NetBSD
from a GNU Guix or NixOS host, where /usr/include, /lib, and all
but /bin/sh do not exist.  In many cases, support for HOST_CPPFLAGS
was incomplete. From Ryan Sundberg
2021-09-18 01:47:07 +00:00
..
crypto
dev
fs/msdosfs
sys
ufs
Makefile Patch the build script and toolchain to allow passing through 2021-09-18 01:47:07 +00:00
README Final note on OpenBSD cross-buildling. Remaining issues were due to 2021-07-11 06:15:42 +00:00
cdbr.h
cdbw.h
compat_defs.h PR port-amiga/56188 2021-05-30 10:39:41 +00:00
compat_getopt.h
compat_pwd.h
configure
configure.ac
db.h
defs.mk.in
dprintf.c
fgetln.c
flock.c
fpurge.c
fts.h
getline.c
getmode.c
glob.h
issetugid.c
lchflags.c
lchmod.c
lchown.c
md2.h
md4.h
md5.h
mpool.h
namespace.h
nbtool_config.h.in
ndbm.h
nl_types.h
pread.c
putc_unlocked.c
pwrite.c
regex.h
rmd160.h
setenv.c
setgroupent.c
setpassent.c
setprogname.c
sha1.h
sha2.h
snprintf.c
tzfile.h
vis.h

README

$NetBSD: README,v 1.21 2021/07/11 06:15:42 cjep Exp $

Special notes for cross-hosting a NetBSD build on certain platforms.  
Only those platforms which have been tested to complete a "build.sh" run
are listed.

All hosts must have a POSIX compatible sh. /bin/sh is assumed unless 
otherwise set. This can be overridden by setting HOST_SH in the environment.

In addition all hosts must provide the following local tools:
  gzip
  gcc
  g++
  zlib and headers (this requirement may be dropped in future)

FreeBSD
-------

build.sh was recently tested on:
* FreeBSD 13 (amd64, aarch64) 
* FreeBSD 12.2 (amd64, aarch64)
* FreeBSD 11.4 (amd64)
* FreeBSD 10.4 (amd64)

Linux
-----

build.sh has been tested on:
* Amazon Linux 2 (x86)
* Debian 10 (x86, aarch64)
* Red Hat Enterprise Linux 8 (x86, aarch64)
* SUSE Enterprise Server 15 (x86)
* Ubuntu Server 20.04 (x86, aarch64)
* Ubuntu Server 18.04 (x86)

* The gcc and g++ package must be installed, along with the typical system 
  development packages (glibc-devel, etc.). The g++ package is sometimes 
  called gcc-c++.

* The ncurses-devel package must be installed (for nbinfo).

* The zlib and zlib-devel packages must be installed (these are
  called zlib1g and zlib1g-dev on Debian and Ubuntu Linux)

* There is a known build problem on Linux/aarch64 with glibc <2.28

macOS/Darwin
------------

build.sh was recently tested on:
* macOS Big Sur (x86)
* macOS Catalina
* macOS High Sierra

with up to date Xcode command line tools and APFS filesystems. 
Previously, there have been issues building on case-insensitive 
HFS filesystems. build.sh is not working yet on M1-based Macs.

HP-UX
-----

* zlib must be available.

OpenBSD
-------

As of -current 20210629, ./build.sh will build src on OpenBSD 6.9
for all platforms.

Due to the default limits placed on user accounts, the host may experience
memory exhaustion on builds requiring the LLVM RT library (including 
X on amd64, i386 and evbarm64-el) and for MIPS targets.

This can be avoided by building as root (not ideal) or by asking your
administrator to increase your limits in login.conf. These two variables
seem to be sufficient:
        :datasize=infinity:\
        :stacksize-cur=8M:\

NetBSD (earlier releases)
-------------------------

* Tested on NetBSD 1.5.2 (machine-independently).
* Should need no special setup.
* _NETBSD_SOURCE is *not* to be defined/pulled in during compat/tools builds.
  compat_defs.h will error out if it finds it defined. 

Solaris
-------

(updated instruction for Solaris 11 further below)

* Tested on Solaris/x86 8 (5.8) with gcc 2.95.2 and Solaris/sparc 8 (5.8)
  with gcc 3.2 (not yet tested with SUNWspro).

* $HOST_CC needs to be set properly (for gcc, it should be set to "gcc",
  otherwise the improper /usr/ucb/cc may be invoked by accident).

* The SUNWzlib package (or a built version of zlib visible to $HOST_CC,
  such as SMCzlib from sunfreeware.com) must be installed.  This will be
  fixed in the future to include zlib in libnbcompat.

* Needs the following paths, in this order, in $PATH:

      /usr/xpg4/bin
      /usr/ccs/bin
      <path to host C and C++ compilers>
      /usr/bin

  /usr/ucb may optionally be placed before /usr/bin, per your preference,
  but /usr/ucb *MUST NOT* be before /usr/ccs/bin or before the path to
  the host C and C++ compilers.

Solaris 11:

* Solaris 11.3
 * Set PATH to /usr/xpg6/bin:/usr/xpg4/bin:/usr/bin
 * Set HOST_CC to /usr/bin/gcc

* Solaris 11.4
 * Install gcc-5 since the default installed gcc-7 has issues when compiling 
   toolchain version of groff (hypot())
 * Set PATH to /usr/xpg7/bin:/usr/xpg6/bin:/usr/xpg4/bin:/usr/bin
 * set HOST_CC to /usr/gcc/5/bin/gcc
 * set HOST_CXX to /usr/gcc/5/bin/g++