diff --git a/tools/distrib/python/grpcio_tools/setup.py b/tools/distrib/python/grpcio_tools/setup.py index bc35310047f..a316038d05d 100644 --- a/tools/distrib/python/grpcio_tools/setup.py +++ b/tools/distrib/python/grpcio_tools/setup.py @@ -124,24 +124,25 @@ if EXTRA_ENV_COMPILE_ARGS is None: EXTRA_ENV_COMPILE_ARGS += ' -fno-wrapv -frtti' if EXTRA_ENV_LINK_ARGS is None: EXTRA_ENV_LINK_ARGS = '' - # NOTE(rbellevi): Clang on Mac OS will make all static symbols (both variables - # and objects) global weak symbols. When a process loads the + # NOTE(rbellevi): Clang on Mac OS will make all static symbols (both + # variables and objects) global weak symbols. When a process loads the # protobuf wheel's shared object library before loading *this* C extension, - # the runtime linker will prefer the protobuf module's version of symbols. This - # results in the process using a mixture of symbols from the protobuf wheel and - # this wheel, which may be using different versions of libprotobuf. In the case - # that they *are* using different versions of libprotobuf *and* there has been a - # change in data layout (or in other invariants) segfaults, data corruption, or - # "bad things" may happen. + # the runtime linker will prefer the protobuf module's version of symbols. + # This results in the process using a mixture of symbols from the protobuf + # wheel and this wheel, which may be using different versions of + # libprotobuf. In the case that they *are* using different versions of + # libprotobuf *and* there has been a change in data layout (or in other + # invariants) segfaults, data corruption, or "bad things" may happen. # - # This flag ensures that on Mac, the only global symbol is the one loaded by the - # Python interpreter. The problematic global weak symbols become local weak symbols. - # This is not required on Linux since the compiler does not produce global weak - # symbols. This is not required on Windows as our ".pyd" file does not contain any - # symbols. + # This flag ensures that on Mac, the only global symbol is the one loaded by + # the Python interpreter. The problematic global weak symbols become local + # weak symbols. This is not required on Linux since the compiler does not + # produce global weak symbols. This is not required on Windows as our ".pyd" + # file does not contain any symbols. # - # Finally, the leading underscore here is part of the Mach-O ABI. Unlike more modern - # ABIs (ELF et al.), Mach-O prepends an underscore to the names of C functions. + # Finally, the leading underscore here is part of the Mach-O ABI. Unlike + # more modern ABIs (ELF et al.), Mach-O prepends an underscore to the names + # of C functions. if "darwin" in sys.platform: EXTRA_ENV_LINK_ARGS += ' -Wl,-exported_symbol,_{}'.format( _EXT_INIT_SYMBOL)