On Fri, Sep 21, 2007 at 01:06:21AM +0200, Indan Zupancic wrote:Thats a bit unavoidable as the build system works. __FILE__ is passed the filename supplied as argument to gcc. Try: echo "char *s = __FILE__;" > sam.c gcc -E sam.c This gives you: # 1 "sam.c" # 1 "<built-in>" # 1 "<command line>" # 1 "sam.c" char *s="sam.c"; gcc -E ~/sam.c This gives you: # 1 "/home/sam/sam.c" # 1 "<built-in>" # 1 "<command line>" # 1 "/home/sam/sam.c" char *s="/home/sam/sam.c"; So __FILE__ expand differently depending on the path on the gcc command line. I once posted a patch to fix up on this, especialy for BUG_ON and friends. The solution was to let kbuild generate the filename and to use this define in the source code. But a quick grep for __FILE__ in the kernel source made me chicken out. Simply too much chrunch at that time to justify it. Googeling a bit I found it here: http://lkml.org/lkml/2006/7/8/22 The better approach would be to use at least the patch inside the kernel. This patch should be easy to update to latest kernel if anyone is up to play with it. I recall that there was some problems with the path used. But I cannot remember the details. Andrew had some inputs from his testing IIRC and google should be able to tell the full story. Sam -
| Arnd Bergmann | Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures |
| Andrew Morton | 2.6.23-rc1-mm2 |
| Nick Piggin | [patch 3/6] mm: fix fault vs invalidate race for linear mappings |
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Herbert Xu | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| David Miller | Re: [BUG] New Kernel Bugs |
