On 01/06/2015 02:47 PM, Williams Jr., Ernest L. wrote:
Let us say you do the compiling in machine A.
Can you “remote execute” the generated a.out in machine B?
========= ELW ===============
The answer is no.
This is because machine B is a powerPC and machine A is an INTEL x86 CPU.
Again, I need a cross compiler.
========================================
Right, you are cross compiling on the host (or you would simply build
directly on the target). How do you get exectuables from host to
target? One way someone could do such a thing (maybe not your way?) is
to ssh:
--8<------
!/bin/sh
scp a.out target:
ssh target a.out
--8<------
What Albert suggested was you call this script above 'blaunch', and it's
the way some folks like to configure on Blue Gene or one of the old ASCI
machines (I forget which color...)
now, if executing on the target means "i have to burn an image to flash
and boot the board", well, it gets more difficult.
==rob
If so, let us say it is called “Blaunch”.
You can try these steps in a fresh hdf5 source directory.
1. cp configure Bconfigure # just to keep configure original in case
2. env RUNSERIAL=“Blaunch” bin/yodconfigure Bconfigure
3. env RUNSERIAL=“Blaunch” Bconfigure
4. env RUNSERIAL=“Blaunch” gmake # you can use make if it is gmake compatible
Let me know if they work for you.
-Albert Cheng
THG staff
On Jan 6, 2015, at 12:41 PM, Ernest L Williams
<[email protected]<mailto:[email protected]>> wrote:
On 01/06/2015 09:28 AM, Albert Cheng wrote:
Hi Ernest,
Let me see if I understand your need correctly. You would like to:
configure and compile the HDF5 library in machine A but the binary
generated does not run in machine A but runs in platform B.
Is that right?
That is correct but there is another caveat.
Machine A and machine B are different architectures.
If we were talking about java code then I would not have an issue.
However, we are talking C-code.
Machine A for example is INTEL x86
Machine B is PowerPC
I need to perform a cross compile.
I don't have a problem cross compiling the SZIP package.
However, I do have the problem compiling the HDF5 package.
Since, your group use the GNU autotools for building packages and support for
cross compiling should be achievable. If the hdf5 code has been written with
portability in mind, this would make supporting cross compiling easier as well.
Do you have a means to launch binary generated in machine A to run in platform
B? E.g.,
machine A $ Bcc program.c -o a.out
machine A $ Blaunch ./a.out
and Blaunch passes back the exit code of ./a.out run in platform B.
If so, we already have a means to do that for HDF5 library, using $RUNSERIAL
and yodconfigure.
This is created to handle the case of building and running HDF5 software in the
compute clusters
environments in which binary are generated in a frontend machine and executed
in the backend
compute nodes. You can see details of it in release_docs/INSTALL_parallel,
section
2.4.1 Building serial HDF5 for Red Storm
For my particular application; I am not using compute clusters.
Cheers,
Ernest
Try it out to see if it meets your need.
-Albert Cheng
THG staff
On Jan 5, 2015, at 12:41 PM, Ernest L. Williams Jr.
<[email protected]<mailto:[email protected]>> wrote:
On 01/05/2015 10:29 AM, Elena Pourmal wrote:
Hi Rob,
On Jan 5, 2015, at 9:10 AM, Rob Latham
<[email protected]><mailto:[email protected]> wrote:
On 01/01/2015 10:52 PM, Ernest L Williams wrote:
Hi
I am trying to cross-compile hdf5 for a different architecture:
I get the following error in the configuration stage:
=======================================
configure:23533: error: cannot run test program while cross compiling
========================================
HDF5 uses AC_TRY_RUN in way too many places. It makes cross compiling a
gigantic pain.
Workaround: set a pile of environment variables. Most of the tests are
obvious: checking for example if you are not running on an HP-UX machine with a
buggy compiler from 1998 (I think I have exaggerated that slightly... but only
slightly)
You are not exaggerating! Our configure needs a major cleanup!
Fortunately, they do not seem to be adding any *new* instances of AC_TRY_RUN,
so once you set up all the needed environment variables, you'll be set for the
next several release cycles.
I hope other HDF folks will chime in if I am wrong, but the major problem with
cross-compiling is h5detect. Configure runs h5detect to generate H5Tinit.c
which is platform specific. You may get the wrong H5Tinit.c if h5detect doesn’t
run on the right platform (architecture).
The other problem is "H5lib_settings.c"
If these files are really needed, they could be generated with autotools and
PERL.
Cheers,
Ernest
Elena
To get you started, here's a shell script (attached) I use with lots of the
necessary environment variables set. Richard Hedges got me most of the way a
few years back (in the 1.6 days), and so I pay it forward to you. I did this
for Blue Gene, so usual caveats apply: I have no idea what the right values
should be for your environment.
Oh, note the one odd step: you have to make one c file in normal mode, then
re-configure everything for cross compiling.
==rob
--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA
<bgq-hdf5build18.sh>_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]<mailto:[email protected]>
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]<mailto:[email protected]>
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]<mailto:[email protected]>
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]<mailto:[email protected]>
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5