Compiling error: ‘STACK’ has not been declared

I’m trying to compile the panda 1.7.0 source package but I get this error

[madbad@localhost panda3d-1.7.0]$ ./makepanda/makepanda.py --everything --installer --no-artoolkit --no-squish --no-vrpn --no-nvidiacg --no-fmodex --no-fcollada
Generating library cache...
Generating dependencies...
[  7%] Building C++ object built/tmp/express_composite1.o
In file included from panda/src/express/virtualFileMountMultifile.h:22,
                 from panda/src/express/config_express.cxx:26,
                 from panda/src/express/express_composite1.cxx:4:
panda/src/express/multifile.h:103: error: ‘STACK’ has not been declared
In file included from panda/src/express/express_composite1.cxx:20:
panda/src/express/multifile.cxx:806: error: ‘STACK’ has not been declared
panda/src/express/multifile.cxx: In member function ‘bool Multifile::add_signature(X509*, int*, EVP_PKEY*)’:
panda/src/express/multifile.cxx:812: error: cannot convert ‘int*’ to ‘const _STACK*’ for argument ‘1’ to ‘int sk_num(const _STACK*)’
panda/src/express/multifile.cxx:814: error: cannot convert ‘int*’ to ‘const _STACK*’ for argument ‘1’ to ‘void* sk_value(const _STACK*, int)’
In file included from panda/src/express/express_composite1.cxx:20:
panda/src/express/multifile.cxx: In member function ‘int Multifile::validate_signature_certificate(int) const’:
panda/src/express/multifile.cxx:1134: error: ‘STACK’ was not declared in this scope
panda/src/express/multifile.cxx:1134: error: ‘stack’ was not declared in this scope
Storing dependency cache.
Elapsed Time: 7 sec

Build terminated.

I’m under Fedora rawhide

It’s because 1.7.0 didn’t support compiling against OpenSSL 1.0.0. I’ve already checked in fixes for this to CVS - if you make a CVS checkout, this issue should be resolved.

The CVS version is now compiling.
But I have to revert the
line 1369 in “/makepanda/makepandacore.py”

from

SDK["PYTHONEXEC"] = os.path.join(os.path.dirname(sys.executable), os.readlink(sys.executable))

to

SDK["PYTHONEXEC"] = sys.executable

Because the first returned an error like this:

[madbad@localhost panda3d]$ ./makepanda/makepanda.py --everything --installer
Traceback (most recent call last):
  File "./makepanda/makepanda.py", line 270, in <module>
    SdkLocatePython(RTDIST)
  File "/home/madbad/Development/svn/panda/panda3d/makepanda/makepandacore.py", line 1369, in SdkLocatePython
    SDK["PYTHONEXEC"] = os.path.join(os.path.dirname(sys.executable), os.readlink(sys.executable))
OSError: [Errno 22] Invalid argument: '/usr/bin/python'

Not sure if this could be somehow my fault.

Ah, okay. Thanks for reporting that - I’ve just checked in a fix.

I am having a similar problem:

==> Install or build missing dependencies for panda3d:
==> Building and installing package

==> panda3d dependencies:
 - python (already installed)
 - xorg-server (already installed)
 - atk (already installed)
 - freetype2 (already installed)
 - openssl (already installed)
 - libpng (already installed)
 - libjpeg (already installed)
 - ffmpeg (already installed)
 - libtiff (already installed)
 - tinyxml (already installed)
 - nvidia-cg-toolkit (already installed)
 - ode (already installed)
 - fmodex (already installed)
 - libsquish (already installed)
 - gtk2 (already installed)
==> Criando pacote: panda3d 1.7.0-2 any (Sex Abr  9 19:03:41 BRT 2010)
==> Verificando dependências em tempo de execução...
==> Verificando dependências do processo de compilação...
==> Obtendo Fontes...
  -> Encontrado panda3d-1.7.0.tar.gz no diretório de construção
==> Validando arquivos fonte com md5sums...
    panda3d-1.7.0.tar.gz ... Passou
==> Extraindo Fontes...
  -> Extraindo panda3d-1.7.0.tar.gz com bsdtar
==> Removendo diretório pkg/ existente...
==> Iniciando construção()...
Generating library cache...
WARNING: Could not locate thirdparty package artoolkit, excluding from build
WARNING: Could not locate thirdparty package fcollada, excluding from build
WARNING: Could not locate thirdparty package fftw, excluding from build
WARNING: Could not locate thirdparty package opencv, excluding from build
WARNING: Could not locate thirdparty package vrpn, excluding from build
Generating dependencies...
[  0%] Building C++ object built/tmp/dtoolbase_composite1.o
[  0%] Building C++ object built/tmp/dtoolbase_composite2.o
[  0%] Building C object built/tmp/dtoolbase_lookup3.o
[  0%] Building C++ object built/tmp/dtoolbase_indent.o
[  0%] Building C object built/tmp/dtoolutil_gnu_getopt.o
[  1%] Building C object built/tmp/dtoolutil_gnu_getopt1.o
[  1%] Building C++ object built/tmp/dtoolutil_composite.o
[  1%] Linking dynamic library built/lib/libp3dtool.so
[  1%] Building Bison object built/tmp/cppParser_cppBison.o
[  2%] Building C++ object built/tmp/cppParser_composite.o
[  2%] Linking static library built/tmp/libcppParser.a
[  2%] Building C++ object built/tmp/prc_composite.o
[  3%] Building C++ object built/tmp/dconfig_composite.o
[  3%] Building C++ object built/tmp/interrogatedb_composite.o
[  3%] Building C++ object built/tmp/dtoolconfig_pydtool.o
In file included from built/include/dtoolbase.h:98,
                 from dtool/metalibs/dtoolconfig/../../src/interrogatedb/interrogate_interface.h:18,
                 from dtool/metalibs/dtoolconfig/pydtool.cxx:9:
