Hello all,

I cannot build 12269 for Linux. Until now, I have never had a problem with 
building for Linux. I get this error when linking rxapi:

[ 83%] Linking CXX executable bin/rxapi
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysSemaphore.cpp.o: in 
function `SysSemaphore::SysSemaphore(bool)':
SysSemaphore.cpp:(.text+0x54): undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: SysSemaphore.cpp:(.text+0x99): undefined reference to 
`pthread_mutexattr_settype'
/usr/bin/ld: SysSemaphore.cpp:(.text+0xb9): undefined reference to 
`pthread_mutexattr_destroy'
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysSemaphore.cpp.o: in 
function `SysSemaphore::create()':
SysSemaphore.cpp:(.text+0x15c): undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: SysSemaphore.cpp:(.text+0x199): undefined reference to 
`pthread_mutexattr_settype'
/usr/bin/ld: SysSemaphore.cpp:(.text+0x1b9): undefined reference to 
`pthread_mutexattr_destroy'
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysSemaphore.cpp.o: in 
function `SysMutex::SysMutex(bool, bool)':
SysSemaphore.cpp:(.text+0x4b9): undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: SysSemaphore.cpp:(.text+0x4e9): undefined reference to 
`pthread_mutexattr_settype'
/usr/bin/ld: SysSemaphore.cpp:(.text+0x504): undefined reference to 
`pthread_mutexattr_destroy'
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysSemaphore.cpp.o: in 
function `SysMutex::create(bool)':
SysSemaphore.cpp:(.text+0x564): undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: SysSemaphore.cpp:(.text+0x599): undefined reference to 
`pthread_mutexattr_settype'
/usr/bin/ld: SysSemaphore.cpp:(.text+0x5b4): undefined reference to 
`pthread_mutexattr_destroy'
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysSemaphore.cpp.o: in 
function `SysMutex::request(unsigned int)':
SysSemaphore.cpp:(.text+0x67b): undefined reference to `pthread_mutex_timedlock'
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysThread.cpp.o: in 
function `SysThread::terminate()':
SysThread.cpp:(.text+0x81): undefined reference to `pthread_detach'
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysThread.cpp.o: in 
function `SysThread::createThread()':
SysThread.cpp:(.text+0xf3): undefined reference to `pthread_attr_setstacksize'
/usr/bin/ld: SysThread.cpp:(.text+0x109): undefined reference to 
`pthread_create'
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysThread.cpp.o: in 
function `SysThread::createThread(unsigned long&, unsigned long, void* 
(*)(void*), void*)':
SysThread.cpp:(.text+0x1bb): undefined reference to `pthread_attr_setstacksize'
/usr/bin/ld: SysThread.cpp:(.text+0x1cc): undefined reference to 
`pthread_create'
/usr/bin/ld: CMakeFiles/rxapi.dir/common/platform/unix/SysThread.cpp.o: in 
function `SysThread::waitForTermination()':
SysThread.cpp:(.text+0x254): undefined reference to `pthread_join'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `sem_open'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `sem_wait'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `sem_init'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `sem_destroy'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `pthread_mutex_trylock'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `sem_getvalue'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `sem_close'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `sem_post'
/usr/bin/ld: lib/librexx.so.4: undefined reference to `sem_trywait'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/rxapi.dir/build.make:339: bin/rxapi] Error 1
make[1]: *** [CMakeFiles/Makefile2:544: CMakeFiles/rxapi.dir/all] Error 2
make: *** [Makefile:156: all] Error 2


@Rick

Thank you, I understand.


Best regards

Thomas


On 7/5/21 8:02 PM, Rick McGuire wrote:

Thomas,

There’s no point in trying to run anything else until you have the rexximage 
issues resolved. The rexx.img file is required for anything else to work.

Rick

On Mon, Jul 5, 2021 at 1:49 PM Thomas Kahr 
<tho...@vaime.at<mailto:tho...@vaime.at>> wrote:
Dear Rick,

many thanks for your explanation. If I'm understanding correctly I have to 
figure out how I have to get the configuration for the semaphores to work 
correctly? Does this also include to change the bit of recursion you talked 
about to a non recursive version?
Because I read somewhere that recursion works not too well in such cases.
@striketrough text: I guess with the last information this isn't useful anymore.

Yesterday, I did not provide gdb logs of the complete Debug-Build. It was only 
for the rexximage executable. With a small sample helloWorld rexx program there 
is an interesting difference when trying to execute it.
There is a segmentation fault. It occurs in RexxMemory.cpp line 691.

I attached the 2 GDB-Logfiles.

Thomas

On 7/4/21 9:37 PM, Rick McGuire wrote:
When porting to new *ix environments, it is quite common for there to be 
problems getting the configuration for the semaphores to work correctly. From 
the stack trace, it is hanging on a request for a mutex semaphore. rexximage 
should run completely single threaded, so this should never deadlock. However, 
the semaphore in question is already held by the current thread because of a 
bit of recursion at startup, so It looks like the semaphores are not properly 
handling nested requests.

Rick

On Sun, Jul 4, 2021 at 3:11 PM Thomas Kahr 
<tho...@vaime.at<mailto:tho...@vaime.at>> wrote:

Dear Developers,

the current semester has come to an end and I finished all my exams. So, now I 
can fully focus on my little Android Project.

There are some new developments I would like to share with all of you. I'm not 
experienced with GDB and STRACE so maybe here are some pros who know what to do 
with the output better than me.

1. GDB

As Erich suggested I built a Debug-Version for Android and setup gdbserver on 
the device and connected it with GDB on my host System. The output files (I 
followed the steps in the Sourceforge ooRexx Website) are attached.

I did not push the whole debug version to the device. I just moved all 
necessary files to create rexx.img to the device. When executing rexximage its 
also hanging up so I thought it would be a good idea to debug rexximage first 
because maybe its more compact. These are the following files:

/bin:
rexximage
rxapi
CoreClasses.orx
PlatformObjects.orx
StreamClasses.orx

/lib:
librexx.so
librexxapi.so
librxregexp.so
librxunixsys.so

(I think not every single lib file is necessary for building the target 
rexx.img but I pushed every lib file which was already built when executing 
rexximage during the build process)

I also attached 2 Screenshots showing the GDB output on the Host and the 
Target. As you can see, on the target I get the "Acitivity output" which Erich 
told me I should include. In theory I should also get the same output for the 
other 2 .orx Files. Seems like something is wrong here.

2. STrace

Strace is also available on the emulated Android device. I logged the strace 
output from "rexx -v" and "rexx bintest.rex" where this .rex-File is just a 
HelloWorld.
I also tried it with rexximage rexx.img.

rexx -v is working
rexx bintest.rex is hanging up even with the debug version.
rexximage rexx.img hangs up
The 3 files are attached.

Any suggestions for my next steps. Is the output helpful?


Thanks for your help and best regards

Thomas

_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net<mailto:Oorexx-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/oorexx-devel




_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net<mailto:Oorexx-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/oorexx-devel



_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net<mailto:Oorexx-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/oorexx-devel




_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net<mailto:Oorexx-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/oorexx-devel
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to