diff --git a/tools/mklibs/patches/008-gc_sections.patch b/tools/mklibs/patches/008-gc_sections.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2775493b092b171ecd73f77bc6c985b7b76d7646
--- /dev/null
+++ b/tools/mklibs/patches/008-gc_sections.patch
@@ -0,0 +1,11 @@
+--- a/src/mklibs.py
++++ b/src/mklibs.py
+@@ -583,7 +583,7 @@ while 1:
+             # compile in only used symbols
+             cmd = []
+             cmd.extend(gcc_options)
+-            cmd.append("-nostdlib -nostartfiles -shared -Wl,-soname=" + soname)
++            cmd.append("-nostdlib -nostartfiles -shared -Wl,--gc-sections -Wl,-soname=" + soname)
+             cmd.extend(["-u%s" % a.linker_name() for a in symbols])
+             cmd.extend(["-o", dest_path + "/" + so_file_name + "-so"])
+             cmd.extend(extra_pre_obj)