/usr/include/python2.6/pyconfig.h:1031:1: warning: "_POSIX_C_SOURCE" redefined
In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/i686-pc-linux-gnu/bits/os_defines.h:39,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/i686-pc-linux-gnu/bits/c++config.h:243,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/iosfwd:40,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/ios:39,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/istream:40,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/sstream:39,
                 from dtool/metalibs/dtoolconfig/pydtool.cxx:7:
/usr/include/features.h:158:1: warning: this is the location of the previous definition
In file included from built/include/dtoolbase.h:98,
                 from dtool/metalibs/dtoolconfig/../../src/interrogatedb/interrogate_interface.h:18,
                 from dtool/metalibs/dtoolconfig/pydtool.cxx:9:
/usr/include/python2.6/pyconfig.h:1040:1: warning: "_XOPEN_SOURCE" redefined
In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/i686-pc-linux-gnu/bits/os_defines.h:39,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/i686-pc-linux-gnu/bits/c++config.h:243,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/iosfwd:40,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/ios:39,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/istream:40,
                 from /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../include/c++/4.4.3/sstream:39,
                 from dtool/metalibs/dtoolconfig/pydtool.cxx:7:
/usr/include/features.h:160:1: warning: this is the location of the previous definition
[  3%] Linking dynamic library built/lib/libp3dtoolconfig.so
[  4%] Building C++ object built/tmp/pystub_pystub.o
[  4%] Linking dynamic library built/lib/libp3pystub.so
[  4%] Building C++ object built/tmp/interrogate_composite.o
[  4%] Linking executable built/bin/interrogate
[  5%] Building C++ object built/tmp/interrogate_module_interrogate_module.o
[  5%] Linking executable built/bin/interrogate_module
[  5%] Building C++ object built/tmp/parse_file_parse_file.o
[  5%] Linking executable built/bin/parse_file
[  5%] Building C++ object built/tmp/make-prc-key_makePrcKey.o
[  6%] Linking executable built/bin/make-prc-key
[  6%] Building C++ object built/tmp/test_interrogate_test_interrogate.o
[  6%] Linking executable built/bin/test_interrogate
[  6%] Building C++ object built/tmp/pandabase_pandabase.o
[  7%] Building C++ object built/tmp/express_composite1.o
In file included from panda/src/express/virtualFileMountMultifile.h:21,
                 from panda/src/express/config_express.cxx:25,
                 from panda/src/express/express_composite1.cxx:3:
panda/src/express/multifile.h:103: error: ‘STACK’ has not been declared
In file included from panda/src/express/express_composite1.cxx:19:
panda/src/express/multifile.cxx:806: error: ‘STACK’ has not been declared
panda/src/express/multifile.cxx: In member function ‘bool Multifile::add_signature(X509*, int*, EVP_PKEY*)’:
panda/src/express/multifile.cxx:812: error: cannot convert ‘int*’ to ‘const _STACK*’ for argument ‘1’ to ‘int sk_num(const _STACK*)’
panda/src/express/multifile.cxx:814: error: cannot convert ‘int*’ to ‘const _STACK*’ for argument ‘1’ to ‘void* sk_value(const _STACK*, int)’
panda/src/express/multifile.cxx: In member function ‘int Multifile::validate_signature_certificate(int) const’:
panda/src/express/multifile.cxx:1134: error: ‘STACK’ was not declared in this scope
panda/src/express/multifile.cxx:1134: error: ‘stack’ was not declared in this scope
Storing dependency cache.
Elapsed Time: 58 sec

Build terminated.
==> ERRO: Compilação Falhou.
    Abortando...
Error: Makepkg was unable to build panda3d package.

(Using Yaourt from ArchLinux)

Same problem, same solution: build from the cvs version, instead of from version 1.7.0. Version 1.7.0 doesn’t compile with OpenSSL 1.0.0.

David

I am trying to compile the cvs version, via a PKGBUILD Nemesis just did, but got this error:

