On 03.12.2018 15:31, Rick McGuire wrote: > It doesn't matter if they are identical or not, the problem is getting two > different versions > loaded. The first one is the actual running interpreter, the second one is > loaded and nothing is > initialized in it, so the call crashes. > > My guess is rexx launcher is picking up the version from the same directory, > but when RexxAddMacro > dynamically loads the library, it is getting the first one encountered on the > lib path, which > causes the problem. The solution is don't mix up your setups. Well, finally I found the reason, which was just totally unexpected: while copying the libraries to the distribution directory the symbolic links got resolved with the physical file, causing two identical versions for each library under different names! This has not caused problems for years, tsk!
Reinstating the symbolic links such that e.g. "librexxapi.dylib" is a symbolic link that points to "librexxapi.5.0.0.dylib" etc. causes the Macrogroup.testGroup to run successfully! Here, how I found out on Apple: found the environment variable "DYLD_PRINT_LIBRARIES=YES" which will print all libraries an applications loads, in this case the following was printed: wu114184:trunk rony$ DYLD_PRINT_LIBRARIES=YES rexx testOORexx.rex -f Macrospace.testGroup -s -S dyld: loaded: /usr/local/bin/rexx dyld: loaded: /usr/local/lib/librexx.5.0.0.dylib *dyld: loaded: **/usr/local/lib/librexxapi.5.0.0.dylib* dyld: loaded: /usr/lib/libSystem.B.dylib dyld: loaded: /usr/lib/libc++.1.dylib dyld: loaded: /usr/lib/system/libcache.dylib ... cut ... dyld: loaded: /usr/lib/libc++abi.dylib dyld: loaded: /usr/local/lib/librexxutil.dylib *dyld: loaded: **/usr/local/lib/librexxapi.dylib* dyld: loaded: /usr/local/lib/librxregexp.dylib Searching for test containers.. Executing automated test suite Executing testSuite [testCase: [] (an ooTestSuite@n/a_-4508788545)@-4508788545] with [2] test cases ... Executing testSuite [testCase: [The Macrospace.testGroup class] (an ooTestSuite@/Users/rony/dev/oorexx_allura/test/trunk/ooRexx/base/rexxutil/Macrospace.testGroup)@-4508815297] with [36] test cases ... ... running TestCase object [testCase: [TEST_ADD_ARG_OPTION_ILLEGAL] (a Macrospace.testGroup@/Users/rony/dev/oorexx_allura/test/trunk/ooRexx/base/rexxutil/Macrospace.testGroup)] ... ... running TestCase object [testCase: [TEST_ADD_ARG_PATH_NOT_EXISTING] (a Macrospace.testGroup@/Users/rony/dev/oorexx_allura/test/trunk/ooRexx/base/rexxutil/Macrospace.testGroup)] ... ... running TestCase object [testCase: [TEST_ADD_ARG_PATH_NULL] (a Macrospace.testGroup@/Users/rony/dev/oorexx_allura/test/trunk/ooRexx/base/rexxutil/Macrospace.testGroup)] ... ... running TestCase object [testCase: [TEST_ADD_FOUR_ARGS_TOO_MANY] (a Macrospace.testGroup@/Users/rony/dev/oorexx_allura/test/trunk/ooRexx/base/rexxutil/Macrospace.testGroup)] ... ... running TestCase object [testCase: [TEST_ADD_NO_ARG_TOO_FEW] (a Macrospace.testGroup@/Users/rony/dev/oorexx_allura/test/trunk/ooRexx/base/rexxutil/Macrospace.testGroup)] ... ... running TestCase object [testCase: [TEST_ADD_ONE_ARG_TOO_FEW] (a Macrospace.testGroup@/Users/rony/dev/oorexx_allura/test/trunk/ooRexx/base/rexxutil/Macrospace.testGroup)] ... ... running TestCase object [testCase: [TEST_ADD_THREE_ARGS_OPTION] (a Macrospace.testGroup@/Users/rony/dev/oorexx_allura/test/trunk/ooRexx/base/rexxutil/Macrospace.testGroup)] ... dyld: loaded: /usr/local/lib/librexx.dylib *Segmentation fault: 11* wu114184:trunk rony$ So the same library got loaded twice, once without the version number, once with the version number (see above "/usr/local/lib/librexxapi.dylib " and "/usr/local/lib/librexxapi.5.0.0.dylib") . Then doing a "ls -al /usr/local/lib" yielded: wu114184:trunk rony$ ls -al /usr/local/lib/librexx* lrwxr-xr-x 1 root wheel 66 Dec 3 13:30 /usr/local/lib/librexx.5.0.0.dylib -> /Library/Frameworks/ooRexx.framework/Libraries/librexx.5.0.0.dylib lrwxr-xr-x 1 root wheel 60 Dec 3 13:30 /usr/local/lib/librexx.dylib -> /Library/Frameworks/ooRexx.framework/Libraries/librexx.dylib *lrwxr-xr-x 1 root wheel 69 Dec 3 13:30 /usr/local/lib/librexxapi.5.0.0.dylib -> /Library/Frameworks/ooRexx.framework/Libraries/librexxapi.5.0.0.dylib lrwxr-xr-x 1 root wheel 63 Dec 3 13:30 /usr/local/lib/librexxapi.dylib -> /Library/Frameworks/ooRexx.framework/Libraries/librexxapi.dylib* lrwxr-xr-x 1 root wheel 70 Dec 3 13:30 /usr/local/lib/librexxutil.5.0.0.dylib -> /Library/Frameworks/ooRexx.framework/Libraries/librexxutil.5.0.0.dylib lrwxr-xr-x 1 root wheel 64 Dec 3 13:30 /usr/local/lib/librexxutil.dylib -> /Library/Frameworks/ooRexx.framework/Libraries/librexxutil.dylib Which allowed me to see that no symbolic links are present among the libraries there, just symbolic links to the installation directory. Double checking all the library files in "/Library/Frameworks/ooRexx.framework/Libraries" then yielded: wu114184:trunk rony$ ls -al /Library/Frameworks/ooRexx.framework/Libraries/ total 12032 drwxr-xr-x 20 root wheel 640 Dec 3 13:29 . drwxr-xr-x 6 root wheel 192 Dec 3 13:29 .. -rwxr-xr-x 1 root wheel 29284 Dec 3 13:28 libhostemu.5.0.0.dylib -rwxr-xr-x 1 root wheel 29284 Dec 3 13:28 libhostemu.dylib -rwxr-xr-x 1 root wheel 124168 Dec 3 13:28 liborxncurses.5.0.0.dylib -rwxr-xr-x 1 root wheel 124168 Dec 3 13:28 liborxncurses.dylib -rwxr-xr-x 1 root wheel 2508164 Dec 3 13:28 librexx.5.0.0.dylib -rwxr-xr-x 1 root wheel 2508164 Dec 3 13:28 librexx.dylib *-rwxr-xr-x 1 root wheel 143320 Dec 3 13:28 librexxapi.5.0.0.dylib -rwxr-xr-x 1 root wheel 143320 Dec 3 13:28 librexxapi.dylib* -rwxr-xr-x 1 root wheel 96140 Dec 3 13:28 librexxutil.5.0.0.dylib -rwxr-xr-x 1 root wheel 96140 Dec 3 13:28 librexxutil.dylib -rwxr-xr-x 1 root wheel 26220 Dec 3 13:28 librxmath.5.0.0.dylib -rwxr-xr-x 1 root wheel 26220 Dec 3 13:28 librxmath.dylib -rwxr-xr-x 1 root wheel 32548 Dec 3 13:28 librxregexp.5.0.0.dylib -rwxr-xr-x 1 root wheel 32548 Dec 3 13:28 librxregexp.dylib -rwxr-xr-x 1 root wheel 55060 Dec 3 13:28 librxsock.5.0.0.dylib -rwxr-xr-x 1 root wheel 55060 Dec 3 13:28 librxsock.dylib -rwxr-xr-x 1 root wheel 47792 Dec 3 13:28 librxunixsys.5.0.0.dylib -rwxr-xr-x 1 root wheel 47792 Dec 3 13:28 librxunixsys.dylib wu114184:trunk rony$ So the original symbolic link "librexxapi.dylib" got replaced by the file it pointed to, such that "librexxapi.5.0.0.dylib" became a physically different library to "librexxapi.dylib". Making sure that one of the two files librexxapi.5.0.0.dylib and librexxapi.dylib becomes a symbolic link pointing to the other resolved the issue. ---rony
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel