163 lines
5.9 KiB
Plaintext
163 lines
5.9 KiB
Plaintext
# If the Picolibc functions in ROM aren't used (eg because the external SPI RAM workaround is active), these functions will
|
|
# be linked into the application directly instead. Normally, they would end up in flash, which is undesirable because esp-idf
|
|
# and/or applications may assume that because these functions normally are in ROM, they are accessible even when flash is
|
|
# inaccessible. To work around this, this ld fragment places these functions in RAM instead. If the ROM functions are used,
|
|
# these defines do nothing, so they can still be included in that situation.
|
|
|
|
[mapping:libc]
|
|
archive:
|
|
libc.a
|
|
entries:
|
|
if SPIRAM_CACHE_WORKAROUND = y:
|
|
# The following libs are either used in a lot of places or in critical code. (such as panic or abort)
|
|
# Thus, they shall always be placed in IRAM.
|
|
libc_stdlib_itoa (noflash)
|
|
libc_string_memcmp (noflash)
|
|
libc_machine_xtensa_memcpy (noflash)
|
|
libc_machine_xtensa_memset (noflash)
|
|
libc_string_strcat (noflash)
|
|
libc_machine_xtensa_strcmp (noflash)
|
|
libc_machine_xtensa_strlen (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBJMP_IN_IRAM = y:
|
|
libc_machine_xtensa_longjmp (noflash)
|
|
libc_machine_xtensa_setjmp (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBMATH_IN_IRAM = y:
|
|
libc_stdlib_abs (noflash)
|
|
libc_stdlib_div (noflash)
|
|
libc_stdlib_labs (noflash)
|
|
libc_stdlib_ldiv (noflash)
|
|
libm_common_quorem (noflash)
|
|
libm_common_s_fpclassify (noflash)
|
|
libm_common_sf_nan (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBNUMPARSER_IN_IRAM = y:
|
|
libc_stdlib_utoa (noflash)
|
|
libc_stdlib_atoi (noflash)
|
|
libc_stdlib_atol (noflash)
|
|
libc_tinystdio_strtol (noflash)
|
|
libc_tinystdio_strtoul (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBIO_IN_IRAM = y:
|
|
libc_stdlib_wcrtomb (noflash)
|
|
libc_stdlib_fvwrite (noflash)
|
|
libc_stdlib_wbuf (noflash)
|
|
libc_stdlib_wsetup (noflash)
|
|
libc_tinystdio_fputwc (noflash)
|
|
libc_stdlib_wctomb_r (noflash)
|
|
libc_tinystdio_ungetc (noflash)
|
|
libc_tinystdio_makebuf (noflash)
|
|
libc_tinystdio_fflush (noflash)
|
|
libc_stdlib_refill (noflash)
|
|
libc_stdlib_sccl (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBTIME_IN_IRAM = y:
|
|
libc_time_asctime (noflash)
|
|
libc_time_asctime_r (noflash)
|
|
libc_time_ctime (noflash)
|
|
libc_time_ctime_r (noflash)
|
|
libc_time_lcltime (noflash)
|
|
libc_time_lcltime_r (noflash)
|
|
libc_time_gmtime (noflash)
|
|
libc_time_gmtime_r (noflash)
|
|
libc_time_strftime (noflash)
|
|
libc_time_mktime (noflash)
|
|
libc_time_tzset_r (noflash)
|
|
libc_time_tzset (noflash)
|
|
libc_time_time (noflash)
|
|
libc_time_gettzinfo (noflash)
|
|
libc_time_systimes (noflash)
|
|
libc_time_month_lengths (noflash)
|
|
libc_time_timelocal (noflash)
|
|
libc_time_tzvars (noflash)
|
|
libc_time_tzlock (noflash)
|
|
libc_time_tzcalc_limits (noflash)
|
|
libc_time_strptime (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBCHAR_IN_IRAM = y:
|
|
libc_ctype_ctype_ (noflash)
|
|
libc_ctype_toupper (noflash)
|
|
libc_ctype_tolower (noflash)
|
|
libc_ctype_toascii (noflash)
|
|
libc_string_strupr (noflash)
|
|
libc_string_bzero (noflash)
|
|
libc_ctype_isalnum (noflash)
|
|
libc_ctype_isalpha (noflash)
|
|
libc_ctype_isascii (noflash)
|
|
libc_ctype_isblank (noflash)
|
|
libc_ctype_iscntrl (noflash)
|
|
libc_ctype_isdigit (noflash)
|
|
libc_ctype_isgraph (noflash)
|
|
libc_ctype_islower (noflash)
|
|
libc_ctype_isprint (noflash)
|
|
libc_ctype_ispunct (noflash)
|
|
libc_ctype_isspace (noflash)
|
|
libc_ctype_isupper (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBMEM_IN_IRAM = y:
|
|
libc_string_memccpy (noflash)
|
|
libc_string_memchr (noflash)
|
|
libc_string_memmove (noflash)
|
|
libc_string_memrchr (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBSTR_IN_IRAM = y:
|
|
libc_string_strcasecmp (noflash)
|
|
libc_string_strcasestr (noflash)
|
|
libc_string_strchr (noflash)
|
|
libc_string_strcoll (noflash)
|
|
libc_string_strcpy (noflash)
|
|
libc_string_strcspn (noflash)
|
|
libc_string_strdup (noflash)
|
|
libc_string_strdup_r (noflash)
|
|
libc_string_strlcat (noflash)
|
|
libc_string_strlcpy (noflash)
|
|
libc_string_strlwr (noflash)
|
|
libc_string_strncasecmp (noflash)
|
|
libc_string_strncat (noflash)
|
|
libc_string_strncmp (noflash)
|
|
libc_string_strncpy (noflash)
|
|
libc_string_strndup (noflash)
|
|
libc_string_strndup_r (noflash)
|
|
libc_string_strnlen (noflash)
|
|
libc_string_strrchr (noflash)
|
|
libc_string_strsep (noflash)
|
|
libc_string_strspn (noflash)
|
|
libc_string_strstr (noflash)
|
|
libc_string_strtok_r (noflash)
|
|
libc_string_strupr (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBRAND_IN_IRAM = y:
|
|
libc_stdlib_srand (noflash)
|
|
libc_stdlib_rand (noflash)
|
|
libc_stdlib_rand_r (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBENV_IN_IRAM = y:
|
|
libc_stdlib_environ (noflash)
|
|
libc_stdlib_envlock (noflash)
|
|
libc_stdlib_getenv_r (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBFILE_IN_IRAM = y:
|
|
libc_tinystdio_lock (noflash)
|
|
libc_tinystdio_isatty (noflash)
|
|
libc_tinystdio_fclose (noflash)
|
|
libc_tinystdio_open (noflash)
|
|
libc_tinystdio_close (noflash)
|
|
libc_tinystdio_creat (noflash)
|
|
libc_tinystdio_read (noflash)
|
|
libc_tinystdio_rshift (noflash)
|
|
libc_tinystdio_sbrk (noflash)
|
|
libc_tinystdio_stdio (noflash)
|
|
libc_tinystdio_syssbrk (noflash)
|
|
libc_tinystdio_sysclose (noflash)
|
|
libc_tinystdio_sysopen (noflash)
|
|
libc_tinystdio_sysread (noflash)
|
|
libc_tinystdio_syswrite (noflash)
|
|
libc_tinystdio_impure (noflash)
|
|
libc_tinystdio_fwalk (noflash)
|
|
libc_tinystdio_findfp (noflash)
|
|
|
|
if SPIRAM_CACHE_LIBMISC_IN_IRAM = y:
|
|
libc_stdlib_raise (noflash)
|
|
libc_stdlib_system (noflash)
|