xref: /netbsd/tools/compat/README (revision 1449de93)
1$NetBSD: README,v 1.23 2023/07/16 18:09:54 palle Exp $
2
3Special notes for cross-hosting a NetBSD build on certain platforms.
4Only those platforms which have been tested to complete a "build.sh" run
5are listed.
6
7All hosts must have a POSIX compatible sh. /bin/sh is assumed unless
8otherwise set. This can be overridden by setting HOST_SH in the environment.
9
10In addition all hosts must provide the following local tools:
11  gzip
12  gcc
13  g++
14  zlib and headers (this requirement may be dropped in future)
15
16FreeBSD
17-------
18
19build.sh was recently tested on:
20* FreeBSD 13 (amd64, aarch64)
21* FreeBSD 12.2 (amd64, aarch64)
22* FreeBSD 11.4 (amd64)
23* FreeBSD 10.4 (amd64)
24
25Linux
26-----
27
28build.sh has been tested on:
29* Amazon Linux 2 (x86)
30* Debian 10 (x86, aarch64)
31* Red Hat Enterprise Linux 8 (x86, aarch64)
32* SUSE Enterprise Server 15 (x86)
33* Ubuntu Server 20.04 (x86, aarch64)
34* Ubuntu Server 18.04 (x86)
35
36* The gcc and g++ package must be installed, along with the typical system
37  development packages (glibc-devel, etc.). The g++ package is sometimes
38  called gcc-c++.
39
40* The ncurses-devel package must be installed (for nbinfo).
41
42* The zlib and zlib-devel packages must be installed (these are
43  called zlib1g and zlib1g-dev on Debian and Ubuntu Linux)
44
45* There is a known build problem on Linux/aarch64 with glibc <2.28
46
47macOS/Darwin
48------------
49
50build.sh was recently tested on:
51* macOS Big Sur (x86)
52* macOS Catalina
53* macOS High Sierra
54
55with up to date Xcode command line tools and APFS filesystems.
56Previously, there have been issues building on case-insensitive
57HFS filesystems. build.sh is not working yet on M1-based Macs.
58
59HP-UX
60-----
61
62* zlib must be available.
63
64OpenBSD
65-------
66
67As of -current 20210629, ./build.sh will build src on OpenBSD 6.9
68for all platforms.
69
70Due to the default limits placed on user accounts, the host may experience
71memory exhaustion on builds requiring the LLVM RT library (including
72X on amd64, i386 and evbarm64-el) and for MIPS targets.
73
74This can be avoided by building as root (not ideal) or by asking your
75administrator to increase your limits in login.conf. These two variables
76seem to be sufficient:
77        :datasize=infinity:\
78        :stacksize-cur=8M:\
79
80NetBSD (earlier releases)
81-------------------------
82
83* Tested on NetBSD 1.5.2 (machine-independently).
84* Should need no special setup.
85* _NETBSD_SOURCE is *not* to be defined/pulled in during compat/tools builds.
86  compat_defs.h will error out if it finds it defined.
87
88Solaris
89-------
90
91(updated instruction for Solaris 11 further below)
92
93* Tested on Solaris/x86 8 (5.8) with gcc 2.95.2 and Solaris/sparc 8 (5.8)
94  with gcc 3.2 (not yet tested with SUNWspro).
95
96* $HOST_CC needs to be set properly (for gcc, it should be set to "gcc",
97  otherwise the improper /usr/ucb/cc may be invoked by accident).
98
99* The SUNWzlib package (or a built version of zlib visible to $HOST_CC,
100  such as SMCzlib from sunfreeware.com) must be installed.  This will be
101  fixed in the future to include zlib in libnbcompat.
102
103* Needs the following paths, in this order, in $PATH:
104
105      /usr/xpg4/bin
106      /usr/ccs/bin
107      <path to host C and C++ compilers>
108      /usr/bin
109
110  /usr/ucb may optionally be placed before /usr/bin, per your preference,
111  but /usr/ucb *MUST NOT* be before /usr/ccs/bin or before the path to
112  the host C and C++ compilers.
113
114Solaris 11:
115
116* Solaris 11.3
117 * Set PATH to /usr/xpg6/bin:/usr/xpg4/bin:/usr/bin
118 * Set HOST_CC to /usr/bin/gcc
119
120* Solaris 11.4 (CBE)
121 * TBD
122
123* Solaris 11.4 (SRU57)
124 * POSIX.1-2008, SUSv4 (see standards(7))
125 * Using gcc-12
126 * Set PATH to /usr/xpg7/bin:/usr/xpg6/bin:/usr/xpg4/bin:/usr/bin
127 * Set HOST_CC to /usr/bin/gcc
128 * Set HOST_SH to /usr/bin/bash
129