Bug 70448 - gettext-0.14-1 failes on MacOSX
|
Bug#:
70448
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: PPC64
|
|
OS/Version: All
|
Status: CLOSED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: osx@gentoo.org
|
Reported By: bugzilla@dilken.de
|
|
Component: Ebuilds
|
|
|
URL:
|
|
Summary: gettext-0.14-1 failes on MacOSX
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2004-11-08 03:53 0000
|
gcc -c -DLOCALEDIR=\"/usr/share/locale\"
-DLOCALE_ALIAS_PATH=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib\" -DIN_LIBINTL
-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"/usr/lib\" -DNO_XMALLOC
-Dset_relocation_prefix=libintl_set_relocation_prefix
-Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H -I. -I.
-I.. -O3 -pipe -mcpu=G5 -mtune=G5 -mpowerpc64 -funroll-loops -flat_namespace
-undefined suppress ./loadmsgcat.c -fno-common -DPIC -o .libs/loadmsgcat.o
gcc -c -DLOCALEDIR=\"/usr/share/locale\"
-DLOCALE_ALIAS_PATH=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib\" -DIN_LIBINTL
-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"/usr/lib\" -DNO_XMALLOC
-Dset_relocation_prefix=libintl_set_relocation_prefix
-Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H -I. -I.
-I.. -O3 -pipe -mcpu=G5 -mtune=G5 -mpowerpc64 -funroll-loops -flat_namespace
-undefined suppress ./localealias.c -fno-common -DPIC -o .libs/localealias.o
localealias.c:33:24: stdio_ext.h: No such file or directory
localealias.c: In function `read_alias_file':
localealias.c:240: error: `FSETLOCKING_BYCALLER' undeclared (first use in this
function)
localealias.c:240: error: (Each undeclared identifier is reported only once
localealias.c:240: error: for each function it appears in.)
make[3]: *** [localealias.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
gcc -c -DLOCALEDIR=\"/usr/share/locale\"
-DLOCALE_ALIAS_PATH=\"/usr/share/locale\" -DLIBDIR=\"/usr/lib\" -DIN_LIBINTL
-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"/usr/lib\" -DNO_XMALLOC
-Dset_relocation_prefix=libintl_set_relocation_prefix
-Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H -I. -I.
-I.. -O3 -pipe -mcpu=G5 -mtune=G5 -mpowerpc64 -funroll-loops -flat_namespace
-undefined suppress ./loadmsgcat.c -o loadmsgcat.o >/dev/null 2>&1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
Reproducible: Always
Steps to Reproduce:
1.
2.
3.
!!! Relying on the shell to locate gcc, this may break
!!! DISTCC, installing gcc-config and setting your current gcc
!!! profile will fix this
Portage 2.0.51-r2 (default-macos/ppc/10.3, gcc-3.3, libsystem-7.1-r0, 7.5.0
Power Macintosh)
=================================================================
System uname: 7.5.0 Power Macintosh powerpc
macos-20040726
distcc 2.0.1-zeroconf powerpc-apple-darwin7.0 (protocol 1) (default port 3632)
[disabled]
Autoconf: sys-devel/autoconf-2.57,sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.6.3,sys-devel/automake-1.8.5-r1
Binutils:
Headers:
Libtools:
ACCEPT_KEYWORDS="ppc-macos ~ppc-macos"
AUTOCLEAN="yes"
CFLAGS="-O3 -pipe -mcpu=G5 -mtune=G5 -mpowerpc64 -funroll-loops
-flat_namespace
-undefined suppress"
CHOST="powerpc-apple-darwin"
COMPILER=""
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-O3 -pipe -mcpu=G5 -mtune=G5 -mpowerpc64 -funroll-loops
-flat_namespace -undefined suppress"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache collision-protect cvs distlocks keepwork"
GENTOO_MIRRORS="http://gentoo.osuosl.org/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="ppc X berkdb debug gif hbci jpeg justify makecheck multilib nls nptl ofx
ppc-macos quotes recode ssl threads tiff unicode usb"
why do you have -undefined suppressed and -flat_namespace permanently in your
CFLAGS? I would also recommend taking out USE="ppc" when using macos.
I changed the things you meant and now the following error occurs:
make[3]: Nothing to be done for `all'.
Making all in intl
make[3]: Nothing to be done for `all'.
Making all in lib
make[3]: Nothing to be done for `all'.
Making all in libuniname
/bin/sh ../libtool --mode=link gcc -O3 -pipe -mcpu=G5 -mtune=G5 -mpowerpc64 -funroll-loops -o test-names test-names.o libuniname.a ../lib/libgettextlib.la
mkdir .libs
gcc -O3 -pipe -mcpu=G5 -mtune=G5 -mpowerpc64 -funroll-loops -o .libs/test-names test-names.o libuniname.a ../lib/.libs/libgettextlib.dylib
ld: warning can't open dynamic library: /usr/lib/libintl.3.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
ld: Undefined symbols:
_libintl_gettext referenced from libgettextlib-0.14 expected to be defined in /usr/lib/libintl.3.dylib
make[3]: *** [test-names] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
!!! ERROR: sys-devel/gettext-0.14.1 failed.
!!! Function src_compile, Line 45, Exitcode 2
!!! (no error message)
!!! If you need support, post the topmost build error, NOT this status message.
There is the same result when I turn off nls-useflag.
I noticed that ppc USE flag is set because
ARCH is set to ppc in our stacked profile.
(The same applies for non-stacked profile.
Non-stacked profile sets macos USE flag
because ARCH is set to macos) What we
can do for it? We cannot disable ppc USE
flag by USE="-ppc" (I think this is because
ppc is enabled by ARCH).
linking /usr/lib/libintl.2.dylib to /usr/lib/libintl.3.dylib for providing
version 3 and setting darwintoolize in the ebuild worked.
Should be fixed in CVS. However, revdep-rebuild doesn't
work on Mac OS X.(It calls qpkg internally, and several
other things broken in that application)
Closing out bugs that've been resolved for a while now...
I just did an emerge world and installed gettext 0.14.1. The result was that
the file /usr/lib/libintl.2.dylib was empty, and I had to manually link it to
/usr/lib/libintl.3.dylib in order to get portage working properly again. Is
this bug really considered "fixed"?
*Edit*
I think I just realized what the problem really is! The ebuild contains this
bit of code:
<snippet>
if use ppc-macos; then
rm -f ${D}/usr/lib/charset.alias
if [ -e "${ROOT}"/usr/$(get_libdir)/libintl.2.dylib ] ; then
cp -a ${ROOT}/usr/$(get_libdir)/libintl.2.dylib
${D}/usr/$(get_libdir)/
touch ${D}/usr/$(get_libdir)/libintl.2.dylib
fi
</snippet>
The problem is that "cp -a" is not valid with the OS X version of cp. In order
to fix this problem, we would need to use instead "cp -pPR". No option "-d" is
available, but the symoblic links will be copied correctly using "cp -pPR"!
Maybe we should look into other ebuilds where "cp -a" is used too?
Good eye! Fixed in CVS. Thanks!! I will grep the portage tree for cp -a in
ppc-macos keyworded
packages. If you find any, please file a bug. Thanks!