leftmike / foment

Foment is an implementation of R7RS Scheme.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to build on Ubuntu 12.04

GoogleCodeExporter opened this issue · comments

Attempted to compile foment under Ubuntu Linux 12.04 and received the following 
errors:

mkdir debug
mkdir release
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/foment.o 
../src/foment.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/gc.o 
../src/gc.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/syncthrd.o 
../src/syncthrd.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/compile.o 
../src/compile.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/io.o 
../src/io.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/synrules.o 
../src/synrules.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/synpass.o 
../src/synpass.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/midpass.o 
../src/midpass.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/genpass.o 
../src/genpass.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/pairs.o 
../src/pairs.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/unicode.o 
../src/unicode.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/chars.o 
../src/chars.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/strings.o 
../src/strings.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/vectors.o 
../src/vectors.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/library.o 
../src/library.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/execute.o 
../src/execute.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/numbers.o 
../src/numbers.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/write.o 
../src/write.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/read.o 
../src/read.cpp
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/main.o 
../src/main.cpp
g++ -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX ../src/txt2cpp.cpp -o 
debug/txt2cpp.o
g++ debug/txt2cpp.o -o debug/txt2cpp
debug/txt2cpp ../src/base.scm debug/base.cpp BaseCode
cc -c -ggdb -Wall -DFOMENT_DEBUG -DFOMENT_UNIX -I ../src -o debug/base.o 
debug/base.cpp
g++ -lpthread -o debug/foment debug/foment.o debug/gc.o debug/syncthrd.o 
debug/compile.o debug/io.o debug/synrules.o debug/synpass.o debug/midpass.o 
debug/genpass.o debug/pairs.o debug/unicode.o debug/chars.o debug/strings.o 
debug/vectors.o debug/library.o debug/execute.o debug/numbers.o debug/write.o 
debug/read.o debug/main.o debug/base.o
debug/gc.o: In function `EnterThread(_FThreadState*, void*, void*, void*)':
/home/justin/Documents/foment/unix/../src/gc.cpp:1422: undefined reference to 
`pthread_getspecific'
debug/gc.o: In function `SetupCore(_FThreadState*)':
/home/justin/Documents/foment/unix/../src/gc.cpp:1588: undefined reference to 
`pthread_key_create'
debug/gc.o: In function `GetThreadState()':
/home/justin/Documents/foment/unix/../src/syncthrd.hpp:198: undefined reference 
to `pthread_getspecific'
/home/justin/Documents/foment/unix/../src/syncthrd.hpp:200: undefined reference 
to `pthread_getspecific'
debug/gc.o: In function `SetThreadState(_FThreadState*)':
/home/justin/Documents/foment/unix/../src/syncthrd.hpp:205: undefined reference 
to `pthread_setspecific'
debug/syncthrd.o: In function `InitializeExclusive(pthread_mutex_t*)':
/home/justin/Documents/foment/unix/../src/syncthrd.cpp:52: undefined reference 
to `pthread_mutexattr_init'
/home/justin/Documents/foment/unix/../src/syncthrd.cpp:53: undefined reference 
to `pthread_mutexattr_settype'
debug/syncthrd.o: In function `RunThreadPrimitiveFn':
/home/justin/Documents/foment/unix/../src/syncthrd.cpp:212: undefined reference 
to `pthread_create'
debug/syncthrd.o: In function `TryExclusive(pthread_mutex_t*)':
/home/justin/Documents/foment/unix/../src/syncthrd.hpp:100: undefined reference 
to `pthread_mutex_trylock'
collect2: ld returned 1 exit status
make: *** [debug/foment] Error 1


For reference, my system is running Ubuntu 12.04.1 LTS (GNU/Linux 
3.2.0-29-generic-pae i686)

Original issue reported on code.google.com by justin.e...@gmail.com on 4 Nov 2013 at 7:28

The linker do not find the pthread library. Add "-lpthread -lrt" when linking

Original comment by ostn...@gmail.com on 8 Jan 2014 at 7:58

-lpthread needs to be last

Original comment by mikemon@gmail.com on 17 May 2014 at 2:59

  • Changed state: Fixed