Commit e3bac870 authored by Dmitry Frank's avatar Dmitry Frank Committed by Cesanta Bot

Make mongoose compile with ARMCC

(It compiles, but doesn't really work yet)

PUBLISHED_FROM=0382d355a343bdab9c9eeed87229efe90c30c40b
parent 1f095052
...@@ -1722,6 +1722,20 @@ const char *c_strnstr(const char *s, const char *find, size_t slen) { ...@@ -1722,6 +1722,20 @@ const char *c_strnstr(const char *s, const char *find, size_t slen) {
return NULL; return NULL;
} }
/*
* ARM C Compiler doesn't have strdup, so we provide it
*/
#if defined(__ARMCC_VERSION)
char *strdup(const char *src) {
size_t len = strlen(src) + 1;
char *ret = malloc(len);
if (ret != NULL) {
strcpy(ret, src);
}
return ret;
}
#endif
#endif /* EXCLUDE_COMMON */ #endif /* EXCLUDE_COMMON */
#ifdef MG_MODULE_LINES #ifdef MG_MODULE_LINES
#line 1 "mongoose/src/net.c" #line 1 "mongoose/src/net.c"
...@@ -10012,6 +10026,22 @@ int gettimeofday(struct timeval *tp, void *tzp) { ...@@ -10012,6 +10026,22 @@ int gettimeofday(struct timeval *tp, void *tzp) {
#endif /* CS_PLATFORM == CS_P_MSP432 */ #endif /* CS_PLATFORM == CS_P_MSP432 */
#ifdef MG_MODULE_LINES #ifdef MG_MODULE_LINES
#line 1 "common/platforms/nrf5/nrf5_libc.c"
#endif
/*
* Copyright (c) 2014-2016 Cesanta Software Limited
* All rights reserved
*/
#if CS_PLATFORM == CS_P_NRF52 && defined(__ARMCC_VERSION)
int gettimeofday(struct timeval *tp, void *tzp) {
/* TODO */
tp->tv_sec = 0;
tp->tv_usec = 0;
return 0;
}
#endif
#ifdef MG_MODULE_LINES
#line 1 "common/platforms/simplelink/sl_fs_slfs.h" #line 1 "common/platforms/simplelink/sl_fs_slfs.h"
#endif #endif
/* /*
...@@ -11348,7 +11378,7 @@ void mg_lwip_mgr_schedule_poll(struct mg_mgr *mgr); ...@@ -11348,7 +11378,7 @@ void mg_lwip_mgr_schedule_poll(struct mg_mgr *mgr);
# define TCP_NEW tcp_new_ip6 # define TCP_NEW tcp_new_ip6
# define TCP_BIND tcp_bind_ip6 # define TCP_BIND tcp_bind_ip6
# define UDP_BIND udp_bind_ip6 # define UDP_BIND udp_bind_ip6
# define IPADDR_NTOA ip6addr_ntoa # define IPADDR_NTOA(x) ip6addr_ntoa((const ip6_addr_t *)(x))
# define SET_ADDR(dst, src) \ # define SET_ADDR(dst, src) \
memcpy((dst)->sin6.sin6_addr.s6_addr, (src)->ip6.addr, \ memcpy((dst)->sin6.sin6_addr.s6_addr, (src)->ip6.addr, \
sizeof((dst)->sin6.sin6_addr.s6_addr)) sizeof((dst)->sin6.sin6_addr.s6_addr))
......
...@@ -850,11 +850,18 @@ int inet_pton(int af, const char *src, void *dst); ...@@ -850,11 +850,18 @@ int inet_pton(int af, const char *src, void *dst);
#define to64(x) strtoll(x, NULL, 10) #define to64(x) strtoll(x, NULL, 10)
#define MG_NET_IF MG_NET_IF_LWIP_LOW_LEVEL #define MG_NET_IF MG_NET_IF_LWIP_LOW_LEVEL
#define LWIP_TIMEVAL_PRIVATE 0
#define LWIP_PROVIDE_ERRNO 1 #define LWIP_PROVIDE_ERRNO 1
#define MG_LWIP 1 #define MG_LWIP 1
#define MG_ENABLE_IPV6 1 #define MG_ENABLE_IPV6 1
/*
* For ARM C Compiler, make lwip to export `struct timeval`; for other
* compilers, suppress it.
*/
#if !defined(__ARMCC_VERSION)
# define LWIP_TIMEVAL_PRIVATE 0
#endif
#define INT64_FMT PRId64 #define INT64_FMT PRId64
#define SIZE_T_FMT "u" #define SIZE_T_FMT "u"
...@@ -1566,6 +1573,13 @@ int c_vsnprintf(char *buf, size_t buf_size, const char *format, va_list ap); ...@@ -1566,6 +1573,13 @@ int c_vsnprintf(char *buf, size_t buf_size, const char *format, va_list ap);
*/ */
const char *c_strnstr(const char *s, const char *find, size_t slen); const char *c_strnstr(const char *s, const char *find, size_t slen);
/*
* ARM C Compiler doesn't have strdup, so we provide it
*/
#if defined(__ARMCC_VERSION)
char *strdup(const char *src);
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment