576 lines
23 KiB
XML
576 lines
23 KiB
XML
<!-- $NetBSD: platforms.xml,v 1.65 2011/01/03 20:14:27 wiz Exp $ -->
|
|
|
|
<chapter id="platforms">
|
|
<title>Using pkgsrc on systems other than &os;</title>
|
|
|
|
<sect1 id="binarydist">
|
|
<title>Binary distribution</title>
|
|
|
|
<para>See <xref linkend="using-pkg"/>.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="bootstrapping-pkgsrc">
|
|
<title>Bootstrapping pkgsrc</title>
|
|
|
|
<para>Installing the bootstrap kit from source should be as simple as:</para>
|
|
|
|
<screen>
|
|
&rprompt; <userinput>env CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout pkgsrc</userinput>
|
|
&rprompt; <userinput>cd pkgsrc/bootstrap</userinput>
|
|
&rprompt; <userinput>./bootstrap</userinput>
|
|
</screen>
|
|
|
|
<para>See <xref linkend="getting"/> for other ways to get
|
|
pkgsrc before bootstrapping. The given
|
|
<command>bootstrap</command> command will use the defaults of
|
|
<filename>/usr/pkg</filename> for the
|
|
<emphasis>prefix</emphasis> where programs will be installed in,
|
|
and <filename>/var/db/pkg</filename> for the package database
|
|
directory where pkgsrc will do its internal bookkeeping.
|
|
However, these can also be set using command-line
|
|
arguments.</para>
|
|
|
|
<note>
|
|
<para>The bootstrap installs a <command>bmake</command> tool.
|
|
Use this <command>bmake</command> when building via pkgsrc.
|
|
For examples in this guide, use <command>bmake</command>
|
|
instead of <quote>make</quote>.</para>
|
|
</note>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="platform-specific-notes">
|
|
<title>Platform-specific notes</title>
|
|
|
|
<para>Here are some platform-specific notes you should be aware of.</para>
|
|
|
|
<sect2 id="darwin">
|
|
<title>Darwin (Mac OS X)</title>
|
|
|
|
<para>Darwin 5.x and up are supported. Before you start, you
|
|
will need to download and install the Mac OS X Developer Tools
|
|
from Apple's Developer Connection. See
|
|
<ulink url="http://developer.apple.com/macosx/">http://developer.apple.com/macosx/</ulink>
|
|
for details. Also, make sure you install X11 (an optional
|
|
package included with the Developer Tools) if you intend to
|
|
build packages that use the X11 Window System.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="freebsd">
|
|
<title>FreeBSD</title>
|
|
|
|
<para>FreeBSD 4.7 and 5.0 have been tested and are supported,
|
|
other versions may work.</para>
|
|
|
|
<para>Care should be taken so that the tools that this kit installs do not conflict
|
|
with the FreeBSD userland tools. There are several steps:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>FreeBSD stores its ports pkg database in
|
|
<filename>/var/db/pkg</filename>. It is therefore
|
|
recommended that you choose a different location (e.g.
|
|
<filename>/usr/pkgdb</filename>) by
|
|
using the --pkgdbdir option to the bootstrap script.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>If you do not intend to use the FreeBSD ports tools, it's probably a
|
|
good idea to move them out of the way to avoid confusion, e.g.</para>
|
|
|
|
<screen>
|
|
&rprompt; <userinput>cd /usr/sbin</userinput>
|
|
&rprompt; <userinput>mv pkg_add pkg_add.orig</userinput>
|
|
&rprompt; <userinput>mv pkg_create pkg_create.orig</userinput>
|
|
&rprompt; <userinput>mv pkg_delete pkg_delete.orig</userinput>
|
|
&rprompt; <userinput>mv pkg_info pkg_info.orig</userinput>
|
|
</screen>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>An example &mk.conf; file will be placed in
|
|
<filename>/etc/mk.conf.example</filename> file
|
|
when you use the bootstrap script.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</sect2>
|
|
|
|
<sect2 id="interix">
|
|
<title>Interix</title>
|
|
|
|
<para>Interix is a POSIX-compatible subsystem for the Windows NT kernel,
|
|
providing a Unix-like environment with a tighter kernel integration than
|
|
available with Cygwin. It is part of the Windows Services for Unix
|
|
package, available for free for any licensed copy of Windows 2000, XP
|
|
(not including XP Home), or 2003. SFU can be downloaded from <ulink
|
|
url="http://www.microsoft.com/windows/sfu/">http://www.microsoft.com/windows/sfu/</ulink>.</para>
|
|
|
|
<para>Services for Unix 3.5 has been tested. 3.0 or 3.1 may work, but
|
|
are not officially supported. (The main difference in 3.0/3.1 is lack
|
|
of pthreads, but other parts of libc may also be lacking.)</para>
|
|
|
|
<para>Services for Unix Applications (aka SUA) is an integrated
|
|
component of Windows Server 2003 R2 (5.2), Windows Vista and
|
|
Windows Server 2008 (6.0), Windows 7 and Windows Server 2008 R2
|
|
(6.1). As of this writing, the SUA's Interix 6.0 (32bit) and
|
|
6.1 (64bit) subsystems have been tested. Other versions may
|
|
work as well. The Interix 5.x subsystem has not yet been tested
|
|
with pkgsrc.</para>
|
|
|
|
<sect3 id="platform.interix-sfu-install">
|
|
<title>When installing Interix/SFU</title>
|
|
|
|
<para>At an absolute minimum, the following packages must be installed from
|
|
the Windows Services for Unix 3.5 distribution in order to use pkgsrc:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>Utilities -> Base Utilities</para></listitem>
|
|
<listitem><para>Interix GNU Components -> (all)</para></listitem>
|
|
<listitem><para>Remote Connectivity</para></listitem>
|
|
<listitem><para>Interix SDK</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>When using pkgsrc on Interix, DO NOT install the Utilities subcomponent
|
|
"UNIX Perl". That is Perl 5.6 without shared module support, installed to
|
|
/usr/local, and will only cause confusion. Instead, install Perl 5.8 from
|
|
pkgsrc (or from a binary package).</para>
|
|
|
|
<para>The Remote Connectivity subcomponent "Windows Remote Shell Service" does
|
|
not need to be installed, but Remote Connectivity itself should be
|
|
installed in order to have a working inetd.</para>
|
|
|
|
<para>During installation you may be asked whether to enable setuid
|
|
behavior for Interix programs, and whether to make pathnames default to
|
|
case-sensitive. Setuid should be enabled, and case-sensitivity MUST be
|
|
enabled. (Without case-sensitivity, a large number of packages including
|
|
perl will not build.)</para>
|
|
|
|
<para>NOTE: Newer Windows service packs change the way binary execution
|
|
works (via the Data Execution Prevention feature). In order to use
|
|
pkgsrc and other gcc-compiled binaries reliably, a hotfix containing
|
|
POSIX.EXE, PSXDLL.DLL, PSXRUN.EXE, and PSXSS.EXE (899522 or newer)
|
|
must be installed. Hotfixes are available from Microsoft through a
|
|
support contract; however, Debian Interix Port has made most Interix
|
|
hotfixes available for personal use from <ulink
|
|
url="http://www.debian-interix.net/hotfixes/">http://www.debian-interix.net/hotfixes/</ulink>.</para>
|
|
|
|
<para>In addition to the hotfix noted above, it may be necessary to
|
|
disable Data Execution Prevention entirely to make Interix functional.
|
|
This may happen only with certain types of CPUs; the cause is not fully
|
|
understood at this time. If gcc or other applications still segfault
|
|
repeatedly after installing one of the hotfixes note above, the
|
|
following option can be added to the appropriate "boot.ini" line on the
|
|
Windows boot drive: /NoExecute=AlwaysOff
|
|
(WARNING, this will disable DEP completely, which may be a security
|
|
risk if applications are often run as a user in the Administrators
|
|
group!)</para>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="platform.interix-sfu-postinstall">
|
|
<title>What to do if Interix/SFU is already installed</title>
|
|
|
|
<para>If SFU is already installed and you wish to alter these settings to work
|
|
with pkgsrc, note the following things.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>To uninstall UNIX Perl, use Add/Remove Programs, select Microsoft
|
|
Windows Services for UNIX, then click Change. In the installer, choose
|
|
Add or Remove, then uncheck Utilities->UNIX Perl.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>To enable case-sensitivity for the file system, run REGEDIT.EXE, and
|
|
change the following registry key:</para>
|
|
<para>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel</para>
|
|
<para>Set the DWORD value "obcaseinsensitive" to 0; then reboot.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>To enable setuid binaries (optional), run REGEDIT.EXE, and change the
|
|
following registry key:</para>
|
|
<para>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Services for UNIX</para>
|
|
<para>Set the DWORD value "EnableSetuidBinaries" to 1; then reboot.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
<sect3 id="platform.interix-notes">
|
|
<title>Important notes for using pkgsrc</title>
|
|
|
|
<para>The package manager (either the pkgsrc "su" user, or the user
|
|
running "pkg_add") must be a member of the local Administrators
|
|
group. Such a user must also be used to run the bootstrap. This is
|
|
slightly relaxed from the normal pkgsrc requirement of "root".</para>
|
|
|
|
<para>The package manager should use a umask of 002. "make install" will
|
|
automatically complain if this is not the case. This ensures that
|
|
directories written in /var/db/pkg are Administrators-group writeable.</para>
|
|
|
|
<para>The popular Interix binary packages from http://www.interopsystems.com/
|
|
use an older version of pkgsrc's pkg_* tools. Ideally, these should
|
|
NOT be used in conjunction with pkgsrc. If you choose to use them at
|
|
the same time as the pkgsrc packages, ensure that you use the proper
|
|
pkg_* tools for each type of binary package.</para>
|
|
|
|
<para>The TERM setting used for DOS-type console windows (including those
|
|
invoked by the csh and ksh startup shortcuts) is "interix". Most systems
|
|
don't have a termcap/terminfo entry for it, but the following .termcap
|
|
entry provides adequate emulation in most cases:</para>
|
|
|
|
<programlisting>
|
|
interix:kP=\E[S:kN=\E[T:kH=\E[U:dc@:DC@:tc=pcansi:
|
|
</programlisting>
|
|
|
|
</sect3>
|
|
<sect3 id="platform.interix-limits">
|
|
<title>Limitations of the Interix platform</title>
|
|
|
|
<para>Though Interix suffices as a familiar and flexible substitute
|
|
for a full Unix-like platform, it has some drawbacks that should
|
|
be noted for those desiring to make the most of Interix.</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><emphasis role="strong">X11:</emphasis></para>
|
|
<para>Interix comes with the standard set of X11R6 client libraries,
|
|
and can run X11 based applications, but it does
|
|
<emphasis>not</emphasis> come with an X server. Some options are
|
|
<ulink url="http://www.starnet.com/products/xwin32/">StarNet X-Win32</ulink>,
|
|
<ulink url="http://connectivity.hummingbird.com/products/nc/exceed/">Hummingbird Exceed</ulink>
|
|
(available in a trimmed version for Interix from Interop Systems as the
|
|
<ulink url="http://www.interopsystems.com/InteropXserver.htm">Interop X Server</ulink>),
|
|
and the free X11 server included with
|
|
<ulink url="http://x.cygwin.com/">Cygwin</ulink>.</para>
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis role="strong">X11 acceleration:</emphasis></para>
|
|
<para>Because Interix runs in a completely different NT subsystem from
|
|
Win32 applications, it does not currently support various X11
|
|
protocol extensions for acceleration (such as MIT-SHM or DGA).
|
|
Most interactive applications to a local X server will run
|
|
reasonably fast, but full motion video and other graphics
|
|
intensive applications may require a faster-than-expected CPU.</para></listitem>
|
|
|
|
<listitem><para><emphasis role="strong">Audio:</emphasis></para>
|
|
<para>Interix has no native support for audio output. For audio
|
|
support, pkgsrc uses the <command>esound</command> client/server
|
|
audio system on Interix. Unlike on most platforms, the
|
|
<filename role="pkg">audio/esound</filename> package does
|
|
<emphasis>not</emphasis> contain the <command>esd</command>
|
|
server component. To output audio via an Interix host, the
|
|
<filename role="pkg">emulators/cygwin_esound</filename> package
|
|
must also be installed.</para></listitem>
|
|
|
|
<listitem><para><emphasis role="strong">CD/DVDs, USB, and SCSI:</emphasis></para>
|
|
<para>Direct device access is not currently supported in Interix, so it
|
|
is not currently possible to access CD/DVD drives, USB devices,
|
|
or SCSI devices through non-filesystem means. Among other things,
|
|
this makes it impossible to use Interix directly for CD/DVD
|
|
burning.</para></listitem>
|
|
|
|
<listitem><para><emphasis role="strong">Tape drives:</emphasis></para>
|
|
<para>Due to the same limitations as for CD-ROMs and SCSI devices, tape
|
|
drives are also not directly accessible in Interix. However,
|
|
support is in work to make tape drive access possible by using
|
|
Cygwin as a bridge (similarly to audio bridged via Cygwin's
|
|
esound server).</para></listitem>
|
|
|
|
</itemizedlist>
|
|
</sect3>
|
|
<sect3 id="platform.interix-knownissues">
|
|
<title>Known issues for pkgsrc on Interix</title>
|
|
|
|
<para>It is not necessary, in general, to have a "root" user on the
|
|
Windows system; any member of the local Administrators group will
|
|
suffice. However, some packages currently assume that the user
|
|
named "root" is the privileged user. To accommodate these, you
|
|
may create such a user; make sure it is in the local group
|
|
Administrators (or your language equivalent).</para>
|
|
|
|
<para><command>pkg_add</command> creates directories of mode
|
|
0755, not 0775, in <filename>$PKG_DBDIR</filename>. For the
|
|
time being, install packages as the local Administrator (or
|
|
your language equivalent), or run the following command after
|
|
installing a package to work around the issue:</para>
|
|
|
|
<screen>
|
|
&rprompt; <userinput>chmod -R g+w $PKG_DBDIR</userinput>
|
|
</screen>
|
|
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 id="irix">
|
|
<title>IRIX</title>
|
|
|
|
<para>You will need a working C compiler, either gcc or SGI's MIPS and MIPSpro
|
|
compiler (cc/c89). Please set the <varname>CC</varname> environment variable
|
|
according to your preference. If you do not have a license for the MIPSpro
|
|
compiler suite, you can download a gcc tardist file from <ulink
|
|
url="http://freeware.sgi.com/">http://freeware.sgi.com/</ulink>.</para>
|
|
|
|
<para>Please note that you will need IRIX 6.5.17 or higher, as this is the earliest
|
|
version of IRIX providing support for &man.if.indextoname.3;, &man.if.nametoindex.3;,
|
|
etc.</para>
|
|
|
|
<para>At this point in time, pkgsrc only supports one ABI at a time. That is, you cannot
|
|
switch between the old 32-bit ABI, the new 32-bit ABI and the 64-bit ABI. If
|
|
you start out using "abi=n32", that's what all your packages will be built
|
|
with.</para>
|
|
|
|
<para>Therefore, please make sure that you have no conflicting
|
|
<varname>CFLAGS</varname> in your environment or the
|
|
&mk.conf;. Particularly, make sure that you do not
|
|
try to link n32 object files with lib64 or vice versa. Check your
|
|
<filename>/etc/compiler.defaults</filename>!</para>
|
|
|
|
<para>If you have the actual pkgsrc tree mounted via NFS from a different host,
|
|
please make sure to set <varname>WRKOBJDIR</varname> to a local directory,
|
|
as it appears that IRIX linker occasionally runs into issues when trying to
|
|
link over a network-mounted file system.</para>
|
|
|
|
<para>The bootstrapping process should set all the right options for programs such
|
|
as imake(1), but you may want to set some options depending on your local
|
|
setup. Please see <filename>pkgsrc/mk/defaults/mk.conf</filename> and, of
|
|
course, your compiler's man pages for details.</para>
|
|
|
|
<para>If you are using SGI's MIPSPro compiler, please set
|
|
|
|
<programlisting>
|
|
PKGSRC_COMPILER= mipspro
|
|
</programlisting>
|
|
|
|
in &mk.conf;. Otherwise, pkgsrc will assume you
|
|
are using gcc and may end up passing invalid flags to the compiler. Note that
|
|
bootstrap should create an appropriate <filename>mk.conf.example</filename> by
|
|
default.</para>
|
|
|
|
<para>If you have both the MIPSPro compiler chain installed as well as gcc,
|
|
but want to make sure that MIPSPro is used, please set your <varname>PATH</varname>
|
|
to <emphasis>not</emphasis> include the location of gcc (often
|
|
<filename>/usr/freeware/bin</filename>), and (important) pass the
|
|
'--preserve-path' flag.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="linux">
|
|
<title>Linux</title>
|
|
|
|
<para>Some versions of Linux (for example Debian GNU/Linux) need
|
|
either libtermcap or libcurses (libncurses). Installing the
|
|
distributions libncurses-dev package (or equivalent) should fix
|
|
the problem.</para>
|
|
|
|
<para>pkgsrc supports both gcc (GNU Compiler Collection) and icc
|
|
(Intel C++ Compiler). gcc is the default. icc 8.0 and 8.1 on
|
|
i386 have been tested.</para>
|
|
|
|
<para>To bootstrap using icc, assuming the default icc installation
|
|
directory:</para>
|
|
|
|
<programlisting>
|
|
env CC=/opt/intel_cc_80/bin/icc LDFLAGS=-static-libcxa \
|
|
ac_cv___attribute__=yes ./bootstrap
|
|
</programlisting>
|
|
|
|
<note>
|
|
<para>icc 8.1 needs the `-i-static' argument instead of -static-libcxa.</para>
|
|
</note>
|
|
|
|
<para>icc supports __attribute__, but the GNU configure test uses a nested
|
|
function, which icc does not support. #undef'ing __attribute__ has the
|
|
unfortunate side-effect of breaking many of the Linux header files, which
|
|
cannot be compiled properly without __attribute__. The test must be
|
|
overridden so that __attribute__ is assumed supported by the
|
|
compiler.</para>
|
|
|
|
<para>After bootstrapping, you should set <varname>PKGSRC_COMPILER</varname>
|
|
in &mk.conf;:</para>
|
|
|
|
<programlisting>
|
|
PKGSRC_COMPILER= icc
|
|
</programlisting>
|
|
|
|
<para>The default installation directory for icc is
|
|
<filename>/opt/intel_cc_80</filename>, which
|
|
is also the pkgsrc default. If you have installed it into a different
|
|
directory, set <varname>ICCBASE</varname> in
|
|
&mk.conf;:</para>
|
|
|
|
<programlisting>
|
|
ICCBASE= /opt/icc
|
|
</programlisting>
|
|
|
|
<para>pkgsrc uses the static linking method of the runtime libraries
|
|
provided by icc, so binaries can be run on other systems which do not
|
|
have the shared libraries installed.</para>
|
|
|
|
<para>Libtool, however, extracts a list of libraries from the
|
|
&man.ld.1; command run when linking a C++ shared library and
|
|
records it, throwing away the -Bstatic and -Bdynamic options
|
|
interspersed between the libraries. This means that
|
|
libtool-linked C++ shared libraries will have a runtime
|
|
dependency on the icc libraries until this is fixed in
|
|
libtool.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="openbsd">
|
|
<title>OpenBSD</title>
|
|
|
|
<para>OpenBSD 3.0 and 3.2 are tested and supported.</para>
|
|
|
|
<para>Care should be taken so that the tools that this kit installs do not conflict
|
|
with the OpenBSD userland tools. There are several steps:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>OpenBSD stores its ports pkg database in
|
|
<filename>/var/db/pkg</filename>. It is therefore
|
|
recommended that you choose a different location (e.g.
|
|
<filename>/usr/pkgdb</filename>) by
|
|
using the --pkgdbdir option to the bootstrap script.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>If you do not intend to use the OpenBSD ports tools, it's probably a
|
|
good idea to move them out of the way to avoid confusion, e.g.</para>
|
|
|
|
<screen>
|
|
&rprompt; <userinput>cd /usr/sbin</userinput>
|
|
&rprompt; <userinput>mv pkg_add pkg_add.orig</userinput>
|
|
&rprompt; <userinput>mv pkg_create pkg_create.orig</userinput>
|
|
&rprompt; <userinput>mv pkg_delete pkg_delete.orig</userinput>
|
|
&rprompt; <userinput>mv pkg_info pkg_info.orig</userinput>
|
|
</screen>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>An example &mk.conf; file will be placed in
|
|
<filename>/etc/mk.conf.example</filename> file
|
|
when you use the bootstrap script. OpenBSD's make program uses
|
|
&mk.conf;
|
|
as well. You can work around this by enclosing all the pkgsrc-specific parts
|
|
of the file with:</para>
|
|
|
|
<programlisting>
|
|
.ifdef BSD_PKG_MK
|
|
# pkgsrc stuff, e.g. insert defaults/mk.conf or similar here
|
|
.else
|
|
# OpenBSD stuff
|
|
.endif
|
|
</programlisting>
|
|
</listitem>
|
|
</orderedlist>
|
|
</sect2>
|
|
|
|
<sect2 id="solaris">
|
|
<title>Solaris</title>
|
|
|
|
<para>Solaris 2.6 through 9 are supported on both x86 and sparc.
|
|
You will need a working C compiler. Both gcc 2.95.3 and
|
|
Sun WorkShop 5 have been tested.</para>
|
|
|
|
<para>The following packages are required on Solaris 8 for the bootstrap
|
|
process and to build packages.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>SUNWsprot</para></listitem>
|
|
<listitem><para>SUNWarc</para></listitem>
|
|
<listitem><para>SUNWbtool</para></listitem>
|
|
<listitem><para>SUNWtoo</para></listitem>
|
|
<listitem><para>SUNWlibm</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Please note that the use of GNU binutils on Solaris is
|
|
<emphasis>not</emphasis> supported, as of June 2006.</para>
|
|
|
|
<para>Whichever compiler you use, please ensure the compiler tools and
|
|
your $prefix are in your <varname>PATH</varname>. This includes
|
|
<filename>/usr/ccs/{bin,lib}</filename>
|
|
and e.g. <filename>/usr/pkg/{bin,sbin}</filename>.</para>
|
|
|
|
<sect3 id="solaris-gcc-note">
|
|
<title>If you are using gcc</title>
|
|
|
|
<para>It makes life much simpler if you only use the same gcc consistently
|
|
for building all packages.</para>
|
|
|
|
<para>It is recommended that an external gcc be used only for bootstrapping,
|
|
then either build gcc from
|
|
<filename role="pkg">lang/gcc</filename> or install a binary gcc
|
|
package, then remove gcc used during bootstrapping.</para>
|
|
|
|
<para>Binary packages of gcc can be found through <ulink
|
|
url="http://www.sunfreeware.com/"/>.</para>
|
|
</sect3>
|
|
|
|
<sect3 id="solaris-sun-workshop-note">
|
|
<title>If you are using Sun WorkShop</title>
|
|
|
|
<para>You will need at least the following packages installed (from WorkShop
|
|
5.0)</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>SPROcc
|
|
- Sun WorkShop Compiler C 5.0</para></listitem>
|
|
<listitem><para>SPROcpl
|
|
- Sun WorkShop Compiler C++ 5.0</para></listitem>
|
|
<listitem><para>SPROild
|
|
- Sun WorkShop Incremental Linker</para></listitem>
|
|
<listitem><para>SPROlang
|
|
- Sun WorkShop Compilers common components</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>You should set the following variables in your
|
|
&mk.conf; file:</para>
|
|
|
|
<programlisting>
|
|
CC= cc
|
|
CXX= CC
|
|
CPP= cc -E
|
|
CXXCPP= CC -E
|
|
</programlisting>
|
|
|
|
<note><para>The <varname>CPP</varname> setting might break some
|
|
packages that use the C preprocessor for processing things other
|
|
than C source code.</para></note>
|
|
|
|
</sect3>
|
|
<sect3 id="solaris-sunpro-64">
|
|
<title>Building 64-bit binaries with SunPro</title>
|
|
|
|
<para>To build 64-bit packages, you just need to have the
|
|
following lines in your &mk.conf; file:</para>
|
|
|
|
<programlisting>
|
|
PKGSRC_COMPILER= sunpro
|
|
ABI= 64
|
|
</programlisting>
|
|
|
|
<note><para>This setting has been tested for the SPARC
|
|
architecture. Intel and AMD machines need some more
|
|
work.</para></note>
|
|
|
|
</sect3>
|
|
<sect3 id="plat.sunos.problems"><title>Common problems</title>
|
|
|
|
<para>Sometimes, when using <command>libtool</command>,
|
|
<filename>/bin/ksh</filename> crashes with a segmentation fault.
|
|
The workaround is to use another shell for the configure
|
|
scripts, for example by installing <filename
|
|
role="pkg">shells/bash</filename> and adding the following lines
|
|
to your &mk.conf;:</para>
|
|
|
|
<programlisting>
|
|
CONFIG_SHELL= ${LOCALBASE}/bin/bash
|
|
WRAPPER_SHELL= ${LOCALBASE}/bin/bash
|
|
</programlisting>
|
|
|
|
<para>Then, rebuild the <filename
|
|
role="pkg">devel/libtool-base</filename> package.</para>
|
|
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|