On Thu, Jul 30, 2009 at 6:12 AM, Aaron Turner<synfina...@gmail.com> wrote: > On Wed, Jul 29, 2009 at 2:25 AM, Chris Packham<judge.pack...@gmail.com> wrote: >> On Wed, Jul 29, 2009 at 6:33 PM, Aaron Turner<synfina...@gmail.com> wrote: >>> On Tue, Jul 28, 2009 at 11:06 PM, Chris Packham<judge.pack...@gmail.com> >>> wrote: >>>> Hi, >>>> >>>> Has anyone tried to cross compile tcpreplay? In my case I want to use >>>> it on an embedded target as part of a larger test setup. >>>> >>>> I keep running into ./configure problems with the libpcap detection >>>> [1] where it wants to run some test programs but can't run them on the >>>> host (because they're not for that architecture). Most other autotools >>>> based scripts figure this out print a warning and move on so I'm sure >>>> there is a way around it I'm just not sure what it is. >>>> >>>> I assume that because the detection stuff can't work I need to tell >>>> the configure script what version of libpcap I have. Again I've not >>>> had enough experience with autotools to know quite how to do this. >>>> >>>> Any guidance would be much appreciated. >>> >>> You're the first person to ask about this, so you're sorta on >>> uncharted territory. There are a number of tests which check your >>> compiler/architecture (big vs. little endian and strict vs. >>> non-strictly aligned architectures come to mind) which will cause >>> problems for you. Then there's a bunch of tests which check what >>> version of various libraries you have installed. >>> >>> This means if I skipped those tests you'd have to manually fix things >>> so you'd get binaries which worked. >>> >>> Honestly, I have no cross-compiling experience and not 100% sure of >>> how things work. What is your compile vs. target platform? How do >>> you normally handle the situation when autotools skips these tests? >> >> The target I'm building for is powerpc running linux building on an >> x86 linux host. I use buildroot (http://buildroot.net/) for >> configuring various packages applying patches etc. >> >> Most parts of a configure script still run in this setup (i.e. >> detecting header files and tools) just the bits that actually execute >> code that get skipped. I'm used to configure testing for a valid >> compiler by compiling a test program but when it figures out that its >> in a cross compilation situation it skips the part of the test that >> runs the program. >> >> In the case of tcpreplay the version of libpcap does need to be known >> (as a hack I could remove the test). I think by manipulating the >> autoconf cached variables configure could be tricked into not running >> the tests (it looks like buildroot does this for a number of other >> packages). >> >> I'll try some more tomorrow and post anything that looks promising. > > Yeah, you're going to have some issues. I assume your headers do the > right thing for byte-swapping, but you'll still need to make sure the > #define WORDS_BIGENDIAN is set too. > > PPC is strictly aligned I believe and so FORCE_ALIGN needs to be set too. > > I build small programs against libpcap and others to test certain > functionality... you'll have to set the defines appropriately I guess. > > Good luck! >
A bit of googling turned up some guideance on how to handle this [1]. Looks like there is an optional argument to AC_RUN_IFELSE that can be used for an action-if-cross-compiling. The cache manipulation trick is also mentioned. I'll post a patch shortly. [1] http://www.gnu.org/software/autoconf/manual/html_node/Runtime.html#Runtime ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Tcpreplay-users mailing list Tcpreplay-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tcpreplay-users Support Information: http://tcpreplay.synfin.net/trac/wiki/Support