gen.py: Allow linking libstdc++ dynamically

Many distros don't ship static libraries of libstdc++ by default. Therefore,
it can make bootstrapping a bit more difficult, especially for packaging apps
that use GN.

Change-Id: Ie38cf97fe7454065becabe1789ea384efc3bf93f
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/5900
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
diff --git a/build/gen.py b/build/gen.py
index 99de57e..38085b4 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -95,6 +95,9 @@
                     help='The path to generate the build files in.')
   parser.add_option('--no-strip', action='store_true',
                     help='Don\'t strip release build. Useful for profiling.')
+  parser.add_option('--no-static-libstdc++', action='store_true',
+                    default=False, dest='no_static_libstdcpp',
+                    help='Don\'t link libstdc++ statically')
   options, args = parser.parse_args(argv)
 
   if args:
@@ -324,10 +327,11 @@
     cflags_cc.extend(['-std=c++14', '-Wno-c++11-narrowing'])
 
     if platform.is_linux():
-      ldflags.extend([
-          '-static-libstdc++',
-          '-Wl,--as-needed',
-      ])
+      ldflags.append('-Wl,--as-needed')
+
+      if not options.no_static_libstdcpp:
+        ldflags.append('-static-libstdc++')
+
       # This is needed by libc++.
       libs.append('-ldl')
     elif platform.is_darwin():