Embedded C/C++

Moderators: Lundin
Number of threads: 199
Number of posts: 374

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
Snort cross-compiling Posted by topf23 on 27 Apr 2009 at 3:14 AM
Hey experts,

i'm trying to cross-compile snort for a arm-linux architecture.
i already downloaded a toolchain and tested it with a smal hello-world.c .. the compiling successed and it worked on the arm-arch.

so cross-compiling snort is a way hard, of course.

i tried something stupid, like change the Makefile-entries from gcc to arm-linux-gcc and stuff .. and of course i didnt worked.

so i tried to use the configure script and configure it with the --host-command.
>> ./configure --prefix/.. --host=arm-linux

this works for using the right compiler.

configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for arm-linux-strip... arm-linux-strip
checking whether to enable maintainer-specific portions of Makefiles... no
checking for style of include used by make... GNU
checking for arm-linux-gcc... arm-linux-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
.
.

and so on.

but if the configure-script checks for the libs and includes of libpcap and pcrep it fails:

checking for sizeof(unsigned long)... configure: error: cannot run test program while cross compiling
See `config.log' for more details.
32 bits
checking for __FUNCTION__... yes
checking for floor in -lm... yes
checking for pcap_datalink in -lpcap... no
checking pfring.h usability... no
checking pfring.h presence... no
checking for pfring.h... no
checking for pfring_open in -lpfring... no
checking for pfring_open in -lpcap... no

ERROR! Libpcap library/headers (libpcap.a (or .so)/pcap.h)
not found, go get it from http://www.tcpdump.org
or use the --with-libpcap-* options, if you have it installed
in unusual place. Also check if your libpcap depends on another
shared library that may be installed in an unusual place
checking for libpcap version >= 0.9... configure: error: cannot run test program while cross compiling
See `config.log' for more details.

checking pcre.h usability... yes
checking pcre.h presence... yes
checking for pcre.h... yes
checking for pcre_compile in -lpcre... no

ERROR! Libpcre library not found.
Get it from http://www.pcre.org

no

ERROR! Libpcre library version >= 6.0 not found.
Get it from http://www.pcre.org

checking for dlsym in -ldl... yes
checking for u_int8_t... yes
checking for u_int16_t... yes
.
.

the configure-statement was the following:
sudo ./configure --prefix=/tmp/snort/ --host=arm-linux --with-libpcap-libraries=/usr/local/lib/ --with-libpcre-includes=/usr/include/ --with-libpcre-libraries=/usr/lib/ --with-libpcap-includes=/usr/local/include/

i changed some entries in the configure-script to dont exit at this errors.
doing this it will finish. after that i tried to "make".

