[Bug 867] New: Dynamic library dependancies not satisfied on Mac OS X

http://bugs.orocos.org/show_bug.cgi?id=867

Summary: Dynamic library dependancies not satisfied on Mac OS X
Product: RTT
Version: rtt-trunk
Platform: All
OS/Version: Mac OS X
Status: NEW
Severity: major
Priority: P3
Component: Build System
AssignedTo: orocos-dev [..] ...
ReportedBy: kiwi [dot] net [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0

Created attachment 694
--> http://bugs.orocos.org/attachment.cgi?id=694
Test case to load RTT marshalling dynamic library

Dependant dynamic library paths not set on Mac OS X, and so these libraries
aren't loaded as necessary at runtime.

On Linux

~/tmp/dl
Opening
'/opt/sw/orocos/toolchain-next/build/rtt/../../install//lib/orocos/gnulinux/./plugins/librtt-marshalling-gnulinux.so'
open OK

but on Mac OS X

~/tmp/dl
Opening
'/opt/sw/orocos/toolchain-next/build/rtt/../../install//lib/orocos/macosx/./plugins/librtt-marshalling-macosx.dylib'
open FAILED:
dlopen(/opt/sw/orocos/toolchain-next/build/rtt/../../install//lib/orocos/macosx/./plugins/librtt-marshalling-macosx.dylib,
10): Library not loaded: liborocos-rtt-macosx.2.4.dylib
  Referenced from:
/opt/sw/orocos/toolchain-next/build/rtt/../../install//lib/orocos/macosx/./plugins/librtt-marshalling-macosx.dylib
  Reason: image not found

Examining dynamic library dependancies on Linux (where full paths are correctly
set)

# BUILD TREE
ldd rtt/marsh/librtt-marshalling-gnulinux.so
    linux-gate.so.1 =>  (0x004b9000)
    liborocos-rtt-gnulinux.so.2.4 =>
/opt/sw/orocos/toolchain-next/build/rtt/rtt/liborocos-rtt-gnulinux.so.2.4
(0x004ba000)
    libboost_filesystem.so.1.40.0 => /usr/lib/libboost_filesystem.so.1.40.0
(0x00110000)
    libboost_system.so.1.40.0 => /usr/lib/libboost_system.so.1.40.0
(0x0022d000)
    libboost_serialization.so.1.40.0 =>
/usr/lib/libboost_serialization.so.1.40.0 (0x00ef0000)
    libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0x009dd000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00124000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x0013d000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00146000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00891000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x0014a000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00170000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00d92000)
    libicuuc.so.42 => /usr/lib/libicuuc.so.42 (0x00f5c000)
    libicudata.so.42 => /usr/lib/libicudata.so.42 (0xb6917000)
    /lib/ld-linux.so.2 (0x009c0000)
 
# INSTALL LOCATION
ldd
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/gnulinux/plugins/librtt-marshalling-gnulinux.so.2.4.0
    linux-gate.so.1 =>  (0x00cf4000)
    liborocos-rtt-gnulinux.so.2.4 =>
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/liborocos-rtt-gnulinux.so.2.4
(0x006e6000)
    libboost_filesystem.so.1.40.0 => /usr/lib/libboost_filesystem.so.1.40.0
(0x00aed000)
    libboost_system.so.1.40.0 => /usr/lib/libboost_system.so.1.40.0
(0x00110000)
    libboost_serialization.so.1.40.0 =>
/usr/lib/libboost_serialization.so.1.40.0 (0x00b38000)
    libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0x002ff000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00115000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x00ccb000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x0012e000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00ba4000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00132000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00158000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00cf5000)
    libicuuc.so.42 => /usr/lib/libicuuc.so.42 (0x00e4f000)
    libicudata.so.42 => /usr/lib/libicudata.so.42 (0xb68a2000)
    /lib/ld-linux.so.2 (0x001ae000)

and on Mac OS X (with paths not set for dependant library) (NB otool is the
equivalent of ldd)

# BUILD TREE
otool -L rtt/marsh/librtt-marshalling-macosx.dylib 
rtt/marsh/librtt-marshalling-macosx.dylib:
 
/opt/sw/orocos/toolchain-next/build/rtt/rtt/marsh/librtt-marshalling-macosx.2.4.0.dylib
(compatibility version 0.0.0, current version 2.4.0)
    /opt/sw/orocos/toolchain-next/build/rtt/rtt/liborocos-rtt-macosx.2.4.dylib
(compatibility version 2.4.0, current version 2.4.0)
    /opt/local/lib/libboost_filesystem-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /opt/local/lib/libboost_system-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /opt/local/lib/libboost_serialization-mt-d.dylib (compatibility version
0.0.0, current version 0.0.0)
    /opt/local/lib/libxerces-c.28.dylib (compatibility version 0.0.0, current
version 0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
125.2.10)
    /opt/local/lib/libboost_thread-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version
