Skip to content

Commit 55eec28

Browse files
committed
Add GCC-ARM large linker script for membrowse
1 parent 30f4443 commit 55eec28

6 files changed

Lines changed: 40 additions & 7 deletions

File tree

.github/membrowse-targets.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
"port": "gcc-arm",
115115
"board": "cortex-m4-pkcs7",
116116
"apt_packages": "gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib",
117-
"build_cmd": "test -f examples/configs/user_settings_pkcs7.h && mkdir -p IDE/GCC-ARM/Header-gen && { cat examples/configs/user_settings_pkcs7.h; printf '#define WOLFSSL_GENERAL_ALIGNMENT 4\\n#define SINGLE_THREADED\\n#define WOLFSSL_SMALL_STACK\\n#define NO_FILESYSTEM\\n#define NO_WRITEV\\n#define NO_MAIN_DRIVER\\n#define NO_DEV_RANDOM\\n#define BENCH_EMBEDDED\\n#define USE_CERT_BUFFERS_256\\n#define USE_CERT_BUFFERS_2048\\n#define WOLFSSL_IGNORE_FILE_WARN\\n#define WOLFSSL_USER_IO\\n#define WOLFSSL_USER_CURRTIME\\n#define TIME_OVERRIDES\\n#define USER_TICKS\\n#define XTIME my_time\\n#define XGMTIME my_gmtime\\n#define CUSTOM_RAND_TYPE unsigned int\\nextern unsigned int my_rng_seed_gen(void);\\n#undef CUSTOM_RAND_GENERATE\\n#define CUSTOM_RAND_GENERATE my_rng_seed_gen\\n#define HAVE_HASHDRBG\\n#define NO_CRYPT_TEST\\n#define NO_CRYPT_BENCHMARK\\n'; } > IDE/GCC-ARM/Header-gen/user_settings.h && cd IDE/GCC-ARM && make -f Makefile.test TOOLCHAIN=arm-none-eabi- FIPS=0 USER_SETTINGS_DIR=./Header-gen CFLAGS_EXTRA='-Wno-cpp -DWOLFSSL_NO_SOCK -DWOLFCRYPT_ONLY' LDFLAGS='-mcpu=cortex-m4 -mthumb -mabi=aapcs --specs=nosys.specs --specs=nano.specs -Wl,-Map=./Build/WolfCryptTest.map -Wl,-ereset_handler -flto -Wl,--defsym=__stack_process_end__=0x20010000'",
117+
"build_cmd": "test -f examples/configs/user_settings_pkcs7.h && mkdir -p IDE/GCC-ARM/Header-gen && { cat examples/configs/user_settings_pkcs7.h; printf '#define WOLFSSL_GENERAL_ALIGNMENT 4\\n#define SINGLE_THREADED\\n#define WOLFSSL_SMALL_STACK\\n#define NO_FILESYSTEM\\n#define NO_WRITEV\\n#define NO_MAIN_DRIVER\\n#define NO_DEV_RANDOM\\n#define BENCH_EMBEDDED\\n#define USE_CERT_BUFFERS_256\\n#define USE_CERT_BUFFERS_2048\\n#define WOLFSSL_IGNORE_FILE_WARN\\n#define WOLFSSL_USER_IO\\n#define CUSTOM_RAND_TYPE unsigned int\\nextern unsigned int my_rng_seed_gen(void);\\n#undef CUSTOM_RAND_GENERATE\\n#define CUSTOM_RAND_GENERATE my_rng_seed_gen\\n#define HAVE_HASHDRBG\\n#define NO_CRYPT_TEST\\n#define NO_CRYPT_BENCHMARK\\n'; } > IDE/GCC-ARM/Header-gen/user_settings.h && cd IDE/GCC-ARM && make -f Makefile.test TOOLCHAIN=arm-none-eabi- FIPS=0 USER_SETTINGS_DIR=./Header-gen CFLAGS_EXTRA='-Wno-cpp -DWOLFSSL_NO_SOCK -DWOLFCRYPT_ONLY' LDFLAGS='-mcpu=cortex-m4 -mthumb -mabi=aapcs --specs=nosys.specs --specs=nano.specs -Wl,-Map=./Build/WolfCryptTest.map -Wl,-ereset_handler -flto -Wl,--defsym=__stack_process_end__=0x20010000'",
118118
"elf": "IDE/GCC-ARM/Build/WolfCryptTest.elf",
119119
"ld": "IDE/GCC-ARM/linker.ld",
120120
"linker_vars": ""
@@ -124,7 +124,7 @@
124124
"port": "gcc-arm",
125125
"board": "cortex-m4-openssl-compat",
126126
"apt_packages": "gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib",
127-
"build_cmd": "test -f examples/configs/user_settings_openssl_compat.h && mkdir -p IDE/GCC-ARM/Header-gen && { cat examples/configs/user_settings_openssl_compat.h; printf '#define WOLFSSL_GENERAL_ALIGNMENT 4\\n#define SINGLE_THREADED\\n#define WOLFSSL_SMALL_STACK\\n#define SMALL_SESSION_CACHE\\n#undef HAVE_OCSP\\n#undef HAVE_CERTIFICATE_STATUS_REQUEST\\n#undef HAVE_CERTIFICATE_STATUS_REQUEST_V2\\n#define NO_FILESYSTEM\\n#define NO_WRITEV\\n#define NO_MAIN_DRIVER\\n#define NO_DEV_RANDOM\\n#define BENCH_EMBEDDED\\n#define USE_CERT_BUFFERS_256\\n#define USE_CERT_BUFFERS_2048\\n#define WOLFSSL_IGNORE_FILE_WARN\\n#define WOLFSSL_USER_IO\\n#define WOLFSSL_USER_CURRTIME\\n#define TIME_OVERRIDES\\n#define USER_TICKS\\n#define XTIME my_time\\n#define XGMTIME my_gmtime\\n#define CUSTOM_RAND_TYPE unsigned int\\nextern unsigned int my_rng_seed_gen(void);\\n#undef CUSTOM_RAND_GENERATE\\n#define CUSTOM_RAND_GENERATE my_rng_seed_gen\\n#define HAVE_HASHDRBG\\n#define NO_CRYPT_TEST\\n#define NO_CRYPT_BENCHMARK\\n'; } > IDE/GCC-ARM/Header-gen/user_settings.h && cd IDE/GCC-ARM && make -f Makefile.test TOOLCHAIN=arm-none-eabi- FIPS=0 USER_SETTINGS_DIR=./Header-gen SRC_LD=-T./linker_large.ld CFLAGS_EXTRA='-Wno-cpp -DWOLFSSL_NO_SOCK' LDFLAGS='-mcpu=cortex-m4 -mthumb -mabi=aapcs --specs=nosys.specs --specs=nano.specs -Wl,-Map=./Build/WolfCryptTest.map -Wl,-ereset_handler -flto -Wl,--defsym=__stack_process_end__=0x20040000'",
127+
"build_cmd": "test -f examples/configs/user_settings_openssl_compat.h && mkdir -p IDE/GCC-ARM/Header-gen && { cat examples/configs/user_settings_openssl_compat.h; printf '#define WOLFSSL_GENERAL_ALIGNMENT 4\\n#define SINGLE_THREADED\\n#define WOLFSSL_SMALL_STACK\\n#define SMALL_SESSION_CACHE\\n#undef HAVE_OCSP\\n#undef HAVE_CERTIFICATE_STATUS_REQUEST\\n#undef HAVE_CERTIFICATE_STATUS_REQUEST_V2\\n#define NO_FILESYSTEM\\n#define NO_WRITEV\\n#define NO_MAIN_DRIVER\\n#define NO_DEV_RANDOM\\n#define BENCH_EMBEDDED\\n#define USE_CERT_BUFFERS_256\\n#define USE_CERT_BUFFERS_2048\\n#define WOLFSSL_IGNORE_FILE_WARN\\n#define WOLFSSL_USER_IO\\n#define USER_TICKS\\n#define CUSTOM_RAND_TYPE unsigned int\\nextern unsigned int my_rng_seed_gen(void);\\n#undef CUSTOM_RAND_GENERATE\\n#define CUSTOM_RAND_GENERATE my_rng_seed_gen\\n#define HAVE_HASHDRBG\\n#define NO_CRYPT_TEST\\n#define NO_CRYPT_BENCHMARK\\n'; } > IDE/GCC-ARM/Header-gen/user_settings.h && cd IDE/GCC-ARM && make -f Makefile.test TOOLCHAIN=arm-none-eabi- FIPS=0 USER_SETTINGS_DIR=./Header-gen SRC_LD=-T./linker_large.ld CFLAGS_EXTRA='-Wno-cpp -DWOLFSSL_NO_SOCK' LDFLAGS='-mcpu=cortex-m4 -mthumb -mabi=aapcs --specs=nosys.specs --specs=nano.specs -Wl,-Map=./Build/WolfCryptTest.map -Wl,-ereset_handler -flto -Wl,--defsym=__stack_process_end__=0x20040000'",
128128
"elf": "IDE/GCC-ARM/Build/WolfCryptTest.elf",
129129
"ld": "IDE/GCC-ARM/linker_large.ld",
130130
"linker_vars": ""

