From: Masahiro Yamada Sent: November 16, 2018 at 7:45:45 AM GMT > To: Nadav Amit <[email protected]> > Cc: Ingo Molnar <[email protected]>, Michal Marek <[email protected]>, > Thomas Gleixner <[email protected]>, Borislav Petkov <[email protected]>, H. > Peter Anvin <[email protected]>, X86 ML <[email protected]>, Linux Kbuild mailing > list <[email protected]>, Linux Kernel Mailing List > <[email protected]> > Subject: Re: [PATCH v2 1/2] Makefile: Fix distcc compilation with x86 macros > > > On Thu, Nov 15, 2018 at 1:01 PM Nadav Amit <[email protected]> wrote: >> Introducing the use of asm macros in c-code broke distcc, since it only >> sends the preprocessed source file. The solution is to break the >> compilation into two separate phases of compilation and assembly, and >> between the two concatenate the assembly macros and the compiled (yet >> not assembled) source file. Since this is less efficient, this >> compilation mode is only used when distcc or icecc are used. >> >> Note that the assembly stage should also be distributed, if distcc is >> configured using "CFLAGS=-DENABLE_REMOTE_ASSEMBLE". >> >> Reported-by: Logan Gunthorpe <[email protected]> >> Signed-off-by: Nadav Amit <[email protected]> > > > Wow, this is so ugly.
Indeed, it is not pretty from the Makefile system point of view. But it does have merits when it comes to the actual use (by developers). If you look on x86, there are a lot of duplicated implementation for C and Asm and crazy C macros, for example for PV function call or the alternative mechanism. The code is also less readable in its current form. > I realized how much I hated this by now. > > My question is, how long do we need to carry this? If it is purely about performance, I am not sure it would make sense to put it in, as it will indeed be (eventually) solved by the compiler, and the penalty is not too great. There is also an advantage for having assembly macros that can override the generated assembly that was generated by the compiler. I think HPA (cc’d) looks in this direction (and so do I). Regards, Nadav