and of course it doesnt worked.
..
include/ -I/usr/include/ -g -O2 -Wall -DDYNAMIC_PLUGIN -DDETECTION_OPTION_TREE -c ipobj.c
/tmp/ccxGleZM.s: Assembler messages:
/tmp/ccxGleZM.s:2054: Error: bad instruction `rorw $8,r3'
/tmp/ccxGleZM.s:2054: Error: bad instruction `rorl $16,r3'
/tmp/ccxGleZM.s:2054: Error: bad instruction `rorw $8,r3'
/tmp/ccxGleZM.s:2060: Error: bad instruction `rorw $8,r2'
/tmp/ccxGleZM.s:2060: Error: bad instruction `rorl $16,r2'
/tmp/ccxGleZM.s:2060: Error: bad instruction `rorw $8,r2'
/tmp/ccxGleZM.s:2103: Error: bad instruction `rorw $8,r0'
/tmp/ccxGleZM.s:2103: Error: bad instruction `rorl $16,r0'
/tmp/ccxGleZM.s:2103: Error: bad instruction `rorw $8,r0'
/tmp/ccxGleZM.s:2186: Error: bad instruction `rorw $8,r0'
/tmp/ccxGleZM.s:2186: Error: bad instruction `rorl $16,r0'
/tmp/ccxGleZM.s:2186: Error: bad instruction `rorw $8,r0'
make[3]: *** [ipobj.o] Error 1
make[3]: Leaving directory `/home/snortsensor/Desktop/setups/snortixp/src/sfutil'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/snortsensor/Desktop/setups/snortixp/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/snortsensor/Desktop/setups/snortixp'
make: *** [all] Error 2

..

im sure i have the right libpcap and pcre libs installed, because it works fine, if i compile snort without the --host-command.

honestly im not very familiar with linux, yet. so if i did some stupid mistakes it depends on my dumbness with linux.
im using ubuntu 8.10

so is there anybody who could help? this would be grateful.

thx a lot

topf










Report
Re: Snort cross-compiling Posted by topf23 on 27 Apr 2009 at 6:52 AM
im a step closer.
i cross-compiled libpcap and pcre and set the include-paths to the configure.
the configure finishs fine. but "make" exits with the following:

....
nsl -ldl
mkdir .libs
arm-linux-gcc -I/usr/include/ -I/usr/local/arm-linux/include/ -Wall -DDYNAMIC_PLUGIN -DDETECTION_OPTION_TREE -o snort codes.o debug.o decode.o log.o mstring.o parser.o profiler.o plugbase.o snort.o snprintf.o strlcatu.o strlcpyu.o tag.o ubi_BinTree.o ubi_SplayTree.o util.o detect.o signature.o mempool.o sf_sdlist.o fpcreate.o fpdetect.o pcrm.o byte_extract.o sfthreshold.o packet_time.o event_wrapper.o event_queue.o inline.o ppm.o log_text.o -L/tmp/libpcap/lib/ -L/tmp/pcre/lib/ output-plugins/libspo.a detection-plugins/libspd.a dynamic-plugins/libdynamic.a preprocessors/libspp.a preprocessors/flow/portscan/libportscan.a preprocessors/flow/libflow.a parser/libparser.a target-based/libtarget_based.a preprocessors/HttpInspect/libhttp_inspect.a preprocessors/Stream5/libstream5.a sfutil/libsfutil.a /tmp/pcre/lib/libpcre.so -lpcap -lm -lnsl -ldl -Wl,--rpath -Wl,/tmp/pcre/lib -Wl,--rpath -Wl,/tmp/pcre/lib
mstring.o(.text+0xc4): In function `mSplit':
: undefined reference to `__ctype_b_loc'
mstring.o(.text+0x27c): In function `mSplit':
: undefined reference to `__ctype_b_loc'
parser.o(.text+0x1690): In function `ContinuationCheck':
: undefined reference to `__ctype_b_loc'
parser.o(.text+0x1754): In function `CheckRule':
: undefined reference to `__ctype_b_loc'
parser.o(.text+0x17dc): In function `CheckRule':
: undefined reference to `__ctype_b_loc'
parser.o(.text+0x4c94): more undefined references to `__ctype_b_loc' follow
util.o(.text+0x1454): In function `CreatePidFile':
: undefined reference to `__xpg_strerror_r'
signature.o(.text+0x1e4): In function `ParseReference':
: undefined reference to `__ctype_b_loc'
signature.o(.text+0x23c): In function `ParseReference':
: undefined reference to `__ctype_b_loc'
signature.o(.text+0x500): In function `ParseReferenceSystemConfig':
: undefined reference to `__ctype_b_loc'
signature.o(.text+0x5a4): In function `ParseSID':
: undefined reference to `__ctype_b_loc'
signature.o(.text+0x5e8): In function `ParseSID':
: undefined reference to `__ctype_b_loc'
signature.o(.text+0x6b4): more undefined references to `__ctype_b_loc' follow
collect2: ld returned 1 exit status
make[3]: *** [snort] Error 1
make[3]: Leaving directory `/home/snortsensor/Desktop/setups/snortixp/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/snortsensor/Desktop/setups/snortixp/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/snortsensor/Desktop/setups/snortixp'
make: *** [all] Error 2

configure:

sudo CFLAGS="-I/usr/include/ -I/usr/local/arm-linux/include/" ./configure --prefix=/tmp/snort/ --host=arm-linux --with-libpcap-libraries=/tmp/libpcap/lib/ --with-libpcre-includes=/tmp/pcre/include/ --with-libpcre-libraries=/tmp/pcre/lib/ --with-libpcap-includes=/tmp/libpcap/include/


Report
Re: Snort cross-compiling Posted by kumawat10 on 3 Nov 2011 at 10:48 PM
Hey did u solve the error and get a crosscompiled snort?? I too m stuck there so pls help if u got it solved..

Thanks
Report
Re: Snort cross-compiling Posted by kumawat10 on 3 Nov 2011 at 10:50 PM
Hey did u solve the error and get a crosscompiled snort?? I too m stuck there so pls help if u got it solved..

Thanks
Report
Re: Snort cross-compiling Posted by kumawat10 on 3 Nov 2011 at 10:52 PM
Hey did u solve the error and get a crosscompiled snort?? I too m stuck there so pls help if u got it solved..

Thanks



 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.