Repository navigation
targets: put COMMON symbols in .bss on ESP chips - #6302
Merged
Merged
Conversation
The ESP linker scripts did not list COMMON in .bss. The linker then put those symbols after _ebss, so the runtime did not set them to zero. The ESP32 libphy.a has 16 COMMON symbols with PHY calibration and TX power state. With random start values, some boots could not send frames, and WiFi connect failed with auth expired. The failure rate changed with the program size. Signed-off-by: deadprogram <ron@hybridgroup.com>
|
Size difference with the dev branch: Binary size differenceflash ram before after diff before after diff 17832 17832 0 0.00% 6624 6624 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/adafruit4650 64032 64032 0 0.00% 6624 6624 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adt7410/main.go 10624 10624 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adxl345/main.go 17168 17168 0 0.00% 7240 7240 0 0.00% tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/amg88xx 9856 9856 0 0.00% 5136 5136 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/main.go 13200 13200 0 0.00% 6992 6992 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/apds9960/proximity/main.go 12060 12060 0 0.00% 5148 5148 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/itsybitsy-m0/main.go 8840 8840 0 0.00% 2320 2320 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/at24cx/main.go 9344 9344 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bh1750/main.go 8624 8624 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/blinkm/main.go 73152 73152 0 0.00% 3720 3720 0 0.00% tinygo build -size short -o ./build/test.hex -target=pinetime ./examples/bma42x/main.go 68480 68480 0 0.00% 6592 6592 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmi160/main.go 20512 20512 0 0.00% 5200 5200 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/bmi270/i2c/main.go 22428 22428 0 0.00% 16696 16696 0 0.00% tinygo build -size short -o ./build/test.bin -target=m5stamp-s3a ./examples/bmi270/spi/main.go 15980 15980 0 0.00% 17208 17208 0 0.00% tinygo build -size short -o ./build/test.elf -target=m5stamp-s3a ./examples/bmm150/main.go 28368 28368 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp180/main.go 67216 67216 0 0.00% 6624 6624 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp280/main.go 13008 13008 0 0.00% 5208 5208 0 0.00% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bmp388/main.go 21896 21896 0 0.00% 5856 5856 0 0.00% tinygo build -size short -o ./build/test.hex -target=metro-rp2350 ./examples/bno08x/i2c/main.go 9128 9128 0 0.00% 3352 3352 0 0.00% tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/sram/main.go 23252 23252 0 0.00% 3592 3592 0 0.00% tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/time/main.go 30860 30860 0 0.00% 5408 5408 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/ds3231/alarms/main.go 44412 44412 0 0.00% 5408 5408 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/ds3231/basic/main.go 4776 4776 0 0.00% 2280 2280 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/easystepper/main.go 6992 6992 0 0.00% 2344 2344 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/easystepper/async/main.go 74980 74980 0 0.00% 7444 7444 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/flash/console/spi 70804 70804 0 0.00% 9484 9484 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/flash/console/qspi 7508 7508 0 0.00% 2284 2284 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/gc9a01/main.go 23604 23604 0 0.00% 8588 8588 0 0.00% tinygo build -size short -o ./build/test.bin -target=esp32-coreboard-v2 ./examples/gdew0154m09/main.go 69844 69844 0 0.00% 6824 6824 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/i2c/main.go 70300 70300 0 0.00% 6928 6928 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/uart/main.go 9384 9384 0 0.00% 5192 5192 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/hcsr04/main.go 5912 5912 0 0.00% 2280 2280 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/customchar/main.go 5976 5976 0 0.00% 2280 2280 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/text/main.go 6761 6761 0 0.00% 585 585 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/hd44780/keypadshield/main.go 11424 11424 0 0.00% 5160 5160 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/hd44780i2c/main.go 16080 16080 0 0.00% 6992 6992 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/hts221/main.go 16548 16548 0 0.00% 2428 2428 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hub75/main.go 11120 11120 0 0.00% 7368 7368 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/basic 13504 13504 0 0.00% 5328 5328 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/basic 12844 12844 0 0.00% 6004 6004 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/ili9341/pico 11564 11564 0 0.00% 5996 5996 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico2-w ./examples/ili9341/pico 30472 30472 0 0.00% 38528 38528 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/pyportal_boing 11080 11080 0 0.00% 7368 7368 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/scroll 13512 13512 0 0.00% 5328 5328 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/scroll 266376 266376 0 0.00% 47212 47212 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/slideshow 12608 12608 0 0.00% 5136 5136 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-zero ./examples/ili9325/itdb02 12693 12693 0 0.00% 1038 1038 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/ili9325/itdb02 23040 23040 0 0.00% 17384 17384 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-zero ./examples/ili9325/lorenz 11696 11696 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis3dh/main.go 15472 15472 0 0.00% 6992 6992 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/lps22hb/main.go 26472 26472 0 0.00% 2328 2328 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/lsm303agr/main.go 29216 29216 0 0.00% 7224 7224 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/lsm303dlhc/main.go 13312 13312 0 0.00% 5184 5184 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/lsm6ds3/main.go 11904 11904 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mag3110/main.go 10776 10776 0 0.00% 5168 5168 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017/main.go 11160 11160 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017-multiple/main.go 11056 11056 0 0.00% 5136 5136 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp3008/main.go 74888 74888 0 0.00% 6696 6696 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp2515/main.go 33936 33936 0 0.00% 4328 4328 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/microbitmatrix/main.go 33568 33568 0 0.00% 6372 6372 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit-v2 ./examples/microbitmatrix/main.go 9376 9376 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mma8653/main.go 9328 9328 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mpu6050/main.go 86400 86400 0 0.00% 7856 7856 0 0.00% tinygo build -size short -o ./build/test.hex -target=p1am-100 ./examples/p1am/main.go 72040 72040 0 0.00% 7416 7416 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=waveshare-rp2040-pizero ./examples/dothat-pizero/ 13308 13308 0 0.00% 5804 5804 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/pca9685/main.go 6676 6676 0 0.00% 3292 3292 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setbuffer/main.go 5076 5076 0 0.00% 2284 2284 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setpixel/main.go 14292 14292 0 0.00% 16856 16856 0 0.00% tinygo build -size short -o ./build/test.bin -target=m5stamp-s3a ./examples/pmw3901/motion/main.go 13884 13884 0 0.00% 19328 19328 0 0.00% tinygo build -size short -o ./build/test.bin -target=m5stamp-s3a ./examples/pmw3901/frame/main.go 13292 13292 0 0.00% 5788 5788 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/seesaw/soil-sensor 12940 12940 0 0.00% 5788 5788 0 0.00% tinygo build -size short -o ./build/test.hex -target=qtpy-rp2040 ./examples/seesaw/rotary-encoder 2899 2899 0 0.00% 560 560 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/servo 14868 14868 0 0.00% 5860 5860 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/sgp30 8864 8864 0 0.00% 7176 7176 0 0.00% tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/shifter/main.go 59792 59792 0 0.00% 3728 3728 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/sht3x/main.go 59728 59728 0 0.00% 3728 3728 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/sht4x/main.go 59792 59792 0 0.00% 3728 3728 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/shtc3/main.go 14328 14328 0 0.00% 8864 8864 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao-ble ./examples/ssd1306/ 12828 12828 0 0.00% 5828 5828 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao-rp2040 ./examples/ssd1306/ 12780 12780 0 0.00% 5820 5820 0 0.00% tinygo build -size short -o ./build/test.hex -target=thumby ./examples/ssd1306/ 6324 6324 0 0.00% 2284 2284 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1331/main.go 7124 7124 0 0.00% 2284 2284 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7735/main.go 6820 6820 0 0.00% 2284 2284 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7789/main.go 19064 19064 0 0.00% 6368 6368 0 0.00% tinygo build -size short -o ./build/test.hex -target=waveshare-rp2040-pizero ./examples/st7789/waveshare-1in3-lcd-hat/ 18032 18032 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/thermistor/main.go 12016 12016 0 0.00% 4960 4960 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-bluefruit ./examples/tone 11392 11392 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/tm1637/main.go 11776 11776 0 0.00% 5792 5792 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/touch/capacitive 10216 10216 0 0.00% 7168 7168 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/fourwire/main.go 13332 13332 0 0.00% 7428 7428 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/pyportal_touchpaint/main.go 16680 16680 0 0.00% 5240 5240 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl53l1x/main.go 29672 29672 0 0.00% 17208 17208 0 0.00% tinygo build -size short -o ./build/test.elf -target=m5stamp-s3a ./examples/vl53l3cx/main.go 15176 15176 0 0.00% 5240 5240 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl6180x/main.go 26572 26572 0 0.00% 14148 14148 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840-sense ./examples/waveshare-epd/epd1in54/main.go 6804 6804 0 0.00% 2324 2324 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13/main.go 6484 6484 0 0.00% 2316 2316 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13x/main.go 20500 20500 0 0.00% 6892 6892 0 0.00% tinygo build -size short -o ./build/test.hex -target=waveshare-rp2040-pizero ./examples/waveshare-epd/epd2in7gray/main.go 73528 73528 0 0.00% 6112 6112 0 0.00% tinygo build -size short -o ./build/test.hex -target=waveshare-rp2040-pizero ./examples/waveshare-epd/epd2in7gray-slideshow 6676 6676 0 0.00% 2324 2324 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd4in2/main.go 29084 29084 0 0.00% 18868 18868 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/waveshare-epd/epd2in66b/main.go 7952 7952 0 0.00% 5168 5168 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/ws2812 6168 6168 0 0.00% 8464 8464 0 0.00% tinygo build -size short -o ./build/test.bin -target=m5stamp-c3 ./examples/ws2812 66152 66152 0 0.00% 6368 6368 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840 ./examples/is31fl3731/main.go 1911 1911 0 0.00% 600 600 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/ws2812 1296 1296 0 0.00% 182 182 0 0.00% tinygo build -size short -o ./build/test.hex -target=digispark ./examples/ws2812 6560 6560 0 0.00% 8728 8728 0 0.00% tinygo build -size short -o ./build/test.bin -target=xiao-esp32c3 ./examples/ws2812 8372 8372 0 0.00% 3020 3020 0 0.00% tinygo build -size short -o ./build/test.hex -target=teensy36 ./examples/ws2812 3821 3821 0 0.00% 582 582 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/ws2812/neopixel-shield 8000 8000 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-zero ./examples/ws2812/neopixel-shield 46112 46112 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bme280/main.go 17560 17560 0 0.00% 5120 5120 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/microphone/main.go 12272 12272 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/buzzer/main.go 13248 13248 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/veml6070/main.go 7680 7680 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/simple/main.go 9632 9632 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/speed/main.go 7664 7664 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/simple/main.go 10032 10032 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/speed/main.go 8164 8164 0 0.00% 3324 3324 0 0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-f103rb ./examples/shiftregister/main.go 7580 7580 0 0.00% 2288 2288 0 0.00% tinygo build -size short -o ./build/test.hex -target=hifive1b ./examples/ssd1351/main.go 14496 14496 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis2mdl/main.go 12160 12160 0 0.00% 5152 5152 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/max72xx/main.go 80348 80348 0 0.00% 6764 6764 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/dht/main.go 7859 7859 0 0.00% 812 812 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/keypad4x4/main.go 38364 38364 0 0.00% 6372 6372 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/pcf8523/ 73516 73516 0 0.00% 6812 6812 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/alarm/ 8304 8304 0 0.00% 5168 5168 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/clkout/ 72060 72060 0 0.00% 6812 6812 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/time/ 73356 73356 0 0.00% 6812 6812 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/timer/ 13468 13468 0 0.00% 5796 5796 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/qmi8658c/main.go 12108 12108 0 0.00% 5788 5788 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/pcf8591/ 9824 9824 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina260/main.go 13920 13920 0 0.00% 5176 5176 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina219/main.go 11392 11392 0 0.00% 5192 5192 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina3221/main.go 10568 10568 0 0.00% 5280 5280 0 0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-l432kc ./examples/aht20/main.go 77528 77528 0 0.00% 11240 11240 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/sdcard/console/ 63744 63744 0 0.00% 8632 8632 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/i2csoft/adt7410/ 11072 11072 0 0.00% 7184 7184 0 0.00% tinygo build -size short -o ./build/test.elf -target=wioterminal ./examples/axp192/m5stack-core2-blinky/ 9928 9928 0 0.00% 5728 5728 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/xpt2046/main.go 12536 12536 0 0.00% 4692 4692 0 0.00% tinygo build -size short -o ./build/test.elf -target=m5stack-core2 ./examples/ft6336/basic/ 20100 20100 0 0.00% 4964 4964 0 0.00% tinygo build -size short -o ./build/test.elf -target=m5stack-core2 ./examples/ft6336/touchpaint/ 14368 14368 0 0.00% 5052 5052 0 0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/sx126x/lora_rxtx/ 50056 50056 0 0.00% 9532 9532 0 0.00% tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/sx127x/lora_rxtx/ 38664 38664 0 0.00% 7672 7672 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/ssd1289/main.go 12620 12620 0 0.00% 6772 6772 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/irremote/main.go 13380 13380 0 0.00% 5804 5804 0 0.00% tinygo build -size short -o ./build/test.hex -target=badger2040 ./examples/uc8151/main.go 13156 13156 0 0.00% 6248 6248 0 0.00% tinygo build -size short -o ./build/test.hex -target=badger2040 ./examples/waveshare-epd/epd2in9v2/main.go 15024 15024 0 0.00% 5840 5840 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/scd30/main.go 11628 11628 0 0.00% 5808 5808 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/scd4x/main.go 8872 8872 0 0.00% 5136 5136 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=circuitplay-express ./examples/makeybutton/main.go 10512 10512 0 0.00% 5152 5152 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ds18b20/main.go 127432 127432 0 0.00% 8528 8528 0 0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/lora/lorawan/atcmd/ 17408 17408 0 0.00% 7408 7408 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/as560x/main.go 12828 12828 0 0.00% 5788 5788 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mpu6886/main.go 8736 8736 0 0.00% 5128 5128 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ttp229/main.go 70140 70140 0 0.00% 7268 7268 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/ndir/main_ndir.go 64408 64408 0 0.00% 3792 3792 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ndir/main_ndir.go 68192 68192 0 0.00% 6656 6656 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ndir/main_ndir.go 10524 10524 0 0.00% 5780 5780 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mpu9150/main.go 12552 12552 0 0.00% 5848 5848 0 0.00% tinygo build -size short -o ./build/test.hex -target=macropad-rp2040 ./examples/sh1106/macropad_spi 12112 12112 0 0.00% 16648 16648 0 0.00% tinygo build -size short -o ./build/test.bin -target=esp32s3-generic ./examples/st7567/ 9460 9460 0 0.00% 6220 6220 0 0.00% tinygo build -size short -o ./build/test.hex -target=macropad-rp2040 ./examples/encoders/quadrature-interrupt 68668 68668 0 0.00% 7236 7236 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mcp9808/main.go 49008 49008 0 0.00% 8064 8064 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/tmc2209/main.go 12920 12920 0 0.00% 5736 5736 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/tmc5160/main.go 13844 13844 0 0.00% 4956 4956 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=nicenano ./examples/sharpmem/main.go 65228 65228 0 0.00% 6404 6404 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840 ./examples/max6675/main.go 13932 13932 0 0.00% 5796 5796 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/ens160/main.go 17396 17396 0 0.00% 5892 5892 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/si5351/main.go 21124 21124 0 0.00% 7116 7116 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/w5500/main.go 91420 91420 0 0.00% 7592 7592 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/sd 90284 90284 0 0.00% 7628 7628 0 0.00% tinygo build -size short -o ./build/test.hex -target=challenger-rp2040 ./examples/net/ntpclient/ 385000 385000 0 0.00% 14464 14464 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal -stack-size 8kb ./examples/net/http-get/ 129620 129620 0 0.00% 8960 8960 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 -stack-size 8kb ./examples/net/tcpclient/ 364268 364268 0 0.00% 12944 12944 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-rp2040 -stack-size 8kb ./examples/net/websocket/dial/ 111960 111960 0 0.00% 10940 10940 0 0.00% tinygo build -size short -o ./build/test.hex -target=metro-m4-airlift -stack-size 8kb ./examples/net/socket/ 439416 439416 0 0.00% 19264 19264 0 0.00% tinygo build -size short -o ./build/test.hex -target=matrixportal-m4 -stack-size 8kb ./examples/net/webstatic/ 178172 178172 0 0.00% 11148 11148 0 0.00% tinygo build -size short -o ./build/test.hex -tags=noslog -target=matrixportal-m4 -stack-size 8kb ./examples/net/webstatic-httphi/ 151992 151992 0 0.00% 9088 9088 0 0.00% tinygo build -size short -o ./build/test.hex -tags=noslog -target=arduino-nano33 -stack-size 4kb ./examples/net/webserver-httphi/ 173832 173832 0 0.00% 8948 8948 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-mkrwifi1010 -stack-size 8kb ./examples/net/tlsclient/ 165888 165888 0 0.00% 9760 9760 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-rp2040 -stack-size 8kb ./examples/net/mqttclient/natiu/ 125844 125844 0 0.00% 14252 14252 0 0.00% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/webclient/ 383440 383440 0 0.00% 19992 19992 0 0.00% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/webserver/ 145392 145392 0 0.00% 14384 14384 0 0.00% tinygo build -size short -o ./build/test.hex -tags=noslog -target=wioterminal -stack-size 8kb ./examples/net/webserver-httphi/ 380064 380064 0 0.00% 18656 18656 0 0.00% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/mqttclient/paho/ 180976 180976 0 0.00% 12016 12016 0 0.00% tinygo build -size short -o ./build/test.hex -target=elecrow-rp2040 -stack-size 8kb ./examples/net/tlsclient/ 128964 128964 0 0.00% 12020 12020 0 0.00% tinygo build -size short -o ./build/test.hex -target=elecrow-rp2350 -stack-size 8kb ./examples/net/ntpclient/ 7950748 7950748 0 0.00% 1302971 1302971 0 0.00% |
davecheney
approved these changes
Nov 13, 2026
davecheney
left a comment
Contributor
There was a problem hiding this comment.
LGTM. For followup, is there a ld flag that we could use to warn about unaccompanied symbols?
Member
Author
|
Test results with the espradio
The S3 and C3 work the same with and without this PR. The C3 blobs have no COMMON symbols. The 2 COMMON symbols in the S3 blob do not cause failures with this program, but now they are also set to zero. |
Member
Author
|
Thanks for quick review @davecheney |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The ESP linker scripts did not list
*(COMMON)in.bss. The linker put those symbols after_ebss, so the runtime did not set them to zero.The ESP32
libphy.ahas 16 COMMON symbols, for examplechip7_phy_init_ctrl,phy_rxrf_dcandphy_chan_target_power. They hold PHY calibration and TX power state. With random start values, some boots could not send frames, and WiFi connect failed withespradio: auth expired. The failure rate changed with the program size.The ESP32-S3
libphy.ahas 2 COMMON symbols. The ESP32-C3 blobs have none. This PR adds the same line to all ESP linker scripts.Test
On esp32-coreboard-v2 with the espradio
connect-and-dhcpexample:A build that failed on every boot now connects on every boot. The xiao-esp32c3 and xiao-esp32s3 builds still link, and the S3 COMMON symbols are now before
_ebss.