[Push] on which linux does push 3.1 compile?

Erik Max Francis max at alcyone.com
Tue May 4 19:56:19 EDT 2010


Lee Spector wrote:
> [ This message bounced when the original poster sent it to the list... I'm not sure why, but I've increased mailman's "bounce threshold"... If anyone else has had letters to the push list bounce then please let me know...  -Lee]
> 
> From: Tijn van der Zant <robotijn at gmail.com>
> Date: May 4, 2010 9:45:38 AM EDT
> To: push at lists.hampshire.edu
> Subject: on which linux does push 3.1 compile?
> 
> 
> Hi,
> 
> I want to compile push under Linux. I am using a 32 bit Ubuntu 10.04.
> I have g++, f95 etc. installed. The configuration works fine, but when
> running make I get the following after a while:
> 
> g++ -DHAVE_CONFIG_H -I. -I. -I.. -O2 -DNDEBUG -fomit-frame-pointer -g
> -O2 -MT EnvInstructions.lo -MD -MP -MF .deps/EnvInstructions.Tpo -c
> EnvInstructions.cpp -o EnvInstructions.o >/dev/null 2>&1
> if /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H
> -I. -I. -I..    -O2 -DNDEBUG -fomit-frame-pointer  -g -O2 -MT pushC.lo
> -MD -MP -MF ".deps/pushC.Tpo" -c -o pushC.lo `test -f
> '../extension/pushC.cpp' || echo './'`../extension/pushC.cpp; \
> 	then mv -f ".deps/pushC.Tpo" ".deps/pushC.Plo"; else rm -f
> ".deps/pushC.Tpo"; exit 1; fi
> g++ -DHAVE_CONFIG_H -I. -I. -I.. -O2 -DNDEBUG -fomit-frame-pointer -g
> -O2 -MT pushC.lo -MD -MP -MF .deps/pushC.Tpo -c ../extension/pushC.cpp
> -fPIC -DPIC -o .libs/pushC.o
> ../extension/pushC.cpp: In function 'char*
> pushGetConfigString(PushEnvironment*)':
> ../extension/pushC.cpp:85: error: 'strdup' was not declared in this scope
> ../extension/pushC.cpp: In function 'char*
> pushGetStacksString(PushEnvironment*)':
> ../extension/pushC.cpp:90: error: 'strdup' was not declared in this scope
> ../extension/pushC.cpp: In function 'char*
> pushGetExecStackString(PushEnvironment*)':
> ../extension/pushC.cpp:98: error: 'strdup' was not declared in this scope
> ../extension/pushC.cpp: In function 'char* pushCodeGetString(PushCode*)':
> ../extension/pushC.cpp:102: error: 'strdup' was not declared in this scope
> ../extension/pushC.cpp:104: error: 'strdup' was not declared in this scope
> make[2]: *** [pushC.lo] Error 1
> make[2]: Leaving directory `/home/tijn/push-3.1.0/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/tijn/push-3.1.0'
> make: *** [all] Error 2
> 
> Unless someone knows how to fix this, and instead of trying to solve
> this myself, I would just like to know under which Linux people got
> this to work. Then I'll install a virtual machine with that linux.
> 
> Cheers,
> 
> Tijn van der Zant
> a post-doc in AI & Robotics

Presuming what's being referred to is the C++ implementation SourceForge 
here:

	http://sourceforge.net/projects/push-evolve/

I tried just now and it builds on CentOS 5.x without complaints, but at 
any rate the error is pretty obvious:  The right header is not being 
included to get `strdup`.  Checking the code, they're include <string>, 
which is an obsolete header in C++.  The correct header is <cstring> 
(which puts the functions in the `std` namespace, which they're already 
`using` in the source file).

Though the strange and arbitrary mixing of C strings and C++ 
std::strings is not promising for such a project in the first place.

-- 
Erik Max Francis && max at alcyone.com && http://www.alcyone.com/max/
  San Jose, CA, USA && 37 18 N 121 57 W && AIM/Y!M/Skype erikmaxfrancis
   There's this perfect girl / Living inside the shell
    -- Lamya


More information about the Push mailing list