Thanks for the pointer.
I would like to report that the new default to not build a shared library means Poly/ML 5.5.1 does not build HOL4 unless you use the --enable-shared option at configure time. Is this as expected, or is there some other possible solution?
Interestingly, even when --enable-shared is given at configure time, the polyc script prints some errors where it probably shouldn't: % polyc Usage: file [-bchikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ... file -C [-m magicfiles] file [--help] /usr/lib/libpolymain.a(polystub.o): In function `main': (.text.startup+0x1): undefined reference to `poly_exports' collect2: error: ld returned 1 exit status
And here is the beginning of the long list of errors, if --enable-shared is not used when building poly, and then trying to build hol:
~/HOL % poly < tools/smart-configure.sml Poly/ML 5.5.1 Release
HOL smart configuration.
Determining configuration parameters: holdir OS poly polymllibdir OS: linux poly: /usr/bin/poly polymllibdir: /usr/lib holdir: /home/ramana/HOL DOT_PATH: /usr/bin/dot
Configuration will begin with above values. If they are wrong press Control-C.
Will continue in 1 seconds.
Loading system specific functions Compiling system specific functions (sig sml) Beginning configuration. Making tools/mllex/mllex.exe. Poly/ML 5.5.1 Release /usr/lib/libpolyml.a(basicio.o): In function `retry_rts_call(TaskData*)': (.text+0x51f): undefined reference to `__cxa_allocate_exception' /usr/lib/libpolyml.a(basicio.o): In function `retry_rts_call(TaskData*)': (.text+0x534): undefined reference to `__cxa_throw' /usr/lib/libpolyml.a(basicio.o): In function `BasicIO::~BasicIO()': (.text._ZN7BasicIOD0Ev[_ZN7BasicIOD0Ev]+0x8): undefined reference to `operator delete(void*)' /usr/lib/libpolyml.a(basicio.o): In function `WaitStream::~WaitStream()': (.text._ZN10WaitStreamD0Ev[_ZN10WaitStreamD0Ev]+0x8): undefined reference to `operator delete(void*)' /usr/lib/libpolyml.a(basicio.o):(.rodata._ZTI10WaitStream[_ZTI10WaitStream]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' /usr/lib/libpolyml.a(basicio.o):(.rodata._ZTI7BasicIO[_ZTI7BasicIO]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' /usr/lib/libpolyml.a(processes.o): In function `Processes::TestSynchronousRequests(TaskData*)': (.text+0x1de): undefined reference to `__cxa_allocate_exception' /usr/lib/libpolyml.a(processes.o): In function `Processes::TestSynchronousRequests(TaskData*)': (.text+0x1ed): undefined reference to `__cxa_throw' /usr/lib/libpolyml.a(processes.o): In function `Processes::TestSynchronousRequests(TaskData*)': (.text+0x229): undefined reference to `__cxa_allocate_exception' /usr/lib/libpolyml.a(processes.o): In function `Processes::TestSynchronousRequests(TaskData*)': (.text+0x23e): undefined reference to `__cxa_throw' /usr/lib/libpolyml.a(processes.o): In function `Processes::BlockAndRestart(TaskData*, Waiter*, bool, int)': (.text+0x3ac): undefined reference to `__cxa_allocate_exception' /usr/lib/libpolyml.a(processes.o): In function `Processes::BlockAndRestart(TaskData*, Waiter*, bool, int)': (.text+0x3c1): undefined reference to `__cxa_throw' /usr/lib/libpolyml.a(processes.o): In function `Processes::Exit(int)': (.text+0x58c): undefined reference to `pthread_create' /usr/lib/libpolyml.a(processes.o): In function `Processes::Init()': (.text+0x5ee): undefined reference to `pthread_key_create' /usr/lib/libpolyml.a(processes.o): In function `Processes::Stop()': (.text+0x748): undefined reference to `pthread_key_delete' /usr/lib/libpolyml.a(processes.o): In function `Processes::TestAnyEvents(TaskData*)': (.text+0x7cf): undefined reference to `__cxa_allocate_exception' /usr/lib/libpolyml.a(processes.o): In function `Processes::TestAnyEvents(TaskData*)': (.text+0x7e4): undefined reference to `__cxa_throw' /usr/lib/libpolyml.a(processes.o): In function `Processes::CreateNewTaskData(SaveVecEntry*, SaveVecEntry*, SaveVecEntry*, PolyWord)': (.text+0xbc6): undefined reference to `operator new(unsigned long)' /usr/lib/libpolyml.a(processes.o): In function `Processes::CreateNewTaskData(SaveVecEntry*, SaveVecEntry*, SaveVecEntry*, PolyWord)': (.text+0xcd1): undefined reference to `pthread_setspecific' /usr/lib/libpolyml.a(processes.o): In function `Processes::CreateNewTaskData(SaveVecEntry*, SaveVecEntry*, SaveVecEntry*, PolyWord)': (.text+0xd7b): undefined reference to `__cxa_allocate_exception' /usr/lib/libpolyml.a(processes.o): In function `Processes::CreateNewTaskData(SaveVecEntry*, SaveVecEntry*, SaveVecEntry*, PolyWord)': (.text+0xd8a): undefined reference to `__cxa_throw' /usr/lib/libpolyml.a(processes.o): In function `Processes::CreateNewTaskData(SaveVecEntry*, SaveVecEntry*, SaveVecEntry*, PolyWord)': (.text+0xdb9): undefined reference to `operator delete(void*)' /usr/lib/libpolyml.a(processes.o): In function `Processes::CreateNewTaskData(SaveVecEntry*, SaveVecEntry*, SaveVecEntry*, PolyWord)': (.text+0xdd4): undefined reference to `__cxa_allocate_exception' /usr/lib/libpolyml.a(processes.o): In function `Processes::CreateNewTaskData(SaveVecEntry*, SaveVecEntry*, SaveVecEntry*, PolyWord)': (.text+0xde3): undefined reference to `__cxa_throw' /usr/lib/libpolyml.a(processes.o): In function `Processes::ThreadExit(TaskData*)': (.text+0xf98): undefined reference to `pthread_sigmask' /usr/lib/libpolyml.a(processes.o): In function `Processes::ThreadExit(TaskData*)': (.text+0xfa2): undefined reference to `pthread_setspecific' /usr/lib/libpolyml.a(processes.o): In function `NewThreadFunction(void*)': (.text+0x1068): undefined reference to `pthread_setspecific' /usr/lib/libpolyml.a(processes.o): In function `NewThreadFunction(void*)': (.text+0x10b3): undefined reference to `__cxa_get_exception_ptr' /usr/lib/libpolyml.a(processes.o): In function `NewThreadFunction(void*)': (.text+0x10bb): undefined reference to `__cxa_begin_catch' /usr/lib/libpolyml.a(processes.o): In function `NewThreadFunction(void*)': (.text+0x10d0): undefined reference to `__cxa_end_catch' /usr/lib/libpolyml.a(processes.o): In function `Processes::BeginRootThread(PolyObject*)': (.text+0x1135): undefined reference to `operator new(unsigned long)' /usr/lib/libpolyml.a(processes.o): In function `Processes::BeginRootThread(PolyObject*)': (.text+0x124c): undefined reference to `pthread_create' /usr/lib/libpolyml.a(processes.o): In function `Processes::BeginRootThread(PolyObject*)': (.text+0x158c): undefined reference to `__cxa_get_exception_ptr' /usr/lib/libpolyml.a(processes.o): In function `Processes::BeginRootThread(PolyObject*)': (.text+0x1598): undefined reference to `vtable for std::bad_alloc' /usr/lib/libpolyml.a(processes.o): In function `Processes::BeginRootThread(PolyObject*)': (.text+0x159d): undefined reference to `__cxa_begin_catch' /usr/lib/libpolyml.a(processes.o): In function `Processes::BeginRootThread(PolyObject*)': (.text+0x15c1): undefined reference to `operator delete(void*)' /usr/lib/libpolyml.a(processes.o): In function `Processes::BeginRootThread(PolyObject*)': (.text+0x15d3): undefined reference to `std::bad_alloc::~bad_alloc()' /usr/lib/libpolyml.a(processes.o): In function `Processes::BeginRootThread(PolyObject*)': (.text+0x15d8): undefined reference to `__cxa_end_catch'
On Tue, Sep 17, 2013 at 6:44 PM, David Matthews < David.Matthews at prolingua.co.uk> wrote:
On 17/09/2013 18:35, Ramana Kumar wrote:
That's great :) Has the -fixes branch also been updated - or will it be?
I've created a 5.5.1-fixes branch in the root. See http://sourceforge.net/p/**polyml/code/HEAD/tree/http://sourceforge.net/p/polyml/code/HEAD/tree/ At the moment it is just a branch of the current SVN.
David