65 lines
2.6 KiB
Text
65 lines
2.6 KiB
Text
$NetBSD: README.Linux,v 1.5 2015/02/28 18:50:46 prlw1 Exp $
|
|
|
|
Please read the general README file as well.
|
|
|
|
==========================================================================
|
|
|
|
Some versions of Linux (RHEL3 Update 2 for i386 for example) have a
|
|
/usr/lib/libacl.la libtool archive file that lists /lib/libattr.la as a
|
|
dependency. However, libattr.la does not exist in /lib/libattr.la. If
|
|
this is the case, the bootstrap will fail with
|
|
|
|
grep: /lib/libattr.la: No such file or directory
|
|
/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/.tools/bin/sed: can't read /lib/libattr.la: No such file or directory
|
|
libtool: link: `/lib/libattr.la' is not a valid libtool archive
|
|
|
|
The solution is to copy /usr/lib/libattr.la to /lib/libattr.la with:
|
|
|
|
cp -p /usr/lib/libattr.la /lib
|
|
|
|
==========================================================================
|
|
|
|
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.
|
|
|
|
==========================================================================
|
|
|
|
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.
|
|
|
|
To bootstrap using icc, assuming the default icc installation
|
|
directory:
|
|
|
|
env CC=/opt/intel_cc_80/bin/icc LDFLAGS=-static-libcxa \
|
|
ac_cv___attribute__=yes ./bootstrap
|
|
|
|
note: icc 8.1 needs the `-i-static' argument instead of
|
|
-static-libcxa.
|
|
|
|
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.
|
|
|
|
After bootstrapping, you should set PKGSRC_COMPILER in mk.conf:
|
|
|
|
PKGSRC_COMPILER=icc
|
|
|
|
The default installation directory for icc is /opt/intel_cc_80, which
|
|
is also the pkgsrc default. If you have installed it into a different
|
|
directory, set ICCBASE in mk.conf:
|
|
|
|
ICCBASE=/opt/icc
|
|
|
|
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.
|
|
|
|
Libtool, however, extracts a list of libraries from the 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.
|