On Jan 26, 2010, at 8:52 PM, John Rose wrote:

> this is what happens in the end

Oops...  That was because I was doing incremental rebuilds.  Actually, those 
makefile changes seem to do the trick:

> Here are my makefile changes so far (relative to a $davinci installation).  
> It is pretty crude and needs cleanup as well as correction.
>   http://homepage.mac.com/rose00/work/osxpaths.zip

With a real build, the linker options in the makefile changes do seem to cover 
the needed inter-library references without embedding build directory pathnames:

$ DYLD_PRINT_LIBRARIES= build/bsd-i586/j2re-image/bin/java -Xinternalversion
dyld: loaded: 
/Users/jrose/Projects/davinci/sources/build/bsd-i586/j2re-image/bin/java
dyld: loaded: /usr/lib/libSystem.B.dylib
dyld: loaded: /usr/lib/system/libmathCommon.A.dylib
dyld: loaded: 
/Users/jrose/Projects/davinci/sources/build/bsd-i586/j2re-image/lib/i386/server/libjvm.dylib
dyld: loaded: /usr/lib/libstdc++.6.dylib
dyld: loaded: 
/Users/jrose/Projects/davinci/sources/build/bsd-i586/j2re-image/lib/i386/libverify.dylib
dyld: loaded: 
/Users/jrose/Projects/davinci/sources/build/bsd-i586/j2re-image/lib/i386/libjava.dylib
OpenJDK Server VM (17.0-b07) for bsd-x86 JRE 
(1.7.0-internal-jrose_2010_01_26_16_15-b00), built on Jan 26 2010 16:26:30 by 
"jrose" with gcc 4.0.1 (Apple Inc. build 5493)

$ otool -L 
build/bsd-i586/j2re-image/{bin/java,lib/i386/{libjava.dylib,server/libjvm.dylib}}
build/bsd-i586/j2re-image/bin/java:
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 
103.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 125.0.0)
build/bsd-i586/j2re-image/lib/i386/libjava.dylib:
        @rpath/libjava.dylib (compatibility version 0.0.0, current version 
0.0.0)
        @rpath/libjvm.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libverify.dylib (compatibility version 0.0.0, current version 
0.0.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 
103.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 125.0.0)
build/bsd-i586/j2re-image/lib/i386/server/libjvm.dylib:
        @rpath/libjvm.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 125.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current 
version 7.9.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 
103.0.0)

There may be too many linker options:  too many -rpath options (two per link 
line) and an excess of -install_name options (they were nowhere, now they are 
everywhere).

-- John


Reply via email to