Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 174711 - dev-libs/STLport-5.1.2 failed - undeclared __std_alias::llabs
Summary: dev-libs/STLport-5.1.2 failed - undeclared __std_alias::llabs
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: PPC Linux
: High normal (vote)
Assignee: C++ Team [disbanded]
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-04-15 20:46 UTC by martin-langer
Modified: 2007-04-21 16:03 UTC (History)
3 users (show)

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


Attachments
config.h (c++config.h,32.93 KB, text/plain)
2007-04-21 10:21 UTC, Matti Bickel (RETIRED)
Details
c++config.h (c++config.h,34.05 KB, text/plain)
2007-04-21 10:40 UTC, Tiziano Müller (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description martin-langer 2007-04-15 20:46:47 UTC
Running an emerge --update world fails with

>>> Unpacking source...
>>> Unpacking STLport-5.1.2.tar.bz2 to /var/tmp/portage/dev-libs/STLport-5.1.2/work
 * Applying STLport-5.1.2-wrong_russian_currency_name.patch ...                                                                                [ ok ]
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/dev-libs/STLport-5.1.2/work/STLport-5.1.2 ...
make: Entering directory `/var/tmp/portage/dev-libs/STLport-5.1.2/work/STLport-5.1.2/build/lib'
powerpc-unknown-linux-gnu-g++ -pthread -fexceptions -fident  -fPIC  -fuse-cxa-atexit -O2 -pipe -mcpu=G4 -maltivec -mabi=altivec -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  -D_REENTRANT -D_STLP_REAL_LOCALE_IMPLEMENTED -D_GNU_SOURCE -I../../stlport  -c -o obj/gcc/so/dll_main.o ../../src/dll_main.cpp
../../stlport/stl/_cstdlib.h:91: error: '__std_alias::llabs' has not been declared
../../stlport/stl/_cstdlib.h:92: error: '__std_alias::lldiv_t' has not been declared
../../stlport/stl/_cstdlib.h:93: error: '__std_alias::lldiv' has not been declared
../../stlport/stl/_cstdlib.h: In function 'long long int abs(long long int)':
../../stlport/stl/_cstdlib.h:144: error: 'llabs' is not a member of '__std_alias'
../../stlport/stl/_cstdlib.h: In function 'lldiv_t div(long long int, long long int)':
../../stlport/stl/_cstdlib.h:145: error: 'lldiv' is not a member of '__std_alias'
make: *** [obj/gcc/so/dll_main.o] Error 1
make: Leaving directory `/var/tmp/portage/dev-libs/STLport-5.1.2/work/STLport-5.1.2/build/lib'

!!! ERROR: dev-libs/STLport-5.1.2 failed.
Call stack:
  ebuild.sh, line 1614:   Called dyn_compile
  ebuild.sh, line 971:   Called qa_call 'src_compile'
  environment, line 3501:   Called src_compile
  STLport-5.1.2.ebuild, line 79:   Called die



Reproducible: Always




emerge info
*** Deprecated use of action 'info', use '--info' instead
Portage 2.1.2.2 (default-linux/ppc/ppc32/2006.1, gcc-4.1.1, glibc-2.4-r4, 2.6.18.4 ppc)
=================================================================
System uname: 2.6.18.4 ppc 7447/7457, altivec supported
Gentoo Base System release 1.12.9
Timestamp of tree: Sun, 15 Apr 2007 18:20:01 +0000
dev-lang/python:     2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.15-r1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="ppc"
AUTOCLEAN="yes"
CBUILD="powerpc-unknown-linux-gnu"
CFLAGS="-O2 -pipe -mcpu=G4 -maltivec -mabi=altivec -fno-strict-aliasing"
CHOST="powerpc-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -mcpu=G4 -maltivec -mabi=altivec -fno-strict-aliasing"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ "
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X alsa apache2 arts berkdb bitmap-fonts bonobo cdr cli cracklib crypt cups dri dvd eds emboss encode esd firefox fortran gdbm gif gnome gpm gstreamer gtk gtkhtml iconv ipv6 isdnlog jpeg kde ldap libg++ libwww mad midi mikmod mozilla mp3 mpeg ncurses nls nptl nptlonly ogg opengl pam pcre pdf perl png ppc pppd python qt3 qt4 quicktime readline reflection ruby sdl session spell spl ssl tcpd truetype truetype-fonts type1-fonts unicode vorbis xml xorg xv zlib" ALSA_CARDS="aoa aoa-fabric-layout aoa-onyx aoa-soundbus aoa-soundbus-i2s aoa-tas aoa-toonie powermac usb-audio via82xx" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="ati chips dummy fbdev glint imstt mga nv s3 s3virge savage sisusb tdfx trident v4l voodoo"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 michael@smith-li.com 2007-04-18 19:41:15 UTC
Ditto for me. I'm on lynx atm so it's hard to include emerge --info. It's a ppc G3, though, with similar settings to Martin's.
Comment 2 Tiziano Müller (RETIRED) gentoo-dev 2007-04-18 19:56:06 UTC
Please re-emerge gcc and try again.
Comment 3 martin-langer 2007-04-19 23:05:42 UTC
(In reply to comment #2)
> Please re-emerge gcc and try again.
> 

Even emerge -e gcc doesn't help. The same problem is still there.
Comment 4 Tiziano Müller (RETIRED) gentoo-dev 2007-04-20 05:44:09 UTC
... and what about glibc? As far as I know, ppc has glibc-2.5 stable.
Could you please try to emerge that one first?

This is basically the same bug we had during stabilization:
https://bugs.gentoo.org/show_bug.cgi?id=173175#c2
... and it worked there after re-emerging gcc with glibc-2.5.

@toolchain: Still no idea what causes this bug?
Comment 5 SpanKY gentoo-dev 2007-04-20 06:04:25 UTC
my guess is that full long long support on ppc is relatively new ... you need gcc/glibc in sync in order to have these features available

you prob wouldnt see the issue on say amd64 as it has had full long long support for quite a long time
Comment 6 martin-langer 2007-04-20 18:37:43 UTC
Another re-emerge of glibc doesn't solve it. Nevertheless I already emerged gcc  with the -e option where glibc was also emerged.
Comment 7 Tiziano Müller (RETIRED) gentoo-dev 2007-04-21 09:48:21 UTC
Hmm, could you please attach the following file:
/usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/include/g++-v4/powerpc-unknown-linux-gnu/bits/c++config.h

matti: You had the same problem during stabilization, could you please attach the file above as well?
Comment 8 Matti Bickel (RETIRED) gentoo-dev 2007-04-21 10:21:20 UTC
Created attachment 116881 [details]
config.h

Here it is.
Comment 9 Tiziano Müller (RETIRED) gentoo-dev 2007-04-21 10:40:11 UTC
Created attachment 116883 [details]
c++config.h

ok, it gets stranger with every minute :-)

A user gave me this c++config, he runs a stable ppc-profile on a G4 with gcc-4.1.1 and glibc-2.5.
As you can see, he has the following:

/* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
   <stdio.h>, and <stdlib.h> can be used or exposed. */
/* #undef _GLIBCXX_USE_C99 */

/* Define if C99 functions in <complex.h> should be used in <complex>. Using
   compiler builtins for these functions requires corresponding C99 library
   functions to be present. */
/* #undef _GLIBCXX_USE_C99_COMPLEX */

while Matti has:
/* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
   <stdio.h>, and <stdlib.h> can be used or exposed. */
#define _GLIBCXX_USE_C99 1

/* Define if C99 functions in <complex.h> should be used in <complex>. Using
   compiler builtins for these functions requires corresponding C99 library
   functions to be present. */
#define _GLIBCXX_USE_C99_COMPLEX 1
Comment 10 Tiziano Müller (RETIRED) gentoo-dev 2007-04-21 10:41:50 UTC
@martin: could you also please paste the output of the following two commands?
gcc -dM -E /usr/include/features.h | grep __USE_ISOC99
g++ -dM -E /usr/include/features.h | grep __USE_ISOC99

Thanks!
Comment 11 Tiziano Müller (RETIRED) gentoo-dev 2007-04-21 10:47:23 UTC
@martin: and while you're at it, please try to compile this file: http://dev.gentoo.org/~truedfx/complex.c
thanks a lot!
Comment 12 martin-langer 2007-04-21 11:26:46 UTC
no output from
lapsus ~ # gcc -dM -E /usr/include/features.h | grep __USE_ISOC99

lapsus ~ # g++ -dM -E /usr/include/features.h | grep __USE_ISOC99
#define __USE_ISOC99 1

...and complex.c compiles fine.
Comment 13 martin-langer 2007-04-21 11:32:24 UTC
Well it compiles with gcc, but not with g++.
 
g++ complex.c 
In file included from /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/include/g++-v4/backward/complex.h:31,
                 from complex.c:1:
/usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/include/g++-v4/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
complex.c: In function 'int main()':
complex.c:4: error: 'cabsf' was not declared in this scope
complex.c:5: error: 'cargf' was not declared in this scope
complex.c:6: error: 'ccosf' was not declared in this scope
complex.c:7: error: 'ccoshf' was not declared in this scope
complex.c:8: error: 'cexpf' was not declared in this scope
complex.c:9: error: 'clogf' was not declared in this scope
complex.c:10: error: 'csinf' was not declared in this scope
complex.c:11: error: 'csinhf' was not declared in this scope
complex.c:12: error: 'csqrtf' was not declared in this scope
complex.c:13: error: 'ctanf' was not declared in this scope
complex.c:14: error: 'ctanhf' was not declared in this scope
complex.c:15: error: 'cpowf' was not declared in this scope
complex.c:17: error: 'cabs' was not declared in this scope
complex.c:18: error: 'carg' was not declared in this scope
complex.c:19: error: 'ccos' was not declared in this scope
complex.c:20: error: 'ccosh' was not declared in this scope
complex.c:21: error: 'cexp' was not declared in this scope
complex.c:22: error: 'clog' was not declared in this scope
complex.c:23: error: 'csin' was not declared in this scope
complex.c:24: error: 'csinh' was not declared in this scope
complex.c:25: error: 'csqrt' was not declared in this scope
complex.c:26: error: 'ctan' was not declared in this scope
complex.c:27: error: 'ctanh' was not declared in this scope
complex.c:28: error: 'cpow' was not declared in this scope
complex.c:30: error: 'cabsl' was not declared in this scope
complex.c:31: error: 'cargl' was not declared in this scope
complex.c:32: error: 'ccosl' was not declared in this scope
complex.c:33: error: 'ccoshl' was not declared in this scope
complex.c:34: error: 'cexpl' was not declared in this scope
complex.c:35: error: 'clogl' was not declared in this scope
complex.c:36: error: 'csinl' was not declared in this scope
complex.c:37: error: 'csinhl' was not declared in this scope
complex.c:38: error: 'csqrtl' was not declared in this scope
complex.c:39: error: 'ctanl' was not declared in this scope
complex.c:40: error: 'ctanhl' was not declared in this scope
complex.c:41: error: 'cpowl' was not declared in this scope
Comment 14 Harald van Dijk (RETIRED) gentoo-dev 2007-04-21 13:00:58 UTC
Yes, that's normal (although it doesn't seem to happen for everybody).

