From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH v2 3/5] x86/mm: override stored file names for multiply built sources Date: Mon, 26 Oct 2015 14:57:11 +0000 Message-ID: <562E3F47.4010407@citrix.com> References: <562E12E802000078000AE785@prv-mh.provo.novell.com> <562E21E802000078000AE8A7@prv-mh.provo.novell.com> <562E39FC.3000409@amazon.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZqjD3-0001nQ-0C for xen-devel@lists.xenproject.org; Mon, 26 Oct 2015 14:57:17 +0000 In-Reply-To: <562E39FC.3000409@amazon.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Martin Pohlack , Jan Beulich , xen-devel Cc: George Dunlap , Andrew Cooper , Keir Fraser , Tim Deegan List-Id: xen-devel@lists.xenproject.org On 26/10/15 14:34, Martin Pohlack wrote: > On 26.10.2015 12:51, Jan Beulich wrote: >> To make it possible to tell apart the static symbols therein, use their >> object file names instead of their source ones. >> >> Signed-off-by: Jan Beulich >> --- >> v2: Introduce __OBJECT_FILE__. >> >> --- a/xen/Rules.mk >> +++ b/xen/Rules.mk >> @@ -42,10 +42,10 @@ ALL_OBJS-y += $(BASEDIR)/x >> ALL_OBJS-y += $(BASEDIR)/arch/$(TARGET_ARCH)/built_in.o >> ALL_OBJS-$(x86) += $(BASEDIR)/crypto/built_in.o >> >> -CFLAGS += -fno-builtin -fno-common >> +CFLAGS += -nostdinc -fno-builtin -fno-common >> CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith >> CFLAGS += -pipe -g -D__XEN__ -include $(BASEDIR)/include/xen/config.h >> -CFLAGS += -nostdinc >> +CFLAGS += '-D__OBJECT_FILE__="$@"' >> >> CFLAGS-$(XSM_ENABLE) += -DXSM_ENABLE >> CFLAGS-$(FLASK_ENABLE) += -DFLASK_ENABLE >> --- a/xen/arch/x86/mm/guest_walk.c >> +++ b/xen/arch/x86/mm/guest_walk.c >> @@ -21,6 +21,9 @@ >> * along with this program; If not, see . >> */ >> >> +/* Allow uniquely identifying static symbols in the 3 generated objects. */ >> +asm(".file \"" __OBJECT_FILE__ "\""); >> + > > I wonder if using symlinks to the C files and compiling those would be a > more obvious way to set the file symbol to something unique. That's an interesting idea. My initial reactions: 1. Setting up the runes and such to make those links wouldn't be simpler than the asm()-ery that Jan has here 2. Having random linked files lying around has the potential to cause other forms of confusion (git needs to know to ignore them; developers may not realize that editing one edits all the others, &c; even if they do, they may accidentally open two files in an editor that doesn't realize they're the same file, &c) -George