[T2] Linking dynamic library built/lib/libpandaode.so
[T2] Building C++ object built/tmp/tinydisplay_ztriangle_1.o
[T1] Building C++ object built/tmp/tinydisplay_ztriangle_2.o
[T1] Building Interrogate object built/tmp/libpandaphysics_module.o
Referencing Library libparticlesystem
Referencing Library libphysics
[T1] Building C++ object built/tmp/tinydisplay_ztriangle_3.o
[T2] Building C++ object built/tmp/tinydisplay_ztriangle_4.o
[T2] Linking dynamic library built/lib/libpandaphysics.so
[T2] Building C++ object built/tmp/tinydisplay_ztriangle_table.o
[T2] Building C++ object built/tmp/directbase_directbase.o
[T2] Building C++ object built/tmp/packpanda.o
[T2] Building C++ object built/tmp/eggcacher.o
[T2] Building Bison object built/tmp/dcparser_dcParser.o
[T2] Linking executable built/bin/packpanda
[T2] Building C++ object built/tmp/dcparser_composite.o
[T1] Linking executable built/bin/eggcacher
[T1] Building Interrogate database built/pandac/input/libdcparser.in
[T2] Building C++ object built/tmp/deadrec_composite.o
[T2] Linking dynamic library built/lib/libtinydisplay.so
[T2] Building Flex object built/tmp/dcparser_dcLexer.o
[T1] Building Interrogate database built/pandac/input/libdeadrec.in
[T2] Building C++ object built/tmp/distributed_config_distributed.o
[T2] Building C++ object built/tmp/distributed_cConnectionRepository.o
[T2] Building C++ object built/tmp/distributed_cDistributedSmoothNodeBase.o
[T2] Building Interrogate database built/pandac/input/libdistributed.in
[T1] Building C++ object built/tmp/interval_composite.o
[T2] Building Interrogate database built/pandac/input/libinterval.in
[T1] Building C++ object built/tmp/showbase_showBase.o
[T1] Building Interrogate database built/pandac/input/libshowbase.in
[T2] Building C++ object built/tmp/dxml_config_dxml.o
[T2] Building Interrogate database built/pandac/input/libdxml.in
[T1] Building C++ object built/tmp/direct_direct.o
[T1] Building C++ object built/tmp/dcparse_dcparse.o
[T1] Building C++ object built/tmp/heapq_heapq.o
[T2] Building C++ object built/tmp/pandatoolbase_composite1.o
[T1] Linking executable built/bin/p3dcparse
/usr/bin/ld: cannot find -lp3direct
collect2: ld returned 1 exit status

[T1] Building C++ object built/tmp/converter_somethingToEggConverter.o
Storing dependency cache.
Elapsed Time: 16 min 56 sec
Build process aborting.
Build terminated.
==> ERRO: Compilação Falhou.
    Abortando...
andres ~/abs/panda3d-cvs $ semop(1): encountered an error: Argumento inválido
semop(1): encountered an error: Argumento inválido

Argumento inválido = Invalid Argument

Remove the --threads option from the makepanda command-line, it’s currently not reliable for automated builds.

Thanks, it worked. =)

I don’t get it, the inital compile line had no “treads” in it. So how did you fix your problem? :slight_smile:

I’m on arch linux 64bit and use this makepkg script to build panda. It fails with

In file included from panda/src/express/virtualFileMountMultifile.h:21,
                 from panda/src/express/config_express.cxx:25,
                 from panda/src/express/express_composite1.cxx:3:
panda/src/express/multifile.h:103: error: ‘STACK’ has not been declared
In file included from panda/src/express/express_composite1.cxx:19:
panda/src/express/multifile.cxx:806: error: ‘STACK’ has not been declared
panda/src/express/multifile.cxx: In member function ‘bool Multifile::add_signature(X509*, int*, EVP_PKEY*)’:
panda/src/express/multifile.cxx:812: error: cannot convert ‘int*’ to ‘const _STACK*’ for argument ‘1’ to ‘int sk_num(const _STACK*)’
panda/src/express/multifile.cxx:814: error: cannot convert ‘int*’ to ‘const _STACK*’ for argument ‘1’ to ‘void* sk_value(const _STACK*, int)’
panda/src/express/multifile.cxx: In member function ‘int Multifile::validate_signature_certificate(int) const’:
panda/src/express/multifile.cxx:1134: error: ‘STACK’ was not declared in this scope
panda/src/express/multifile.cxx:1134: error: ‘stack’ was not declared in this scope
Storing dependency cache.
Elapsed Time: 1 min 5 sec

Build terminated.
==> ERROR: Build Failed.
    Aborting...

As stated before, this error is because you’re trying to build 1.7.0. The current CVS version fixes this problem.

ah sorry, I only looked with care at the last post.

here’s a PKGBUILD for checking out and building from CVS:
nemesis13.de/panda3d-cvs.PKGBUILD

Thanks! Your PKGBUILD minus --threads worked well! I recommended it to aur.archlinux.org/packages.php?ID=30992 , which does not work for me.

I pass through “STACK” error, but now I have a problem in 60%

[ 60%] Linking executable built/bin/p3dcparse
built/lib/libp3direct.so: undefined reference to operator>>(std::basic_istream<char, std::char_traits<char> >&, TiXmlNode&)' 
built/lib/libp3direct.so: undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, TiXmlNode const&)'
collect2: ld returned 1 exit status
Storing dependency cache

.

I’m using Archlinux.

Sorry. I found the solution.

discourse.panda3d.org/viewtopic.php?t=8977