Date: Mon, 22 Jan 2001 12:03:02 -0600 From: "Jacques A. Vidrine" <n@nectar.com> To: Daniel Eischen <eischen@vigrid.com> Cc: arch@freebsd.org, jdp@polstra.com Subject: other approach for hiding names (was Re: Request For Review: libc/libc_r changes to allow -lc_r) Message-ID: <20010122120302.A93660@hamlet.nectar.com> In-Reply-To: <Pine.SUN.3.91.1010120171614.8403A-100000@pcnet1.pcnet.com>; from eischen@vigrid.com on Sat, Jan 20, 2001 at 05:26:26PM -0500 References: <20010120153158.A88123@hamlet.nectar.com> <Pine.SUN.3.91.1010120171614.8403A-100000@pcnet1.pcnet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[I cc'd: jdp directly because he's the person most knowledgeable about linker issues with which I've corresponded. Hope you don't mind, John!] On Sat, Jan 20, 2001 at 05:26:26PM -0500, Daniel Eischen wrote: > Sorry, I don't think that's going to work, especially for > sigaction, flock, and kevent. These cannot be #define'd to > there underscore(_) equivalents because it would also redefine > struct sigaction, struct flock, and struct kevent. I'm beginning to think that the pre-processor is the wrong tool for the job. It can't tell a function or object declaration from other tokens. Is there somewhere in the build process that we could insert a tool that does something like the following? for each externally visible symbol: skip symbol if it is reserved (e.g. '_[A-Z_]') skip symbol if it is not on the ISO C name list [1] if the symbol is defined in this module: rename 'symbol' to '__symbol' add weak reference for 'symbol' -> '__symbol' else (the symbol is an undefined reference): rename 'symbol' to '__symbol' If we had such a thing, then we wouldn't have to phuk around with the preprocessor and maul the source tree. All there would be to maintain would be a list of symbols that we want to be left unmangled (or the converse -- I'm not sure which serves better). Cheers, -- Jacques Vidrine / n@nectar.com / jvidrine@verio.net / nectar@FreeBSD.org [1] Actually this list would probably be all ISO C names + other symbols that require special handling for threads. Or whatever. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010122120302.A93660>