From: h...@zytor.com Sent: November 7, 2018 at 9:50:28 PM GMT > To: Logan Gunthorpe <log...@deltatee.com>, Nadav Amit <na...@vmware.com>, > Ingo Molnar <mi...@redhat.com> > Cc: LKML <linux-kernel@vger.kernel.org>, X86 ML <x...@kernel.org>, Sam > Ravnborg <s...@ravnborg.org>, Michal Marek <michal.l...@markovi.net>, Thomas > Gleixner <t...@linutronix.de>, Linux Kbuild mailing list > <linux-kbu...@vger.kernel.org>, Stephen Bates <sba...@raithlin.com> > Subject: Re: [PATCH v9 02/10] Makefile: Prepare for using macros for inline > asm > > > On November 7, 2018 1:43:39 PM PST, Logan Gunthorpe <log...@deltatee.com> > wrote: >> On 2018-11-07 11:56 a.m., Nadav Amit wrote: >>> HPA indicated more than once that this is wrong (and that was indeed >> my >>> initial solution), since it is not guaranteed that the compiler would >> put >>> the macro assembly before its use. >> >> Hmm, that's very unfortunate. I don't really understand why the >> compiler >> would not put the macro assembly in the same order as it appears in the >> code and it would be in the correct order there. >> >> In any case, I've submitted a couple of issues to icecc[1] and >> distcc[2] >> to see if they have any ideas about supporting this on their sides. >> >> Thanks, >> >> Logan >> >> [1] >> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ficecc%2Ficecream%2Fissues%2F428&data=02%7C01%7Cnamit%40vmware.com%7C30ab3751343b49f869ab08d644fb1d8c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C636772242666772528&sdata=dXKTR79LkFDQ9IXxYw9XYt0VPFa4MXrMUcc86w5uy%2Fk%3D&reserved=0 >> [2] >> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdistcc%2Fdistcc%2Fissues%2F312&data=02%7C01%7Cnamit%40vmware.com%7C30ab3751343b49f869ab08d644fb1d8c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C636772242666772528&sdata=XynZ1bFbKAb8V2eoPQbXudEJ%2B%2Bu8QA3mM4Sr4E%2FTzWs%3D&reserved=0 > > Apparently gcc will treat them like basic blocks and possibly move them > around.
Maybe it is possible to break the compilation of each object into two stages: first, compile the source without assembly, and then take the generated .s file and assemble it with the .s file of the macros. Does it sounds as something that may work? I guess it should only be done when distcc is used.