diff --git a/tools/mklibs/patches/007-uclibc_init.patch b/tools/mklibs/patches/007-uclibc_init.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e76515085c4bb7d5efcd8cbeaa8a88e1084c1919
--- /dev/null
+++ b/tools/mklibs/patches/007-uclibc_init.patch
@@ -0,0 +1,14 @@
+--- a/src/mklibs.py
++++ b/src/mklibs.py
+@@ -571,6 +571,11 @@ while 1:
+                 extra_post_obj.append(sysroot + libc_extras_dir + "/sofini.o")
+                 symbols.add(ProvidedSymbol('__dso_handle', None, None, True))
+ 
++            if soname in ("libc.so.0"):
++                symbols.add(ProvidedSymbol('__uClibc_init', None, None, True))
++                symbols.add(ProvidedSymbol('__uClibc_fini', None, None, True))
++                extra_flags.append("-Wl,-init,__uClibc_init")
++
+             map_file = find_pic_map(library)
+             if map_file:
+                 extra_flags.append("-Wl,--version-script=" + map_file)