Stuck On Patching With Unified Diff File: Kismet On Raspberry Pi

Hi, I've been trying to get Kismet working nicely on my raspberry pi, and have come across the need to apply a patch that someone posted in the Kismet forums (link and patch are pasted below).

First off, I assume that the patch is created as a text file (GPSPatch.diff) in my case, then applied to the source code using a command like: patch -uNp1 -i GPSPatch.diff

then I recompile using (sudo)
./configure
make
make install
If that's not how to patch a program that's already compiled, if someone can put me on the right path, I'd appreciate it greatly.

Assuming I'm right so far:
When I invoke: patch -uNp1 --dry-run --verbose -i GPSPatch.diff

I get errors. The first seems to just be related to indentation (****malformed patch at [lines not indented])
So, after I fix the indentation, that error goes away, and if I run the command again, I get this:

patch: **** malformed patch at line 11: long aggregate_points;

which I think I can fix with changing (line numbers added by me):

Code:
4 @@ -183,7 +183,7 @@

TO:
Code:
4 @@ -183,9 +183,9 @@

Original code here (line numbers added by me):
Code:
4  @@ -183,7 +183,7 @@
5  double min_lat, min_lon, min_alt, min_spd;
6  double max_lat, max_lon, max_alt, max_spd;
7  // Aggregate/avg center position
8  - long unsigned int add_lat, add_lon, add_alt;
9  + uint64_t add_lat, add_lon, add_alt;
10 double aggregate_lat, aggregate_lon, aggregate_alt;
11 long aggregate_points;
12 };
13 diff -Naur orig/util.cc new/util.cc
14 --- orig/util.cc 2013-03-27 15:41:48.000000000 +0100
15 +++ new/util.cc 2014-05-25 12:54:54.000000000 +0200
16 @@ -1093,11 +1093,11 @@

I am surprised that the patch writer didn't see this though: Is my correction right?

SO, once I get the first two errors to go away, I get this:

**** malformed patch at line 13: diff -Naur orig/util.cc new/util.cc
which refers to this line:
diff -Naur orig/util.cc new/util.cc

Is this because I need to break this patch up into individual files before applying them?

It seems like it, but I'd like to know if there's an easier way. From what little I know about Linux, it always seems like there's an easier way... Thanks as always to anyone who offers assistance!

Kevin





The Link:
https://www.kismetwireless.net/Forum...1016156.530417
The patch contained in the link:
This patch fixes the problem by using a bigger integer type. Verified on a raspberry pi but the problem should be present on all plattforms where 32-bit integers actually are 32-bit. The comments regarding number range is not corrected.
Code:

diff -Naur orig/gpscore.h new/gpscore.h


--- orig/gpscore.h 2013-03-27 15:41:48.000000000 +0100


+++ new/gpscore.h 2014-05-25 12:55:15.000000000 +0200


@@ -183,7 +183,7 @@


double min_lat, min_lon, min_alt, min_spd;


double max_lat, max_lon, max_alt, max_spd;


// Aggregate/avg center position


- long unsigned int add_lat, add_lon, add_alt;


+ uint64_t add_lat, add_lon, add_alt;


double aggregate_lat, aggregate_lon, aggregate_alt;


long aggregate_points;


};


diff -Naur orig/util.cc new/util.cc


--- orig/util.cc 2013-03-27 15:41:48.000000000 +0100


+++ new/util.cc 2014-05-25 12:54:54.000000000 +0200


@@ -1093,11 +1093,11 @@


/* Airware PPI gps conversion code from Johnny Csh */


/*


- * input: a unsigned 32-bit (native endian) value between 0 and 3600000000 (inclusive)


+ * input: a unsigned 64-bit (native endian) value between 0 and 3600000000 (inclusive)


* output: a signed floating point value betwen -180.0000000 and + 180.0000000, inclusive)


*/


