esp-idf/components/esp32/ld/esp32.spiram.rom-functions-dram.ld
Angus Gratton 79b450cfb4 esp32 psram: Provide library name for ROM libc objects linked as PSRAM workarounds
Fixes bug reported on forums where any source file ending in *lock.c or *creat.c
was being linked to IRAM.

https://esp32.com/viewtopic.php?f=13&t=8909&p=37362#p37362
2019-02-20 00:30:25 +00:00

144 lines
9.0 KiB
Plaintext

/*
If the Newlib 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.
This file is responsible for placing the rodata segment in DRAM.
*/
*libc-psram-workaround.a:*lib_a-utoa.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-longjmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-setjmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-abs.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-div.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-labs.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ldiv.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-quorem.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-qsort.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-utoa.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-itoa.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-atoi.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-atol.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strtol.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strtoul.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-wcrtomb.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fvwrite.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-wbuf.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-wsetup.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fputwc.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-wctomb_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ungetc.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-makebuf.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fflush.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-refill.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-s_fpclassify.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-locale.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-asctime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ctime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ctime_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-lcltime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-lcltime_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-gmtime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-gmtime_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strftime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-mktime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-syswrite.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzset_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzset.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-toupper.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tolower.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-toascii.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-systimes.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-time.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-bsd_qsort_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-qsort_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-gettzinfo.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strupr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-asctime_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-bzero.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-close.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-creat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-environ.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fclose.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isalnum.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isalpha.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isascii.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isblank.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-iscntrl.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isdigit.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isgraph.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-islower.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isprint.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ispunct.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isspace.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-isupper.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memccpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memchr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memcmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memcpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memmove.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memrchr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-memset.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-open.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-rand.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-rand_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-read.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-rshift.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sbrk.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-srand.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcasecmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcasestr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strchr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcoll.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strcspn.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strdup.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strlcat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strlcpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strlen.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strlwr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strncasecmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strncat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strncmp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strncpy.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strndup.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strnlen.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strrchr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strsep.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strspn.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strstr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strtok_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strupr.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-stdio.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-syssbrk.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sysclose.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sysopen.o(.rodata .rodata.*)
*libc-psram-workaround.a:*creat.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sysread.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-syswrite.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-impure.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzvars.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sf_nan.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzcalc_limits.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-month_lengths.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-timelocal.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-findfp.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lock.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-getenv_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*isatty.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-fwalk.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-getenv_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-tzlock.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-ctype_.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-sccl.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strptime.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-envlock.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-raise.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strdup_r.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-system.o(.rodata .rodata.*)
*libc-psram-workaround.a:*lib_a-strndup_r.o(.rodata .rodata.*)