From cfba50811dc99a4f137d3ec725d8e6cf603d15b6 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Thu, 13 Jun 2019 17:56:13 +0800 Subject: [PATCH 1/2] spi_flash: fix unit tests compilation --- components/spi_flash/test/test_spi_flash.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/spi_flash/test/test_spi_flash.c b/components/spi_flash/test/test_spi_flash.c index 7e3f2d228a..bd135a0c7f 100644 --- a/components/spi_flash/test/test_spi_flash.c +++ b/components/spi_flash/test/test_spi_flash.c @@ -106,6 +106,10 @@ typedef struct { size_t repeat_count; } block_task_arg_t; +#ifdef CONFIG_IDF_TARGET_ESP32S2BETA +#define int_clr_timers int_clr +#endif + static void IRAM_ATTR timer_isr(void* varg) { block_task_arg_t* arg = (block_task_arg_t*) varg; TIMERG0.int_clr_timers.t0 = 1; From 7c723e121cb1f8534e4445080f9c54b5f2231636 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Thu, 13 Jun 2019 17:55:51 +0800 Subject: [PATCH 2/2] esp_rom: update ld scripts to export strong symbols Similar to commits for esp32 target: e84b26f5, 8c2f2867, 5719cd6f --- components/esp_rom/CMakeLists.txt | 47 +++--- .../esp_rom/esp32s2beta/ld/esp32s2beta.rom.ld | 100 ------------ .../esp32s2beta/ld/esp32s2beta.rom.libgcc.ld | 98 ++++++++++++ .../esp32s2beta/ld/esp32s2beta.rom.nanofmt.ld | 101 ------------ .../ld/esp32s2beta.rom.newlib-data.ld | 19 +++ .../ld/esp32s2beta.rom.newlib-funcs.ld | 96 ++++++++++++ .../ld/esp32s2beta.rom.newlib-stdio.ld | 54 +++++++ .../ld/esp32s2beta.rom.redefined.ld | 103 +++++++++++++ .../ld/esp32s2beta.rom.spiflash.ld | 45 +++--- ...esp32s2beta.rom.spiram_incompatible_fns.ld | 20 --- .../ld/esp32s2beta.rom.syscalls.ld | 60 ++++++++ .../esp32s2beta.spiram.rom-functions-dram.ld | 143 ----------------- .../esp32s2beta.spiram.rom-functions-iram.ld | 144 ------------------ 13 files changed, 474 insertions(+), 556 deletions(-) create mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.libgcc.ld delete mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.nanofmt.ld create mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-data.ld create mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-funcs.ld create mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-stdio.ld create mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.redefined.ld delete mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.spiram_incompatible_fns.ld create mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.syscalls.ld delete mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.spiram.rom-functions-dram.ld delete mode 100644 components/esp_rom/esp32s2beta/ld/esp32s2beta.spiram.rom-functions-iram.ld diff --git a/components/esp_rom/CMakeLists.txt b/components/esp_rom/CMakeLists.txt index 73b77702a6..74077a3f1a 100644 --- a/components/esp_rom/CMakeLists.txt +++ b/components/esp_rom/CMakeLists.txt @@ -1,19 +1,16 @@ +idf_build_get_property(target IDF_TARGET) + if(BOOTLOADER_BUILD) # For bootloader, all we need is headers set(COMPONENT_ADD_INCLUDEDIRS "include") set(COMPONENT_REQUIRES ${IDF_COMPONENTS}) set(COMPONENT_SRCS) register_component() - idf_build_get_property(target IDF_TARGET) - set(scripts "${target}/ld/${target}.rom.ld") - if(target STREQUAL "esp32") - list(APPEND scripts - "${target}/ld/${target}.rom.newlib-funcs.ld" - "${target}/ld/${target}.rom.libgcc.ld") - elseif(target STREQUAL "esp32s2beta") - list(APPEND scripts - "${target}/ld/${target}.rom.spiflash.ld" - "${target}/ld/${target}.rom.spiram_incompatible_fns.ld") + set(scripts "${target}/ld/${target}.rom.ld" + "${target}/ld/${target}.rom.newlib-funcs.ld" + "${target}/ld/${target}.rom.libgcc.ld") + if (target STREQUAL "esp32s2beta") + list(APPEND scripts "esp32s2beta/ld/esp32s2beta.rom.spiflash.ld") endif() target_linker_script(${COMPONENT_LIB} "${scripts}") else() @@ -23,14 +20,13 @@ else() register_component() - if (IDF_TARGET STREQUAL "esp32") - set(scripts - "esp32/ld/esp32.rom.ld" - "esp32/ld/esp32.rom.libgcc.ld" - "esp32/ld/esp32.rom.syscalls.ld" - "esp32/ld/esp32.rom.newlib-data.ld" - ) - target_linker_script(${COMPONENT_LIB} "${scripts}") + set(scripts + "${target}/ld/${target}.rom.ld" + "${target}/ld/${target}.rom.libgcc.ld" + "${target}/ld/${target}.rom.newlib-data.ld") + + if (target STREQUAL "esp32") + list(APPEND scripts "${target}/ld/${target}.rom.syscalls.ld") if(NOT CONFIG_SPIRAM_CACHE_WORKAROUND) target_linker_script(${COMPONENT_LIB} "esp32/ld/esp32.rom.newlib-funcs.ld") @@ -48,12 +44,15 @@ else() target_linker_script(${COMPONENT_LIB} "esp32/ld/esp32.rom.spiflash.ld") endif() - elseif(IDF_TARGET STREQUAL "esp32s2beta") - set(scripts "esp32s2beta/ld/esp32s2beta.rom.ld" - "esp32s2beta/ld/esp32s2beta.rom.nanofmt.ld" - "esp32s2beta/ld/esp32s2beta.rom.spiflash.ld" - "esp32s2beta/ld/esp32s2beta.rom.spiram_incompatible_fns.ld") - target_linker_script(${COMPONENT_LIB} "${scripts}") + elseif(target STREQUAL "esp32s2beta") + # no SPIRAM workaround for esp32s2beta + # no nano formatting function in ROM + # no GCC 5.2.0 for esp32s2beta, hence not linking locale functions + + list(APPEND scripts "esp32s2beta/ld/esp32s2beta.rom.newlib-funcs.ld" + "esp32s2beta/ld/esp32s2beta.rom.spiflash.ld") endif() + target_linker_script(${COMPONENT_LIB} "${scripts}") + endif() diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.ld index 2380eac330..ee0b7332f6 100644 --- a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.ld +++ b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.ld @@ -3,22 +3,13 @@ ESP32C ROM address table Generated for ROM with MD5sum: f054d40c5f6b9207d3827460a6f5748c /home/jack/esp-rom/rom//.output/eagle/release/image/eagle.pro.rom.out */ -PROVIDE ( abort = 0x400151e0 ); PROVIDE ( abs = 0x4000073c ); -PROVIDE ( __absvdi2 = 0x40005eb4 ); -PROVIDE ( __absvsi2 = 0x40005ea0 ); PROVIDE ( acm_config_descr = 0x3ffae859 ); PROVIDE ( acm_usb_descriptors = 0x3ffae7b0 ); -PROVIDE ( __adddf3 = 0x40008a3c ); -PROVIDE ( __addsf3 = 0x40008594 ); -PROVIDE ( __addvdi3 = 0x4000916c ); -PROVIDE ( __addvsi3 = 0x40009148 ); PROVIDE ( app_gpio_arg = 0x3fffc9b4 ); PROVIDE ( app_gpio_handler = 0x3fffc9b8 ); PROVIDE ( __ascii_mbtowc = 0x40007de0 ); PROVIDE ( __ascii_wctomb = 0x40001cac ); -PROVIDE ( __ashldi3 = 0x4001622c ); -PROVIDE ( __ashrdi3 = 0x40016244 ); PROVIDE ( __assert = 0x4001565c ); PROVIDE ( __assert_func = 0x40015634 ); PROVIDE ( atoi = 0x40000adc ); @@ -26,8 +17,6 @@ PROVIDE ( _atoi_r = 0x40000aec ); PROVIDE ( atol = 0x40000b04 ); PROVIDE ( _atol_r = 0x40000b14 ); PROVIDE ( boot_prepare = 0x4000c020 ); -PROVIDE ( __bswapdi2 = 0x40007110 ); -PROVIDE ( __bswapsi2 = 0x400070e8 ); PROVIDE ( bzero = 0x40007ca4 ); PROVIDE ( Cache_Address_Through_DCache = 0x40013b50 ); PROVIDE ( Cache_Address_Through_ICache = 0x40013b10 ); @@ -125,11 +114,6 @@ PROVIDE ( _cleanup_r = 0x400156ac ); PROVIDE ( __clear_cache = 0x40005e98 ); PROVIDE ( close = 0x4000848c ); PROVIDE ( _close_r = 0x40015378 ); -PROVIDE ( __clrsbdi2 = 0x40007184 ); -PROVIDE ( __clrsbsi2 = 0x4000716c ); -PROVIDE ( __clzdi2 = 0x40016464 ); -PROVIDE ( __clzsi2 = 0x400161fc ); -PROVIDE ( __cmpdi2 = 0x40005e58 ); PROVIDE ( cpio_destroy = 0x40012088 ); PROVIDE ( cpio_done = 0x40012054 ); PROVIDE ( cpio_feed = 0x40011d5c ); @@ -142,8 +126,6 @@ PROVIDE ( crc8_be = 0x4000e7b4 ); PROVIDE ( crc8_le = 0x4000e784 ); PROVIDE ( creat = 0x40007c68 ); PROVIDE ( _ctype_ = 0x3ffab96c ); -PROVIDE ( __ctzdi2 = 0x40016478 ); -PROVIDE ( __ctzsi2 = 0x40016204 ); PROVIDE ( _cvt = 0x4000c6d8 ); PROVIDE ( _data_end_all_pro = 0x3fffdd10 ); PROVIDE ( _data_end_c = 0x3fffc040 ); @@ -224,12 +206,6 @@ PROVIDE ( dh_group5_prime = 0x3ffad899 ); PROVIDE ( disable_default_watchdog = 0x4000bf84 ); PROVIDE ( Disable_QMode = 0x40012d24 ); PROVIDE ( div = 0x40000744 ); -PROVIDE ( __divdc3 = 0x40006c30 ); -PROVIDE ( __divdf3 = 0x40008e00 ); -PROVIDE ( __divdi3 = 0x40016498 ); -PROVIDE ( __divsc3 = 0x40006920 ); -PROVIDE ( __divsf3 = 0x400087f8 ); -PROVIDE ( __divsi3 = 0x400161cc ); PROVIDE ( _DoubleExceptionVector = 0x400003c0 ); PROVIDE ( _DoubleExceptionVector_text_end = 0x400003c6 ); PROVIDE ( _DoubleExceptionVector_text_start = 0x400003c0 ); @@ -237,8 +213,6 @@ PROVIDE ( _dram0_0_start = 0x3fffc000 ); PROVIDE ( _dram0_1_start = 0x3fffdd00 ); PROVIDE ( dummy_len_plus = 0x3fffc250 ); PROVIDE ( Enable_QMode = 0x40012cd4 ); -PROVIDE ( __eqdf2 = 0x40005ce0 ); -PROVIDE ( __eqsf2 = 0x400059ac ); PROVIDE ( esp_crc8 = 0x4000e7e0 ); PROVIDE ( _etext = 0x400170fc ); PROVIDE ( ets_aes_block = 0x4000aa2c ); @@ -337,13 +311,6 @@ PROVIDE ( ets_sha_starts = 0x4000d27c ); PROVIDE ( ets_sha_update = 0x4000d484 ); PROVIDE ( ets_startup_callback = 0x3fffcd24 ); PROVIDE ( ets_task = 0x4000acbc ); -PROVIDE ( ets_timer_arm = 0x4000d76c ); -PROVIDE ( ets_timer_arm_us = 0x4000d7b0 ); -PROVIDE ( ets_timer_disarm = 0x4000d7f0 ); -PROVIDE ( ets_timer_done = 0x4000d82c ); -PROVIDE ( ets_timer_handler_isr = 0x4000d858 ); -PROVIDE ( ets_timer_init = 0x4000d8ec ); -PROVIDE ( ets_timer_setfn = 0x4000d754 ); PROVIDE ( ets_unpack_flash_code_legacy = 0x4000e138 ); PROVIDE ( ets_update_cpu_frequency = 0x4000d954 ); PROVIDE ( ets_vprintf = 0x4000c75c ); @@ -353,38 +320,20 @@ PROVIDE ( ets_write_char = 0x4000c694 ); PROVIDE ( ets_write_char_uart = 0x4000c6b8 ); PROVIDE ( exc_cause_table = 0x3ffabda8 ); PROVIDE ( _exit_r = 0x40015364 ); -PROVIDE ( __extendsfdf2 = 0x400090e4 ); PROVIDE ( fclose = 0x40015a30 ); PROVIDE ( _fclose_r = 0x40015940 ); PROVIDE ( fflush = 0x40001f94 ); PROVIDE ( _fflush_r = 0x40001f0c ); -PROVIDE ( __ffsdi2 = 0x40016440 ); -PROVIDE ( __ffssi2 = 0x40016218 ); PROVIDE ( FilePacketSendDeflatedReqMsgProc = 0x4000ec20 ); PROVIDE ( FilePacketSendReqMsgProc = 0x4000e920 ); PROVIDE ( fiprintf = 0x40000e18 ); PROVIDE ( _fiprintf_r = 0x40000df4 ); -PROVIDE ( __fixdfdi = 0x40008f74 ); -PROVIDE ( __fixdfsi = 0x40008f28 ); -PROVIDE ( __fixsfdi = 0x400088f8 ); -PROVIDE ( __fixsfsi = 0x400088b8 ); -PROVIDE ( __fixunsdfsi = 0x40008fe0 ); -PROVIDE ( __fixunssfdi = 0x400089b0 ); -PROVIDE ( __fixunssfsi = 0x40008958 ); PROVIDE ( flashchip = 0x3fffc230 ); PROVIDE ( FlashDwnLdDeflatedStartMsgProc = 0x4000ebc8 ); PROVIDE ( FlashDwnLdParamCfgMsgProc = 0x4000ea08 ); PROVIDE ( FlashDwnLdStartMsgProc = 0x4000e8bc ); PROVIDE ( FlashDwnLdStopDeflatedReqMsgProc = 0x4000ed20 ); PROVIDE ( FlashDwnLdStopReqMsgProc = 0x4000e9d8 ); -PROVIDE ( __floatdidf = 0x4001639c ); -PROVIDE ( __floatdisf = 0x400162d4 ); -PROVIDE ( __floatsidf = 0x40016358 ); -PROVIDE ( __floatsisf = 0x40016284 ); -PROVIDE ( __floatundidf = 0x4001638c ); -PROVIDE ( __floatundisf = 0x400162c4 ); -PROVIDE ( __floatunsidf = 0x4001634c ); -PROVIDE ( __floatunsisf = 0x40016278 ); PROVIDE ( __fp_lock_all = 0x40015864 ); PROVIDE ( fprintf = 0x40000e18 ); PROVIDE ( _fprintf_r = 0x40000df4 ); @@ -397,11 +346,8 @@ PROVIDE ( _free_r = 0x40015208 ); PROVIDE ( _fstat_r = 0x40015308 ); PROVIDE ( _fwalk = 0x40016efc ); PROVIDE ( _fwalk_reent = 0x40016f34 ); -PROVIDE ( __gcc_bcmp = 0x400071bc ); -PROVIDE ( __gedf2 = 0x40005da0 ); PROVIDE ( general_device_descr = 0x3fffc2a8 ); PROVIDE ( _GeneralException = 0x400077ab ); -PROVIDE ( __gesf2 = 0x40005a44 ); PROVIDE ( get_id = 0x4001272c ); PROVIDE ( _getpid_r = 0x40015338 ); PROVIDE ( __getreent = 0x400154c8 ); @@ -440,9 +386,7 @@ PROVIDE ( gpio_pin_wakeup_disable = 0x40014f48 ); PROVIDE ( gpio_pin_wakeup_enable = 0x40014f14 ); PROVIDE ( gpio_register_get = 0x40014d58 ); PROVIDE ( gpio_register_set = 0x40014c54 ); -PROVIDE ( __gtdf2 = 0x40005d14 ); PROVIDE ( g_ticks_per_us = 0x3fffcb00 ); -PROVIDE ( __gtsf2 = 0x400059d8 ); PROVIDE ( hmac_md5 = 0x4000586c ); PROVIDE ( hmac_md5_vector = 0x4000577c ); PROVIDE ( ibus_ahb_baseaddrs = 0x3ffae8f8 ); @@ -473,8 +417,6 @@ PROVIDE ( _KernelExceptionVector_text_start = 0x40000300 ); PROVIDE ( _kill_r = 0x4001534c ); PROVIDE ( labs = 0x4000076c ); PROVIDE ( ldiv = 0x40000774 ); -PROVIDE ( __ledf2 = 0x40005d3c ); -PROVIDE ( __lesf2 = 0x400059f8 ); PROVIDE ( _Level2FromVector = 0x400078d4 ); PROVIDE ( _Level2HandlerLabel = 0x00000000 ); PROVIDE ( _Level2InterruptVector_text_end = 0x40000186 ); @@ -517,9 +459,6 @@ PROVIDE ( _lock_try_acquire = 0x40015478 ); PROVIDE ( _lock_try_acquire_recursive = 0x4001548c ); PROVIDE ( longjmp = 0x400006c8 ); PROVIDE ( _lseek_r = 0x400153c8 ); -PROVIDE ( __lshrdi3 = 0x40016260 ); -PROVIDE ( __ltdf2 = 0x40005dc8 ); -PROVIDE ( __ltsf2 = 0x40005a64 ); PROVIDE ( main = 0x4000c390 ); PROVIDE ( malloc = 0x400154dc ); PROVIDE ( _malloc_r = 0x400151f0 ); @@ -557,42 +496,18 @@ PROVIDE ( memrchr = 0x40015f18 ); PROVIDE ( memset = 0x40015f68 ); PROVIDE ( MMU_Drom0_I2D_Copy = 0x40014788 ); PROVIDE ( MMU_Drom_ICache_Unmap = 0x400147a0 ); -PROVIDE ( __moddi3 = 0x40016760 ); -PROVIDE ( __modsi3 = 0x400161d4 ); -PROVIDE ( __muldc3 = 0x400062e8 ); -PROVIDE ( __muldf3 = 0x40005bc4 ); -PROVIDE ( __muldi3 = 0x40016410 ); -PROVIDE ( __mulsc3 = 0x40005f80 ); -PROVIDE ( __mulsf3 = 0x40005900 ); -PROVIDE ( __mulsi3 = 0x400161c4 ); PROVIDE ( multofup = 0x40009d90 ); -PROVIDE ( __mulvdi3 = 0x4000922c ); -PROVIDE ( __mulvsi3 = 0x40009214 ); PROVIDE ( mz_adler32 = 0x4000326c ); PROVIDE ( mz_crc32 = 0x40003334 ); PROVIDE ( mz_free = 0x40003380 ); -PROVIDE ( __nedf2 = 0x40005ce0 ); -PROVIDE ( __negdf2 = 0x40005ad8 ); -PROVIDE ( __negdi2 = 0x40016428 ); -PROVIDE ( __negsf2 = 0x4000856c ); -PROVIDE ( __negvdi2 = 0x40009348 ); -PROVIDE ( __negvsi2 = 0x40009328 ); -PROVIDE ( __nesf2 = 0x400059ac ); PROVIDE ( _NMIExceptionVector = 0x400002c0 ); PROVIDE ( _NMIExceptionVector_text_end = 0x400002c3 ); PROVIDE ( _NMIExceptionVector_text_start = 0x400002c0 ); -PROVIDE ( __nsau_data = 0x3ffaba70 ); PROVIDE ( open = 0x400084a0 ); PROVIDE ( _open_r = 0x40015390 ); PROVIDE ( __packed = 0x3fffc530 ); -PROVIDE ( __paritysi2 = 0x40009414 ); PROVIDE ( _PathLocale = 0x3fffc040 ); PROVIDE ( phy_get_romfuncs = 0x4000a8d4 ); -PROVIDE ( __popcountdi2 = 0x400093bc ); -PROVIDE ( __popcountsi2 = 0x40009384 ); -PROVIDE ( __popcount_tab = 0x3ffaba70 ); -PROVIDE ( __powidf2 = 0x40005f1c ); -PROVIDE ( __powisf2 = 0x40005ed4 ); PROVIDE ( _Pri_4_HandlerAddress = 0x3fffcfa8 ); PROVIDE ( _Pri_5_HandlerAddress = 0x3fffcfac ); PROVIDE ( _printf_common = 0x4000123c ); @@ -888,10 +803,6 @@ PROVIDE ( strtoul = 0x40000dcc ); PROVIDE ( strtoul_l = 0x40000db4 ); PROVIDE ( _strtoul_r = 0x40000d90 ); PROVIDE ( strupr = 0x40008460 ); -PROVIDE ( __subdf3 = 0x40008b90 ); -PROVIDE ( __subsf3 = 0x4000867c ); -PROVIDE ( __subvdi3 = 0x400091d0 ); -PROVIDE ( __subvsi3 = 0x400091ac ); PROVIDE ( s_usb_osglue = 0x3fffc520 ); PROVIDE ( __swbuf = 0x40001a58 ); PROVIDE ( __swbuf_r = 0x40001998 ); @@ -920,7 +831,6 @@ PROVIDE ( tinfl_decompress_mem_to_mem = 0x40004544 ); PROVIDE ( toascii = 0x400161bc ); PROVIDE ( tolower = 0x40008534 ); PROVIDE ( toupper = 0x40008550 ); -PROVIDE ( __truncdfsf2 = 0x40009040 ); PROVIDE ( uart_acm_dev = 0x3fffc9c0 ); PROVIDE ( uartAttach = 0x4000f524 ); PROVIDE ( uart_baudrate_detect = 0x4000f588 ); @@ -950,17 +860,7 @@ PROVIDE ( uart_tx_one_char2 = 0x4000f7b0 ); PROVIDE ( uart_tx_switch = 0x4000f57c ); PROVIDE ( uart_tx_wait_idle = 0x4000f7f4 ); PROVIDE ( uart_usb_enable_reset_on_rts = 0x4000f4e8 ); -PROVIDE ( __ucmpdi2 = 0x40005e78 ); -PROVIDE ( __udivdi3 = 0x40016a08 ); -PROVIDE ( __udivmoddi4 = 0x400071fc ); -PROVIDE ( __udivsi3 = 0x400161dc ); -PROVIDE ( __udiv_w_sdiv = 0x400071f4 ); -PROVIDE ( __umoddi3 = 0x40016c8c ); -PROVIDE ( __umodsi3 = 0x400161e4 ); -PROVIDE ( __umulsidi3 = 0x400161ec ); PROVIDE ( _unlink_r = 0x400152c0 ); -PROVIDE ( __unorddf2 = 0x40005e2c ); -PROVIDE ( __unordsf2 = 0x40005ab0 ); PROVIDE ( usb_cancel_transfer = 0x4001189c ); PROVIDE ( usb_data_stuff = 0x3ffabe48 ); PROVIDE ( usb_dc_attach = 0x400104f8 ); diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.libgcc.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.libgcc.ld new file mode 100644 index 0000000000..d53bd27e43 --- /dev/null +++ b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.libgcc.ld @@ -0,0 +1,98 @@ +/* Unlike other ROM functions which are exported using PROVIDE, which declares + weak symbols, these libgcc functions are exported using assignment, + which declares strong symbols. This is done so that ROM functions are always + used instead of the ones provided by libgcc.a. +*/ + +__absvdi2 = 0x40005eb4; +__absvsi2 = 0x40005ea0; +__adddf3 = 0x40008a3c; +__addsf3 = 0x40008594; +__addvdi3 = 0x4000916c; +__addvsi3 = 0x40009148; +__ashldi3 = 0x4001622c; +__ashrdi3 = 0x40016244; +__bswapdi2 = 0x40007110; +__bswapsi2 = 0x400070e8; +__clrsbdi2 = 0x40007184; +__clrsbsi2 = 0x4000716c; +__clzdi2 = 0x40016464; +__clzsi2 = 0x400161fc; +__cmpdi2 = 0x40005e58; +__ctzdi2 = 0x40016478; +__ctzsi2 = 0x40016204; +__divdc3 = 0x40006c30; +__divdf3 = 0x40008e00; +__divdi3 = 0x40016498; +__divsc3 = 0x40006920; +__divsf3 = 0x400087f8; +__divsi3 = 0x400161cc; +__eqdf2 = 0x40005ce0; +__eqsf2 = 0x400059ac; +__extendsfdf2 = 0x400090e4; +__ffsdi2 = 0x40016440; +__ffssi2 = 0x40016218; +__fixdfdi = 0x40008f74; +__fixdfsi = 0x40008f28; +__fixsfdi = 0x400088f8; +__fixsfsi = 0x400088b8; +__fixunsdfsi = 0x40008fe0; +__fixunssfdi = 0x400089b0; +__fixunssfsi = 0x40008958; +__floatdidf = 0x4001639c; +__floatdisf = 0x400162d4; +__floatsidf = 0x40016358; +__floatsisf = 0x40016284; +__floatundidf = 0x4001638c; +__floatundisf = 0x400162c4; +__floatunsidf = 0x4001634c; +__floatunsisf = 0x40016278; +__gcc_bcmp = 0x400071bc; +__gedf2 = 0x40005da0; +__gesf2 = 0x40005a44; +__gtdf2 = 0x40005d14; +__gtsf2 = 0x400059d8; +__ledf2 = 0x40005d3c; +__lesf2 = 0x400059f8; +__lshrdi3 = 0x40016260; +__ltdf2 = 0x40005dc8; +__ltsf2 = 0x40005a64; +__moddi3 = 0x40016760; +__modsi3 = 0x400161d4; +__muldc3 = 0x400062e8; +__muldf3 = 0x40005bc4; +__muldi3 = 0x40016410; +__mulsc3 = 0x40005f80; +__mulsf3 = 0x40005900; +__mulsi3 = 0x400161c4; +__mulvdi3 = 0x4000922c; +__mulvsi3 = 0x40009214; +__nedf2 = 0x40005ce0; +__negdf2 = 0x40005ad8; +__negdi2 = 0x40016428; +__negsf2 = 0x4000856c; +__negvdi2 = 0x40009348; +__negvsi2 = 0x40009328; +__nesf2 = 0x400059ac; +__nsau_data = 0x3ffaba70; +__paritysi2 = 0x40009414; +__popcountdi2 = 0x400093bc; +__popcountsi2 = 0x40009384; +__popcount_tab = 0x3ffaba70; +__powidf2 = 0x40005f1c; +__powisf2 = 0x40005ed4; +__subdf3 = 0x40008b90; +__subsf3 = 0x4000867c; +__subvdi3 = 0x400091d0; +__subvsi3 = 0x400091ac; +__truncdfsf2 = 0x40009040; +__ucmpdi2 = 0x40005e78; +__udivdi3 = 0x40016a08; +__udivmoddi4 = 0x400071fc; +__udivsi3 = 0x400161dc; +__udiv_w_sdiv = 0x400071f4; +__umoddi3 = 0x40016c8c; +__umodsi3 = 0x400161e4; +__umulsidi3 = 0x400161ec; +__unorddf2 = 0x40005e2c; +__unordsf2 = 0x40005ab0; diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.nanofmt.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.nanofmt.ld deleted file mode 100644 index 91f91c4fd2..0000000000 --- a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.nanofmt.ld +++ /dev/null @@ -1,101 +0,0 @@ -/* - Address table for printf/scanf family of functions in ESP32C ROM. - These functions are compiled with newlib "nano" format option. - As such, they don's support 64-bit integer formats. - Floating point formats are supported by setting _printf_float and - _scanf_float entries in syscall table. This is done automatically - by startup code. - - Generated for ROM with MD5sum: - b8cb1311c14d3fd5d32ed57d176e99d9 eagle.pro.rom.out -*/ - -/* - fucntions that support in ESP32, but not in ESP32C -PROVIDE ( asiprintf = 0x40056d9c ); -PROVIDE ( _asiprintf_r = 0x40056d4c ); -PROVIDE ( asniprintf = 0x40056cd8 ); -PROVIDE ( _asniprintf_r = 0x40056c64 ); -PROVIDE ( asnprintf = 0x40056cd8 ); -PROVIDE ( _asnprintf_r = 0x40056c64 ); -PROVIDE ( asprintf = 0x40056d9c ); -PROVIDE ( _asprintf_r = 0x40056d4c ); -PROVIDE ( fiscanf = 0x40058884 ); -PROVIDE ( _fiscanf_r = 0x400588b4 ); -PROVIDE ( iprintf = 0x40056978 ); -PROVIDE ( _iprintf_r = 0x40056944 ); -PROVIDE ( printf = 0x40056978 ); -PROVIDE ( _printf_r = 0x40056944 ); -PROVIDE ( __svfiscanf_r = 0x40057b08 ); -PROVIDE ( __svfscanf = 0x40057f04 ); -PROVIDE ( __svfscanf_r = 0x40057b08 ); -PROVIDE ( vasiprintf = 0x40056eb8 ); -PROVIDE ( _vasiprintf_r = 0x40056e80 ); -PROVIDE ( vasniprintf = 0x40056e58 ); -PROVIDE ( _vasniprintf_r = 0x40056df8 ); -PROVIDE ( vasnprintf = 0x40056e58 ); -PROVIDE ( _vasnprintf_r = 0x40056df8 ); -PROVIDE ( vasprintf = 0x40056eb8 ); -PROVIDE ( _vasprintf_r = 0x40056e80 ); -PROVIDE ( vfiscanf = 0x40057eb8 ); -PROVIDE ( _vfiscanf_r = 0x40057f24 ); -PROVIDE ( vfscanf = 0x40057eb8 ); -PROVIDE ( _vfscanf_r = 0x40057f24 ); -PROVIDE ( viprintf = 0x400569b4 ); -PROVIDE ( _viprintf_r = 0x400569e4 ); -PROVIDE ( viscanf = 0x40058698 ); -PROVIDE ( _viscanf_r = 0x400586c8 ); -PROVIDE ( vprintf = 0x400569b4 ); -PROVIDE ( _vprintf_r = 0x400569e4 ); -PROVIDE ( vscanf = 0x40058698 ); -PROVIDE ( _vscanf_r = 0x400586c8 ); -PROVIDE ( vsiprintf = 0x40056ac4 ); -PROVIDE ( _vsiprintf_r = 0x40056a90 ); -PROVIDE ( vsiscanf = 0x40058740 ); -PROVIDE ( _vsiscanf_r = 0x400586f8 ); -PROVIDE ( vsniprintf = 0x40056a68 ); -PROVIDE ( _vsniprintf_r = 0x40056a14 ); -PROVIDE ( vsnprintf = 0x40056a68 ); -PROVIDE ( _vsnprintf_r = 0x40056a14 ); -PROVIDE ( vsprintf = 0x40056ac4 ); -PROVIDE ( _vsprintf_r = 0x40056a90 ); -PROVIDE ( vsscanf = 0x40058740 ); -PROVIDE ( _vsscanf_r = 0x400586f8 ); -PROVIDE ( fscanf = 0x40058884 ); -PROVIDE ( _fscanf_r = 0x400588b4 ); -PROVIDE ( iscanf = 0x40058760 ); -PROVIDE ( _iscanf_r = 0x4005879c ); -PROVIDE ( scanf = 0x40058760 ); -PROVIDE ( _scanf_r = 0x4005879c ); -*/ -PROVIDE ( fiprintf = 0x400220d4 ); -PROVIDE ( _fiprintf_r = 0x400220b0 ); -PROVIDE ( fprintf = 0x400220d4 ); -PROVIDE ( _fprintf_r = 0x400220b0 ); -PROVIDE ( _printf_common = 0x40022510 ); -PROVIDE ( _printf_float = 0x4000dc40 ); -PROVIDE ( _printf_i = 0x400225dc ); -PROVIDE ( siprintf = 0x40022054 ); -PROVIDE ( _siprintf_r = 0x40022008 ); -PROVIDE ( sniprintf = 0x40021f98 ); -PROVIDE ( _sniprintf_r = 0x40021f30 ); -PROVIDE ( snprintf = 0x40021f98 ); -PROVIDE ( _snprintf_r = 0x40021f30 ); -PROVIDE ( sprintf = 0x40022054 ); -PROVIDE ( _sprintf_r = 0x40022008 ); -PROVIDE ( __sprint_r = 0x400230e8 ); -PROVIDE ( _svfiprintf_r = 0x400222d8 ); -PROVIDE ( _svfprintf_r = 0x400222d8 ); -PROVIDE ( vfiprintf = 0x400233ec ); -PROVIDE ( _vfiprintf_r = 0x40023154 ); -PROVIDE ( vfprintf = 0x400233ec ); -PROVIDE ( _vfprintf_r = 0x40023154 ); -PROVIDE ( _scanf_chars = 0x40022d4c ); -PROVIDE ( _scanf_float = 0x4000dc5c ); -PROVIDE ( _scanf_i = 0x40022e24 ); -PROVIDE ( siscanf = 0x4002340c ); -PROVIDE ( _siscanf_r = 0x4002346c ); -PROVIDE ( sscanf = 0x4002340c ); -PROVIDE ( _sscanf_r = 0x4002346c ); -PROVIDE ( __ssvfiscanf_r = 0x400229f4 ); -PROVIDE ( __ssvfscanf_r = 0x400229f4 ); diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-data.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-data.ld new file mode 100644 index 0000000000..dd4d696503 --- /dev/null +++ b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-data.ld @@ -0,0 +1,19 @@ +/* These are the .bss/.data symbols used by newlib functions present in ESP32S2beta ROM. + See also esp32s2beta.rom.newlib-funcs.ld for the list of general newlib functions, + and esp32s2beta.rom.newlib-stdio.ld for stdio related newlib functions. + + Unlike other ROM functions and data which are exported using PROVIDE, which declares + weak symbols, newlib related functions are exported using assignment, + which declares strong symbols. This is done so that ROM functions are always + used instead of the ones provided by libc.a. + */ + +_ctype_ = 0x3ffab96c; +__default_global_locale = 0x3ffab800; +_global_impure_ptr = 0x3fffc04c; +__global_locale_ptr = 0x3fffc030; +__locale_ctype_ptr = 0x40002008; +__locale_ctype_ptr_l = 0x40002000; +__locale_mb_cur_max = 0x40001fe8; +__packed = 0x3fffc530; +_PathLocale = 0x3fffc040; diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-funcs.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-funcs.ld new file mode 100644 index 0000000000..22b41594b5 --- /dev/null +++ b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-funcs.ld @@ -0,0 +1,96 @@ +/* These are the newlib functions present in ESP32S2beta ROM. + See also esp32s2beta.rom.newlib-data.ld for the list of .data/.bss symbols + used by these functions, and esp32s2beta.rom.newlib-stdio.ld for stdio related + functions. + + Unlike other ROM functions which are exported using PROVIDE, which declares + weak symbols, newlib related functions are exported using assignment, + which declares strong symbols. This is done so that ROM functions are always + used instead of the ones provided by libc.a. + */ + +abs = 0x4000073c; +__ascii_mbtowc = 0x40007de0; +__ascii_wctomb = 0x40001cac; +__assert = 0x4001565c; +__assert_func = 0x40015634; +atoi = 0x40000adc; +_atoi_r = 0x40000aec; +atol = 0x40000b04; +_atol_r = 0x40000b14; +bzero = 0x40007ca4; +_cvt = 0x4000c6d8; +div = 0x40000744; +isalnum = 0x40007cb4; +isalpha = 0x40007cc4; +isascii = 0x40015d18; +isblank = 0x40007cd4; +iscntrl = 0x40007cf4; +isdigit = 0x40007d0c; +isgraph = 0x40007d44; +islower = 0x40007d24; +isprint = 0x40007d5c; +ispunct = 0x40007d70; +isspace = 0x40007d88; +isupper = 0x40007da0; +itoa = 0x40000acc; +__itoa = 0x40000a90; +labs = 0x4000076c; +ldiv = 0x40000774; +longjmp = 0x400006c8; +_mbtowc_r = 0x40007dbc; +memccpy = 0x40015d2c; +memchr = 0x40015d50; +memcmp = 0x40015d6c; +memcpy = 0x40015dd4; +memmove = 0x40015edc; +memrchr = 0x40015f18; +memset = 0x40015f68; +pthread_setcancelstate = 0x400151d4; +qsort = 0x40000818; +rand = 0x40007e54; +rand_r = 0x40007ed0; +setjmp = 0x40000664; +srand = 0x40007e00; +strcasecmp = 0x40007f14; +strcasestr = 0x40007f58; +strcat = 0x40015fbc; +strchr = 0x40015fdc; +strcmp = 0x40007fc0; +strcoll = 0x400080c4; +strcpy = 0x400080d8; +strcspn = 0x40015ff8; +strdup = 0x40008160; +_strdup_r = 0x40008174; +strlcat = 0x40008194; +strlcpy = 0x40016024; +strlen = 0x400081e4; +strlwr = 0x40008244; +strncasecmp = 0x40008270; +strncat = 0x40016060; +strncmp = 0x40016090; +strncpy = 0x400082fc; +strndup = 0x400083c4; +_strndup_r = 0x400083d8; +strnlen = 0x400160c8; +strrchr = 0x4000841c; +strsep = 0x40008448; +strspn = 0x400160e8; +strstr = 0x40016114; +__strtok_r = 0x40016144; +strtok_r = 0x400161a8; +strtol = 0x40000c70; +strtol_l = 0x40000c58; +_strtol_r = 0x40000c34; +strtoul = 0x40000dcc; +strtoul_l = 0x40000db4; +_strtoul_r = 0x40000d90; +strupr = 0x40008460; +toascii = 0x400161bc; +tolower = 0x40008534; +toupper = 0x40008550; +utoa = 0x40000654; +__utoa = 0x400005f0; +wcrtomb = 0x400016d0; +_wcrtomb_r = 0x4000167c; +_wctomb_r = 0x40001c88; diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-stdio.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-stdio.ld new file mode 100644 index 0000000000..1b076838d3 --- /dev/null +++ b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.newlib-stdio.ld @@ -0,0 +1,54 @@ +/* These are the stdio related newlib functions present in ESP32S2beta ROM. + They are not used when compiling with newlib 3. +*/ + +PROVIDE ( fclose = 0x40015a30 ); +PROVIDE ( _fclose_r = 0x40015940 ); +PROVIDE ( fflush = 0x40001f94 ); +PROVIDE ( _fflush_r = 0x40001f0c ); +PROVIDE ( __fp_lock_all = 0x40015864 ); +PROVIDE ( _fwalk = 0x40016efc ); +PROVIDE ( _fwalk_reent = 0x40016f34 ); +PROVIDE ( fiprintf = 0x40000e18 ); +PROVIDE ( _fiprintf_r = 0x40000df4 ); +PROVIDE ( fprintf = 0x40000e18 ); +PROVIDE ( _fprintf_r = 0x40000df4 ); +PROVIDE ( __fp_unlock_all = 0x40015878 ); +PROVIDE ( fputwc = 0x40001c40 ); +PROVIDE ( __fputwc = 0x40001b4c ); +PROVIDE ( _fputwc_r = 0x40001bd4 ); +PROVIDE ( _printf_common = 0x4000123c ); +PROVIDE ( _printf_float = 0x40015538 ); +PROVIDE ( _printf_i = 0x40001308 ); +PROVIDE ( vfiprintf = 0x4000121c ); +PROVIDE ( _vfiprintf_r = 0x40000f34 ); +PROVIDE ( vfprintf = 0x4000121c ); +PROVIDE ( _vfprintf_r = 0x40000f34 ); +PROVIDE ( _scanf_float = 0x40015554 ); +PROVIDE ( __sclose = 0x4001592c ); +PROVIDE ( __seofread = 0x400158bc ); +PROVIDE ( __sf_fake_stderr = 0x3ffae938 ); +PROVIDE ( __sf_fake_stdin = 0x3ffae978 ); +PROVIDE ( __sf_fake_stdout = 0x3ffae958 ); +PROVIDE ( __sflush_r = 0x40001db8 ); +PROVIDE ( __sfmoreglue = 0x400156f4 ); +PROVIDE ( __sfp = 0x400157bc ); +PROVIDE ( __sfp_lock_acquire = 0x40015734 ); +PROVIDE ( __sfp_lock_release = 0x40015740 ); +PROVIDE ( __sfputs_r = 0x40000e7c ); +PROVIDE ( __sfvwrite_r = 0x400016ec ); +PROVIDE ( __sinit = 0x40015764 ); +PROVIDE ( __sinit_lock_acquire = 0x4001574c ); +PROVIDE ( __sinit_lock_release = 0x40015758 ); +PROVIDE ( __smakebuf_r = 0x40001d30 ); +PROVIDE ( __sprint_r = 0x40000ec8 ); +PROVIDE ( __sread = 0x4001588c ); +PROVIDE ( __sseek = 0x400158f8 ); +PROVIDE ( __swbuf = 0x40001a58 ); +PROVIDE ( __swbuf_r = 0x40001998 ); +PROVIDE ( __swhatbuf_r = 0x40001cd4 ); +PROVIDE ( __swrite = 0x400158c4 ); +PROVIDE ( __swsetup_r = 0x40001a6c ); +PROVIDE ( _cleanup = 0x40015724 ); +PROVIDE ( _cleanup_r = 0x400156ac ); +PROVIDE ( creat = 0x40007c68 ); diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.redefined.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.redefined.ld new file mode 100644 index 0000000000..04d949fd16 --- /dev/null +++ b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.redefined.ld @@ -0,0 +1,103 @@ +/* + ROM Functions defined in this file are not used in ESP-IDF as is, + and different definitions for functions with the same names are provided. + This file is not used when linking ESP-IDF and is intended for reference only +*/ + +PROVIDE ( abort = 0x400151e0 ); +PROVIDE ( ets_timer_arm = 0x4000d76c ); +PROVIDE ( ets_timer_arm_us = 0x4000d7b0 ); +PROVIDE ( ets_timer_disarm = 0x4000d7f0 ); +PROVIDE ( ets_timer_done = 0x4000d82c ); +PROVIDE ( ets_timer_handler_isr = 0x4000d858 ); +PROVIDE ( ets_timer_init = 0x4000d8ec ); +PROVIDE ( ets_timer_setfn = 0x4000d754 ); + +PROVIDE ( _KernelExceptionVector = 0x40000300 ); +PROVIDE ( _KernelExceptionVector_text_end = 0x40000306 ); +PROVIDE ( _KernelExceptionVector_text_start = 0x40000300 ); +PROVIDE ( _NMIExceptionVector = 0x400002c0 ); +PROVIDE ( _NMIExceptionVector_text_end = 0x400002c3 ); +PROVIDE ( _NMIExceptionVector_text_start = 0x400002c0 ); +PROVIDE ( _UserExceptionVector = 0x40000340 ); +PROVIDE ( _UserExceptionVector_text_end = 0x40000357 ); +PROVIDE ( _UserExceptionVector_text_start = 0x40000340 ); +PROVIDE ( _DebugExceptionVector = 0x40000280 ); +PROVIDE ( _DebugExceptionVector_text_end = 0x4000028b ); +PROVIDE ( _DebugExceptionVector_text_start = 0x40000280 ); +PROVIDE ( _DoubleExceptionVector = 0x400003c0 ); +PROVIDE ( _DoubleExceptionVector_text_end = 0x400003c6 ); +PROVIDE ( _DoubleExceptionVector_text_start = 0x400003c0 ); +PROVIDE ( _Level2FromVector = 0x400078d4 ); +PROVIDE ( _Level2HandlerLabel = 0x00000000 ); +PROVIDE ( _Level2InterruptVector_text_end = 0x40000186 ); +PROVIDE ( _Level2InterruptVector_text_start = 0x40000180 ); +PROVIDE ( _Level2Vector = 0x40000180 ); +PROVIDE ( _Level3FromVector = 0x40007970 ); +PROVIDE ( _Level3HandlerLabel = 0x00000000 ); +PROVIDE ( _Level3InterruptVector_text_end = 0x400001c6 ); +PROVIDE ( _Level3InterruptVector_text_start = 0x400001c0 ); +PROVIDE ( _Level3Vector = 0x400001c0 ); +PROVIDE ( _Level4FromVector = 0x40007a08 ); +PROVIDE ( _Level4HandlerLabel = 0x00000000 ); +PROVIDE ( _Level4InterruptVector_text_end = 0x40000206 ); +PROVIDE ( _Level4InterruptVector_text_start = 0x40000200 ); +PROVIDE ( _Level4Vector = 0x40000200 ); +PROVIDE ( _Level5FromVector = 0x40007b38 ); +PROVIDE ( _Level5HandlerLabel = 0x00000000 ); +PROVIDE ( _Level5InterruptVector_text_end = 0x40000246 ); +PROVIDE ( _Level5InterruptVector_text_start = 0x40000240 ); +PROVIDE ( _Level5Vector = 0x40000240 ); +PROVIDE ( _LevelOneInterrupt = 0x400077e6 ); +PROVIDE ( _ResetHandler = 0x4000044c ); +PROVIDE ( _ResetVector = 0x40000400 ); +PROVIDE ( _ResetVector_literal_end = 0x40000540 ); +PROVIDE ( _ResetVector_literal_start = 0x40000540 ); +PROVIDE ( _ResetVector_text_end = 0x4000053d ); +PROVIDE ( _ResetVector_text_start = 0x40000400 ); +PROVIDE ( _SyscallException = 0x40007706 ); +PROVIDE ( _WindowOverflow12 = 0x40000100 ); +PROVIDE ( _WindowOverflow4 = 0x40000000 ); +PROVIDE ( _WindowOverflow8 = 0x40000080 ); +PROVIDE ( _WindowUnderflow12 = 0x40000140 ); +PROVIDE ( _WindowUnderflow4 = 0x40000040 ); +PROVIDE ( _WindowUnderflow8 = 0x400000c0 ); +PROVIDE ( _WindowVectors_text_end = 0x40000170 ); +PROVIDE ( _WindowVectors_text_start = 0x40000000 ); + +PROVIDE ( hmac_md5 = 0x4000586c ); +PROVIDE ( hmac_md5_vector = 0x4000577c ); +PROVIDE ( MD5Final = 0x400056e8 ); +PROVIDE ( MD5Init = 0x40005648 ); +PROVIDE ( MD5Update = 0x40005668 ); +PROVIDE ( md5_vector = 0x40005750 ); + +PROVIDE ( _xtos_alloca_handler = 0x40000010 ); +PROVIDE ( xtos_cause3_handler = 0x4000774c ); +PROVIDE ( xtos_c_handler_table = 0x3fffcea8 ); +PROVIDE ( xtos_c_wrapper_handler = 0x4000775c ); +PROVIDE ( _xtos_enabled = 0x3fffcfb0 ); +PROVIDE ( xtos_exc_handler_table = 0x3fffcda8 ); +PROVIDE ( xtos_interrupt_mask_table = 0x3fffd0b8 ); +PROVIDE ( xtos_interrupt_table = 0x3fffcfb8 ); +PROVIDE ( _xtos_ints_off = 0x4001560c ); +PROVIDE ( _xtos_ints_on = 0x400155e8 ); +PROVIDE ( _xtos_intstruct = 0x3fffcfb0 ); +PROVIDE ( _xtos_l1int_handler = 0x400077c8 ); +PROVIDE ( xtos_p_none = 0x40015acc ); +PROVIDE ( _xtos_restore_intlevel = 0x400078a8 ); +PROVIDE ( _xtos_return_from_exc = 0x40015ad4 ); +PROVIDE ( _xtos_set_exception_handler = 0x40007690 ); +PROVIDE ( _xtos_set_interrupt_handler = 0x400155ac ); +PROVIDE ( _xtos_set_interrupt_handler_arg = 0x40015570 ); +PROVIDE ( _xtos_set_intlevel = 0x40015aec ); +PROVIDE ( _xtos_set_min_intlevel = 0x40015b08 ); +PROVIDE ( _xtos_set_vpri = 0x400078b4 ); +PROVIDE ( _xtos_syscall_handler = 0x400076d8 ); +PROVIDE ( xtos_unhandled_exception = 0x40015b2c ); +PROVIDE ( xtos_unhandled_interrupt = 0x40015b3c ); +PROVIDE ( _xtos_vectors_ref_ = 0x00000000 ); +PROVIDE ( _xtos_vpri_enabled = 0x3fffcfb4 ); + +PROVIDE ( setlocale = 0x40002020 ); +PROVIDE ( _setlocale_r = 0x40001fb8 ); diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.spiflash.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.spiflash.ld index 6d90821d12..a7d08e4ac9 100644 --- a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.spiflash.ld +++ b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.spiflash.ld @@ -1,28 +1,25 @@ /* - Address table for SPI driver functions in ESP32 ROM. - These functions are only linked from ROM when SPI_FLASH_ROM_DRIVER_PATCH is not set in configuration. + SPI flash driver function, compatibility names. */ -/* -PROVIDE ( esp_rom_spiflash_write_encrypted = 0x4000ae24 ); -PROVIDE ( esp_rom_spiflash_erase_area = 0x4000b0a0 ); -PROVIDE ( esp_rom_spiflash_erase_block = 0x4000ac20 ); -PROVIDE ( esp_rom_spiflash_erase_chip = 0x4000ac00 ); -PROVIDE ( esp_rom_spiflash_erase_sector = 0x4000ac80 ); -PROVIDE ( esp_rom_spiflash_lock = 0x4000aa30 ); -PROVIDE ( esp_rom_spiflash_read = 0x4000ae84 ); -*/ -/* SPIMasterReadModeCnfig */ -/* -PROVIDE ( esp_rom_spiflash_config_readmode = 0x4000ab2c ); -PROVIDE ( esp_rom_spiflash_read_status = 0x40009db8 ); -PROVIDE ( esp_rom_spiflash_read_statushigh = 0x40009ffc ); -PROVIDE ( esp_rom_spiflash_write = 0x4000ace0 ); -PROVIDE ( esp_rom_spiflash_enable_write = 0x4000a2b8 ); -PROVIDE ( esp_rom_spiflash_write_status = 0x4000a01c ); -*/ -/* always using patched versions of these functions -PROVIDE ( esp_rom_spiflash_wait_idle = 0x40009e64 ); -PROVIDE ( esp_rom_spiflash_unlock = 0x400????? ); -*/ +PROVIDE ( cache_ibus_mmu_set_rom = cache_ibus_mmu_set ); +PROVIDE ( Cache_Read_Disable_rom = Cache_Read_Disable ); +PROVIDE ( Cache_Read_Enable_rom = Cache_Read_Enable ); +PROVIDE ( cache_dbus_mmu_set_rom = cache_dbus_mmu_set ); +PROVIDE ( g_rom_spiflash_dummy_len_plus = dummy_len_plus); +PROVIDE ( g_ticks_per_us_pro = g_ticks_per_us ); +PROVIDE ( g_rom_flashchip = SPI_flashchip_data ); +PROVIDE ( g_rom_spiflash_chip = SPI_flashchip_data ); +PROVIDE ( esp_rom_spiflash_config_param = SPIParamCfg ); +PROVIDE ( esp_rom_spiflash_read = SPIRead ); +PROVIDE ( esp_rom_spiflash_read_status = SPI_read_status ); +PROVIDE ( esp_rom_spiflash_read_statushigh = SPI_read_status_high ); +PROVIDE ( esp_rom_spiflash_read_user_cmd = SPI_user_command_read ); +PROVIDE ( esp_rom_spiflash_write = SPIWrite ); +PROVIDE ( esp_rom_spiflash_write_encrypted_disable = SPI_Write_Encrypt_Disable ); +PROVIDE ( esp_rom_spiflash_write_encrypted_enable = SPI_Write_Encrypt_Enable ); +PROVIDE ( esp_rom_spiflash_config_clk = SPIClkConfig ); +PROVIDE ( esp_rom_spiflash_select_qio_pins = SelectSpiQIO ); +PROVIDE ( esp_rom_spiflash_unlock = SPIUnlock ); +PROVIDE ( esp_rom_spiflash_erase_sector = SPIEraseSector ); diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.spiram_incompatible_fns.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.spiram_incompatible_fns.ld deleted file mode 100644 index 9c2e2419f4..0000000000 --- a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.spiram_incompatible_fns.ld +++ /dev/null @@ -1,20 +0,0 @@ -PROVIDE ( cache_ibus_mmu_set_rom = cache_ibus_mmu_set ); -PROVIDE ( Cache_Read_Disable_rom = Cache_Read_Disable ); -PROVIDE ( Cache_Read_Enable_rom = Cache_Read_Enable ); -PROVIDE ( cache_dbus_mmu_set_rom = cache_dbus_mmu_set ); -PROVIDE ( g_rom_spiflash_dummy_len_plus = dummy_len_plus); -PROVIDE ( g_ticks_per_us_pro = g_ticks_per_us ); -PROVIDE ( g_rom_flashchip = SPI_flashchip_data ); -PROVIDE ( g_rom_spiflash_chip = SPI_flashchip_data ); -PROVIDE ( esp_rom_spiflash_config_param = SPIParamCfg ); -PROVIDE ( esp_rom_spiflash_read = SPIRead ); -PROVIDE ( esp_rom_spiflash_read_status = SPI_read_status ); -PROVIDE ( esp_rom_spiflash_read_statushigh = SPI_read_status_high ); -PROVIDE ( esp_rom_spiflash_read_user_cmd = SPI_user_command_read ); -PROVIDE ( esp_rom_spiflash_write = SPIWrite ); -PROVIDE ( esp_rom_spiflash_write_encrypted_disable = SPI_Write_Encrypt_Disable ); -PROVIDE ( esp_rom_spiflash_write_encrypted_enable = SPI_Write_Encrypt_Enable ); -PROVIDE ( esp_rom_spiflash_config_clk = SPIClkConfig ); -PROVIDE ( esp_rom_spiflash_select_qio_pins = SelectSpiQIO ); -PROVIDE ( esp_rom_spiflash_unlock = SPIUnlock ); -PROVIDE ( esp_rom_spiflash_erase_sector = SPIEraseSector ); diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.syscalls.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.syscalls.ld new file mode 100644 index 0000000000..9d4d45ec25 --- /dev/null +++ b/components/esp_rom/esp32s2beta/ld/esp32s2beta.rom.syscalls.ld @@ -0,0 +1,60 @@ +/* These ROM functions call respective entries in the syscall table. + They are called by other ROM functions (mostly from newlib). + We don't link to them directly, since in IDF there are actual + implementations of these functions, with same names. + + I.e.: + + times (in ROM) -> _times_r (in ROM) -> syscall table entry _times_r -> _times_r (in IDF) + + Hence the following entries are provided only for reference + and commented out. + */ + +/* + +PROVIDE ( calloc = 0x40015520 ); +PROVIDE ( _calloc_r = 0x40015234 ); +PROVIDE ( close = 0x4000848c ); +PROVIDE ( _close_r = 0x40015378 ); +PROVIDE ( free = 0x400154f4 ); +PROVIDE ( _free_r = 0x40015208 ); +PROVIDE ( _fstat_r = 0x40015308 ); +PROVIDE ( _getpid_r = 0x40015338 ); +PROVIDE ( __getreent = 0x400154c8 ); +PROVIDE ( _gettimeofday_r = 0x40015294 ); +PROVIDE ( _kill_r = 0x4001534c ); +PROVIDE ( _link_r = 0x400152d8 ); +PROVIDE ( _lock_acquire = 0x40015450 ); +PROVIDE ( _lock_acquire_recursive = 0x40015464 ); +PROVIDE ( _lock_close = 0x40015428 ); +PROVIDE ( _lock_close_recursive = 0x4001543c ); +PROVIDE ( _lock_init = 0x40015400 ); +PROVIDE ( _lock_init_recursive = 0x40015414 ); +PROVIDE ( _lock_release = 0x400154a0 ); +PROVIDE ( _lock_release_recursive = 0x400154b4 ); +PROVIDE ( _lock_try_acquire = 0x40015478 ); +PROVIDE ( _lock_try_acquire_recursive = 0x4001548c ); +PROVIDE ( _lseek_r = 0x400153c8 ); +PROVIDE ( malloc = 0x400154dc ); +PROVIDE ( _malloc_r = 0x400151f0 ); +PROVIDE ( open = 0x400084a0 ); +PROVIDE ( _open_r = 0x40015390 ); +PROVIDE ( _raise_r = 0x400152ac ); +PROVIDE ( read = 0x400084f0 ); +PROVIDE ( _read_r = 0x400153e4 ); +PROVIDE ( realloc = 0x40015508 ); +PROVIDE ( _realloc_r = 0x4001521c ); +PROVIDE ( _rename_r = 0x40015264 ); +PROVIDE ( sbrk = 0x40008508 ); +PROVIDE ( _sbrk_r = 0x40015320 ); +PROVIDE ( _stat_r = 0x400152f0 ); +PROVIDE ( _system_r = 0x4001524c ); +PROVIDE ( _times_r = 0x4001527c ); +PROVIDE ( _unlink_r = 0x400152c0 ); +PROVIDE ( write = 0x4000851c ); +PROVIDE ( _write_r = 0x400153ac ); +PROVIDE ( _isatty_r = 0x40007c7c ); +PROVIDE ( _exit_r = 0x40015364 ); + +*/ diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.spiram.rom-functions-dram.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.spiram.rom-functions-dram.ld deleted file mode 100644 index da59bc09c4..0000000000 --- a/components/esp_rom/esp32s2beta/ld/esp32s2beta.spiram.rom-functions-dram.ld +++ /dev/null @@ -1,143 +0,0 @@ -/* - 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. -*/ - - *lib_a-utoa.o(.rodata .rodata.*) - *lib_a-longjmp.o(.rodata .rodata.*) - *lib_a-setjmp.o(.rodata .rodata.*) - *lib_a-abs.o(.rodata .rodata.*) - *lib_a-div.o(.rodata .rodata.*) - *lib_a-labs.o(.rodata .rodata.*) - *lib_a-ldiv.o(.rodata .rodata.*) - *lib_a-quorem.o(.rodata .rodata.*) - *lib_a-qsort.o(.rodata .rodata.*) - *lib_a-utoa.o(.rodata .rodata.*) - *lib_a-itoa.o(.rodata .rodata.*) - *lib_a-atoi.o(.rodata .rodata.*) - *lib_a-atol.o(.rodata .rodata.*) - *lib_a-strtol.o(.rodata .rodata.*) - *lib_a-strtoul.o(.rodata .rodata.*) - *lib_a-wcrtomb.o(.rodata .rodata.*) - *lib_a-fvwrite.o(.rodata .rodata.*) - *lib_a-wbuf.o(.rodata .rodata.*) - *lib_a-wsetup.o(.rodata .rodata.*) - *lib_a-fputwc.o(.rodata .rodata.*) - *lib_a-wctomb_r.o(.rodata .rodata.*) - *lib_a-ungetc.o(.rodata .rodata.*) - *lib_a-makebuf.o(.rodata .rodata.*) - *lib_a-fflush.o(.rodata .rodata.*) - *lib_a-refill.o(.rodata .rodata.*) - *lib_a-s_fpclassify.o(.rodata .rodata.*) - *lib_a-locale.o(.rodata .rodata.*) - *lib_a-asctime.o(.rodata .rodata.*) - *lib_a-ctime.o(.rodata .rodata.*) - *lib_a-ctime_r.o(.rodata .rodata.*) - *lib_a-lcltime.o(.rodata .rodata.*) - *lib_a-lcltime_r.o(.rodata .rodata.*) - *lib_a-gmtime.o(.rodata .rodata.*) - *lib_a-gmtime_r.o(.rodata .rodata.*) - *lib_a-strftime.o(.rodata .rodata.*) - *lib_a-mktime.o(.rodata .rodata.*) - *lib_a-syswrite.o(.rodata .rodata.*) - *lib_a-tzset_r.o(.rodata .rodata.*) - *lib_a-tzset.o(.rodata .rodata.*) - *lib_a-toupper.o(.rodata .rodata.*) - *lib_a-tolower.o(.rodata .rodata.*) - *lib_a-toascii.o(.rodata .rodata.*) - *lib_a-systimes.o(.rodata .rodata.*) - *lib_a-time.o(.rodata .rodata.*) - *lib_a-bsd_qsort_r.o(.rodata .rodata.*) - *lib_a-qsort_r.o(.rodata .rodata.*) - *lib_a-gettzinfo.o(.rodata .rodata.*) - *lib_a-strupr.o(.rodata .rodata.*) - *lib_a-asctime_r.o(.rodata .rodata.*) - *lib_a-bzero.o(.rodata .rodata.*) - *lib_a-close.o(.rodata .rodata.*) - *lib_a-creat.o(.rodata .rodata.*) - *lib_a-environ.o(.rodata .rodata.*) - *lib_a-fclose.o(.rodata .rodata.*) - *lib_a-isalnum.o(.rodata .rodata.*) - *lib_a-isalpha.o(.rodata .rodata.*) - *lib_a-isascii.o(.rodata .rodata.*) - *lib_a-isblank.o(.rodata .rodata.*) - *lib_a-iscntrl.o(.rodata .rodata.*) - *lib_a-isdigit.o(.rodata .rodata.*) - *lib_a-isgraph.o(.rodata .rodata.*) - *lib_a-islower.o(.rodata .rodata.*) - *lib_a-isprint.o(.rodata .rodata.*) - *lib_a-ispunct.o(.rodata .rodata.*) - *lib_a-isspace.o(.rodata .rodata.*) - *lib_a-isupper.o(.rodata .rodata.*) - *lib_a-memccpy.o(.rodata .rodata.*) - *lib_a-memchr.o(.rodata .rodata.*) - *lib_a-memcmp.o(.rodata .rodata.*) - *lib_a-memcpy.o(.rodata .rodata.*) - *lib_a-memmove.o(.rodata .rodata.*) - *lib_a-memrchr.o(.rodata .rodata.*) - *lib_a-memset.o(.rodata .rodata.*) - *lib_a-open.o(.rodata .rodata.*) - *lib_a-rand.o(.rodata .rodata.*) - *lib_a-rand_r.o(.rodata .rodata.*) - *lib_a-read.o(.rodata .rodata.*) - *lib_a-rshift.o(.rodata .rodata.*) - *lib_a-sbrk.o(.rodata .rodata.*) - *lib_a-srand.o(.rodata .rodata.*) - *lib_a-strcasecmp.o(.rodata .rodata.*) - *lib_a-strcasestr.o(.rodata .rodata.*) - *lib_a-strcat.o(.rodata .rodata.*) - *lib_a-strchr.o(.rodata .rodata.*) - *lib_a-strcmp.o(.rodata .rodata.*) - *lib_a-strcoll.o(.rodata .rodata.*) - *lib_a-strcpy.o(.rodata .rodata.*) - *lib_a-strcspn.o(.rodata .rodata.*) - *lib_a-strdup.o(.rodata .rodata.*) - *lib_a-strlcat.o(.rodata .rodata.*) - *lib_a-strlcpy.o(.rodata .rodata.*) - *lib_a-strlen.o(.rodata .rodata.*) - *lib_a-strlwr.o(.rodata .rodata.*) - *lib_a-strncasecmp.o(.rodata .rodata.*) - *lib_a-strncat.o(.rodata .rodata.*) - *lib_a-strncmp.o(.rodata .rodata.*) - *lib_a-strncpy.o(.rodata .rodata.*) - *lib_a-strndup.o(.rodata .rodata.*) - *lib_a-strnlen.o(.rodata .rodata.*) - *lib_a-strrchr.o(.rodata .rodata.*) - *lib_a-strsep.o(.rodata .rodata.*) - *lib_a-strspn.o(.rodata .rodata.*) - *lib_a-strstr.o(.rodata .rodata.*) - *lib_a-strtok_r.o(.rodata .rodata.*) - *lib_a-strupr.o(.rodata .rodata.*) - *lib_a-stdio.o(.rodata .rodata.*) - *lib_a-syssbrk.o(.rodata .rodata.*) - *lib_a-sysclose.o(.rodata .rodata.*) - *lib_a-sysopen.o(.rodata .rodata.*) - *creat.o(.rodata .rodata.*) - *lib_a-sysread.o(.rodata .rodata.*) - *lib_a-syswrite.o(.rodata .rodata.*) - *lib_a-impure.o(.rodata .rodata.*) - *lib_a-tzvars.o(.rodata .rodata.*) - *lib_a-sf_nan.o(.rodata .rodata.*) - *lib_a-tzcalc_limits.o(.rodata .rodata.*) - *lib_a-month_lengths.o(.rodata .rodata.*) - *lib_a-timelocal.o(.rodata .rodata.*) - *lib_a-findfp.o(.rodata .rodata.*) - *lock.o(.rodata .rodata.*) - *lib_a-getenv_r.o(.rodata .rodata.*) - *isatty.o(.rodata .rodata.*) - *lib_a-fwalk.o(.rodata .rodata.*) - *lib_a-getenv_r.o(.rodata .rodata.*) - *lib_a-tzlock.o(.rodata .rodata.*) - *lib_a-ctype_.o(.rodata .rodata.*) - *lib_a-sccl.o(.rodata .rodata.*) - *lib_a-strptime.o(.rodata .rodata.*) - *lib_a-envlock.o(.rodata .rodata.*) - *lib_a-raise.o(.rodata .rodata.*) - *lib_a-strdup_r.o(.rodata .rodata.*) - *lib_a-system.o(.rodata .rodata.*) - *lib_a-strndup_r.o(.rodata .rodata.*) diff --git a/components/esp_rom/esp32s2beta/ld/esp32s2beta.spiram.rom-functions-iram.ld b/components/esp_rom/esp32s2beta/ld/esp32s2beta.spiram.rom-functions-iram.ld deleted file mode 100644 index 6f97fb6b15..0000000000 --- a/components/esp_rom/esp32s2beta/ld/esp32s2beta.spiram.rom-functions-iram.ld +++ /dev/null @@ -1,144 +0,0 @@ -/* - 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 literal and text segments in IRAM. -*/ - - - *lib_a-utoa.o(.literal .text .literal.* .text.*) - *lib_a-longjmp.o(.literal .text .literal.* .text.*) - *lib_a-setjmp.o(.literal .text .literal.* .text.*) - *lib_a-abs.o(.literal .text .literal.* .text.*) - *lib_a-div.o(.literal .text .literal.* .text.*) - *lib_a-labs.o(.literal .text .literal.* .text.*) - *lib_a-ldiv.o(.literal .text .literal.* .text.*) - *lib_a-quorem.o(.literal .text .literal.* .text.*) - *lib_a-qsort.o(.literal .text .literal.* .text.*) - *lib_a-utoa.o(.literal .text .literal.* .text.*) - *lib_a-itoa.o(.literal .text .literal.* .text.*) - *lib_a-atoi.o(.literal .text .literal.* .text.*) - *lib_a-atol.o(.literal .text .literal.* .text.*) - *lib_a-strtol.o(.literal .text .literal.* .text.*) - *lib_a-strtoul.o(.literal .text .literal.* .text.*) - *lib_a-wcrtomb.o(.literal .text .literal.* .text.*) - *lib_a-fvwrite.o(.literal .text .literal.* .text.*) - *lib_a-wbuf.o(.literal .text .literal.* .text.*) - *lib_a-wsetup.o(.literal .text .literal.* .text.*) - *lib_a-fputwc.o(.literal .text .literal.* .text.*) - *lib_a-wctomb_r.o(.literal .text .literal.* .text.*) - *lib_a-ungetc.o(.literal .text .literal.* .text.*) - *lib_a-makebuf.o(.literal .text .literal.* .text.*) - *lib_a-fflush.o(.literal .text .literal.* .text.*) - *lib_a-refill.o(.literal .text .literal.* .text.*) - *lib_a-s_fpclassify.o(.literal .text .literal.* .text.*) - *lib_a-locale.o(.literal .text .literal.* .text.*) - *lib_a-asctime.o(.literal .text .literal.* .text.*) - *lib_a-ctime.o(.literal .text .literal.* .text.*) - *lib_a-ctime_r.o(.literal .text .literal.* .text.*) - *lib_a-lcltime.o(.literal .text .literal.* .text.*) - *lib_a-lcltime_r.o(.literal .text .literal.* .text.*) - *lib_a-gmtime.o(.literal .text .literal.* .text.*) - *lib_a-gmtime_r.o(.literal .text .literal.* .text.*) - *lib_a-strftime.o(.literal .text .literal.* .text.*) - *lib_a-mktime.o(.literal .text .literal.* .text.*) - *lib_a-syswrite.o(.literal .text .literal.* .text.*) - *lib_a-tzset_r.o(.literal .text .literal.* .text.*) - *lib_a-tzset.o(.literal .text .literal.* .text.*) - *lib_a-toupper.o(.literal .text .literal.* .text.*) - *lib_a-tolower.o(.literal .text .literal.* .text.*) - *lib_a-toascii.o(.literal .text .literal.* .text.*) - *lib_a-systimes.o(.literal .text .literal.* .text.*) - *lib_a-time.o(.literal .text .literal.* .text.*) - *lib_a-bsd_qsort_r.o(.literal .text .literal.* .text.*) - *lib_a-qsort_r.o(.literal .text .literal.* .text.*) - *lib_a-gettzinfo.o(.literal .text .literal.* .text.*) - *lib_a-strupr.o(.literal .text .literal.* .text.*) - *lib_a-asctime_r.o(.literal .text .literal.* .text.*) - *lib_a-bzero.o(.literal .text .literal.* .text.*) - *lib_a-close.o(.literal .text .literal.* .text.*) - *lib_a-creat.o(.literal .text .literal.* .text.*) - *lib_a-environ.o(.literal .text .literal.* .text.*) - *lib_a-fclose.o(.literal .text .literal.* .text.*) - *lib_a-isalnum.o(.literal .text .literal.* .text.*) - *lib_a-isalpha.o(.literal .text .literal.* .text.*) - *lib_a-isascii.o(.literal .text .literal.* .text.*) - *lib_a-isblank.o(.literal .text .literal.* .text.*) - *lib_a-iscntrl.o(.literal .text .literal.* .text.*) - *lib_a-isdigit.o(.literal .text .literal.* .text.*) - *lib_a-isgraph.o(.literal .text .literal.* .text.*) - *lib_a-islower.o(.literal .text .literal.* .text.*) - *lib_a-isprint.o(.literal .text .literal.* .text.*) - *lib_a-ispunct.o(.literal .text .literal.* .text.*) - *lib_a-isspace.o(.literal .text .literal.* .text.*) - *lib_a-isupper.o(.literal .text .literal.* .text.*) - *lib_a-memccpy.o(.literal .text .literal.* .text.*) - *lib_a-memchr.o(.literal .text .literal.* .text.*) - *lib_a-memcmp.o(.literal .text .literal.* .text.*) - *lib_a-memcpy.o(.literal .text .literal.* .text.*) - *lib_a-memmove.o(.literal .text .literal.* .text.*) - *lib_a-memrchr.o(.literal .text .literal.* .text.*) - *lib_a-memset.o(.literal .text .literal.* .text.*) - *lib_a-open.o(.literal .text .literal.* .text.*) - *lib_a-rand.o(.literal .text .literal.* .text.*) - *lib_a-rand_r.o(.literal .text .literal.* .text.*) - *lib_a-read.o(.literal .text .literal.* .text.*) - *lib_a-rshift.o(.literal .text .literal.* .text.*) - *lib_a-sbrk.o(.literal .text .literal.* .text.*) - *lib_a-srand.o(.literal .text .literal.* .text.*) - *lib_a-strcasecmp.o(.literal .text .literal.* .text.*) - *lib_a-strcasestr.o(.literal .text .literal.* .text.*) - *lib_a-strcat.o(.literal .text .literal.* .text.*) - *lib_a-strchr.o(.literal .text .literal.* .text.*) - *lib_a-strcmp.o(.literal .text .literal.* .text.*) - *lib_a-strcoll.o(.literal .text .literal.* .text.*) - *lib_a-strcpy.o(.literal .text .literal.* .text.*) - *lib_a-strcspn.o(.literal .text .literal.* .text.*) - *lib_a-strdup.o(.literal .text .literal.* .text.*) - *lib_a-strlcat.o(.literal .text .literal.* .text.*) - *lib_a-strlcpy.o(.literal .text .literal.* .text.*) - *lib_a-strlen.o(.literal .text .literal.* .text.*) - *lib_a-strlwr.o(.literal .text .literal.* .text.*) - *lib_a-strncasecmp.o(.literal .text .literal.* .text.*) - *lib_a-strncat.o(.literal .text .literal.* .text.*) - *lib_a-strncmp.o(.literal .text .literal.* .text.*) - *lib_a-strncpy.o(.literal .text .literal.* .text.*) - *lib_a-strndup.o(.literal .text .literal.* .text.*) - *lib_a-strnlen.o(.literal .text .literal.* .text.*) - *lib_a-strrchr.o(.literal .text .literal.* .text.*) - *lib_a-strsep.o(.literal .text .literal.* .text.*) - *lib_a-strspn.o(.literal .text .literal.* .text.*) - *lib_a-strstr.o(.literal .text .literal.* .text.*) - *lib_a-strtok_r.o(.literal .text .literal.* .text.*) - *lib_a-strupr.o(.literal .text .literal.* .text.*) - *lib_a-stdio.o(.literal .text .literal.* .text.*) - *lib_a-syssbrk.o(.literal .text .literal.* .text.*) - *lib_a-sysclose.o(.literal .text .literal.* .text.*) - *lib_a-sysopen.o(.literal .text .literal.* .text.*) - *creat.o(.literal .text .literal.* .text.*) - *lib_a-sysread.o(.literal .text .literal.* .text.*) - *lib_a-syswrite.o(.literal .text .literal.* .text.*) - *lib_a-impure.o(.literal .text .literal.* .text.*) - *lib_a-tzvars.o(.literal .text .literal.* .text.*) - *lib_a-sf_nan.o(.literal .text .literal.* .text.*) - *lib_a-tzcalc_limits.o(.literal .text .literal.* .text.*) - *lib_a-month_lengths.o(.literal .text .literal.* .text.*) - *lib_a-timelocal.o(.literal .text .literal.* .text.*) - *lib_a-findfp.o(.literal .text .literal.* .text.*) - *lock.o(.literal .text .literal.* .text.*) - *lib_a-getenv_r.o(.literal .text .literal.* .text.*) - *isatty.o(.literal .text .literal.* .text.*) - *lib_a-fwalk.o(.literal .text .literal.* .text.*) - *lib_a-getenv_r.o(.literal .text .literal.* .text.*) - *lib_a-tzlock.o(.literal .text .literal.* .text.*) - *lib_a-ctype_.o(.literal .text .literal.* .text.*) - *lib_a-sccl.o(.literal .text .literal.* .text.*) - *lib_a-strptime.o(.literal .text .literal.* .text.*) - *lib_a-envlock.o(.literal .text .literal.* .text.*) - *lib_a-raise.o(.literal .text .literal.* .text.*) - *lib_a-strdup_r.o(.literal .text .literal.* .text.*) - *lib_a-system.o(.literal .text .literal.* .text.*) - *lib_a-strndup_r.o(.literal .text .literal.* .text.*)