1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2025-12-06 00:13:33 +00:00

Updated so compiles for MIPS correctly

This commit is contained in:
Bryan Roe
2019-01-23 14:32:52 -08:00
parent 3a0f519f54
commit 97a2e5b12c
5 changed files with 43 additions and 15 deletions

View File

@@ -20,6 +20,9 @@
#
# To build for 32 bit on 64 bit linux
# sudo apt-get install linux-libc-dev:i386
# sudo apt-get install libc6-dev-i386
# sudo apt-get install libjpeg8-dev:i386
#
#
# To install ARM Cross Compiler for Raspberry PI
# sudo apt-get install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi libncurses5-dev gcc-arm-linux-gnueabihf
@@ -144,6 +147,9 @@ ARCHNAME = mips
CC = $(PATH_MIPS)mipsel-linux-gcc
STRIP = $(PATH_MIPS)mipsel-linux-strip
CEXTRA = -D_FORTIFY_SOURCE=2 -D_NOILIBSTACKDEBUG -D_NOFSWATCHER -Wformat -Wformat-security -fno-strict-aliasing
CFLAGS += -DBADMATH
IPADDR_MONITOR_DISABLE = 1
IFADDR_DISABLE = 1
KVM = 0
LMS = 0
endif
@@ -286,6 +292,14 @@ ifeq ($(SSL_TRACE),1)
CFLAGS += -DSSL_TRACE
endif
ifeq ($(IPADDR_MONITOR_DISABLE),1)
CFLAGS += -DNO_IPADDR_MONITOR
endif
ifeq ($(IFADDR_DISABLE),1)
CFLAGS += -DNO_IFADDR
endif
GCCTEST := $(shell $(CC) meshcore/dummy.c -o /dev/null -no-pie > /dev/null 2>&1 ; echo $$? )
ifeq ($(GCCTEST),0)
LDFLAGS += -no-pie

View File

@@ -27,7 +27,9 @@ limitations under the License.
#include <WinBase.h>
#else
#include <sys/types.h>
#include <ifaddrs.h>
#ifndef NO_IFADDR
#include <ifaddrs.h>
#endif
#endif
#include "ILibDuktape_Dgram.h"
@@ -123,6 +125,7 @@ void ILibDuktape_Dgram_Socket_OnSendOK(ILibAsyncUDPSocket_SocketModule socketMod
int ILibDuktape_DGram_getIPv6ScopeID(struct in6_addr *addr)
{
int retVal = 0;
#ifndef NO_IFADDR
struct ifaddrs *addrlist;
struct ifaddrs *current;
if (getifaddrs(&addrlist) == 0)
@@ -142,6 +145,7 @@ int ILibDuktape_DGram_getIPv6ScopeID(struct in6_addr *addr)
}
freeifaddrs(addrlist);
}
#endif
return(retVal);
}
#endif

View File

@@ -23,7 +23,9 @@ limitations under the License.
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <ifaddrs.h>
#ifndef NO_IFADDR
#include <ifaddrs.h>
#endif
#ifndef __APPLE__
#include <netpacket/packet.h>
#else
@@ -1225,6 +1227,7 @@ duk_ret_t ILibDuktape_ScriptContainer_OS_networkInterfaces(duk_context *ctx)
padapters = padapters->Next;
}
#else
#ifndef NO_IFADDR
struct ifaddrs *addrlist;
struct ifaddrs *current;
if (getifaddrs(&addrlist) == 0)
@@ -1356,7 +1359,7 @@ duk_ret_t ILibDuktape_ScriptContainer_OS_networkInterfaces(duk_context *ctx)
}
duk_pop(ctx);
#endif
#endif
return(1);
}
#endif

View File

@@ -2373,7 +2373,7 @@ typedef struct duk_hthread duk_context;
* that too. Android doesn't have log2; disable all of these for Android.
*/
#if (defined(DUK_F_C99) || defined(DUK_F_CPP11) || (defined(_MSC_VER) && (_MSC_VER >= 1800))) && \
!defined(DUK_F_ANDROID) && !defined(DUK_F_MINT)
!defined(DUK_F_ANDROID) && !defined(DUK_F_MINT) && !defined(BADMATH)
#if !defined(DUK_CBRT)
#define DUK_CBRT cbrt
#endif

View File

@@ -28,7 +28,7 @@ limitations under the License.
#include "ILibParsers.h"
#if defined(_POSIX) && !defined(__APPLE__)
#if defined(_POSIX) && !defined(__APPLE__) && !defined(NO_IPADDR_MONITOR)
#include <netinet/in.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
@@ -42,20 +42,21 @@ typedef struct _ILibIPAddressMonitor
ILibChain_Link chainLink;
ILibIPAddressMonitor_Handler onUpdate;
void *user;
#ifdef WIN32
SOCKET mSocket;
DWORD bytesReturned;
OVERLAPPED *reserved;
#elif defined (_POSIX) && !defined(__APPLE__)
int mSocket;
struct sockaddr_nl addr;
#ifndef NO_IPADDR_MONITOR
#ifdef WIN32
SOCKET mSocket;
DWORD bytesReturned;
OVERLAPPED *reserved;
#elif defined (_POSIX) && !defined(__APPLE__)
int mSocket;
struct sockaddr_nl addr;
#endif
#endif
}_ILibIPAddressMonitor;
int ILibMemory_IPAddressMonitor_CONTAINER_SIZE = sizeof(_ILibIPAddressMonitor);
void ILibIPAddressMonitor_MicrostackThreadDispatch(void *chain, void *user);
#ifdef WIN32
#if defined(WIN32) && !defined(NO_IPADDR_MONITOR)
void CALLBACK ILibIPAddressMonitor_dispatch(
IN DWORD dwError,
IN DWORD cbTransferred,
@@ -84,6 +85,7 @@ void ILibIPAddressMonitor_MicrostackThreadDispatch(void *chain, void *user)
}
#endif
#ifndef NO_IPADDR_MONITOR
void ILibIPAddressMonitor_Destroy(void *object)
{
#ifndef __APPLE__
@@ -132,10 +134,12 @@ void ILibIPAddressMonitor_PostSelect(void* object, int slct, fd_set *readset, fd
}
}
#endif
#endif
ILibIPAddressMonitor ILibIPAddressMonitor_Create(void *chain, ILibIPAddressMonitor_Handler handler, void *user)
{
_ILibIPAddressMonitor *obj = (_ILibIPAddressMonitor*)ILibChain_Link_Allocate(ILibMemory_IPAddressMonitor_CONTAINER_SIZE, 0);
#ifndef NO_IPADDR_MONITOR
obj->onUpdate = handler;
obj->user = user;
#ifdef WIN32
@@ -165,5 +169,8 @@ ILibIPAddressMonitor ILibIPAddressMonitor_Create(void *chain, ILibIPAddressMonit
obj->chainLink.DestroyHandler = ILibIPAddressMonitor_Destroy;
ILibAddToChain(chain, obj);
#endif
return((ILibIPAddressMonitor)obj);
}