[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 3/5] x86/mm: override stored file names for multiply built sources



>>> On 26.10.15 at 15:57, <george.dunlap@xxxxxxxxxx> wrote:
> 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 <jbeulich@xxxxxxxx>
>>> ---
>>> 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 <http://www.gnu.org/licenses/>.
>>>   */
>>>  
>>> +/* 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)

Yeah, if we wanted to try to do without the asm()s here, I think
the next best approach would be to create real source files
#define-ing GUEST_PAGING_LEVELS and then include the main one.
But to be honest I think the asm() approach is still cheaper than
that or (as you say) the symlink one.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.