IDE/GCC-ARM/Source/wolf_main.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
#include <stdio.h>
2828
#include <stdarg.h>
2929
#include <string.h>
30+
#ifdef NO_ASN_TIME
31+
#include <time.h>
32+
#endif
3033

3134

3235
/* TIME CODE */

IDE/GCC-ARM/linker_large.ld

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
MEMORY
2+
{
3+
FLASH (wx) : ORIGIN = 0x00000000, LENGTH = 1024K
4+
RAM (wx) : ORIGIN = 0x20000000, LENGTH = 256K
5+
}
6+
7+
SECTIONS
8+
{
9+
__vectors_start__ = .;
10+
.vectors : { *(.vectors) } > FLASH
11+
__vectors_end__ = __vectors_start__ + 0x400;
12+
.sys : { *(.sys*) } > FLASH
13+
.text : { *(.text*) } > FLASH
14+
.rodata : { *(.rodata*) } > FLASH
15+
16+
__data_load_start__ = .;
17+
__data_start__ = .;
18+
.data : { *(.data*) } > RAM
19+
__data_end__ = __data_start__ + SIZEOF(.data);
20+
21+
__bss_start__ = .;
22+
.bss : { *(.bss*) } > RAM
23+
__bss_end__ = __bss_start__ + SIZEOF(.bss);
24+
25+
__heap_start__ = .;
26+
.heap : { *(.heap*) } > RAM
27+
__heap_end__ = __heap_start__ + SIZEOF(.heap);
28+
29+
end = .;
30+
}

