From: Maynard J. <may...@us...> - 2008-06-27 19:21:38
|
Maynard Johnson wrote: > John Levon wrote: > >> On Thu, Jun 26, 2008 at 10:04:09AM -0400, Donak, John wrote: >> >> >>> I am unable to cross-compile RC2. >>> >> Yuck, indeed. >> >> >>> ./bfddefines bfddefines > bfdheader.h >>> /bin/sh: ./bfddefines: cannot execute binary file >>> >> Maynard, can we revisit the need for this? >> > The bfdheader.h has certain BFD-related constants (bfd target name, bfd arch, > etc.). This header file is generated at compile time by the bfddefines program > by obtaining a bfd object for the bfddefines binary and then invoking various > bfd functions. I can easily move these BFD-related constants into the agent > library and calculate them at runtime (during op_open_agent); but IIRC, the > reason we did it at compile time was because we didn't want the agent library to > have to depend on the existence of the bfd library on the target machine. Kind > of stuck between a rock and a hard place on this one. > Thinking on this some more . . . A few options come to mind. Two options involve moving the code that sets up the BFD-related constants from bfddefines to libopagent, converting them to global variables. These two options are: Option #1. Dynamically link libbfd.so when building libopagent.so. Pros: smaller footprint. Cons: libbfd is required on target machine. We could document this restriction in the manual where we describe the JIT support -- maybe in the installation requirements section, too. Option #2. Statically link libbfd.a when building libopagent.so. Pros: usable on systems that do not have libbfd. Cons: bigger footprint. A third option (which I don't favor) would be to provide a configure option that bypasses building libopagent (and, of course, would preclude building agent libraries). The result being that profiling of JITed code would not be possible. If this was just an embedded issue, this option might not be so bad, since it's my understanding, JIT virtual machines are not that common on embedded systems. But the problem John Donak is running into is really more the general problem of cross-compiling OProfile -- where the target need not be an embedded system. Comments anyone? Alternative suggestions? Thanks. -Maynard [snip] > Regards, > -Maynard > >> regards >> john >> > > |