Reply To: unable to propagate location of libraries to scons for Rosetta 3.1 [FIXED…SORT OF…]

Member Site Forums Rosetta 3 Rosetta 3 – Build/Install unable to propagate location of libraries to scons for Rosetta 3.1 [FIXED…SORT OF…] Reply To: unable to propagate location of libraries to scons for Rosetta 3.1 [FIXED…SORT OF…]

#4880
Anonymous

    Hi smg3d,

    If I understand your problem correctly, your compilation environment requires g++ to be dynamically linked against libmpfr.so.1 which is located in /software/mpfr-2.4.1_gcc/lib. Since this linking error is a problem with how g++ is linking and not how Rosetta is linking, changing the library_path in scons won’t help because that will only be used when linking Rosetta!

    I suspect that somehow the scons script is running under a process that is not owned by you, where the environment is not set up correctly. To test this, please try comparing the environment you get when you execute the command from the command line with the one that scons is run under. Execute the following on the command line and report back what you see:


    export LD_LIBRARY_PATH_BACKUP=$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:foobar
    whoami
    printenv

    Now in the file SConscript located in the base mini directory, locate the line


    for kind in build.options.cat:

    and following that line insert the following debug statements:


    print "### DEBUG ###"
    import os
    print "whoami: %s " % os.popen('whoami').read()
    print "os.eviron: %s " % os.environ
    print "### END DEBUG ###"

    now execute


    ./scons.py

    and it should print some debug information at the top. Please report report that as well.

    Don’t forget to reset the LD_LIBRARY_PATH.

    If it looks like that is the problem. There are a couple of things to try.

    One: Create a wrapper script for g++ that takes adds the correct paths to the LD_LIBRARY_PATH, echos a debug message and then calls g++. If you call this script “g++” and put it somewhere on the path before the standard g++, it will get called each time g++ is called. The debug message should help you verify that it is actually getting called.

    Two: I’ve attached a script called scons_to_makefile.pl.txt (change the extension and execution permissions) that scrapes the scons compilation commands and puts them in a makefile. You’ll want to run this on the output of a full rebuild of Rosetta on a system where it builds correctly. You can then try the running the make script and see if g++ is liking correctly. If that doesn’t immediately work, you might have luck just trying to execute all the statements somehow–ie pasting them into a terminal.

    Please write back if this doesn’t give you enough help to get it built!

    -matt