Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 70448 - gettext-0.14-1 failes on MacOSX
Summary: gettext-0.14-1 failes on MacOSX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: PPC64 All
: High normal (vote)
Assignee: osx porters
Depends on:
Blocks: 62085
  Show dependency tree
Reported: 2004-11-08 03:53 UTC by Roman Dilken
Modified: 2005-04-03 12:03 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Roman Dilken 2004-11-08 03:53:52 UTC
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:

!!! 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
distcc 2.0.1-zeroconf powerpc-apple-darwin7.0 (protocol 1) (default port 3632)
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
ACCEPT_KEYWORDS="ppc-macos ~ppc-macos"
CFLAGS="-O3 -pipe  -mcpu=G5 -mtune=G5 -mpowerpc64 -funroll-loops -flat_namespace
-undefined suppress"
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"
FEATURES="autoaddcvs ccache collision-protect cvs distlocks keepwork"
USE="ppc X berkdb debug gif hbci jpeg justify makecheck multilib nls nptl ofx
ppc-macos quotes recode ssl threads tiff unicode usb"
Comment 1 Kito (RETIRED) gentoo-dev 2004-11-08 08:41:23 UTC
why do you have -undefined suppressed and -flat_namespace permanently in your CFLAGS? I would also recommend taking out USE="ppc" when using macos. 
Comment 2 Roman Dilken 2004-11-09 03:14:05 UTC
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/ 
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.
Comment 3 Roman Dilken 2004-11-09 05:16:25 UTC
There is the same result when I turn off nls-useflag.
Comment 4 Mamoru KOMACHI (RETIRED) gentoo-dev 2004-11-09 19:46:06 UTC
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).
Comment 5 Roman Dilken 2004-11-10 07:02:28 UTC
linking /usr/lib/libintl.2.dylib to /usr/lib/libintl.3.dylib for providing version 3 and setting darwintoolize in the ebuild worked.
Comment 6 Mamoru KOMACHI (RETIRED) gentoo-dev 2004-11-10 20:11:28 UTC
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)
Comment 7 Hasan Khalil (RETIRED) gentoo-dev 2005-02-06 13:33:28 UTC
Closing out bugs that've been resolved for a while now... 
Comment 8 Thomas Kjosmoen 2005-04-02 21:11:12 UTC
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"?

I think I just realized what the problem really is! The ebuild contains this bit of code:
        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

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?
Comment 9 Lina Pezzella (RETIRED) gentoo-dev 2005-04-03 12:03:36 UTC
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!