while trying to emerge steghide 0.5.1 I ran into the following problem if g++ -DHAVE_CONFIG_H -I. -I. -I.. -DLOCALEDIR=\"/usr/share/locale\" -O2 -Wall -MT AuFile.o - MD -MP -MF ".deps/AuFile.Tpo" \ -c -o AuFile.o `test -f 'AuFile.cc' || echo './'`AuFile.cc; \ then mv ".deps/AuFile.Tpo" ".deps/AuFile.Po"; \ else rm -f ".deps/AuFile.Tpo"; exit 1; \ fi CvrStgObject.h:40: warning: 'class CvrStgObject' has virtual functions but non-virtual destructor SampleValue.h: In member function 'size_t SampleValueHash::operator()(const SampleValue*) const': SampleValue.h:166: error: 'hash' is not a member of 'sgi' SampleValue.h:166: error: expected primary-expression before '>' token SampleValue.h:166: error: 'h' was not declared in this scope AudioData.h: At global scope: AudioData.h:37: warning: 'class AudioData' has virtual functions but non-virtual destructor AuData.h:29: error: explicit specialization of 'BYTE AudioDataImpl<AuMuLaw, BYTE, AudioSampleValue<AuMuLaw, BYTE> >::readValue(BinaryIO*) const' must be introduced by 'template <>' AuData.h:29: error: template-id 'readValue<>' for 'BYTE AudioDataImpl<AuMuLaw, BYTE, AudioSampleValue<AuMuLaw, BYTE> >::readValue(BinaryIO*) const' does not match any template declaration AuData.h:29: error: invalid function declaration AuData.h:30: error: explicit specialization of 'void AudioDataImpl<AuMuLaw, BYTE, AudioSampleValue<AuMuLaw, BYTE> >::writeValue(BinaryIO*, BYTE) const' must be introduced by 'template <>' AuData.h:30: error: template-id 'writeValue<>' for 'void AudioDataImpl<AuMuLaw, BYTE, AudioSampleValue<AuMuLaw, BYTE> >::writeValue(BinaryIO*, BYTE) const' does not match any template declaration AuData.h:30: error: invalid function declaration AuData.h:34: error: explicit specialization of 'SBYTE AudioDataImpl<AuPCM8, SBYTE, AudioSampleValue<AuPCM8, SBYTE> >::readValue(BinaryIO*) const' must be introduced by 'template <>' AuData.h:34: error: template-id 'readValue<>' for 'SBYTE AudioDataImpl<AuPCM8, SBYTE, AudioSampleValue<AuPCM8, SBYTE> >::readValue(BinaryIO*) const' does not match any template declaration AuData.h:34: error: invalid function declaration AuData.h:35: error: explicit specialization of 'void AudioDataImpl<AuPCM8, SBYTE, AudioSampleValue<AuPCM8, SBYTE> >::writeValue(BinaryIO*, SBYTE) const' must be introduced by 'template <>' AuData.h:35: error: template-id 'writeValue<>' for 'void AudioDataImpl<AuPCM8, SBYTE, AudioSampleValue<AuPCM8, SBYTE> >::writeValue(BinaryIO*, SBYTE) const' does not match any template declaration AuData.h:35: error: invalid function declaration AuData.h:39: error: explicit specialization of 'SWORD16 AudioDataImpl<AuPCM16, SWORD16, AudioSampleValue<AuPCM16, SWORD16> >::readValue(BinaryIO*) const' must be introduced by 'template <>' AuData.h:39: error: template-id 'readValue<>' for 'SWORD16 AudioDataImpl<AuPCM16, SWORD16, AudioSampleValue<AuPCM16, SWORD16> >::readValue(BinaryIO*) const' does not match any template declaration AuData.h:39: error: invalid function declaration AuData.h:40: error: explicit specialization of 'void AudioDataImpl<AuPCM16, SWORD16, AudioSampleValue<AuPCM16, SWORD16> >::writeValue(BinaryIO*, SWORD16) const' must be introduced by 'template <>' AuData.h:40: error: template-id 'writeValue<>' for 'void AudioDataImpl<AuPCM16, SWORD16, AudioSampleValue<AuPCM16, SWORD16> >::writeValue(BinaryIO*, SWORD16) const' does not match any template declaration AuData.h:40: error: invalid function declaration AuData.h:44: error: explicit specialization of 'SWORD32 AudioDataImpl<AuPCM32, SWORD32, AudioSampleValue<AuPCM32, SWORD32> >::readValue(BinaryIO*) const' must be introduced by 'template <>' AuData.h:44: error: template-id 'readValue<>' for 'SWORD32 AudioDataImpl<AuPCM32, SWORD32, AudioSampleValue<AuPCM32, SWORD32> >::readValue(BinaryIO*) const' does not match any template declaration AuData.h:44: error: invalid function declaration AuData.h:45: error: explicit specialization of 'void AudioDataImpl<AuPCM32, SWORD32, AudioSampleValue<AuPCM32, SWORD32> >::writeValue(BinaryIO*, SWORD32) const' must be introduced by 'template <>' AuData.h:45: error: template-id 'writeValue<>' for 'void AudioDataImpl<AuPCM32, SWORD32, AudioSampleValue<AuPCM32, SWORD32> >::writeValue(BinaryIO*, SWORD32) const' does not match any template declaration AuData.h:45: error: invalid function declaration make[2]: *** [AuFile.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 !!! ERROR: app-crypt/steghide-0.5.1 failed. 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.52-r1 (default-darwin/macos/10.4, gcc-4.0.0, libsystem-7.1-r0, 8.2.0 Power Macintosh) =============================================================== == System uname: 8.2.0 Power Macintosh powerpc macos-20041118 distcc 2.0.1-zeroconf powerpc-apple-darwin7.0 (protocol 1) (default port 3632) [disabled] dev-lang/python: [Not Present] sys-apps/sandbox: [Not Present] sys-devel/autoconf: [Not Present] sys-devel/automake: [Not Present] sys-devel/binutils: [Not Present] sys-devel/libtool: [Not Present] virtual/os-headers: 7.1 ACCEPT_KEYWORDS="ppc-macos ~ppc-macos" AUTOCLEAN="yes" CBUILD="powerpc-apple-darwin" CFLAGS="-O2 -pipe" CHOST="powerpc-apple-darwin" 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="-O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig collision-protect distlocks sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/ gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="ppc emboss imagemagick nls png ppc-macos qt sdl slang tiff userland_Darwin kernel_Darwin elibc_Darwin" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
same problem here on x86. gcc 4 trouble. should block bug 117482
Fixed, thanks.
Dirk, mind to try compiling this thing again?
works perfectly with 4.1.0 too. wonderful job
> Dirk, mind to try compiling this thing again? Do I need to do something special beside emerge sync and keywording it? I still get a if g++ -DHAVE_CONFIG_H -I. -I. -I.. -DLOCALEDIR=\"/usr/share/locale\" -O2 -Wall -MT AuFile.o -MD -MP -MF ".deps/AuFile.Tpo" \ -c -o AuFile.o `test -f 'AuFile.cc' || echo './'`AuFile.cc; \ then mv ".deps/AuFile.Tpo" ".deps/AuFile.Po"; \ else rm -f ".deps/AuFile.Tpo"; exit 1; \ fi CvrStgObject.h:40: warning: 'class CvrStgObject' has virtual functions but non-virtual destructor SampleValue.h: In member function 'size_t SampleValueHash::operator()(const SampleValue*) const': SampleValue.h:166: error: 'hash' is not a member of 'sgi' SampleValue.h:166: error: expected primary-expression before '>' token SampleValue.h:166: error: 'h' was not declared in this scope AudioData.h: At global scope: AudioData.h:37: warning: 'class AudioData' has virtual functions but non-virtual destructor ;(
Dirk: the output of `emerge info'? Is this with 4.0 or 4.1? If it is 4.0, please try 4.1.
This is ppc-macos, so there is nothing but GCC 4.0.0. Maybe this is some code that get's active through an ifdef somewhere?
> SampleValue.h:166: error: 'hash' is not a member of 'sgi' > SampleValue.h:166: error: expected primary-expression before '>' token > SampleValue.h:166: error: 'h' was not declared in this scope The problem seem to be that the code is selected in src/wrapper_hash_set.h. According to my tests, the part include <ext/hash_set> namespace sgi = ::__gnu_cxx ; works for MacOSX Tiger. Instead, somehow namespace sgi = std ; is selected. This should possibly just a matter of an additional #ifdef __APPLE__ (I am not certain about which defines are defined where)
It doesn't seem this is a gcc-4 specific issue any longer.
problem found. The ifdef assumed GCC 4.0.0 didn't exist. FC4 users have the same problem. Easily fixable, but then we run into a bunch of linker problems.
after fixing the libtool call (for real, not like the patch) steghide compiled fine here. in prefix.