summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shvetsov <alexxy@gentoo.org>2010-11-08 17:56:36 +0000
committerAlexey Shvetsov <alexxy@gentoo.org>2010-11-08 17:56:36 +0000
commit88ff777e25c49bc004d847928d49e790c687b481 (patch)
tree6acefdcc1df71c3eabbfc18942dc91b904e56c08 /net-wireless
parentunmask wimax on 64bit (diff)
downloadhistorical-88ff777e25c49bc004d847928d49e790c687b481.tar.gz
historical-88ff777e25c49bc004d847928d49e790c687b481.tar.bz2
historical-88ff777e25c49bc004d847928d49e790c687b481.zip
[net-wireless/wimax] Version bump & cleanup
Package-Manager: portage-2.2.0_alpha4_p14/cvs/Linux x86_64
Diffstat (limited to 'net-wireless')
-rw-r--r--net-wireless/wimax/ChangeLog12
-rw-r--r--net-wireless/wimax/Manifest29
-rw-r--r--net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch114
-rw-r--r--net-wireless/wimax/files/wimax-1.5.1-fix-struct-packing-and-type-casting-issues.patch430
-rw-r--r--net-wireless/wimax/files/wimax-1.5.1-kdapi.patch13
-rw-r--r--net-wireless/wimax/files/wimax-1.5.1-malloc-free-warnings.patch118
-rw-r--r--net-wireless/wimax/files/wimax-1.5.1-pthread-mutex-inconsistency.patch90
-rw-r--r--net-wireless/wimax/wimax-1.5.1.ebuild (renamed from net-wireless/wimax/wimax-1.5.ebuild)20
8 files changed, 810 insertions, 16 deletions
diff --git a/net-wireless/wimax/ChangeLog b/net-wireless/wimax/ChangeLog
index 115b73cd73d6..69fdc5cbb135 100644
--- a/net-wireless/wimax/ChangeLog
+++ b/net-wireless/wimax/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for net-wireless/wimax
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/ChangeLog,v 1.3 2010/07/26 22:42:40 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/ChangeLog,v 1.4 2010/11/08 17:56:36 alexxy Exp $
+
+*wimax-1.5.1 (08 Nov 2010)
+
+ 08 Nov 2010; Alexey Shvetsov <alexxy@gentoo.org> -wimax-1.5.ebuild,
+ +wimax-1.5.1.ebuild, +files/wimax-1.5.1-64bit-fixes.patch,
+ +files/wimax-1.5.1-fix-struct-packing-and-type-casting-issues.patch,
+ +files/wimax-1.5.1-kdapi.patch,
+ +files/wimax-1.5.1-malloc-free-warnings.patch,
+ +files/wimax-1.5.1-pthread-mutex-inconsistency.patch:
+ Version bump & 64bit fixes
26 Jul 2010; Alexey Shvetsov <alexxy@gentoo.org> wimax-1.5.ebuild:
Fix typo in deps
diff --git a/net-wireless/wimax/Manifest b/net-wireless/wimax/Manifest
index 13cdbc85ff56..d69d3921b7b9 100644
--- a/net-wireless/wimax/Manifest
+++ b/net-wireless/wimax/Manifest
@@ -1,15 +1,30 @@
-----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
+Hash: SHA256
AUX wimax 648 RMD160 baf1cbcbea336001ccf02f320736c065be1eb2c0 SHA1 966520a76609e4f7710afd7d5daf0f58776947b2 SHA256 120727223bfb5d6a3c1a648615e4370c6da9a1ebc2214d569800922844b3e53d
-DIST wimax-1.5.tar.gz 2875992 RMD160 8cd63d506a6324b8ff490acb4c53ebbc94d5ca6c SHA1 a3f441cadec44d1db58f07faa416052fe313be2b SHA256 b8c71cddbacd9c25437708abef2816fed2e870e292c2ed25d76f69ab6a365e3a
-EBUILD wimax-1.5.ebuild 1736 RMD160 73e4ac5bb5001b5fc75bc2574749431988d72802 SHA1 4bb9a287ffef2967647b0ac738784f3b76901b41 SHA256 198d7cae7edac846b5c838ff9893809fc122ade5877b712e571e61c23c12048f
-MISC ChangeLog 717 RMD160 385c6329db3c0db84ca6aef29613b9f5e02557c8 SHA1 033fc18ecc9839013528d6e472c67e246c2a8cd1 SHA256 ee1e86230261f20d69ce1819438bf8cd93b11af4069d3cf06f60a70670264292
+AUX wimax-1.5.1-64bit-fixes.patch 4518 RMD160 cd629cd1d5632e78bba9719df494379c4d7d654e SHA1 0c03d5a7b679b0239f39117684f923875254526e SHA256 c0d1592c03b0f4534e4a703020005093fe81ebb8dc553f4f906b9d2729190d7e
+AUX wimax-1.5.1-fix-struct-packing-and-type-casting-issues.patch 18654 RMD160 f05b0513b49f5983e0077677814c9fcb00cd0106 SHA1 8685a538c285b2c33f79d1f1ded0e2a161241c50 SHA256 d2c3bac90b6c8636ac7f583dcca5a2c7116ceb3e49cebd9c2b726b03e4bba75c
+AUX wimax-1.5.1-kdapi.patch 612 RMD160 9eeed850250f6d9c6da58c8e47226282487d40f3 SHA1 c376c7c9ae93b2d0807917baa14d09f8fcf36168 SHA256 5ff129f49098cab5178163470355c2251868c717056c693cc01e47486bf1b0a8
+AUX wimax-1.5.1-malloc-free-warnings.patch 5214 RMD160 eff1931653d17275f04bd8be092e9e2910eada56 SHA1 f3dd1ea7fb0e7059c1887bcb94161623aead11f8 SHA256 fac3eb3340feda8b809a6235bb55bacfe3de7958873e0072ea697342f3e3017d
+AUX wimax-1.5.1-pthread-mutex-inconsistency.patch 2743 RMD160 0ec342ed3d2da818283ded9a26f98f3d7256241b SHA1 3a19113d921a34711696cb126eb76aab8183ddf4 SHA256 9243d5fcc369cb5438211e82636ff4fc0fa9bbe2627f77f4243fc82f0e1d61e0
+DIST wimax-1.5.1.tar.gz 2860638 RMD160 0c5ba406c3007e8dbb748b6dabcb83a642411625 SHA1 9443a5376bee152cfc119cbb8f2492e78ac55c0b SHA256 c04d4617e99e836b78f9c4e6eb86a88bc20ab789c05eb201bb8f3846899186a5
+EBUILD wimax-1.5.1.ebuild 1793 RMD160 6b7924ca040d9728cebcc6e77d794af08c20fa31 SHA1 4edeae344eae480709949370a7654d9444526980 SHA256 869f0f25f0d6e898c0b35215a9a6d4e54a32238ab50e5232501a58d7589b1a85
+MISC ChangeLog 1116 RMD160 d37c0ca51fdcb99da208f000f225e6cda482daa9 SHA1 bcb48892476cb721779f54d74f2e74568b737a3e SHA256 6f944b423ec4593da5c9b49df1ae017e66e2733c08ed550ad7d4c23616709c46
MISC metadata.xml 250 RMD160 94be601f620e3158922f31ac28328a28665555a2 SHA1 ac8010695121148bf3593692aba56938187882c9 SHA256 aea796ea3b08f1f5ca77c34868298e406de62590afbf2662e87d094c3e0041f4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)
-iEYEARECAAYFAkxOD4IACgkQ5BmOA85PVLjiNACeP510G06l9JmOQHsB3/Dv6YIi
-GCoAn0gz8ucl0iQmhHzjU1sPwL+qUZfq
-=b14o
+iQIcBAEBCAAGBQJM2DlcAAoJEOf+E+/4L5LmEBwQAKkjmaEMwU143bU2Ff46cc8q
+bnnyM2zAL6PPO2/DRz3K2hTwUBrEXVbeIORDkg0M4kqwDbMQjHorLWZLaM6ntR1l
+kDSS/47KT4Gt9kdeyjvyWhmFFzD0kEGT+2VlvMmfdiilE92nEGFUHLxNMcH/vbdB
+6Xy7S14otuU0MYPE3bSrOZhib8p+Cm7X7t7Yvvy3WxUX7ARyRrsejNh7SRYy/qZk
+KuZnDlZfyUtQDhre6iyaKnxasW9Kdy6YHAF8fVWt4yDq31ohISRqHD7mfD9tYMkQ
+GhXz9yDQrvd+oF3sE3wD6bnmBgmT85ues84Bm9NGxGPhh1WMXbim4hHGH28mCFLm
+4RMskp57pHwadjyv7JDE0lrGVmiLWlP5CpaEVNec259H5mHI8esYofoyE48L90Yo
+9fJG1y88CXCiw0wUMG1+3vMTvrGrCemAVUFu5THWVZIvELB3h3vifyAhvgsiwrdE
+jqY6WEga1amPDLi8l6SnewQjkPhHEAE8ELY380nrvwrvc2ayu/2L2cozbZMU3Fn4
+b2TqYhLMkLZ8fVn2FdONkmZOzHZYvNqJIAXZRNdapb98wdU/zHI47WXGCnSSldWx
+yMoKiUvxxRDyyvMTSyzq9MezYwVIPbfXfLp9d6IB9LF84X4SOztuSu+Ht4plzoUu
+rUtxjqxMULzpW3hpQC1Z
+=KXk9
-----END PGP SIGNATURE-----
diff --git a/net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch b/net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch
new file mode 100644
index 000000000000..82f6c2c6269b
--- /dev/null
+++ b/net-wireless/wimax/files/wimax-1.5.1-64bit-fixes.patch
@@ -0,0 +1,114 @@
+From 6435becb440cd66098adf9424f99a5099935bbea Mon Sep 17 00:00:00 2001
+From: Paul Donohue <wimax@PaulSD.com>
+Date: Tue, 5 Oct 2010 11:38:52 -0700
+Subject: [PATCH] wimax-network-service: 64-bit fixes
+
+Correct assorted 64-bit issues.
+
+Signed-off-by: Paul Donohue <wimax@PaulSD.com>
+---
+ .../Common/L4Common/SourceControl/BitmanCommon.h | 4 ++++
+ .../Common/L4Common/SourceControl/CommonTypes.h | 2 ++
+ .../OSAgnostic/Common/L5Common/L5CommonUtils.c | 2 +-
+ .../Product/AppSrvInfra/L5SocketsDispatcher.c | 7 ++++---
+ .../Linux/OSAL/Primitives/wimax_osal_basictypes.h | 3 ++-
+ 5 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
+index bdb48dc..874df35 100644
+--- a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
++++ b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/BitmanCommon.h
+@@ -67,6 +67,10 @@
+ #define MASK_1 (0xFFFFFFFFFFFFFFFF)
+ #define MASK_2 (0xFFFFFFFFFFFFFFFE)
+ #define MASK_4 (0xFFFFFFFFFFFFFFFC)
++#elif __x86_64__
++#define MASK_1 (0xFFFFFFFFFFFFFFFF)
++#define MASK_2 (0xFFFFFFFFFFFFFFFE)
++#define MASK_4 (0xFFFFFFFFFFFFFFFC)
+ #else
+ #define MASK_1 (0xFFFFFFFF)
+ #define MASK_2 (0xFFFFFFFE)
+diff --git a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/CommonTypes.h b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/CommonTypes.h
+index b410c38..f8aba19 100644
+--- a/InfraStack/OSAgnostic/Common/L4Common/SourceControl/CommonTypes.h
++++ b/InfraStack/OSAgnostic/Common/L4Common/SourceControl/CommonTypes.h
+@@ -91,6 +91,8 @@ typedef const char* PCSTR;
+ /// when you need to hold both a pointer and a number
+ #ifdef WIN64
+ typedef UINT64 POINTER_AND_UINT;
++#elif __x86_64__
++typedef UINT64 POINTER_AND_UINT;
+ #else
+ typedef UINT POINTER_AND_UINT;
+ #endif
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/L5CommonUtils.c b/InfraStack/OSAgnostic/Common/L5Common/L5CommonUtils.c
+index 840a89c..229a2e1 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/L5CommonUtils.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/L5CommonUtils.c
+@@ -182,7 +182,7 @@ L5_RESULT L5_COMMON_UTILS_SendControlMessage(
+
+ result = l5_common_utils_ActuallySendMessage( Socket, pMessage );
+
+- TRACE(TR_MOD_SERVICE, TR_SEV_NOTICE, "Result of ActuallySendMessage is %d %d", result);
++ TRACE(TR_MOD_SERVICE, TR_SEV_NOTICE, "Result of ActuallySendMessage is %d", result);
+
+ return result;
+ }
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
+index aa3a58c..33618cc 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
+@@ -61,7 +61,8 @@ typedef struct
+ L5_CONNECTION L5Conn; // Can be NULL before handshake
+
+ // Is this an active slot?
+- BOOL bActive;
++ // Updated using OSAL_atomic_exchange, so this must be a LONG not a BOOL
++ LONG bActive;
+
+ // Connections from both sides
+ SOCKETS_CLIENT_ID Socket;
+@@ -702,7 +703,7 @@ void l5_sockets_dispatcher_HandleNewConnection( SOCKETS_CLIENT_ID Socket, void**
+ // XXX SEH error handling
+ OSAL_init_critical_section( &(pConn->csSendReceive) );
+ OSAL_init_critical_section( &(pConn->csHandlingRequest) );
+- OSAL_atomic_exchange( (LPLONG)&(pConn->bActive), TRUE );
++ OSAL_atomic_exchange( &(pConn->bActive), TRUE );
+
+ *context = pConn;
+
+@@ -1034,7 +1035,7 @@ void l5_sockets_dispatcher_DisconnectClient( tL5SocketsDispatcherConnection *pCo
+ L5_DISPATCHER_Disconnect( pConn->L5Conn );
+ }
+
+- OSAL_atomic_exchange( (LPLONG)&(pConn->bActive), FALSE );
++ OSAL_atomic_exchange( &(pConn->bActive), FALSE );
+
+ OSAL_exit_critical_section( &(pConn->csHandlingRequest) );
+ OSAL_delete_critical_section(&pConn->csSendReceive);
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_basictypes.h b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_basictypes.h
+index 1085c4b..f13fade 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_basictypes.h
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_basictypes.h
+@@ -39,6 +39,7 @@
+ #include <string.h>
+ #include <ctype.h>
+ #include <sys/stat.h>
++#include <pthread.h>
+
+ #if 0
+ #include <sys/socket.h>
+@@ -90,7 +91,7 @@ typedef void* OSAL_critical_section;
+
+ typedef int pid_t;
+
+-typedef int OSAL_thread_t;
++typedef pthread_t OSAL_thread_t;
+
+ typedef void * OSAL_event_t;
+
+--
+1.7.3.1
+
+
diff --git a/net-wireless/wimax/files/wimax-1.5.1-fix-struct-packing-and-type-casting-issues.patch b/net-wireless/wimax/files/wimax-1.5.1-fix-struct-packing-and-type-casting-issues.patch
new file mode 100644
index 000000000000..83ba45d9c787
--- /dev/null
+++ b/net-wireless/wimax/files/wimax-1.5.1-fix-struct-packing-and-type-casting-issues.patch
@@ -0,0 +1,430 @@
+From: Paul Donohue <wimax@PaulSD.com>
+Date: Tue, 5 Oct 2010 20:40:55 +0000 (-0400)
+Subject: cleanup: fix struct packing and type casting issues
+X-Git-Url: http://git.kernel.org/?p=linux%2Fnetworking%2Fwimax%2Fwimax-network-service.git;a=commitdiff_plain;h=bb496da3c393e415ae85917d66e3bf0610303c11
+
+cleanup: fix struct packing and type casting issues
+
+cleanup: fix struct packing and type casting issues
+
+Signed-off-by: Paul Donohue <wimax@PaulSD.com>
+---
+
+diff --git a/InfraStack/OSAgnostic/Common/CommonServices/VersionUtils.h b/InfraStack/OSAgnostic/Common/CommonServices/VersionUtils.h
+index 2b881eb..526f8f4 100644
+--- a/InfraStack/OSAgnostic/Common/CommonServices/VersionUtils.h
++++ b/InfraStack/OSAgnostic/Common/CommonServices/VersionUtils.h
+@@ -51,6 +51,7 @@ typedef struct _wmx_Version_t
+ UINT32 revision;
+ UINT32 branch;
+ } wmx_Version_t, *wmx_pVersion_t;
++#pragma pack( pop )
+
+ typedef char* wmx_ModuleName_t;
+ typedef char* wmx_pVersionStr_t;
+@@ -62,6 +63,7 @@ typedef struct _wmx_VersionEntry_t
+ wmx_ModuleName_t moduleName;
+ wmx_Version_t version;
+ } wmx_VersionEntry_t, *wmx_pVersionEntry_t;
++#pragma pack( pop )
+
+
+ BOOL VersionUtils_Init();
+@@ -73,4 +75,4 @@ EXPORT void GetFullVersionString(char *str, wmx_Version_t version);
+ EXTERN_C EXPORT VERSION_RESULT ValidateVersion(wmx_ModuleName_t moduleName, wmx_Version_t actualVersion, wmx_Version_t expectedVersion);
+
+
+-#endif // _VERSION_UTILS_H
+\ No newline at end of file
++#endif // _VERSION_UTILS_H
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+index 41bb044..53559af 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+@@ -153,7 +153,7 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ SendIndData *buffer = _buffer;
+ ListItem* handle;
+ L5_TARGET_ID targetID;
+- ULONG_PTR data;
++ L5_TARGET_ID data;
+ L5_RESULT res;
+ IndicatorSubscribers *indSubscribers;
+ List tempList;
+@@ -174,12 +174,12 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ handle = CreateIterator(&(indSubscribers->subscribersList));
+ // handle = Iterator_GetNext(&(indSubscribers->subscribersList), handle, (void**)&targetID);
+ handle = Iterator_GetNext(&(indSubscribers->subscribersList), handle, (void**)(&data));
+- targetID = (int) data;
++ targetID = data;
+ while (handle != NULL)
+ {
+ List_AddItem(&tempList, (void *)targetID);
+ handle = Iterator_GetNext(&(indSubscribers->subscribersList), handle, (void**)(&data));
+- targetID = (int)data; ////
++ targetID = data; ////
+
+ // handle = Iterator_GetNext(&(indSubscribers->subscribersList), handle, (void**)&targetID);
+ }
+@@ -189,7 +189,7 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ //iterate the temp list and send the targets indication:
+ handle = CreateIterator(&tempList);
+ handle = Iterator_GetNext(&tempList, handle, (void**)(&data));
+- targetID = (int) data;
++ targetID = data;
+
+ // handle = Iterator_GetNext(&tempList, handle, (void**)&targetID);
+ while (handle != NULL)
+@@ -219,7 +219,7 @@ EXPORT void SendIndicationToSubscribers( UINT32 internalRequestID, void *_buffer
+ // handle = Iterator_GetNext(&tempList, handle, (void**)&targetID);
+
+ handle = Iterator_GetNext(&tempList, handle, (void**)(&data));
+- targetID = (int) data;
++ targetID = data;
+
+
+ // TODO - XXX - check L5_COMMON_UTILS_IsTargetNotExist
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/L5Common.h b/InfraStack/OSAgnostic/Common/L5Common/L5Common.h
+index 037ccd5..6050052 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/L5Common.h
++++ b/InfraStack/OSAgnostic/Common/L5Common/L5Common.h
+@@ -282,5 +282,6 @@ typedef struct _tL5DispatcherFunctions
+ extern tL5DispatcherFunctions *GetL5Funcs();
+ extern tUtilityFunctions *GetUtilsFuncs();
+
++#pragma pack(pop)
+
+ #endif
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
+index 33618cc..a7346a3 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5SocketsDispatcher.c
+@@ -61,7 +61,7 @@ typedef struct
+ L5_CONNECTION L5Conn; // Can be NULL before handshake
+
+ // Is this an active slot?
+- // Updated using OSAL_atomic_exchange, so this must be a LONG not a BOOL
++ // Updated using OSAL_atomic_exchange(), so this must be a LONG not a BOOL
+ LONG bActive;
+
+ // Connections from both sides
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c b/InfraStack/OSAgnostic/WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c
+index 5e9fcbc..75d5786 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c
++++ b/InfraStack/OSAgnostic/WiMax/Agents/NDnS/APDO/NDnSAgent_APDO_CBs.c
+@@ -487,8 +487,8 @@ void NDnSAgent_HandleApdoLinkStatus(wmx_ApdoLinkStatus_t linkStatus)
+ lastConnectedStatus = Ndns_GetLastConnectedState();
+
+ // Check if the link status has changed
+- if (linkStatus == APDO_linkUp && lastConnectedStatus == FALSE ||
+- linkStatus == APDO_linkDown && lastConnectedStatus == TRUE)
++ if ((linkStatus == APDO_linkUp && lastConnectedStatus == FALSE) ||
++ (linkStatus == APDO_linkDown && lastConnectedStatus == TRUE))
+ {
+ return; // No change in the link status
+ }
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h b/InfraStack/OSAgnostic/WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h
+index e247d28..da7a344 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h
++++ b/InfraStack/OSAgnostic/WiMax/Agents/NDnS/Source/NDnSAgent_Internals.h
+@@ -200,8 +200,8 @@ typedef struct _wmx_NDnS_Context_t
+ wmx_ConnectStatus_t connectStatus;
+ int DummyForCompilerHappy3;
+ TinyFSM_t fsm;
+- L4C_Task scheduledTask;
+- wmx_ScheduledTaskData_t scheduledTaskData;
++ LONG scheduledTask; // Updated using OSAL_atomic_exchange(), so this must be a LONG not an L4C_Task
++ wmx_ScheduledTaskData_t scheduledTaskData;
+ wmx_Status_t scanStatus;
+ wmx_LinkLossType_t linkLossType;
+ wmx_ScanType_t currentScanType;
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
+index 1eeae5b..3948615 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
++++ b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/SupplicantAgent.c
+@@ -482,7 +482,7 @@ wmx_Status_t InitSupplicantLibrary(VOID)
+ eap_ctx.eap_config.password_len = 8;
+ eap_ctx.eap_config.ca_cert = (u8 *) os_strdup("ca.pem");
+ eap_ctx.eap_config.fragment_size = TLS_MAX_SIZE;
+- eap_ctx.eap_config.eap_methods = eap_methods;
++ eap_ctx.eap_config.eap_methods = &eap_methods;
+
+ memset(&eap_cb, 0, sizeof(eap_cb));
+ eap_cb.get_config = peer_get_config;
+diff --git a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/ds/driver_broadcom.h b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/ds/driver_broadcom.h
+index 8973978..72f6384 100644
+--- a/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/ds/driver_broadcom.h
++++ b/InfraStack/OSAgnostic/WiMax/Agents/Supplicant/Source/ds/driver_broadcom.h
+@@ -20,15 +20,15 @@ typedef s8 int8;
+ typedef unsigned char bool; /* consistent w/BOOL */
+
+ /* require default structure packing */
+-#if !defined(__GNUC__)
+-#pragma pack(push,8)
+-#endif
++//#if !defined(__GNUC__)
++//#pragma pack(push,8)
++//#endif
+
+ /* enable structure packing */
+ #if defined(__GNUC__)
+ #define PACKED __attribute__((packed))
+ #else
+-#pragma pack(1)
++#pragma pack(push,1)
+ #define PACKED
+ #endif
+
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Msc_2.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Msc_2.h
+index 33b3336..236217d 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Msc_2.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Msc_2.h
+@@ -87,6 +87,7 @@ typedef struct _wmx_ModelType_t
+ UINT32 modelTypeID;
+ char modelTypeName[WMX_MODEL_TYPE_NAME_MAX_LENGTH];
+ } wmx_ModelType_t, *wmx_pModelType_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A constant specifying the maximal length of the manufacturer string.
+@@ -102,6 +103,7 @@ typedef struct _wmx_Manufacturer_t
+ UINT32 manufacturerID;
+ char manufacturerName[WMX_MANUFACTURER_NAME_MAX_LENGTH];
+ } wmx_Manufacturer_t, *wmx_pManufacturer_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// Definition of a struct that holds the manufacturer ID and string.
+@@ -111,6 +113,7 @@ typedef struct _wmx_DevicePID_t
+ {
+ UINT32 productID;
+ } wmx_DevicePID_t, *wmx_pDevicePID_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A constant specifying the maximal length of the serial number string.
+@@ -125,6 +128,7 @@ typedef struct _wmx_SerialNumber_t
+ {
+ char serialNumber[WMX_SERIAL_NUMBER_MAX_LENGTH];
+ } wmx_SerialNumber_t, *wmx_pSerialNumber_t;
++#pragma pack( pop )
+
+
+
+@@ -140,6 +144,7 @@ typedef struct _wmx_SerialNumber_t
+ // UINT32 TotalTxBytes;
+ // UINT32 TotalTxPackets;
+ //} wmx_Statistics_t, *wmx_pStatistics_t;
++//#pragma pack( pop )
+
+
+ /// <summary>
+@@ -153,6 +158,7 @@ typedef struct _wmx_SfStatistics_t
+ UINT32 noReceivedBytes;
+ UINT32 noTransmittedBytes;
+ } wmx_SfStatistics_t, *wmx_pSfStatistics_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A constant specifying the maximal length of the strings in the wmx_DeviceVersion_t struct.
+@@ -171,6 +177,7 @@ typedef struct _wmx_DeviceVersion_t
+ char BoardName[WMX_DEVICE_VERSION_MAX_LENGTH];
+ char Software[WMX_DEVICE_VERSION_MAX_LENGTH];
+ } wmx_DeviceVersion_t, *wmx_pDeviceVersion_t;
++#pragma pack( pop )
+
+
+
+@@ -230,4 +237,4 @@ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_GetDeviceDetailsEx( wmx_MacAd
+ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_GetDeviceVersion( wmx_pDeviceVersion_t pDeviceVersion );
+
+ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_ResetDevice( );
+-#endif // _WMX_SDK_MSC_2_H
+\ No newline at end of file
++#endif // _WMX_SDK_MSC_2_H
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
+index 9a7863f..7fb5817 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_1.h
+@@ -235,6 +235,7 @@ typedef struct _wmx_Statistics_t
+ UINT32 TotalTxBytes;
+ UINT32 TotalTxPackets;
+ } wmx_Statistics_t, *wmx_pStatistics_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// Type definition for a structure giving a detailed info on a system state.
+@@ -671,4 +672,4 @@ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_IsAssociated(wmx_pAssociate_t
+ wmx_Status_t WMX_WRAPPER_API WMX_EXT_CALL_CONV wmx_GetSpLockStatus(wmx_pSpLock_t pSpLockStatus);
+ wmx_Status_t wmx_CmdSpLockUnLock(wmx_SpLockCode_t SpLockCode);
+
+-#endif // _WMX_SDK_NDS_1_H
+\ No newline at end of file
++#endif // _WMX_SDK_NDS_1_H
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_3.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_3.h
+index 05fc677..2bb463d 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_3.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_3.h
+@@ -110,6 +110,7 @@ typedef struct _wmx_SLA_t
+ wmx_LinkSpeed_t downLinkSpeed;
+ UINT32 agreementLevel;
+ } wmx_SLA_t, *wmx_pSLA_t;
++#pragma pack( pop )
+
+ #define WMX_SUBSCRIBER_NAME_MAX_SIZE 100
+ #define WMX_SUBSCRIBER_ID_MAX_SIZE 256
+@@ -125,6 +126,7 @@ typedef struct _wmx_SubscriberInfo_t
+ BOOL userCredRequired;
+ //////////////////
+ } wmx_SubscriberInfo_t, *wmx_pSubscriberInfo_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// Type definition for a struct containing information of a specific NSP.
+@@ -149,6 +151,7 @@ typedef struct _wmx_NSP_t
+ wmx_SubscriberInfo_t subscribers[WMX_NSP_SUBSCRIBERS_MAX_NUM]; // The list of subscribers associated with this NSP on this device.
+ UINT32 numOfSubscribers;
+ } wmx_NSP_t, *wmx_pNSP_t;
++#pragma pack( pop )
+
+ // TODO: Add description
+ #pragma pack( push, 1 )
+@@ -158,6 +161,7 @@ typedef struct _wmx_ContactInformation_t
+ UINT32 uriType; //TODO - don't forget to validate the values 0-255
+ char text[MAX_SIZE_OF_STRING_BUFFER];
+ } wmx_ContactInformation_t, *wmx_pContactInformation_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// Type definition for an enum specifying the possible outcomes of a scan cycle.
+@@ -224,6 +228,7 @@ typedef struct _wmx_UserLinkStatus_t
+ wmx_LinkSpeed_t downLinkSpeed;
+ wmx_BSid_t bsId;
+ } wmx_UserLinkStatus_t, *wmx_pUserLinkStatus_t;
++#pragma pack( pop )
+
+ #pragma pack( push, 1 )
+ typedef struct _wmx_UserStatistics_t
+@@ -234,6 +239,7 @@ typedef struct _wmx_UserStatistics_t
+ UINT32 TotalTxBytes;
+ UINT32 TotalTxPackets;
+ } wmx_UserStatistics_t, *wmx_pUserStatistics_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A constant specifying the maximal length of a NSPs structs vector (in terms of the number of wmx_NSP_t structs the vector can contain).
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
+index 2dc5f37..21fdf62 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/Include/wmxSDK_Nds_Cmn.h
+@@ -435,6 +435,7 @@ typedef struct _wmx_RfSwitchesStatus_t
+ wmx_RfStatus_t swRfStatus;
+ wmx_RfStatus_t hwRfStatus;
+ }wmx_RfSwitchesStatus_t, *wmx_pRfSwitchesStatus_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A struct in which the API will place information (such as URLs, VoIP numbers, �) that are relevant to the
+@@ -446,6 +447,7 @@ typedef struct _wmx_APDOContactInfo_t
+ {
+ char contactDetails[MAX_CONTACT_DETAILS_SIZE];
+ } wmx_APDOContactInfo_t, *wmx_pAPDOContactInfo_t;
++#pragma pack( pop )
+
+ /// <summary>
+ /// A struct in which the API will place information which is needed in the package update process.
+@@ -460,6 +462,7 @@ typedef struct _wmx_PackageInfo_t
+ BOOL mandatoryUpdate; /**< (TRUE = mandatory FALSE, optional) */
+ BOOL warnUser; /**< (TRUE = warn user, FALSE = no user warning */
+ } wmx_PackageInfo_t, *wmx_pPackageInfo_t;
++#pragma pack( pop )
+
+ typedef enum _wmx_SPLockStatus_t
+ {
+@@ -507,5 +510,6 @@ typedef struct _wmx_InstallationInfo_t
+ char fwVersion[MAX_INSTALLAION_VERSION_SIZE];
+ char hwVersion[MAX_INSTALLAION_VERSION_SIZE];
+ } wmx_InstallationInfo_t, *wmx_pInstallationInfo_t;
++#pragma pack( pop )
+
+ #endif // _WMX_SDK_NDS_CMN_H
+diff --git a/InfraStack/OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c b/InfraStack/OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c
+index 97bd45c..beac961 100644
+--- a/InfraStack/OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c
++++ b/InfraStack/OSAgnostic/WiMax/Wrappers/NDnS/wmxSDK_Coex_1.c
+@@ -64,7 +64,7 @@ wmx_Status_t wmx_SetCoexistenceMode(wmx_CoexistenceMode_t coexMode)
+ if (coexMode == WMX_MODE_CM && UserCall){
+ TRACE(TR_MOD_NDNS_AGENT, TR_SEV_NOTICE, "SetCoexistanceMode recieved set CM mode in CM mode.");
+ if (act_thread_coexHandler!=NULL){
+- OSAL_kill_thread(&act_thread_coexHandler);
++ OSAL_kill_thread(act_thread_coexHandler);
+ retStatus = WMX_ST_OK;
+ }
+ // setting fall to xor key to zero so we never fall to xor even when driver falls and brings itself up
+diff --git a/InfraStack/OSDependent/Linux/InfraStackModules/CommonAPIHeaders/WiMaxType.h b/InfraStack/OSDependent/Linux/InfraStackModules/CommonAPIHeaders/WiMaxType.h
+index 9afb111..4c56ab9 100644
+--- a/InfraStack/OSDependent/Linux/InfraStackModules/CommonAPIHeaders/WiMaxType.h
++++ b/InfraStack/OSDependent/Linux/InfraStackModules/CommonAPIHeaders/WiMaxType.h
+@@ -305,7 +305,7 @@ typedef struct _WIMAX_API_RF_SWITCHES_STATUS
+ {
+ UINT32 structureSize; /**< size of this structure. */
+ WIMAX_API_PROFILE_ID profileID; /**< profile ID. Profile id 0 is reserve to connection without specifying a user account. */
+- char profileName[MAX_SIZE_OF_STRING_BUFFER]; /**< profile name. */
++ WIMAX_CHAR profileName[MAX_SIZE_OF_STRING_BUFFER]; /**< profile name. */
+ } WIMAX_API_PROFILE_INFO, *WIMAX_API_PROFILE_INFO_P;
+
+ /// Device version
+@@ -467,6 +467,8 @@ typedef struct _WIMAX_API_RF_SWITCHES_STATUS
+ } WIMAX_API_INTERFACE_INFO, *WIMAX_API_INTERFACE_INFO_P;
+ #endif
+
++#pragma pack( pop )
++
+ /// The statuses provided by this API can generally be mapped to movements along the SDK common state machine. The indications may provide further detailed information using the API�s arguments when relevant.
+ /// \param[in] pDeviceId - Pointer to Device Identifier passed on open of device.
+ /// \param[in] deviceStatus - The device Status value
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_linux_types.h b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_linux_types.h
+index 99b01f6..364c511 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_linux_types.h
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_linux_types.h
+@@ -105,7 +105,7 @@ typedef unsigned long long UINT64;
+
+ typedef unsigned int DWORD;
+
+-typedef int INT_PTR;
++typedef int * INT_PTR;
+
+
+ typedef char INT8;
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
+index 26e2a91..6ced165 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
+@@ -173,7 +173,7 @@ void osallog(char *ch, int flush)
+ }
+ }
+ // write into file
+- fprintf(log, ch);
++ fprintf(log, "%s", ch);
+ // put extra to log next line to build
+ //fprintf(log,"\n");
+ if (flush == 1)
+diff --git a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c
+index 2f438ab..7d7b0a5 100644
+--- a/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c
++++ b/InfraStack/OSDependent/Linux/wimaxcu/wimaxcu_scan_op.c
+@@ -468,7 +468,7 @@ int wimaxcu_get_network_list(WIMAX_API_DEVICE_ID_P p_device_id, CMD_ARGS scan_mo
+
+ } else if (scan_mode == CMD_SCAN_ARG_WIDE) {
+ // Get User Connect Mode
+- int userConnectMode;
++ WIMAX_API_CONNECTION_MODE userConnectMode;
+ wmxStatus = GetConnectionMode(p_device_id, &userConnectMode);
+ if (WIMAX_API_RET_SUCCESS != wmxStatus) {
+ PrintWmxStatus(wmxStatus);
+@@ -904,4 +904,4 @@ int wimaxcu_stop_scan(WIMAX_API_DEVICE_ID_P p_device_id)
+ }
+
+ }
+-}
+\ No newline at end of file
++}
diff --git a/net-wireless/wimax/files/wimax-1.5.1-kdapi.patch b/net-wireless/wimax/files/wimax-1.5.1-kdapi.patch
new file mode 100644
index 000000000000..6004ecaa1341
--- /dev/null
+++ b/net-wireless/wimax/files/wimax-1.5.1-kdapi.patch
@@ -0,0 +1,13 @@
+--- InfraStack/OSDependent/Linux/InfraStackModules/KDapi/KDapi.c.orig 2010-11-08 20:15:15.000000000 +0300
++++ InfraStack/OSDependent/Linux/InfraStackModules/KDapi/KDapi.c 2010-11-08 20:16:01.000000000 +0300
+@@ -921,8 +921,8 @@
+ return -1;
+ }
+
+- OpcodeName = GetL4Opcode(requestBuffer);
+- TRACE(TR_MOD_KDAPI, TR_SEV_INFO, "Op code name for preconfig=%s", OpcodeName);
++ //OpcodeName = GetL4Opcode(requestBuffer);
++ //TRACE(TR_MOD_KDAPI, TR_SEV_INFO, "Op code name for preconfig=%s", OpcodeName);
+
+ // allocate the response buffer
+ responseBufferSize = SetPreInitConfiguration_Funcs.getMaxBufferSizeFunc();
diff --git a/net-wireless/wimax/files/wimax-1.5.1-malloc-free-warnings.patch b/net-wireless/wimax/files/wimax-1.5.1-malloc-free-warnings.patch
new file mode 100644
index 000000000000..07a95feac9ad
--- /dev/null
+++ b/net-wireless/wimax/files/wimax-1.5.1-malloc-free-warnings.patch
@@ -0,0 +1,118 @@
+From 763bfcc760083c2f2731f97578e053a945d5e19d Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Tue, 5 Oct 2010 15:58:06 -0700
+Subject: [PATCH] Fix a lot of warnings about undefined malloc/free
+
+Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ .../OSAgnostic/Common/CommonServices/Messenger.c | 1 +
+ .../OSAgnostic/Common/CommonServices/Queue.c | 1 +
+ .../Common/CommonServices/VersionHandshake.c | 1 +
+ .../OSAgnostic/Common/L5Common/EventSubscribers.c | 1 +
+ .../Common/L5Common/IndicatorsSubscribers.c | 1 +
+ .../Common/WrappersCommon/WrappersUtils.c | 1 +
+ .../OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c | 1 +
+ .../OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c | 1 +
+ 8 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/InfraStack/OSAgnostic/Common/CommonServices/Messenger.c b/InfraStack/OSAgnostic/Common/CommonServices/Messenger.c
+index 54c920e..20168bb 100644
+--- a/InfraStack/OSAgnostic/Common/CommonServices/Messenger.c
++++ b/InfraStack/OSAgnostic/Common/CommonServices/Messenger.c
+@@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ ***************************************************************************/
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "wimax_osal_primitives.h"
+
+ #include "Messenger.h"
+diff --git a/InfraStack/OSAgnostic/Common/CommonServices/Queue.c b/InfraStack/OSAgnostic/Common/CommonServices/Queue.c
+index b5f27f1..5323001 100644
+--- a/InfraStack/OSAgnostic/Common/CommonServices/Queue.c
++++ b/InfraStack/OSAgnostic/Common/CommonServices/Queue.c
+@@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ ***************************************************************************/
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "wimax_osal_primitives.h"
+ #include "Queue.h"
+ #include "CommonServices.h"
+diff --git a/InfraStack/OSAgnostic/Common/CommonServices/VersionHandshake.c b/InfraStack/OSAgnostic/Common/CommonServices/VersionHandshake.c
+index bc53cf9..1c49cea 100644
+--- a/InfraStack/OSAgnostic/Common/CommonServices/VersionHandshake.c
++++ b/InfraStack/OSAgnostic/Common/CommonServices/VersionHandshake.c
+@@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ ***************************************************************************/
+ // Project
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "PipeHandlerInternal.h"
+ #include "VersionUtils.h"
+ #include "L5OpCodes.h"
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/EventSubscribers.c b/InfraStack/OSAgnostic/Common/L5Common/EventSubscribers.c
+index 9262520..d6fa160 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/EventSubscribers.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/EventSubscribers.c
+@@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ ***************************************************************************/
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "EventSubscribers.h"
+
+ #include "CommonServices.h"
+diff --git a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+index 53559af..97e7b8e 100644
+--- a/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
++++ b/InfraStack/OSAgnostic/Common/L5Common/IndicatorsSubscribers.c
+@@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ ***************************************************************************/
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "IndicatorsSubscribers.h"
+
+ #include "CommonServices.h"
+diff --git a/InfraStack/OSAgnostic/Common/WrappersCommon/WrappersUtils.c b/InfraStack/OSAgnostic/Common/WrappersCommon/WrappersUtils.c
+index c0a40e3..6df4dcd 100644
+--- a/InfraStack/OSAgnostic/Common/WrappersCommon/WrappersUtils.c
++++ b/InfraStack/OSAgnostic/Common/WrappersCommon/WrappersUtils.c
+@@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ ***************************************************************************/
+ #include "wimax_osal_primitives.h"
+ #include <unistd.h>
++#include <stdlib.h>
+ #include "Services_Ctrl.h"
+ #include "WrappersUtils.h"
+ #include "WrappersCommon.h"
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c b/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c
+index 2ca1915..cfd965c 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L4MsgProxy.c
+@@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ ***************************************************************************/
+ //#pragma warning(disable : 4201) // warning C4201: nonstandard extension used : nameless struct/union
+ #include <unistd.h>
++#include <stdlib.h>
+
+ #include "Services_Ctrl.h"
+ #include "L5Common.h"
+diff --git a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c
+index acf6e58..8ce4c9a 100644
+--- a/InfraStack/OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c
++++ b/InfraStack/OSAgnostic/Product/AppSrvInfra/L5Dispatcher.c
+@@ -32,6 +32,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ // OSAL
+ #include "wimax_osal_primitives.h"
+ #include <unistd.h>
++#include <stdlib.h>
+
+ // Project
+ #include "L5Dispatcher.h"
+--
+1.7.3.1
+
+
diff --git a/net-wireless/wimax/files/wimax-1.5.1-pthread-mutex-inconsistency.patch b/net-wireless/wimax/files/wimax-1.5.1-pthread-mutex-inconsistency.patch
new file mode 100644
index 000000000000..17085ff81326
--- /dev/null
+++ b/net-wireless/wimax/files/wimax-1.5.1-pthread-mutex-inconsistency.patch
@@ -0,0 +1,90 @@
+From 3bf826a20047b1d5071369ec0b8bdbc4efe30a22 Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Tue, 5 Oct 2010 15:55:33 -0700
+Subject: [PATCH] Fix pthread_mutex_unlock duplicate call in OSALTrace()
+
+Fix pthread_mutex_unlock duplicate call in OSALTrace(), i.e. second
+pthread_mutex_unlock() called against already unlocked mutex. glibc
+tolerant to this inconsistency, but uClibc not.
+
+Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ .../Linux/OSAL/Primitives/wimax_osal_trace.c | 24 ++++++++-----------
+ 1 files changed, 10 insertions(+), 14 deletions(-)
+
+diff --git a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
+index 6ced165..cbdd24f 100644
+--- a/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
++++ b/InfraStack/OSDependent/Linux/OSAL/Primitives/wimax_osal_trace.c
+@@ -53,7 +53,7 @@ int g_iloglevel = 2;
+ int g_iloglevelreadflag = 0;
+
+ // to avoid multi tread environment to log the thread
+-pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
++static pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+ /*
+ *
+@@ -97,23 +97,19 @@ pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+ void OSALTrace(char *szformat, ...)
+ {
+- time_t currTime;
+- struct tm timeinfo;
+-
+ // log type should be 0 to 4 default value will assign info
+ if (g_OsalTraceInfo.loglevel > g_iloglevel
+ || g_OsalTraceInfo.loglevel < 0) {
+- // release the lock if get any errors
+- pthread_mutex_unlock(&g_mutex);
+- return;
++ goto out;
+ }
+ // if argument path null....
+ if (szformat == NULL) {
+- // release the lock if get any errors
+- pthread_mutex_unlock(&g_mutex);
+- return;
++ goto out;
+ }
+
++ time_t currTime;
++ struct tm timeinfo;
++
+ va_list args;
+ static char Buffer[EGIHT_X_BUFFER] = { 0 };
+ static char outBuffer[EGIHT_X_BUFFER] = { 0 };
+@@ -137,6 +133,10 @@ void OSALTrace(char *szformat, ...)
+ sprintf(outBuffer, "%s\n", Buffer);
+
+ osallog(outBuffer, 1);
++
++out:
++ // release the lock once done
++ pthread_mutex_unlock(&g_mutex);
+ }
+
+ /*
+@@ -167,8 +167,6 @@ void osallog(char *ch, int flush)
+ log = fopen(OSALTRACE_FILE, "wt");
+ if (!log) {
+ syslog(LOG_ERR, "wimaxd[osal] - can not open logfile (%s) for writing.\n", OSALTRACE_FILE);
+- // release the lock if get any errors
+- pthread_mutex_unlock(&g_mutex);
+ return; // bail out if we can't log
+ }
+ }
+@@ -182,8 +180,6 @@ void osallog(char *ch, int flush)
+ #ifdef OSAL_CONSOLE
+ printf(ch);
+ #endif
+- // release the lock once done with log
+- pthread_mutex_unlock(&g_mutex);
+
+ // fclose(log);
+ }
+--
+1.7.3.1
+
+
diff --git a/net-wireless/wimax/wimax-1.5.ebuild b/net-wireless/wimax/wimax-1.5.1.ebuild
index f794c98b18a0..f52db36a1df5 100644
--- a/net-wireless/wimax/wimax-1.5.ebuild
+++ b/net-wireless/wimax/wimax-1.5.1.ebuild
@@ -1,10 +1,10 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/wimax-1.5.ebuild,v 1.3 2010/07/26 22:42:40 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/wimax/wimax-1.5.1.ebuild,v 1.1 2010/11/08 17:56:36 alexxy Exp $
EAPI="3"
-inherit linux-info
+inherit linux-info base
DESCRIPTION="Intel WiMAX daemon used to interface to the hardware"
HOMEPAGE="http://www.linuxwimax.org/"
@@ -15,15 +15,21 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
-DEPEND="x86? ( >=dev-libs/libnl-1.1 )
- amd64? ( >=app-emulation/emul-linux-x86-baselibs-20100611 )
+DEPEND=">=dev-libs/libnl-1.1
>=sys-kernel/linux-headers-2.6.34"
RDEPEND="${DEPEND}
net-wireless/wimax-tools
- || ( net-wireless/wpa_supplicant[wimax] net-wireless/libeap )"
+ net-wireless/wpa_supplicant[wimax]"
+
+PATCHES=(
+ "${FILESDIR}/${P}-64bit-fixes.patch"
+ "${FILESDIR}/${P}-fix-struct-packing-and-type-casting-issues.patch"
+ "${FILESDIR}/${P}-pthread-mutex-inconsistency.patch"
+ "${FILESDIR}/${P}-malloc-free-warnings.patch"
+ "${FILESDIR}/${P}-kdapi.patch"
+)
pkg_setup() {
- use amd64 && multilib_toolchain_setup x86
linux-info_pkg_setup
}
@@ -36,8 +42,6 @@ src_configure() {
src_install() {
emake DESTDIR="${D}" install || die "Install failed"
- dodir /usr/lib
- mv "${D}/usr/lib32/pkgconfig" "${D}/usr/lib/pkgconfig"
doinitd "${FILESDIR}"/wimax || die "failed to place the init daemon"
sed -e "s:/usr/lib/libeap.so.0:/usr/$(get_libdir)/libeap.so.0:g" \
-e "s:<GetDeviceTraces>3</GetDeviceTraces>:<GetDeviceTraces>0</GetDeviceTraces>:g" \