Index: third_party/yasm/patched-yasm/modules/objfmts/macho/macho-objfmt.c |
=================================================================== |
--- third_party/yasm/patched-yasm/modules/objfmts/macho/macho-objfmt.c (revision 73577) |
+++ third_party/yasm/patched-yasm/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; |