summaryrefslogtreecommitdiff
path: root/bootstrap/README.MacOSX
diff options
context:
space:
mode:
authorgdt <gdt>2014-03-13 20:57:20 +0000
committergdt <gdt>2014-03-13 20:57:20 +0000
commitfccbc120e2aa9cc37ef9a05c55fe34a2257c9efb (patch)
treec85e6b9b39a60950c10efd3e95605e552dfb4431 /bootstrap/README.MacOSX
parentcf3c31f43e723ec21fa80c65cbc51f02a1b0e0fd (diff)
downloadpkgsrc-fccbc120e2aa9cc37ef9a05c55fe34a2257c9efb.tar.gz
Seriously rototill Mac instructions.
Explain clang. Add 10.9. Point out jperkin's builds.
Diffstat (limited to 'bootstrap/README.MacOSX')
-rw-r--r--bootstrap/README.MacOSX119
1 files changed, 83 insertions, 36 deletions
diff --git a/bootstrap/README.MacOSX b/bootstrap/README.MacOSX
index 10c2902deb0..3ed5e76be4d 100644
--- a/bootstrap/README.MacOSX
+++ b/bootstrap/README.MacOSX
@@ -1,35 +1,56 @@
-$NetBSD: README.MacOSX,v 1.14 2013/02/06 15:25:24 schmonz Exp $
+$NetBSD: README.MacOSX,v 1.15 2014/03/13 20:57:20 gdt Exp $
+
+* gcc vs clang
+
+Older versions of Mac OS X (with XCode, of course) provided gcc, and
+pkgsrc defaulted to using gcc. With 10.9, gcc is no longer present
+and one must bootstrap with "--compiler=clang". (Arguably, pkgsrc
+should default to clang on 10.9.)
+
+* i386 vs x86_64 ABI issue
+
+Mac OS X Snow Leopard (10.6) through Mavericks (10.9) supports 64-bit
+binaries on most Intel Macs and build those by default on such
+machine. This has caused problems with packages which get confused
+because "MACHINE_ARCH" is in some OS versions set to "i386" (on a
+64-bit system!).
+ version: uname -m : uname -p
+ 10.6: i386 : i386
+ 10.9: x86_64 : i386
+
+There are of course some packages which will fail in i386 mode, and
+some in x86_64 mode. Because of all this, the default for pkgsrc was
+set to use the 32-bit ABI, which results in packages being compiled
+and run in i386 mode. In addition, there are some Intel Macs (older
+Mac Minis) which can only run i386 and not x86_64. For a longer
+discussion, see:
+http://mail-index.NetBSD.org/pkgsrc-users/2009/09/24/msg010817.html
+As of 2014, the decision to default to i386 should probably be
+revisited.
-Mac OS X Snow Leopard 32/64 (i386/x86_64) ABI issue:
+* Developer tools and prerequisites
-Mac OS X Snow Leopard (10.6) supports 64-bit binaries on most Intel
-Macs and builds those by default on such machine. This causes
-problems with a lot of packages which get confused because
-"MACHINE_ARCH" is set to "i386" (on a 64-bit system!). There are also
-packages that don't support 64-bit under Mac OS X at all. Because of
-this, the default for pkgsrc is use use the 32-bit ABI, which results
-in packages being compiled and run in i386 mode. For a longer
-discussion, see:
-http://mail-index.NetBSD.org/pkgsrc-users/2009/09/24/msg010817.html
+** basic tools
+
+If you haven't already, you will need to install the Mac OS X
+Developer Tools package (XCode) to obtain a compiler, etc. The
+procedure depends on the version of Mac OS X; recent versions use the
+App Store.
+Note that as of 10.9, cvs is no longer provided. You can build
+devel/scmcvs. To obtain pkgsrc in order to bootstrap and build cvs,
+it may be useful to use git to clone https://github.com/jsonn/pkgsrc
-Developer tools:
+** X11
-If you haven't already, you will need to install the Mac OS X Developer
-Tools package. Depending on the version of OS X you are running, you
-may have this on CD. If not, you can download it from Apple's
-Developer Connection. (You will need to register for a free ADC
-account.) See http://developer.apple.com/macosx/ for details.
-(If you don't want or need the full Xcode GUI, download and install
-Command Line Tools for Xcode.)
+X11 used to be built into Mac OS X, but as of 10.8 it is not.
+Install XQuartz from http://xquartz.macosforge.org/landing/
-Then start Xcode, go to "Preferences" - "Downloads" and install
-the "Command Line Tools".
+** XL compiler
-If you plan to build packages that use the X11 Window System, you
-will also need to make sure you have an Xserver installed. Download
-XQuartz from http://xquartz.macosforge.org/landing/
+[The text in this section dates from 2004-10-07! Please update it if
+you have used XL since then.]
Experimental support for IBM's XL C/C++ compiler is present (tested
with version 6.0). To use it, set:
@@ -56,8 +77,7 @@ to bootstrap with xlc, you need to make sure CFLAGS contains "-ma":
env CC=/opt/ibmcmp/vacpp/6.0/bin/xlc CFLAGS=-ma ./bootstrap
-
-Mac OS X Versions
+* Mac OS X Versions
pkgsrc is a volunteer project, and individuals support/fix packages
and platforms as they choose. However, pkgsrc contributors as a group
@@ -80,19 +100,46 @@ in mind that there are no guarantees:
Given the above definitions, the pkgsrc developers label versions of
Mac OS X as follows:
- 10.8: current, PRs may be filed. Structurally breaking pkgsrc on 10.8
- is considered not ok. [SUPPORTED]
+ 10.9 (13.1.0): current, PRs may be filed. Structurally breaking
+ pkgsrc on 10.9 is considered not ok. [SUPPORTED]
- 10.7: old, but PRs may still be filed. Structurally breaking pkgsrc on
- 10.7 is considered not ok. [SUPPORTED]
+ 10.8: somewhat old, PRs may still be filed. Structurally breaking
+ pkgsrc on 10.8 is considered not ok. [SUPPORTED]
- 10.6: very old, and individual pkg PRs may be bounced to authors to
- retest with newer versions, and closed if that doesn't happen
- in 14 days. We will for now consider structurally breaking
- pkgsrc on 10.6 to be undesirable. If keeping support for 10.6
- causes excessive work for maintainers it may be moved to
- IGNORED state any time, without warning. [DEPRECATED]
+ 10.7: old, but PRs may still be filed. Structurally breaking pkgsrc
+ on 10.7 is considered not ok. [SUPPORTED]
+
+ 10.6 (10.8.0): very old, and individual pkg PRs may be bounced to
+ authors to retest with newer versions, and closed if that
+ doesn't happen in 14 days. We will for now consider
+ structurally breaking pkgsrc on 10.6 to be undesirable. If
+ keeping support for 10.6 causes excessive work for maintainers
+ it may be moved to IGNORED state any time, without
+ warning. [DEPRECATED]
10.5 and below: ancient, and PRs will be summarily closed. It is
acceptable to give zero consideration to causing structural
problems on 10.5 and below. [IGNORED]
+
+Because Apple provides 10.9 as a no-cost upgrade (from 10.6 or higher,
+it is fairly likely that 10.6-10.8 will become DEPRECATED faster than
+they might have otherwise. (The rationale for supporting versions
+beyond the current and previous ones has been the difficulty for users
+to upgrade.)
+
+* Bulk build suggestions and issues
+
+Clearly, it is desirable for a bulk build to be useful on as many
+computers as possible. The main issues are which ABI and which OS X
+version.
+
+jperkin@netbsd.org provides a bulk build (--abi=32, OSX 10.6, and
+therefore gcc 4.2.1, XQuartz, X11_TYPE=native):
+ http://www.perkin.org.uk/pages/pkgsrc-binary-packages-for-osx.html
+ http://mail-index.netbsd.org/pkgsrc-bulk/2014/03/09/msg010457.html
+which should run on any version from 10.6 to 10.9.
+
+Given the 10.9 license situation, a bulk build on 10.9 (and therefore
+clang) seems reasonable, with either --abi=32 or --abi=64. Such
+builds are almost certainly only usable on 10.9, but that is or will
+be soon a large fraction of Macs.