[Scons-users] OSX Library link names include undesired prefix

edA-qa mort-ora-y eda-qa at disemia.com
Mon Aug 7 13:16:37 EDT 2017


I just did it quickly. My real setup has SConscript in the `src`
subdirectory.


On 07/08/17 18:16, Bill Deegan wrote:
> Generally the SConscript would be located in the directory with the
> source and the variant dir wouldn't be the top level direcotry.
>
> In essence in your example the current dir is variant dir'd to build.
> This can lead to some nastiness where on subsequent builds the variant
> dir build can get replicated in the build dir.
>
> I'll try to take a look at this later today.
> For sure the _RPATH which is what creates the rpath constructs on the
> command line is not propagating properly (at least on OSX)
>
> -Bill
>
> On Mon, Aug 7, 2017 at 9:01 AM, edA-qa mort-ora-y <eda-qa at disemia.com
> <mailto:eda-qa at disemia.com>> wrote:
>
>     Also note that the OSX command line is not including the `-rpath`
>     setting. It should.
>
>
>     On 07/08/17 17:57, edA-qa mort-ora-y wrote:
>>     The attached ZIP file contains a minimal project that shows the
>>     problem. Just type `scons` to build. The output is
>>     `build/dohello` with library `hello`
>>
>>     On Linux this works as intended.
>>
>>     On OSX this fails. Be sure to try and run `build/dohello` from
>>     somewhere other than the directory where `build` resides (since
>>     it will work there).   Run `otool -L build/dohello` to see that
>>     it's referencing `build/libhello.dylib` instead of the desired
>>     `libhello.dylib`
>>
>>
>>     On 07/08/17 14:36, Bill Deegan wrote:
>>>     Can you make a simple test case which demonstrates the issue?
>>>
>>>
>>>     On Sun, Aug 6, 2017 at 11:49 PM, edA-qa mort-ora-y
>>>     <eda-qa at disemia.com <mailto:eda-qa at disemia.com>> wrote:
>>>
>>>         g++ -o build/libleaf_util.dylib -dynamiclib
>>>         build/util/dump_base.os build/util/file.os
>>>         build/util/number.os build/util/object_holder.os
>>>         build/util/unicode.os -Lbuild/build/lib -Lsrc/build/lib
>>>         -L/usr/local/Cellar/boost/1.63.0/lib -Lbuild -Lsrc
>>>         -L/Users/edA-qa/src-leaf/llvm/install/lib
>>>         -L/usr/local/Cellar/gmp/6.1.2/lib
>>>         -lboost_unit_test_framework -lboost_program_options
>>>         -lboost_regex -lLLVM -lgmp -lgmpxx -lboost_filesystem
>>>         -lboost_system
>>>
>>>         g++ -o build/leaf build/bin/leaf.o build/bin/test_expecter.o
>>>         -Lbuild/build/lib -Lsrc/build/lib
>>>         -L/usr/local/Cellar/boost/1.63.0/lib -Lbuild -Lsrc
>>>         -L/Users/edA-qa/src-leaf/llvm/install/lib
>>>         -L/usr/local/Cellar/gmp/6.1.2/lib
>>>         -lboost_unit_test_framework -lboost_program_options
>>>         -lboost_regex -lLLVM -lgmp -lgmpxx -lboost_filesystem
>>>         -lboost_system -lleaf_lang -lleaf_parser -lleaf_util
>>>         -lleaf_ir -lleaf_ir_llvm -lleaf_runner
>>>
>>>
>>>
>>>
>>>         On 07/08/17 00:05, Bill Deegan wrote:
>>>>         Can you post a gist of the build log?
>>>>         Specifically the link line for the shared library and for
>>>>         the program?
>>>>
>>>>         On Sun, Aug 6, 2017 at 12:55 PM, edA-qa mort-ora-y
>>>>         <eda-qa at disemia.com <mailto:eda-qa at disemia.com>> wrote:
>>>>
>>>>             After having getting my shared libraries working on
>>>>             Linux I'm trying now
>>>>             on OSX. The approach provided before does not do the
>>>>             correct thing on
>>>>             OSX. For example, instead of linking to
>>>>             `libleaf_util.dylib`, it links
>>>>             to `build/libleaf_util.dylib`.
>>>>
>>>>             Library created as:
>>>>
>>>>                 lib_util_name = 'leaf_util'
>>>>                 lib_util = env.SharedLibrary( lib_util_name, [
>>>>                     'util/dump_base.cpp',
>>>>                     'util/file.cpp',
>>>>                     'util/number.cpp',
>>>>                     'util/object_holder.cpp',
>>>>                     'util/unicode.cpp',
>>>>                     ] )
>>>>
>>>>             Then used as:
>>>>
>>>>             leaf = env.Program( 'leaf', [
>>>>                 'bin/leaf.cpp',
>>>>                 'bin/test_expecter.cpp',
>>>>                 ],
>>>>                 LIBS = env['LIBS'] + [ lib_lang_name, lib_parser_name,
>>>>             lib_util_name, lib_ir_name, lib_ir_llvm_name,
>>>>             lib_runner_name ],
>>>>                 )
>>>>
>>>>
>>>>             Running `otool -L build/leaf` gives me:
>>>>
>>>>                 build/libleaf_util.dylib (compatibility version
>>>>             0.0.0, current
>>>>             version 0.0.0)
>>>>
>>>>
>>>>             Using the `otool -l` option also doesn't list any
>>>>             RPATH, though I have
>>>>             this configured:
>>>>
>>>>                 env['RPATH'] = Literal('\\$$ORIGIN')
>>>>
>>>>
>>>>             Full SConscript file:
>>>>             https://gist.github.com/mortoray/0eff2a9a066ad48a6aedab8766503865
>>>>             <https://gist.github.com/mortoray/0eff2a9a066ad48a6aedab8766503865>
>>>>             Full wrapping SConstruct:
>>>>             https://gist.github.com/mortoray/0c7485fa04afb8f4db099132e7b1e723
>>>>             <https://gist.github.com/mortoray/0c7485fa04afb8f4db099132e7b1e723>
>>>>
>>>>             --
>>>>             edA-qa mort-ora-y
>>>>             http://mortoray.com/
>>>>
>>>>             Leaf - the language we always wanted
>>>>             http://leaflang.org/
>>>>
>>>>
>>>>             _______________________________________________
>>>>             Scons-users mailing list
>>>>             Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>>             https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>             <https://pairlist4.pair.net/mailman/listinfo/scons-users>
>>>>
>>>>
>>>>
>>>>
>>>>         _______________________________________________
>>>>         Scons-users mailing list
>>>>         Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>>         https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>         <https://pairlist4.pair.net/mailman/listinfo/scons-users>
>>>
>>>         -- 
>>>         edA-qa mort-ora-y 
>>>         http://mortoray.com/
>>>
>>>         Leaf - the language we always wanted
>>>         http://leaflang.org/
>>>
>>>         _______________________________________________ Scons-users
>>>         mailing list Scons-users at scons.org
>>>         <mailto:Scons-users at scons.org>
>>>         https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>         <https://pairlist4.pair.net/mailman/listinfo/scons-users> 
>>>
>>>     _______________________________________________
>>>     Scons-users mailing list
>>>     Scons-users at scons.org <mailto:Scons-users at scons.org>
>>>     https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>     <https://pairlist4.pair.net/mailman/listinfo/scons-users>
>>
>>     -- 
>>     edA-qa mort-ora-y 
>>     http://mortoray.com/
>>
>>     Leaf - the language we always wanted
>>     http://leaflang.org/
>>
>>     _______________________________________________
>>     Scons-users mailing list
>>     Scons-users at scons.org <mailto:Scons-users at scons.org>
>>     https://pairlist4.pair.net/mailman/listinfo/scons-users
>>     <https://pairlist4.pair.net/mailman/listinfo/scons-users>
>
>     -- 
>     edA-qa mort-ora-y 
>     http://mortoray.com/
>
>     Leaf - the language we always wanted
>     http://leaflang.org/
>
>     _______________________________________________ Scons-users
>     mailing list Scons-users at scons.org <mailto:Scons-users at scons.org>
>     https://pairlist4.pair.net/mailman/listinfo/scons-users
>     <https://pairlist4.pair.net/mailman/listinfo/scons-users> 
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users

-- 
edA-qa mort-ora-y 
http://mortoray.com/

Leaf - the language we always wanted
http://leaflang.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20170807/d3da12a4/attachment-0001.html>


More information about the Scons-users mailing list