|Return to README.Linux CVS log||Up to [cvs.NetBSD.org] / pkgsrc / bootstrap|
|File: [cvs.NetBSD.org] / pkgsrc / bootstrap / README.Linux (download)
Revision 1.4, Wed Jun 18 21:37:31 2008 UTC (12 years, 4 months ago) by dmcmahill
Document the issue and workaround for missing /lib/libattr.la on some RHEL systems.
$NetBSD: README.Linux,v 1.4 2008/06/18 21:37:31 dmcmahill 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 soltion 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.