src/ssl_asn1.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3965,7 +3965,7 @@ int wolfSSL_ASN1_TIME_compare(const WOLFSSL_ASN1_TIME *a,
39653965
return ret;
39663966
}
39673967

3968-
#if !defined(USER_TIME)
3968+
#if !defined(USER_TIME) && !defined(TIME_OVERRIDES)
39693969
/* Adjust the time into an ASN.1 TIME object.
39703970
*
39713971
* @param [in] a ASN.1 TIME object. May be NULL.
@@ -4004,7 +4004,7 @@ WOLFSSL_ASN1_TIME* wolfSSL_ASN1_TIME_adj(WOLFSSL_ASN1_TIME* a, time_t t,
40044004

40054005
return ret;
40064006
}
4007-
#endif /* !USER_TIME */
4007+
#endif /* !USER_TIME && !TIME_OVERRIDES */
40084008

40094009
/* Get the length of the ASN.1 TIME data.
40104010
*

wolfcrypt/src/asn.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15067,7 +15067,7 @@ int ValidateGmtime(struct tm* inTime)
1506715067
}
1506815068

1506915069
#if !defined(NO_ASN_TIME) && !defined(USER_TIME) && \
15070-
(defined(OPENSSL_EXTRA) || \
15070+
!defined(TIME_OVERRIDES) && (defined(OPENSSL_EXTRA) || \
1507115071
defined(HAVE_PKCS7) || defined(HAVE_OCSP_RESPONDER))
1507215072
/* Set current time string, either UTC or GeneralizedTime.
1507315073
* (void*) currTime should be a pointer to time_t, output is placed in buf.
@@ -15207,7 +15207,7 @@ int GetFormattedTime_ex(void* currTime, byte* buf, word32 len, byte format)
1520715207
return ret;
1520815208
}
1520915209

15210-
#endif /* !NO_ASN_TIME && !USER_TIME &&
15210+
#endif /* !NO_ASN_TIME && !USER_TIME && !TIME_OVERRIDES &&
1521115211
* (OPENSSL_EXTRA || HAVE_PKCS7) */
1521215212

1521315213
#if defined(USE_WOLF_VALIDDATE)

wolfssl/wolfcrypt/asn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2524,7 +2524,7 @@ WOLFSSL_LOCAL int GetTimeString(byte* date, int format, char* buf, int len,
25242524
int dateLen);
25252525
#endif
25262526
#if !defined(NO_ASN_TIME) && !defined(USER_TIME) && \
2527-
(defined(OPENSSL_EXTRA) || \
2527+
!defined(TIME_OVERRIDES) && (defined(OPENSSL_EXTRA) || \
25282528
defined(HAVE_PKCS7) || defined(HAVE_OCSP_RESPONDER))
25292529
WOLFSSL_LOCAL int GetFormattedTime(void* currTime, byte* buf, word32 len);
25302530
WOLFSSL_LOCAL int GetAsnTimeString(void* currTime, byte* buf, word32 len);

0 commit comments

Comments
 (0)