[ExM Users] mkstatic questions
Justin M Wozniak
wozniak at mcs.anl.gov
Thu May 29 10:39:39 CDT 2014
Ok, try now with this new directory:
~wozniak/Public/sfw/ppc64/bgq-gcc/tcl-8.5.12
On 05/29/2014 10:11 AM, Justin M Wozniak wrote:
>
> I just fixed the perms on libtclturbine.a
>
> For Tcl, there is currently no static archive in that directory- I
> will try to make one.
>
> On 05/29/2014 09:59 AM, Ketan Maheshwari wrote:
>> Thanks! Trying to link with the following:
>>
>> /soft/compilers/wrappers/xl/mpixlcxx -o static_leaf_main
>> static_leaf_main.o /home/ketan/rosetta/flexpep_docking/leaf_main.a \
>> -pg -qsmp=omp -g -O0 -qarch=qp -qtune=qp -qhot
>> -Wl,--allow-multiple-definition \
>> /projects/ExM/ketan/openmp-gnu-july16-mini/build/src/debug/linux/2.6/64/ppc64/xlc/static-mpi/apps/public/flexpep_docking/FlexPepDocking.o
>> \
>> -L$TCL_HOME/lib -L$TURBINE_HOME/lib
>> -L/projects/ExM/ketan/openmp-gnu-july16-mini/external/lib \
>> -L/projects/ExM/ketan/openmp-gnu-july16-mini/build/src/debug/linux/2.6/64/ppc64/xlc/static-mpi
>> \
>> -Lsrc
>> -L/projects/ExM/ketan/openmp-gnu-july16-mini/build/external/debug/linux/2.6/64/ppc64/xlc/static-mpi
>> \
>> -Lexternal -L/home/vsachde/ROSETTA/zlib/lib -ldevel -lprotocols.7
>> -lprotocols.6 -lprotocols_f.5 -lprotocols_e.5 \
>> -lprotocols_d.5 -lprotocols_c.5 -lprotocols_b.5 -lprotocols_a.5
>> -lprotocols_h.4 -lprotocols_g.4 -lprotocols_f.4 \
>> -lprotocols_e.4 -lprotocols_d.4 -lprotocols_c.4 -lprotocols_b.4
>> -lprotocols_a.4 -lprotocols.3 -lprotocols_b.2 \
>> -lprotocols_a.2 -lprotocols.1 -lcore.5 -lcore.4 -lcore.3 -lcore.2
>> -lcore.1 -lbasic -lnumeric -lutility -lObjexxFCL \
>> -lz -lcppdb -lsqlite3 -lz -ltclstub8.5 -ltcl8.5 -ltclturbine
>> -ltclturbinestatic -ltclturbinestaticres
>>
>> Getting the error message:
>> /bgsys/drivers/ppcfloor/gnu-linux/powerpc64-bgq-linux/bin/ld: cannot
>> find -ltcl8.5
>> /bgsys/drivers/ppcfloor/gnu-linux/powerpc64-bgq-linux/bin/ld: cannot
>> find -ltclturbine
>>
>>
>> $TCL_HOME is /home/wozniak/Public/sfw/ppc64/tcl-8.5.12
>> $TURBINE_HOME is /home/wozniak/Public/sfw/ppc64/turbine/lib
>>
>> and the libs that ld is complaining about does seem to be available
>> at the above locations. Any suggestions?
>>
>> Thanks,
>> Ketan
>>
>>
>> On Thu, May 29, 2014 at 9:09 AM, Tim Armstrong
>> <tim.g.armstrong at gmail.com <mailto:tim.g.armstrong at gmail.com>> wrote:
>>
>>
>> Forgot to send this to the list.
>>
>>
>> On Thu, May 29, 2014 at 8:06 AM, Tim Armstrong
>> <tim.g.armstrong at gmail.com <mailto:tim.g.armstrong at gmail.com>> wrote:
>>
>> Another thing I should mention is that you can source the
>> turbine-build-config,sh script under turbine to get many of
>> the variables you need e.g. install dirs, tcl version, linker
>> flags.
>>
>> - Tim
>>
>>
>> On Wed, May 28, 2014 at 9:40 AM, Tim Armstrong
>> <tim.g.armstrong at gmail.com
>> <mailto:tim.g.armstrong at gmail.com>> wrote:
>>
>> main_script lets you specify the Tcl script that's run on
>> application startup. To run a compiled Swift program,
>> you set main_script to point to the Tcl output file.
>> mkstatic.tcl doesn't need Swift source files.
>>
>> Note that you only need to fill in the fields in the
>> "Manifest info" section to generate the C main program.
>> You probably only need the follow to generate the C code:
>>
>> # Name and version of Tcl package
>> pkg_name=flex_pep_docking_or_whatever
>> pkg_version=0.0
>>
>> # C function names to initialise Tcl modules
>> # These follow the Tcl naming convention, e.g., Userlib_Init
>> # Use nm on your extension object code to find this symbol
>> lib_init=_Z24FlexPepDocking_wrap_InitP10Tcl_Interp
>>
>> # lib scripts are executed in specified order, before
>> main_script and
>> # after lib_inits
>> lib_script=../flexpep_docking/user-code.tcl
>>
>> # headers for user Tcl code, e.g. lib_init functions
>> lib_include=../flexpep_docking/FlexPepDocking_wrap.h
>>
>> # main script (generated by STC).
>> # If provided, always runs this main script.
>> # Otherwise, the script file is specified at run time as the
>> # first command line argument (like tclsh)
>> main_script = stc_output_file.tcl
>>
>>
>> - Tim
>>
>>
>> On Wed, May 28, 2014 at 9:17 AM, Ketan Maheshwari
>> <ketan at mcs.anl.gov <mailto:ketan at mcs.anl.gov>> wrote:
>>
>> Thanks. One more question:
>>
>> I am not sure where should I provide the application
>> source file in the manifest files?
>>
>> Thanks,
>> Ketan
>>
>>
>> On Tue, May 27, 2014 at 2:14 PM, Tim Armstrong
>> <tim.g.armstrong at gmail.com
>> <mailto:tim.g.armstrong at gmail.com>> wrote:
>>
>>
>>
>>
>> On Tue, May 27, 2014 at 1:50 PM, Ketan Maheshwari
>> <ketan at mcs.anl.gov <mailto:ketan at mcs.anl.gov>> wrote:
>>
>> Hi,
>>
>> Trying to get the Rosetta application static
>> build for Turbine using mkstatic.tcl.
>>
>> I am a bit confused about the entries in the
>> manifest file:
>>
>> 1. The purpose of lib_script option is not
>> very clear to me. What scripts are supposed
>> to go in there? The template lists
>> user_stuff1.tcl, user_stuff2.tcl.
>>
>> Any Tcl scripts that you want to run when the
>> library loads. E.g. if you set pkg_name=the_pkg
>> and lib_script=the_pkg.tcl, then pkg.tcl will be
>> included in the executable. It's run when the Tcl
>> user script does a "package require the_pkg".
>>
>> 2. The lib_include entry: does it accept both
>> include dirs and header files?
>>
>> It has to be a header file - it will just add a
>> #include at the top of the C main file. You have
>> to provide any include directory flags to the C
>> compiler later when you compile it.
>>
>>
>> 3. From the documentation
>> http://www.mcs.anl.gov/exm/local/guides/swift.html#mkstatic,
>> I see that there are options at commandline
>> such as --include-lib and
>> --include-system-lib. Are these in lieu of
>> the ones in the manifest?
>>
>> These let you link in entire library directories.
>>
>> --include-system-lib is for the Tcl standard
>> library directory that is always loaded on
>> startup - it links the files into the executable
>> so that it doesn't need to load them off disk.
>> It's mainly for performance, but it can help
>> build entirely self-contained executables.
>>
>> --include-lib lets you link in an external
>> library, e.g. a directory of Tcl files, or a
>> directory with a pkgIndex.tcl file. These are
>> set up to to be loaded on demand with "package
>> require". --include-lib <dir> is essentially an
>> alternative to setting TURBINE_USER_LIB=<dir>.
>>
>>
>> Thanks,
>> Ketan
>>
>> _______________________________________________
>> ExM-user mailing list
>> ExM-user at lists.mcs.anl.gov
>> <mailto:ExM-user at lists.mcs.anl.gov>
>> https://lists.mcs.anl.gov/mailman/listinfo/exm-user
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> ExM-user mailing list
>> ExM-user at lists.mcs.anl.gov
>> https://lists.mcs.anl.gov/mailman/listinfo/exm-user
>
> --
> Justin M Wozniak
>
>
> _______________________________________________
> ExM-user mailing list
> ExM-user at lists.mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/exm-user
--
Justin M Wozniak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/exm-user/attachments/20140529/78e81127/attachment-0001.html>
More information about the ExM-user
mailing list