7.9.0)
 
# INSTALL LOCATION
otool -L
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/plugins/librtt-marshalling-macosx.2.4.0.dylib
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/plugins/librtt-marshalling-macosx.2.4.0.dylib:
    librtt-marshalling-macosx.2.4.0.dylib (compatibility version 0.0.0, current
version 2.4.0)
    liborocos-rtt-macosx.2.4.dylib (compatibility version 2.4.0, current
version 2.4.0)
    /opt/local/lib/libboost_filesystem-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /opt/local/lib/libboost_system-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /opt/local/lib/libboost_serialization-mt-d.dylib (compatibility version
0.0.0, current version 0.0.0)
    /opt/local/lib/libxerces-c.28.dylib (compatibility version 0.0.0, current
version 0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
125.2.10)
    /opt/local/lib/libboost_thread-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version
7.9.0)

[Bug 867] Dynamic library dependancies not satisfied on Mac OS X

http://bugs.orocos.org/show_bug.cgi?id=867

Peter Soetens <peter [..] ...> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED

--- Comment #4 from Peter Soetens <peter [..] ...> 2011-06-15 17:56:35 CEST ---
(In reply to comment #2)
> I wonder whether we should refactor the ADD_LIBRARY() calls like we do for
> plugins and typekits?
>
> This block is repeated in a number of places, and looks like it could become a
> macro.
>

> ADD_LIBRARY(XXX SHARED $ENV{GLOBAL_LIBRARY_SRCS})
> SET_TARGET_PROPERTIES( XXX PROPERTIES
> DEFINE_SYMBOL "RTT_DLL_EXPORT"
> SOVERSION "${RTT_VERSION_MAJOR}.${RTT_VERSION_MINOR}"
> VERSION "${RTT_VERSION}"
> OUTPUT_NAME orocos-rtt-${OROCOS_TARGET}
> # Set accumulated compilation flags: (.so and .a)
> COMPILE_FLAGS "${CMAKE_CXX_FLAGS_ADD}"
> LINK_FLAGS "${CMAKE_LD_FLAGS_ADD}"
> COMPILE_DEFINITIONS OROCOS_TARGET=${OROCOS_TARGET}
> INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib"
> CLEAN_DIRECT_OUTPUT 1)
> IF (UNIX AND NOT APPLE)
> SET_TARGET_PROPERTIES( XXX PROPERTIES
> LINK_FLAGS "-Wl,-zdefs")
> ENDIF ()
> 

I've applied your patch to toolchain-2.4. I know there is repetition in the rtt
cmake lists, but the main cleanup to do is to remove the 'static' versions of
the build targets.

Peter

[Bug 867] Dynamic library dependancies not satisfied on Mac OS X

http://bugs.orocos.org/show_bug.cgi?id=867

Peter Soetens <peter [..] ...> changed:

What |Removed |Added
----------------------------------------------------------------------------
Component|Build System |RTT
Version|rtt-trunk |master
Product|RTT |Toolchain

--- Comment #3 from Peter Soetens <peter [..] ...> 2011-06-01 09:25:06 CEST ---
Moved bug to correct product.

[Bug 867] Dynamic library dependancies not satisfied on Mac OS X

http://bugs.orocos.org/show_bug.cgi?id=867

--- Comment #2 from S Roderick <kiwi [dot] net [..] ...> 2011-05-29 15:18:07 CEST ---
I wonder whether we should refactor the ADD_LIBRARY() calls like we do for
plugins and typekits?

This block is repeated in a number of places, and looks like it could become a
macro.

  ADD_LIBRARY(XXX SHARED $ENV{GLOBAL_LIBRARY_SRCS})
  SET_TARGET_PROPERTIES( XXX PROPERTIES
  DEFINE_SYMBOL "RTT_DLL_EXPORT"
  SOVERSION "${RTT_VERSION_MAJOR}.${RTT_VERSION_MINOR}"
  VERSION "${RTT_VERSION}"
  OUTPUT_NAME orocos-rtt-${OROCOS_TARGET}
# Set accumulated compilation flags: (.so and .a)
  COMPILE_FLAGS "${CMAKE_CXX_FLAGS_ADD}"
  LINK_FLAGS "${CMAKE_LD_FLAGS_ADD}"
  COMPILE_DEFINITIONS OROCOS_TARGET=${OROCOS_TARGET}
  INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib"
  CLEAN_DIRECT_OUTPUT 1)
  IF (UNIX AND NOT APPLE)
    SET_TARGET_PROPERTIES( XXX PROPERTIES
      LINK_FLAGS "-Wl,-zdefs")
  ENDIF ()

[Bug 867] Dynamic library dependancies not satisfied on Mac OS X

http://bugs.orocos.org/show_bug.cgi?id=867

--- Comment #1 from S Roderick <kiwi [dot] net [..] ...> 2011-05-29 15:15:37 CEST ---
Created attachment 695
--> http://bugs.orocos.org/attachment.cgi?id=695
Force CMake to fully specify dynamic library path

Known problem

http://www.cmake.org/pipermail/cmake/2007-October/017184.html

With attached patch, on Linux (Ubuntu Lucid)

# BUILD TREE
ldd rtt/marsh/librtt-marshalling-gnulinux.so
    linux-gate.so.1 =>  (0x005df000)
    liborocos-rtt-gnulinux.so.2.4 =>
/opt/sw/orocos/toolchain-next/build/rtt/rtt/liborocos-rtt-gnulinux.so.2.4
(0x005e0000)
    libboost_filesystem.so.1.40.0 => /usr/lib/libboost_filesystem.so.1.40.0
(0x00f7e000)
    libboost_system.so.1.40.0 => /usr/lib/libboost_system.so.1.40.0
(0x00a33000)
    libboost_serialization.so.1.40.0 =>
/usr/lib/libboost_serialization.so.1.40.0 (0x00d5e000)
    libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0x00f92000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00ea2000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x00c2e000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00ed9000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00350000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00110000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00136000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00446000)
    libicuuc.so.42 => /usr/lib/libicuuc.so.42 (0x00a38000)
    libicudata.so.42 => /usr/lib/libicudata.so.42 (0xb68c9000)
    /lib/ld-linux.so.2 (0x00333000)
 
