| ... | @@ -132,6 +132,7 @@ static int print_full_usage(const char *arg0, FILE *file, int return_code) { | ... | @@ -132,6 +132,7 @@ static int print_full_usage(const char *arg0, FILE *file, int return_code) { |
| 132 | " --ver-major [ver] dynamic library semver major version\n" | 132 | " --ver-major [ver] dynamic library semver major version\n" |
| 133 | " --ver-minor [ver] dynamic library semver minor version\n" | 133 | " --ver-minor [ver] dynamic library semver minor version\n" |
| 134 | " --ver-patch [ver] dynamic library semver patch version\n" | 134 | " --ver-patch [ver] dynamic library semver patch version\n" |
| | 135 | " -Bsymbolic bind global references locally\n" |
| 135 | "\n" | 136 | "\n" |
| 136 | "Test Options:\n" | 137 | "Test Options:\n" |
| 137 | " --test-filter [text] skip tests that do not match filter\n" | 138 | " --test-filter [text] skip tests that do not match filter\n" |
| ... | @@ -452,6 +453,7 @@ static int main0(int argc, char **argv) { | ... | @@ -452,6 +453,7 @@ static int main0(int argc, char **argv) { |
| 452 | Buf *linker_optimization = nullptr; | 453 | Buf *linker_optimization = nullptr; |
| 453 | OptionalBool linker_gc_sections = OptionalBoolNull; | 454 | OptionalBool linker_gc_sections = OptionalBoolNull; |
| 454 | OptionalBool linker_allow_shlib_undefined = OptionalBoolNull; | 455 | OptionalBool linker_allow_shlib_undefined = OptionalBoolNull; |
| | 456 | OptionalBool linker_bind_global_refs_locally = OptionalBoolNull; |
| 455 | bool linker_z_nodelete = false; | 457 | bool linker_z_nodelete = false; |
| 456 | bool linker_z_defs = false; | 458 | bool linker_z_defs = false; |
| 457 | size_t stack_size_override = 0; | 459 | size_t stack_size_override = 0; |
| ... | @@ -842,6 +844,8 @@ static int main0(int argc, char **argv) { | ... | @@ -842,6 +844,8 @@ static int main0(int argc, char **argv) { |
| 842 | buf_eql_str(arg, "-no-allow-shlib-undefined")) | 844 | buf_eql_str(arg, "-no-allow-shlib-undefined")) |
| 843 | { | 845 | { |
| 844 | linker_allow_shlib_undefined = OptionalBoolFalse; | 846 | linker_allow_shlib_undefined = OptionalBoolFalse; |
| | 847 | } else if (buf_eql_str(arg, "-Bsymbolic")) { |
| | 848 | linker_bind_global_refs_locally = OptionalBoolTrue; |
| 845 | } else if (buf_eql_str(arg, "-z")) { | 849 | } else if (buf_eql_str(arg, "-z")) { |
| 846 | i += 1; | 850 | i += 1; |
| 847 | if (i >= linker_args.length) { | 851 | if (i >= linker_args.length) { |
| ... | @@ -1013,6 +1017,8 @@ static int main0(int argc, char **argv) { | ... | @@ -1013,6 +1017,8 @@ static int main0(int argc, char **argv) { |
| 1013 | want_single_threaded = true;; | 1017 | want_single_threaded = true;; |
| 1014 | } else if (strcmp(arg, "--bundle-compiler-rt") == 0) { | 1018 | } else if (strcmp(arg, "--bundle-compiler-rt") == 0) { |
| 1015 | bundle_compiler_rt = true; | 1019 | bundle_compiler_rt = true; |
| | 1020 | } else if (strcmp(arg, "-Bsymbolic") == 0) { |
| | 1021 | linker_bind_global_refs_locally = OptionalBoolTrue; |
| 1016 | } else if (strcmp(arg, "--test-cmd-bin") == 0) { | 1022 | } else if (strcmp(arg, "--test-cmd-bin") == 0) { |
| 1017 | test_exec_args.append(nullptr); | 1023 | test_exec_args.append(nullptr); |
| 1018 | } else if (arg[1] == 'D' && arg[2] != 0) { | 1024 | } else if (arg[1] == 'D' && arg[2] != 0) { |
| ... | @@ -1609,6 +1615,7 @@ static int main0(int argc, char **argv) { | ... | @@ -1609,6 +1615,7 @@ static int main0(int argc, char **argv) { |
| 1609 | g->linker_optimization = linker_optimization; | 1615 | g->linker_optimization = linker_optimization; |
| 1610 | g->linker_gc_sections = linker_gc_sections; | 1616 | g->linker_gc_sections = linker_gc_sections; |
| 1611 | g->linker_allow_shlib_undefined = linker_allow_shlib_undefined; | 1617 | g->linker_allow_shlib_undefined = linker_allow_shlib_undefined; |
| | 1618 | g->linker_bind_global_refs_locally = linker_bind_global_refs_locally; |
| 1612 | g->linker_z_nodelete = linker_z_nodelete; | 1619 | g->linker_z_nodelete = linker_z_nodelete; |
| 1613 | g->linker_z_defs = linker_z_defs; | 1620 | g->linker_z_defs = linker_z_defs; |
| 1614 | g->stack_size_override = stack_size_override; | 1621 | g->stack_size_override = stack_size_override; |