<div dir="ltr"><div>Yeah, with static linking it wants everything to be available as a .a archive. It's a pain, since if you're static linking, everything needs to be static, but if you're using any dynamic linking, it defaults to using the .so and it's difficult to override.<br>
<br></div>- Tim<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 29, 2014 at 10:11 AM, Justin M Wozniak <span dir="ltr"><<a href="mailto:wozniak@mcs.anl.gov" target="_blank">wozniak@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<br>
I just fixed the perms on libtclturbine.a<br>
<br>
For Tcl, there is currently no static archive in that directory- I
will try to make one. <br><div><div class="h5">
<br>
<div>On 05/29/2014 09:59 AM, Ketan
Maheshwari wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Thanks! Trying to link with the following:
<div><br>
</div>
<div>
<div>/soft/compilers/wrappers/xl/mpixlcxx -o static_leaf_main
static_leaf_main.o
/home/ketan/rosetta/flexpep_docking/leaf_main.a \</div>
<div> -pg -qsmp=omp -g -O0 -qarch=qp -qtune=qp -qhot
-Wl,--allow-multiple-definition \</div>
<div> /projects/ExM/ketan/openmp-gnu-july16-mini/build/src/debug/linux/2.6/64/ppc64/xlc/static-mpi/apps/public/flexpep_docking/FlexPepDocking.o
\</div>
<div> -L$TCL_HOME/lib -L$TURBINE_HOME/lib
-L/projects/ExM/ketan/openmp-gnu-july16-mini/external/lib \</div>
<div> -L/projects/ExM/ketan/openmp-gnu-july16-mini/build/src/debug/linux/2.6/64/ppc64/xlc/static-mpi
\</div>
<div> -Lsrc
-L/projects/ExM/ketan/openmp-gnu-july16-mini/build/external/debug/linux/2.6/64/ppc64/xlc/static-mpi
\</div>
<div> -Lexternal -L/home/vsachde/ROSETTA/zlib/lib -ldevel
-lprotocols.7 -lprotocols.6 -lprotocols_f.5 -lprotocols_e.5
\</div>
<div> -lprotocols_d.5 -lprotocols_c.5 -lprotocols_b.5
-lprotocols_a.5 -lprotocols_h.4 -lprotocols_g.4
-lprotocols_f.4 \</div>
<div> -lprotocols_e.4 -lprotocols_d.4 -lprotocols_c.4
-lprotocols_b.4 -lprotocols_a.4 -lprotocols.3
-lprotocols_b.2 \</div>
<div> -lprotocols_a.2 -lprotocols.1 -lcore.5 -lcore.4 -lcore.3
-lcore.2 -lcore.1 -lbasic -lnumeric -lutility -lObjexxFCL \</div>
<div> -lz -lcppdb -lsqlite3 -lz -ltclstub8.5 -ltcl8.5
-ltclturbine -ltclturbinestatic -ltclturbinestaticres</div>
</div>
<div><br>
</div>
<div>Getting the error message:</div>
<div>
<div>/bgsys/drivers/ppcfloor/gnu-linux/powerpc64-bgq-linux/bin/ld:
cannot find -ltcl8.5</div>
<div>/bgsys/drivers/ppcfloor/gnu-linux/powerpc64-bgq-linux/bin/ld:
cannot find -ltclturbine</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>$TCL_HOME is /home/wozniak/Public/sfw/ppc64/tcl-8.5.12</div>
<div>$TURBINE_HOME is /home/wozniak/Public/sfw/ppc64/turbine/lib</div>
<div><br>
</div>
<div>and the libs that ld is complaining about does seem to be
available at the above locations. Any suggestions?</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Ketan</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Thu, May 29, 2014 at 9:09 AM, Tim
Armstrong <span dir="ltr"><<a href="mailto:tim.g.armstrong@gmail.com" target="_blank">tim.g.armstrong@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div dir="ltr">
<div><br>
</div>
Forgot to send this to the list.<br>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">
<div>
<div>On Thu, May 29, 2014 at 8:06 AM, Tim
Armstrong <span dir="ltr">
<<a href="mailto:tim.g.armstrong@gmail.com" target="_blank">tim.g.armstrong@gmail.com</a>></span>
wrote:<br>
</div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>
<div dir="ltr">
<div>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.<span><font color="#888888"><br>
<br>
</font></span></div>
<span><font color="#888888">- Tim<br>
</font></span></div>
</div>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">
<div>
<div>On Wed, May 28, 2014 at
9:40 AM, Tim Armstrong <span dir="ltr">
<<a href="mailto:tim.g.armstrong@gmail.com" target="_blank">tim.g.armstrong@gmail.com</a>></span>
wrote:<br>
</div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>
<div dir="ltr">
<div>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.<br>
<br>
</div>
<div>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:<br>
<br>
# Name and version of Tcl package<br>
pkg_name=flex_pep_docking_or_whatever<br>
pkg_version=0.0<br>
<br>
# C function names to initialise
Tcl modules<br>
# These follow the Tcl naming
convention, e.g., Userlib_Init<br>
# Use nm on your extension object
code to find this symbol<br>
lib_init=_Z24FlexPepDocking_wrap_InitP10Tcl_Interp<br>
<br>
# lib scripts are executed in
specified order, before
main_script and<br>
# after lib_inits<br>
lib_script=../flexpep_docking/user-code.tcl<br>
<br>
# headers for user Tcl code, e.g.
lib_init functions<br>
lib_include=../flexpep_docking/FlexPepDocking_wrap.h<br>
<br>
# main script (generated by STC).
<br>
# If provided, always runs this
main script. <br>
# Otherwise, the script file is
specified at run time as the <br>
# first command line argument
(like tclsh)<br>
main_script = stc_output_file.tcl<span><font color="#888888"><br>
<br>
</font></span></div>
<span><font color="#888888">
<div><br>
</div>
- Tim<br>
</font></span></div>
</div>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">
<div>
<div>On Wed, May 28,
2014 at 9:17 AM, Ketan
Maheshwari <span dir="ltr">
<<a href="mailto:ketan@mcs.anl.gov" target="_blank">ketan@mcs.anl.gov</a>></span>
wrote:<br>
</div>
</div>
<div>
<div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Thanks. One
more question:
<div><br>
</div>
<div>I am not sure where
should I provide the
application source file
in the manifest files? </div>
<div><br>
</div>
<div>Thanks,</div>
<div>Ketan</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">
<div>On Tue, May 27,
2014 at 2:14 PM, Tim
Armstrong <span dir="ltr"><<a href="mailto:tim.g.armstrong@gmail.com" target="_blank">tim.g.armstrong@gmail.com</a>></span>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">
<div>
<div>On Tue,
May 27, 2014
at 1:50 PM,
Ketan
Maheshwari <span dir="ltr"><<a href="mailto:ketan@mcs.anl.gov" target="_blank">ketan@mcs.anl.gov</a>></span>
wrote:<br>
</div>
<div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi,
<div><br>
</div>
<div>Trying to
get the
Rosetta
application
static build
for Turbine
using
mkstatic.tcl.</div>
<div><br>
</div>
<div>I am a
bit confused
about the
entries in the
manifest file:</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
</div>
</blockquote>
</div>
</div>
<div>
<div>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".<br>
</div>
</div>
<div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>2. The
lib_include
entry: does it
accept both
include dirs
and header
files?</div>
</div>
</blockquote>
</div>
<div>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.<br>
</div>
<div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div><br>
</div>
<div>
<div>3. From
the
documentation <a href="http://www.mcs.anl.gov/exm/local/guides/swift.html#mkstatic" target="_blank">http://www.mcs.anl.gov/exm/local/guides/swift.html#mkstatic</a>,
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?</div>
</div>
</div>
</blockquote>
</div>
<div>These let
you link in
entire library
directories.
<br>
<div><br>
--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.<br>
<br>
--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>.<br>
<br>
</div>
</div>
<div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div><br>
</div>
<div>Thanks,</div>
<div>Ketan</div>
</div>
<br>
_______________________________________________<br>
ExM-user
mailing list<br>
<a href="mailto:ExM-user@lists.mcs.anl.gov" target="_blank">ExM-user@lists.mcs.anl.gov</a><br>
<a href="https://lists.mcs.anl.gov/mailman/listinfo/exm-user" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/exm-user</a><br>
<br>
</blockquote>
</div>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
</div>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
ExM-user mailing list
<a href="mailto:ExM-user@lists.mcs.anl.gov" target="_blank">ExM-user@lists.mcs.anl.gov</a>
<a href="https://lists.mcs.anl.gov/mailman/listinfo/exm-user" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/exm-user</a>
</pre>
</blockquote>
<br>
</div></div><span class="HOEnZb"><font color="#888888"><pre cols="72">--
Justin M Wozniak
</pre>
</font></span></div>
</blockquote></div><br></div>