# INSTALL LOCATION
ldd
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/gnulinux/plugins/librtt-marshalling-gnulinux.so.2.4.0
    linux-gate.so.1 =>  (0x002a8000)
    liborocos-rtt-gnulinux.so.2.4 =>
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/liborocos-rtt-gnulinux.so.2.4
(0x006af000)
    libboost_filesystem.so.1.40.0 => /usr/lib/libboost_filesystem.so.1.40.0
(0x00b62000)
    libboost_system.so.1.40.0 => /usr/lib/libboost_system.so.1.40.0
(0x00fce000)
    libboost_serialization.so.1.40.0 =>
/usr/lib/libboost_serialization.so.1.40.0 (0x00110000)
    libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0x00fd3000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00b92000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x005d8000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x0017c000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00d85000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00180000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x001a6000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00462000)
    libicuuc.so.42 => /usr/lib/libicuuc.so.42 (0x00e7b000)
    libicudata.so.42 => /usr/lib/libicudata.so.42 (0xb6927000)
    /lib/ld-linux.so.2 (0x0032c000)
 
~/tmp/dl
Opening
'/opt/sw/orocos/toolchain-next/build/rtt/../../install//lib/orocos/gnulinux/./plugins/librtt-marshalling-gnulinux.so'
open OK

and on Mac OS X the paths are now fully specified

# BUILD TREE
otool -L rtt/marsh/librtt-marshalling-macosx.dylib 
rtt/marsh/librtt-marshalling-macosx.dylib:
 
/opt/sw/orocos/toolchain-next/build/rtt/rtt/marsh/librtt-marshalling-macosx.2.4.0.dylib
(compatibility version 0.0.0, current version 2.4.0)
    /opt/sw/orocos/toolchain-next/build/rtt/rtt/liborocos-rtt-macosx.2.4.dylib
(compatibility version 2.4.0, current version 2.4.0)
    /opt/local/lib/libboost_filesystem-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /opt/local/lib/libboost_system-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /opt/local/lib/libboost_serialization-mt-d.dylib (compatibility version
0.0.0, current version 0.0.0)
    /opt/local/lib/libxerces-c.28.dylib (compatibility version 0.0.0, current
version 0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
125.2.10)
    /opt/local/lib/libboost_thread-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version
7.9.0)
 
# INSTALL LOCATION
otool -L
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/plugins/librtt-marshalling-macosx.2.4.0.dylib
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/plugins/librtt-marshalling-macosx.2.4.0.dylib:
 
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/plugins/librtt-marshalling-macosx.2.4.0.dylib
(compatibility version 0.0.0, current version 2.4.0)
 
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/liborocos-rtt-macosx.2.4.dylib
(compatibility version 2.4.0, current version 2.4.0)
    /opt/local/lib/libboost_filesystem-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /opt/local/lib/libboost_system-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /opt/local/lib/libboost_serialization-mt-d.dylib (compatibility version
0.0.0, current version 0.0.0)
    /opt/local/lib/libxerces-c.28.dylib (compatibility version 0.0.0, current
version 0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
125.2.10)
    /opt/local/lib/libboost_thread-mt-d.dylib (compatibility version 0.0.0,
current version 0.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version
7.9.0)
 
/tmp/dl
Opening
'/opt/sw/orocos/toolchain-next/build/rtt/../../install//lib/orocos/macosx/./plugins/librtt-marshalling-macosx.dylib'
open OK

