lkml.org 
[lkml]   [2009]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3 1/4] kbuild: Don't define ALIGN and ENTRY when preprocessing linker scripts.
On Sun, Sep 20, 2009 at 02:43:10PM -0400, Tim Abbott wrote:
> Adding a reference to <linux/linkage.h> to x86's <asm/cache.h> causes
> the x86 linker script to have syntax errors, because the ALIGN and
> ENTRY keywords get redefined to the assembly implementations of those.
> One could fix this by adjusting the include structure, but I think any
> solution based on that approach would be fragile.
>
> Currently, it is impossible when writing a header to do something
> different for assembly files and linker scripts, even though there are
> clearly cases where one wants them to define macros differently for
> the two (ENTRY being an excellent example). So I think the right
> solution here is to introduce a new preprocessor definition,
> tentatively called __LINKER_SCRIPT__ that is set along with
> __ASSEMBLY__ for linker scripts, and to use that to not define ALIGN
> and ENTRY in linker scripts. I suspect we'll find other uses for this
> mechanism in the future.

We will need this - agreed.

The reason for __XXX___ for ASSEMBLY and KERNEL is the fact
that these are used in user space headers.

I would suggest to use: LINKER_SCRIPT

> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index 5c4b7a4..e51e213 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -269,7 +269,8 @@ targets += $(extra-y) $(MAKECMDGOALS) $(always)
> # Linker scripts preprocessor (.lds.S -> .lds)
> # ---------------------------------------------------------------------------
> quiet_cmd_cpp_lds_S = LDS $@
> - cmd_cpp_lds_S = $(CPP) $(cpp_flags) -D__ASSEMBLY__ -o $@ $<
> + cmd_cpp_lds_S = $(CPP) $(cpp_flags) -D__ASSEMBLY__ -D__LINKER_SCRIPT__ \
> + -o $@ $<

This will conflict (in a trivial way) with stuff I have
pending for this merge window.

Sam


\
 
 \ /
  Last update: 2009-09-20 23:19    [W:0.080 / U:0.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site