-double fixed3_7_to_double(u_int32_t in) {


- int32_t remapped_in = in - (180 * 10000000);


+double fixed3_7_to_double(u_int64_t in) {


+ int64_t remapped_in = in - (180 * 10000000);


double ret = (double) ((double) remapped_in / 10000000);


return ret;


}


@@ -1105,16 +1105,16 @@


* input: a native 32 bit unsigned value between 0 and 999999999


* output: a positive floating point value between 000.0000000 and 999.9999999


*/


-double fixed3_6_to_double(u_int32_t in) {


+double fixed3_6_to_double(u_int64_t in) {


double ret = (double) in / 1000000.0;


return ret;


}


/*


- * input: a native 32 bit unsigned value between 0 and 999.999999


+ * input: a native 64 bit unsigned value between 0 and 999.999999


* output: a signed floating point value between -180000.0000 and +180000.0000


*/


-double fixed6_4_to_double(u_int32_t in) {


- int32_t remapped_in = in - (180000 * 10000);


+double fixed6_4_to_double(u_int64_t in) {


+ int64_t remapped_in = in - (180000 * 10000);


double ret = (double) ((double) remapped_in / 10000);


return ret;


}


@@ -1130,38 +1130,38 @@


/*


* input: a signed floating point value betwen -180.0000000 and + 180.0000000, inclusive)


- * output: a unsigned 32-bit (native endian) value between 0 and 3600000000 (inclusive)


+ * output: a unsigned 64-bit (native endian) value between 0 and 3600000000 (inclusive)


*/


-u_int32_t double_to_fixed3_7(double in)


+u_int64_t double_to_fixed3_7(double in)


{


- if (in < -180 || in >= 180)


+ if (in < -180 || in >= 180)


return 0;


//This may be positive or negative.


- int32_t scaled_in = (int32_t) ((in) * (double) 10000000);


+ int64_t scaled_in = (int64_t) ((in) * (double) 10000000);


//If the input conditions are met, this will now always be positive.


- u_int32_t ret = (u_int32_t) (scaled_in + ((int32_t) 180 * 10000000));


+ u_int64_t ret = (u_int64_t) (scaled_in + ((int64_t) 180 * 10000000));


return ret;


}


/*


* input: a signed floating point value betwen -180000.0000 and + 180000.0000, inclusive)


- * output: a unsigned 32-bit (native endian) value between 0 and 3600000000 (inclusive)


+ * output: a unsigned 64-bit (native endian) value between 0 and 3600000000 (inclusive)


*/


-u_int32_t double_to_fixed6_4(double in)


+u_int64_t double_to_fixed6_4(double in)


{


- if (in < -180000.0001 || in >= 180000.0001)


+ if (in < -180000.0001 || in >= 180000.0001)


return 0;


//This may be positive or negative.


- int32_t scaled_in = (int32_t) ((in) * (double) 10000);


+ int64_t scaled_in = (int64_t) ((in) * (double) 10000);


//If the input conditions are met, this will now always be positive.


- u_int32_t ret = (u_int32_t) (scaled_in + ((int32_t) 180000 * 10000));


+ u_int64_t ret = (u_int64_t) (scaled_in + ((int64_t) 180000 * 10000));


return ret;


}


/*


* input: a positive floating point value between 000.0000000 and 999.9999999


* output: a native 32 bit unsigned value between 0 and 999999999


*/


-u_int32_t double_to_fixed3_6(double in) {


- u_int32_t ret = (u_int32_t) (in * (double) 1000000.0);


+u_int64_t double_to_fixed3_6(double in) {


+ u_int64_t ret = (u_int64_t) (in * (double) 1000000.0);


return ret;


}


diff -Naur orig/util.h new/util.h


--- orig/util.h 2013-03-27 15:41:48.000000000 +0100


+++ new/util.h 2014-05-25 12:54:54.000000000 +0200


@@ -236,13 +236,13 @@


* the fixedX_Y fixed point values into 'native' doubles for displaying.


* Documentation on these formats can be found in the PPI-GEOLOCATION specification


*/


-double fixed3_7_to_double(u_int32_t in);


-double fixed3_6_to_double(u_int32_t in);


-double fixed6_4_to_double(u_int32_t in);


+double fixed3_7_to_double(u_int64_t in);


+double fixed3_6_to_double(u_int64_t in);


+double fixed6_4_to_double(u_int64_t in);


-u_int32_t double_to_fixed3_7(double in);


-u_int32_t double_to_fixed3_6(double in);


-u_int32_t double_to_fixed6_4(double in);


+u_int64_t double_to_fixed3_7(double in);


+u_int64_t double_to_fixed3_6(double in);


+u_int64_t double_to_fixed6_4(double in);


/*


* Some values are encoded as 32-bit unsigned nano-second counters.






Similar Content



After Install Gpsr, Test The Perimeter Mode , It Has Throw "Wrong The Other Node"

hello there!
the common communication between nodes is fine, but when i want to test the perimeter mode it has throw the error "Wrong the other node", it seems that it couldn't find its next hop node.
i trace the code as show below
Code:
int
GPSRNeighbors::intersect(nsaddr_t theother, double sx, double sy,
			 double dx, double dy){
  //line 1 (x1,y1)--(x2,y2) is the segment
  //line 2 (x3,y3)--(x4,y4) is the xD 
  struct gpsr_neighbor *other = getnb(theother);

  if(other==NULL){
    printf("Wrong the other node\n");
    exit(1);
  }


  ****************

struct gpsr_neighbor*
GPSRNeighbors::getnb(nsaddr_t nid){
  struct gpsr_neighbor *temp = head_;
  while(temp){
    if(temp->id_ == nid){
      if((GPSR_CURRENT - temp->ts_) < DEFAULT_GPSR_TIMEOUT)
	return temp;
      else {
	delnb(temp); //if this entry expire, delete it and return NULL
	return NULL;
      }
      return temp;
    }
    temp = temp->next_;
  }
  return NULL;
}

the simulation scene was shown in the attachment.
when i make node 0 send packet to node 1, the error will occur.
would somebody know how to solve it?
thank you for your time!

Configuring Ns-2.35 And Sumo For TraNS In Fedora 15

hello
i installed sumo-0.9.8 and ns-2.35 in fedora 15. i want to use TraNS.
i know that TraNS no need to install. but it needs to be configured for using ns-2.
when i use the command patch -p0 < traci.patch
the error is appeared
Quote:
[root@Fedora-15 ns-allinone-2.35]# patch -p0 < traci.patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|*** Makefile.in.2.29 2005-10-20 06:45:22.000000000 +0200
|--- Makefile.in 2007-09-11 13:46:57.000000000 +0200
--------------------------
File to patch: traci.patch
patching file traci.patch
Hunk #1 FAILED at 85.
Hunk #2 succeeded at 90 with fuzz 2 (offset -1 lines).
Hunk #3 succeeded at 152 with fuzz 2 (offset -2 lines).
Hunk #4 succeeded at 318 with fuzz 2 (offset -3 lines).
Hunk #5 FAILED at 345.
2 out of 5 hunks FAILED -- saving rejects to file traci.patch.rej
can't find file to patch at input line 74
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|*** common/mobilenode.h.2.31 2007-09-20 13:13:18.000000000 +0200
|--- common/mobilenode.h 2007-09-20 13:13:59.000000000 +0200
--------------------------
and when i use the command patch traci.patch
it needs too time to patch .(the traci.patch is 3kB).
what's the matter?

thanks

Cron.daily Symlink (double) Does Not Seem To Be Executing?

Hello,

I cannot understand why the symlink I have put in /etc/cront.daily won't work. It is very possible I am wrong, but my understanding is that cront.{daily,weekly,monthly} works fine with symlinks.

Basically it is double symlink-ed. ls -la on /etc/cron.daily looks like this:

Code:
... 
lrwxrwxrwx  1 root root    49 Nov 27 18:26 rsync_mysql_backups.sh -> /home/myuser/scripts/bash/rsync_mysql_backups.sh
...

Now, ls -la on /home/myuser/scripts looks like this:

Code:
...
lrwxrwxrwx 1 myuser myuser    26 Sep 20  2013 scripts -> /media/md1_storage/scripts
...

I couldn't see anything suspicious in syslog, so I installed postfix in the hope that I will get some sort of information there. Nothing... I also redirected the output of the script to a file in /home/myuser/log.txt but nothing there. The file was not even created.

I am not doing anything mad in the script, I am just synchronising a local directory with a remote one like this:

Code:
/usr/bin/rsync -avzx -e 'ssh -i "/home/myuser/.ssh/myremotehost/id_rsa"' /media/md1_storage/backups/stuff/ myuser@myremotehost:/srv/backups/stuff/ >> /home/myuser/log.txt 2>&1;

As other people suggested in similar threads, I have verified that
Code:
test -x /usr/sbin/anacron

is false, which will result in the execution of the second part of the entry in /etc/crontab:

Code:
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Any input will be much appreciated. I know I am doing something wrong, but I just cannot see it right now... How can I gather more debugging which will help me understand what's going wrong?

Thanks!

Problems Setting Up VsFTPd With Virtual Users. Need Assistance.

Running mint 17.1 (64 bit) Cinnamon

I've spent a bunch of time trying to troubleshoot my setup of my ftp. Currently trying to get it to work using the virtual users option. I am following this guide http://ubuntuforums.org/showthread.php?t=518293. I've hit a snag that I can't seem to get around. The libdb3-util is where I'm having trouble. When I input the code "sudo apt-get install libdb3-util" my results are as follows:

Code:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libdb3-util

I have searched around a little, found someone else that had a similar problem, and was able to use db4.7-util to correct their problem. However, when I attempted this, it was unsuccessful. Is there a newer libdb/db I should be installing? If so, when I install it will it alter any of the code I've used from the guide?

I've been following the guide verbatum from the start of "Virtual users with TLS/SSL/FTPS and a common upload directory - Complicated vsftpd" and have stalled at the point of installing the libdb3-util.

The Behaviour Of Single & Double Quotes In Writing & Running Aliases?

This isn't a problem, more a how or a why:

I have always written an alias (alias ln="ln -sv") which changes the instruction for a "hard" link into one for a "soft". This worked fine until I needed a hard link, so, as part of the alias, I decided to give myself a reminder of what I was doing. After a bit of a struggle, I ended up with this (which I stuffed into my .bash_aliases file):

alias ln="echo -e 'Symbolic (soft) Link (use \033[1;36mhln\033[0m for Hard Link)\nuse \033[1;36m-f\033[0m for force'; ln -sv "

and it works:

Symbolic (soft) Link (use hln for Hard Link )
use -f for force
ln: missing file operand
Try 'ln --help' for more information.

(OK, no operand was supplied here, but the stuff we're talking about works fine).

Recently, however, I needed to look at the construction of the alias, ran "alias ln" & got:

alias ln='echo -e '\''Symbolic (soft) Link (use \033[1;36mhln\033[0m for Hard Link)\nuse \033[1;36m-f\033[0m for force'\''; ln -sv'

Now, I can (sort of) understand the logic of what's going on here, but not entirely - viz:

..1...'...............Open 'protected' mode (was double quote)
........echo -e....Command: invoke "echo -e"
..2...'...............matches 1: Closes 'protected' mode
........\.............invoke newline(\)? Or is this simply an scape character? (Yes it is see http://www.linuxquestions.org/questi...-quote-861714/)
..3...'...............Reopen 'protected' mode (or an escaped single quote - if so why?)
..4...'...............0pens 'protected' mode for "message" code
........Symbolic (soft) Link (use \033[1;36mhln\033[0m for Hard
........Link)\nuse \033[1;36m-f\033[0m for force
..5...'...............5 matches 4 (closes message code),
........\.............invoke newline(\) - or see above
..6...'...............6 matches 3 & closes the section started @ 'reopen'
..7...'...............Reopens 'protected' mode
........; ln -sv......New command[ ; ], creates link
..8...'...............8 matches 7 - the end (or is it?)

I would guess that the "alias" command has some built built in function that does all this - I have saved the the modified version as an alias & it works fine - but although I have read the excellent post:

http://www.linuxquestions.org/questi...-quote-861714/

I don't understand why the system has both double & single quotes. I have always felt that as long as the command line was explained & demonstrated in simple language it was easier to work with that than any point & click system. I grew up with CPM, DOS, Qemm, Desqview, WP5.1, DbII and these were great programs with great (especially WP51) manuals - but, ahh! - those days have gone

Any suggestions gratefully received

dmk

Calculating File Sizes From Indoors And Blocks

Hello I have this problem, but I just ant to know if I am on right track:

Quote:
i_addr is an array of 15 pointers which hold the addresses of a direct data blocks and single indirect, double indirect or triple indirect block.
The first 12 elements of the array refer to addresses of blocks on the disk, which actually contain the files data. When a file requires more than 12 direct blocks, the file system must use disk blocks to hold the addresses of the remaining data blocks needed. These are called indirect blocks. In this particular file system the inode holds the addresses of three indirect data blocks in addition to the 12 direct data blocks discussed. There are single, double and triple indirect data blocks. There is one of each. (in total there are 15 references in the inode). A single indirect block (referenced by element 12 of the inode array) holds the addresses of 2048 disk blocks.
If the file consumes more blocks then can be referenced by a single indirect block then the file system uses a double indirect block. (referenced by element 13 of the inode array). A double indirect block can hold the addresses of 2048 indirect blocks.
If the file consumes more blocks then can be reference by direct, single and double indirect data blocks then the last element of the inode array is used to hold a triple indirect block which effectively references a number of double and single indirect block (ultimately the data).
The Questions I attempted

Quote:
Given the block size of the file system is 8192 bytes answer the following questions:
1. Whatisthemaximumpossiblefilesizethatcanberepresentedviadirectdatablocks?
2. What is the file size if each element of an indirect data blocks references a data block and all direct blocks are used?
3. Whatistherangeoffilesizesthatwouldrequiretheuseofadoubleindirectblock?
4. Whatisthemaximumfilesizeinthisfilesystem?
5. How much overhead is incurred by the file system to store a file of 8437760 bytes.
Overhead is size in bytes of the number of blocks needed to reference this object i.e. indirect blocks etc.
My answers:

Quote:
Answer 1) we know 1 block=8192 bytes, and there are 12 direct data blocks so the max. size is (12*8192) bytes = 98304 bytes.

Answer 2) file size will be = file size in direct data blocks + (2048*8192) = approximately 17 MB

Answer 3) The starting range is > 17 MB. The maximum range will be (2048*8192) + (2048*8192) =

Answer 4) Max size of file in this file system is = 98304+(2048*8192)+(2048*8192)*2+(2048*8192)*3=84.33 MB

Answer 5) We know first 12 blocks have 98304 bytes. The single indirect block has 2048*8192 bytes. Given 8437760 bytes of file size we have an overhead of (2048*8192)/(8437760-98304)= 2 bytes
Please correct me and why am I wrong.

Thanks

/etc/shadow Question

Looking at the /etc/shadow file, for some of the system services accounts there are "*" and for others "!!" in the password field.
Searching online I have only found that !=*, i.e. prevent use for log-in, but, if true, what is the actual difference? Why not use "*" on all of them? And why double exclamation point?

Error In Running Leach_test In NS-2.34

Hi all,

I am trying to simulate leach on NS2 but I've had problems with running the leach_test. I've followed all steps from installing NS2 up to installing the LEACH patch (used the latest one from exidus). Here's the error message in the leach.err I found.

Code:
couldn't read file "/mit/uAMPS/uamps.tcl": no such file or directory
    while executing
"source.orig /mit/uAMPS/uamps.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel source.orig[list $fileName]"
    invoked from within
"if [$instance_ is_http_url $fileName] {
set buffer [$instance_ read_url $fileName]
uplevel eval $buffer
} else {
uplevel source.orig[list $fileName]
..."
    (procedure "source" line 8)
    invoked from within
"source /mit/uAMPS/uamps.tcl"
    (file "tcl/mobility/leach.tcl" line 18)
    invoked from within
"source.orig tcl/mobility/leach.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel source.orig[list $fileName]"
    invoked from within
"if [$instance_ is_http_url $fileName] {
set buffer [$instance_ read_url $fileName]
uplevel eval $buffer
} else {
uplevel source.orig[list $fileName]
..."
    (procedure "source" line 8)
    invoked from within
"source tcl/mobility/$opt(rp).tcl"
    (file "tcl/ex/wireless.tcl" line 187)

Your help are very much appreciated, thanks!

Preempt_rt Install Over Ubuntu 14.04

Hi everyone (i hope this is the right section)

Im trying to install the RT patch preempt_rt 3.18.9 im running Ubuntu 14.04 with kernel v 3.16

i installed the rt patch "patch-3.18.9-rt5.patch" and also a new kernel "3.18.9" i patched the patch file with

patch -p1 < patch-3.18.9.patch

but there is somthing i don't know about linking folders of old kernel and new kernel, i searched about it and found

rm -rf linux && ln -s /usr/src/linux-3.18.9 linux && cd /usr/src/linux

then

make oldconfig

then

make menuconfig

i selected Full preemptive kernel then

make

then this error

cc1: some warnings being treated as errors make[2]: * [kernel/locking/locktorture.o] Error 1 make[1]: * [kernel/locking] Error 2 make: *** [kernel] Error 2


So..... Any help?? can someone walk me through this

or any other real time patch, Thanx.. plzzzzzz

Cross Compiling Apache-2.4.12 For Arm

Dear all,

I am trying to cross compile Apache httpd-2.4.12 for ARM, but after solving some errors I arrived to a point where I get an error in the make process that I do not know how to solve it.

I am using apr-1.5.2, apr-util-1.5.4 and PCRE-8.37 which I copied to httpd-2.4.12/srclib/ with the names apr, apr-util and pcre.

For compile htttp I use:
Code:
./configure --prefix='/usr/local/apache' CC=arm-xilinx-linux-gnueabi-gcc --host=arm-xilinx-linux-gnueabi --with-included-apr ac_cv_file__dev_zero="yes" ac_cv_func_setpgrp_void="yes"C ap_cv_void_ptr_lt_long="no" ac_cv_struct_rlimit="yes"

The output is:

make[1]: Entering directory `/home/usr/Xilinx/Software_arm/httpd-2.4.12'
arm-xilinx-linux-gnueabi-gcc -std=gnu99 -g -O2 -DLINUX -D_REENTRANT -D_GNU_SOURCE -I. -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/os/unix -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/include -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/srclib/apr/include -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/srclib/apr-util/include -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/srclib/apr-util/xml/expat/lib -I/home/usr/Xilinx/Software_arm/pcre/include -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/aaa -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/cache -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/core -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/database -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/filters -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/ldap -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/loggers -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/lua -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/proxy -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/session -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/ssl -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/test -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/server -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/arch/unix -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/dav/main -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/generators -I/home/usr/Xilinx/Software_arm/httpd-2.4.12/modules/mappers -c /home/usr/Xilinx/Software_arm/httpd-2.4.12/server/buildmark.c
/home/usr/Xilinx/Software_arm/httpd-2.4.12/srclib/apr/libtool --silent --mode=link arm-xilinx-linux-gnueabi-gcc -std=gnu99 -g -O2 -L/home/usr/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/lib -o httpd modules.lo buildmark.o -export-dynamic server/libmain.la modules/core/libmod_so.la modules/http/libmod_http.la server/mpm/event/libevent.la os/unix/libos.la -L/home/usr/Xilinx/Software_arm/pcre/lib -lpcre /home/usr/Xilinx/Software_arm/httpd-2.4.12/srclib/apr-util/libaprutil-1.la /home/usr/Xilinx/Software_arm/httpd-2.4.12/srclib/apr-util/xml/expat/libexpat.la /home/usr/Xilinx/Software_arm/httpd-2.4.12/srclib/apr/libapr-1.la -lrt -lcrypt -ldl
/home/usr/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/../lib/gcc/arm-xilinx-linux-gnueabi/4.6.1/../../../../arm-xilinx-linux-gnueabi/bin/ld: server/mpm/event/.libs/libevent.a(event.o): undefined reference to symbol 'pthread_sigmask@@GLIBC_2.4'
/home/usr/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/../lib/gcc/arm-xilinx-linux-gnueabi/4.6.1/../../../../arm-xilinx-linux-gnueabi/bin/ld: note: 'pthread_sigmask@@GLIBC_2.4' is defined in DSO /home/usr/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/../arm-xilinx-linux-gnueabi/libc/lib/libpthread.so.0 so try adding it to the linker command line
/home/usr/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/../arm-xilinx-linux-gnueabi/libc/lib/libpthread.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/home/usr/Xilinx/Software_arm/httpd-2.4.12'
make: *** [all-recursive] Error 1

Could anyone please help me? Any suggestion suggestions?
Thanks in advance and best regards.