The command libstdc++-v3's configure uses to test whether to define _GLIBCXX_USE_C99_COMPLEX (and from there, _GLIBCXX_USE_C99) is

gcc -shared-libgcc -nostdinc++ -c -D_GNU_SOURCE conftest.cc

(except it also refers to the gcc build directory). It compiles in C++ mode, but without C++ headers. When C++ headers are included, the wrong <complex.h> gets pulled in. Could you try it like that, with

g++ -shared-libgcc -nostdinc++ -c -D_GNU_SOURCE complex.c

? (Or with gcc, and renaming the file to have a .cc extension.)
Comment 15 martin-langer 2007-04-21 13:39:58 UTC
g++ -shared-libgcc -nostdinc++ -c -D_GNU_SOURCE complex.c 
works fine.

gcc -shared-libgcc -nostdinc++ -c -D_GNU_SOURCE complex.cc 
works fine, too. 

No warnings, no errors. 
Comment 16 Harald van Dijk (RETIRED) gentoo-dev 2007-04-21 13:46:51 UTC
In that case, I don't see why _GLIBCXX_USE_C99 and -_COMPLEX might not get defined by gcc. Is it possible for you to re-emerge gcc with FEATURES="keepwork" and to attach libstdc++-v3's config.log?
Comment 17 martin-langer 2007-04-21 16:03:22 UTC
After running again an emerge gcc it's magically fixed now. 

My history looks like
emerge gcc
emerge -e gcc
emerge glibc
emerge gcc

I really don't understand it. But it is fixed somehow after emerging gcc for the third time. And it was definitely still broken after the second gcc emerge. Nevertheless, thank you very much for all your help. Thanks!