code: def get_flags_linker_so(self):
      opt = []
      if sys.platform == "darwin":
          opt.append("-Wl,-bundle,-flat_namespace,-undefined,suppress")
      else:
          opt.append("-bshared")
      version = self.get_version(ok_status=[0, 40])
      if version is not None:
          if sys.platform.startswith("aix"):
              xlf_cfg = "/etc/xlf.cfg"
          else:
              xlf_cfg = "/etc/opt/ibmcmp/xlf/%s/xlf.cfg" % version
          fo, new_cfg = make_temp_file(suffix="_xlf.cfg")
          log.info("Creating " + new_cfg)
          fi = open(xlf_cfg, "r")
          crt1_match = re.compile(
              r"\s*crt\s*[=]\s*(?P<path>.*)/crt1.o"
          ).match
          for line in fi:
              m = crt1_match(line)
              if m:
                  fo.write("crt = %s/bundle1.o\n" % (m.group("path")))
              else:
                  fo.write(line)
          fi.close()
          fo.close()
          opt.append("-F" + new_cfg)
      return opt
  
file_path: catboost/contrib/python/numpy/py2/numpy/distutils/fcompiler/ibm.py
imports: from __future__ import division, absolute_import, print_function
  import os
  import re
  import sys
  import subprocess
  from numpy.distutils.fcompiler import FCompiler
  from numpy.distutils.exec_command import find_executable
  from numpy.distutils.misc_util import make_temp_file
  from distutils import log
label_desc: Use image node_id 4 for calling the IBMFCompiler obj's underlying member method code with example usage: obj.get_flags_linker_so() and returns: opt