diff --git a/devel/binutils/stable/patches/patch-gas_config_obj-aout_c b/devel/binutils/stable/patches/patch-gas_config_obj-aout_c new file mode 100644 index 00000000000..4e1157e1f81 --- /dev/null +++ b/devel/binutils/stable/patches/patch-gas_config_obj-aout_c @@ -0,0 +1,41 @@ +$OpenBSD: patch-gas_config_obj-aout_c,v 1.1 2004/01/19 02:04:20 brad Exp $ +--- gas/config/obj-aout.c.orig 2004-01-02 23:25:09.000000000 -0500 ++++ gas/config/obj-aout.c 2004-01-02 23:34:26.000000000 -0500 +@@ -482,6 +482,8 @@ obj_crawl_symbol_chain (headers) + + * symbols with no name (stabd's?) + * symbols with debug info in their N_TYPE ++ * symbols marked "forceout" (to force out local `L' symbols in Net- ++ or OpenBSD PIC code) + + Symbols that don't are: + * symbols that are registers +@@ -498,7 +500,15 @@ obj_crawl_symbol_chain (headers) + || !S_IS_DEFINED (symbolP) + || S_IS_EXTERNAL (symbolP) + || (S_GET_NAME (symbolP)[0] != '\001' +- && (flag_keep_locals || !S_LOCAL_NAME (symbolP))))) ++ && (flag_keep_locals || !S_LOCAL_NAME (symbolP)) ++#if defined(TE_NetBSD) || defined(TE_OpenBSD) ++ || (flag_pic && symbolP->sy_forceout) ++#endif ++ )) ++#if defined(TE_NetBSD) || defined(TE_OpenBSD) ++ && (!flag_pic || symbolP != GOT_symbol || got_referenced != 0) ++#endif ++ ) + { + symbolP->sy_number = symbol_number++; + +@@ -516,6 +526,11 @@ obj_crawl_symbol_chain (headers) + } + else + { ++ if (S_IS_EXTERNAL (symbolP) || !S_IS_DEFINED (symbolP) ++#if defined(TE_NetBSD) || TE_OpenBSD) ++ && (!flag_pic || symbolP != GOT_symbol || got_referenced != 0) ++#endif ++ ) + if (S_IS_EXTERNAL (symbolP) || !S_IS_DEFINED (symbolP)) + /* This warning should never get triggered any more. + Well, maybe if you're doing twisted things with