NB with the patch the tests still don't pass, but now plugins and types are
loaded ...

(gdb) r
Starting program: /opt/sw/orocos/toolchain-next/build/rtt/tests/types_test 
Reading symbols for shared libraries .++++++++++++........................ done
0.000 [ Info   ][Logger] Successfully extracted environment variable
ORO_LOGLEVEL
0.000 [ Info   ][Logger]  OROCOS version '2.4.0' compiled with GCC 4.2.1.Orocos
Logging Activated at level : [ Debug  ] ( 6 ) 
0.000 [ Info   ][Logger] Reference System Time is : 1306674198664922000 ticks (
1.30667e+09 seconds ).
0.000 [ Info   ][Logger] Logging is relative to this time.
0.000 [ Debug  ][Logger] MainThread started.
0.000 [ Debug  ][Logger] Starting StartStopManager.
0.000 [ Info   ][Logger] RTT_COMPONENT_PATH was set to:
/opt/sw/orocos/toolchain-next/build/rtt/tests/../../../install/lib/lib .
Searching in:
/opt/sw/orocos/toolchain-next/build/rtt/tests/../../../install/lib/lib:/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos
0.000 [ Debug  ][Logger] PluginLoader Created
0.000 [ Info   ][Logger] plugin 'rtt' not loaded before.
0.001 [ Debug  ][Logger] No such directory:
"/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/./plugins"
0.001 [ Info   ][Logger] Loading plugin libraries from directory
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./plugins
...
Reading symbols for shared libraries .. done
0.489 [ Debug  ][Logger] Scanning file
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./plugins/librtt-marshalling-macosx.2.4.0.dylib
...Found library librtt-marshalling-macosx.2.4.0.dylib
0.489 [ Info   ][Logger] Loaded RTT Service 'marshalling' from
'rtt-marshalling-macosx.2.4.0'
0.489 [ Debug  ][Logger] Scanning file
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./plugins/librtt-marshalling-macosx.dylib
...Found library librtt-marshalling-macosx.dylib
0.489 [ Info   ][Logger] Loaded RTT Service 'marshalling' from
'rtt-marshalling-macosx'
Reading symbols for shared libraries . done
2.392 [ Debug  ][Logger] Scanning file
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./plugins/librtt-scripting-macosx.2.4.0.dylib
...Found library librtt-scripting-macosx.2.4.0.dylib
2.392 [ Info   ][Logger] Loaded RTT Service 'scripting' from
'rtt-scripting-macosx.2.4.0'
2.392 [ Debug  ][Logger] Scanning file
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./plugins/librtt-scripting-macosx.dylib
...Found library librtt-scripting-macosx.dylib
2.392 [ Info   ][Logger] Loaded RTT Service 'scripting' from
'rtt-scripting-macosx'
2.392 [ Info   ][Logger] typekit 'rtt' not loaded before.
2.392 [ Debug  ][Logger] No such directory:
"/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/./types"
2.392 [ Info   ][Logger] Loading typekit libraries from directory
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./types
...
Reading symbols for shared libraries ....... done
3.862 [ Debug  ][Logger] Scanning file
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./types/librtt-transport-corba-macosx.2.4.0.dylib
...Found library librtt-transport-corba-macosx.2.4.0.dylib
0.000 [ Info   ][Logger] Successfully extracted environment variable
ORO_LOGLEVEL
0.000 [ Info   ][Logger]  OROCOS version '2.4.0' compiled with GCC 4.2.1.Orocos
Logging Activated at level : [ Debug  ] ( 6 ) 
0.000 [ Info   ][Logger] Reference System Time is : 1306674202527159000 ticks (
1.30667e+09 seconds ).
0.000 [ Info   ][Logger] Logging is relative to this time.
0.000 [ Info   ][TypekitRepository::Import] Loading Transport
CORBA://rtt-types.
3.862 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'rtt-corba-types' from
'rtt-transport-corba-macosx.2.4.0'
3.863 [ Debug  ][Logger] Scanning file
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./types/librtt-transport-corba-macosx.dylib
...Found library librtt-transport-corba-macosx.dylib
0.000 [ Debug  ][TypekitRepository::Import] Transport CORBA://rtt-types already
loaded by plugin 'rtt-corba-types': keeping old instance.
3.863 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'rtt-corba-types' from
'rtt-transport-corba-macosx'
Reading symbols for shared libraries . done
5.078 [ Debug  ][Logger] Scanning file
/opt/sw/orocos/toolchain-next/build/rtt/../../install/lib/orocos/macosx/./types/librtt-typekit-macosx.2.4.0.dylib
...Found library librtt-typekit-macosx.2.4.0.dylib
1.216 [ Info   ][TypekitRepository::Import] Loading Typekit rtt-types.