diff --git a/misc/README.md b/misc/README.md
index db7028fecc36eef059a6a3687743960d2ca28cb2..4c5bcc6104c89a55e9ca3b92dc49e2271500b273 100644
--- a/misc/README.md
+++ b/misc/README.md
@@ -1,6 +1,6 @@
 # Supplementary non-official material
 
-This is a copy of libgcc.a that I know works well with the part.  If you have a better one, please share!
+This is a copy of libgcc.a that I know works well with the part. Below are the instructions on how to get the source code and how to build it.
 
 # Extra totally non-official info
 
@@ -10,3 +10,29 @@ At 3.3v, it seems that for all speed configurations, the short drive current is
 
 At 5v the peak current power application is 90-100mA for emitter and collector.
 
+## Building libgcc.a from source.
+
+1. Install prerequisites (for Debian-based systems; similar steps for other systems):
+
+```
+sudo apt-get install build-essential autoconf automake autotools-dev curl \
+libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo \
+gperf libtool patchutils bc zlib1g-dev git
+```
+
+2. Checkout sources:
+
+```
+git clone --recursive https://github.com/riscv/riscv-gnu-toolchain.git
+cd riscv-gnu-toolchain
+```
+
+3. Configure and build:
+
+```
+./configure --prefix $(pwd)/build-ch32v003 --with-arch=rv32ec --with-abi=ilp32e
+make -j8
+```
+
+4. Enjoy the built libgcc.a at ./build-ch32v003/lib/gcc/riscv32-unknown-elf/12.2.0/libgcc.a
+
diff --git a/misc/libgcc.a b/misc/libgcc.a
index 7e3b7303b0bfcec86e4beccab77ede2ca3e753f6..117e412d1e5323edea1dfee86b2108459c743fe7 100644
Binary files a/misc/libgcc.a and b/misc/libgcc.a differ