Index: third_party/yasm/patches/03_macho_objfmt_private.patch |
=================================================================== |
--- third_party/yasm/patches/03_macho_objfmt_private.patch (revision 0) |
+++ third_party/yasm/patches/03_macho_objfmt_private.patch (revision 0) |
@@ -0,0 +1,32 @@ |
+Index: modules/objfmts/macho/macho-objfmt.c |
+=================================================================== |
+--- modules/objfmts/macho/macho-objfmt.c (revision 73577) |
++++ modules/objfmts/macho/macho-objfmt.c (working copy) |
+@@ -922,7 +922,26 @@ |
+ } |
+ /*printf("common symbol %s val %lu\n", name, yasm_intnum_get_uint(val));*/ |
+ } else if (vis & YASM_SYM_GLOBAL) { |
+- n_type |= N_EXT; |
++ yasm_valparamhead *valparams = |
++ yasm_symrec_get_objext_valparams(sym); |
++ |
++ struct macho_global_data { |
++ unsigned long flag; /* N_PEXT */ |
++ } data; |
++ |
++ data.flag = 0; |
++ |
++ if (valparams) { |
++ static const yasm_dir_help help[] = { |
++ { "private_extern", 0, yasm_dir_helper_flag_set, |
++ offsetof(struct macho_global_data, flag), N_PEXT }, |
++ }; |
++ yasm_dir_helper(sym, yasm_vps_first(valparams), |
++ yasm_symrec_get_decl_line(sym), help, NELEMS(help), |
++ &data, yasm_dir_helper_valparam_warn); |
++ } |
++ |
++ n_type |= N_EXT | data.flag; |
+ } |
+ |
+ localbuf = info->buf; |